Skip to content

Releases: mario33881/betterSIS

Release 1.2.1

07 Sep 14:18
e541aea
Compare
Choose a tag to compare

2021-09-07 1.2.1:

Changes:

  • Now the original output is kept completely intact (included warnings) and at the end of the command execution warnings are shown a second time.

    Warnings were hidden during the command execution because they were considered redondant (to the developer) but having the full "history" of the output
    and then a brief summary of Warnings and/or errors makes more sense.

Features:

  • Added persistent command history across different sessions (they are saved inside the ~/.bsis_history file).

    It is disabled by default and you can enable it by setting the "BSIS_HISTORY_ENABLED" environment variable to "true". Check the documentation on how to enable it and how to set the history size limit.

  • Added the bsis_tutorials command: it opens the browser on the SIS tutorials webpage

  • Added the bsis_documentation command: it opens the browser on the betterSIS documentation webpage

  • Added the bsis_releases command: it opens the browser on the download page for the latest betterSIS

  • Added the bsis_checkblif command: uses the blifparser library as a basic parser/validation tool for BLIF files

  • Now the help command also shows betterSIS commands

  • New release on the Snap store. You can now install this software using the snap install bettersis command or using the Snap Store GUI.

  • New release as an AppImage. You can think of it as having an updatable PyInstaller version.

    Use the bsis_update to update your AppImage when an update is available

  • Added two arguments to betterSIS: the --debug flag used to write more details in the log file and the --verbosedebug flag to also show debug information inside the shell

    --verbosedebug only works when you also use the --debug flag

  • The simple text editor now shows the text "Saved to file" when the user saves the file using Ctrl+S

Fixes:

  • Now the program can correctly check if an update is available.
  • Fixed the UnicodeEncodeError: 'ascii' codec can't encode character in position 0: ordinal not in range(128) error

    This happened because of the ASCII art that is shown when bettersis is executed:
    the terminal must be set to use an UTF-8 language using the $LANG environment variable to be able to show those ASCII characters.

    Now the ASCII art is simply not shown if the user's terminal doesn't support it.

  • (siswrapper) Fixed timeout error on commands that gave paginated outputs such as the help read_blif command.

Release files / installation methods:

  • bsis: PyInstaller version
  • bettersis.deb: DEB package
  • use the snap install bettersis command to install the Snap version

    If you are using an old Snap, use the snap refresh command to update all your Snaps (including betterSIS)

  • BetterSIS-1.2.1-x86_64.AppImage: AppImage version
  • BetterSIS-1.2.1-x86_64.AppImage.zync: Used by the AppImage to find updates

    You DON'T need to download this file

  • Source code (zip) and Source code (tar.gz): source code

You can also see a summary of the differences between installation methods here

Release 1.2.0

27 Mar 17:46
0df2a16
Compare
Choose a tag to compare

2021-03-17 1.2.0

Known bugs:

  • The executable version of betterSIS (both the deb package and the PyInstaller executable) can't correctly connect to Github Release to check for updates (SSL verification error)

    This will be fixed in the next version (for now you need to manually check if an update is available)

Features:

  • Added the ls command: it shows files and directories in the given/current path

  • Added the cd command: you can use it to navigate directories from betterSIS

  • Added the edit command: opens the specified file with a simple text editor

    Editor's features: syntax highlighting, basic edit/save functionality, use the tab key to write/complete keywords

  • (siswrapper feature) Added bsis_script command. Its accepted parameters are:

    • fsm_autoencoding_area, useful for FSM circuits: minimizes states, automatically encodes states, optimizes area and maps the circuit by area (synch library)

      Executed commands: state_minimize stamina, state_assign jedi, source script.rugged, read_library synch.genlib, map -m 0 -W -s

    • fsm_autoencoding_delay, useful for FSM circuits: minimizes states, automatically encodes states, optimizes delay and maps the circuit by delay (synch library)

      Executed commands: state_minimize stamina, state_assign jedi, reduce_depth, source script.rugged, read_library synch.genlib, map -n 1 -W -s

    • fsm_area, useful for FSM circuits: minimizes states, uses manual states encoding, optimizes area and maps the circuit by area (synch library)

      Executed commands: state_minimize stamina, stg_to_network, source script.rugged, read_library synch.genlib, map -m 0 -W -s

    • fsm_delay, useful for FSM circuits: minimizes states, uses manual states encoding, optimizes delay and maps the circuit by delay (synch library)

      Executed commands: state_minimize stamina, stg_to_network, reduce_depth, source script.rugged, read_library synch.genlib, map -n 1 -W -s

    • lgate_area_mcnc, useful for combinational circuits: optimizes area and maps the circuit by area (mcnc library)

      Executed commands: source script.rugged, read_library mcnc.genlib, map -m 0 -W -s

    • lgate_delay_mcnc, useful for combinational circuits: optimizes delay and maps the circuit by delay (mcnc library)

      Executed commands: reduce_depth, source script.rugged, read_library mcnc.genlib, map -n 1 -W -s

    • lgate_area_synch, useful for combinational circuits: optimizes area and maps the circuit by area (synch library)

      Executed commands: source script.rugged, read_library synch.genlib, map -m 0 -W -s

    • lgate_delay_synch, useful for combinational circuits: optimizes delay and maps the circuit by delay (synch library)

      Executed commands: reduce_depth, source script.rugged, read_library synch.genlib, map -n 1 -W -s

    • fsmd_area, useful for FSMD circuits (circuits which include datapaths and an FSM): optimizes area and maps the circuit by area (synch library)

      Executed commands: source script.rugged, read_library synch.genlib, map -m 0 -W -s

    • fsmd_delay, useful for FSMD circuits (circuits which include datapaths and an FSM): optimizes delay and maps the circuit by delay (synch library)

      Executed commands: reduce_depth, source script.rugged, read_library synch.genlib, map -n 1 -W -s

    This command also shows which command is executed and the statistics after some commands

    Partial and full results are written to new BLIF files.

    WARNING! These commands are executed in this order, thus does NOT guarantee the best result: multi-level minimization is not perfect!
    to obtain better results you should try to execute these commands manually in a diffent order (try also to execute them more than once)

  • (siswrapper feature) Now this library verifies if the stg_to_network command is successful

Fixes:

  • (siswrapper fix) Now the write_eqn command gives the expected result when used to output to a file.

    Before this fix the write_blif method was executed instead of the correct method

  • (siswrapper fix) When SIS is not installed the error message shows exactly what the problem is
  • (siswrapper fix) If you call the write_eqn and write_blif method without parameters the output doesn't contain the command.
  • (siswrapper fix) Can't execute the rugged script if no file as been read with a read command
  • (siswrapper fix) When you execute a read command, this library calls the reset method to close the SIS session and
    open a new session inside the folder of the input file

    This "fixes" the ".search x file not found" error when you try to read a file that is in another folder and contains the .search keyword.

    This error was normal but not intuitive (because the imported file was present inside the same folder as the input file but not inside the current folder).
    It was the original SIS behaviour.

  • (siswrapper fix) The output of the print_stats command couldn't be intepreted as correct when the circuit had more than a 10000 literals/states

    The output was correct but the program reported it as an error

Release 1.1.0

10 Jan 13:24
27461e5
Compare
Choose a tag to compare

2021-01-09 1.1.0

Features:

  • Added logs to syslog to help solving problems (and /var/log/pybettersis/pybettersis.log for .deb package installations)
  • An "Update is available" message is shown when a new Github Release is online
  • Files are shown as parameters (for faster workflow)

Fixes:

  • sim command is treated the same as the simulate command
  • siswrapper 1.1.1 can manage FSM outputs (fix: TypeError: 'NoneType' object is not subscriptable)
  • Builds are made on an older OS (Ubuntu 12.04) to improve OS versions support

This should fix this problem: Error loading Python lib [...] GLIBC_2.29 not found

Release 1.0.0

04 Jan 20:35
69a1208
Compare
Choose a tag to compare

First release

Attached files:

  • bettersis.deb: .deb package which can be used to install this software
  • bsis: executable created by Pyinstaller, portable version (no installation required)

The files were built and tested on Ubuntu 20.04.1 LTS.
On older systems the os will probably throw the error Error loading Python lib [...] GLIBC_2.29 not found.
There no fix for this build: the build needs to be executed from an older os... Stay tuned for future updates!