SYF(1)

πŸ“¦ version 5.1.1, in fedora 43, fedora 44

πŸ¦‹ SYF(1) β€” ✨ NAME ✨

okay so bestie, SYF is the Finite State Machine synthesizer πŸ’– and this page lives in the CAO-VLSI Reference Manual. no cap, that's the whole vibe of the name section. slay.


🌈 ORIGIN 🌈

This software belongs to the ALLIANCE CAD SYSTEM, developed by the ASIM team at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France πŸ‡«πŸ‡·βœ¨


πŸŽ€ SYNOPSIS πŸŽ€

syf -a|j|m|u|o|r [-CDEOPRSTV] input_name [output_name]

πŸ’… DESCRIPTION πŸ’…

syf is a Finite State Machine synthesizer. it literally lets you generate a VHDL Data Flow description (peep vbe(5) for that one) fast from a VHDL Finite State Machine description (that's fsm(5), iykyk). πŸ¦‹

the input FSM spec can use an internal STACK. and yes, both MOORE and MEALEY FSMs can be synthesized, with output registers if you want them ✨

for a MOORE FSM specifically, there's a timing-optimized implementation that emulates a ROM with microsequencer β€” iconic behaviour honestly. and a scan-path for the state registers can also be implemented. πŸ’…


πŸ“ ENVIRONMENT VARIABLES πŸ“

  • MBK_WORK_LIB(1) β€” this one indicates the path to the read/write directory for the session. basically where the files come and go, bestie. πŸ“

✨ OPTIONS ✨

okay this is the part everyone skips and then wonders why nothing works. not us. we read all of them. 🫢

  • -a β€” Uses "Asp" as encoding algorithm.
  • -j β€” Uses "Jedi" as encoding algorithm.
  • -m β€” Uses "Mustang" as encoding algorithm.
  • -u β€” Uses an encoding given by user through the <input_name>.enc file. in that file, a line started by a # character is a comment. a valid line contains one state name followed by its hexadecimal code. ✍️
  • -o β€” Uses the one hot encoding algorithm.
  • -r β€” Uses distinct random numbers for state encoding. 🎲
  • -C β€” Checks the transition's consistency.
  • -D β€” With this option syf doesn't optimize unused, i.e Don't Care, codes. πŸ™ˆ
  • -E β€” Saves the encoding result in the <output_name>.enc. this file has the same syntax as the <input_name>.enc file which is used by the -u option. cute little matching pair πŸ’–
  • -O β€” With this option syf places registers on the outputs.
  • -P β€” Implements a scan-path for the state registers, stack registers and possibly output registers. the scan-path mechanism is directly included in states decoder. users should use scapin(5) for a correct insertion of a scan-path in a netlist. please check fsm(5) for information about scan-path descriptions. ⚠️ fr, don't skip that last bit.
  • -R β€” This option is only available for MOORE FSM. with this option, syf emulates a ROM with micro-sequencer implementation: there is no combinatorial logic between the state registers and the FSM outputs. this can be mandatory for external timing constraints. see fsm(5) and grog(1) for more on ROM descriptions. πŸ‘‘
  • -S β€” With this option syf doesn't take into account the cost of the transitions to compute an encoding.
  • -V β€” Verbose mode on. each step of the FSM synthesis is displayed on the standard output, along with some statistics. πŸ“Š the way it tells you everything it's doing… main character energy.

🧚 EXAMPLE 🧚

Environment variables:

setenv MBK_WORK_LIB /alliance/tutorials/dlxm

syf is called as follow (the dlx_ctrl.fsm is already created in /alliance/tutorials/dlxm) :

syf -sE dlx_ctrl

Two files will be generated, a states encoding file dlx_ctrls.enc and a VHDL data flow file /alliance/tutorials/dlxm/dlx_ctrls.vbe 🌸

two whole files out of one tiny command?? it's giving efficiency, honestly.

πŸ‘‘ SEE ALSO πŸ‘‘

fsm(5), vbe(5), vhdl(5), boom(1), boog(1), loon(1), scapin(1), asimut(1), proof(1), MBK_WORK_LIB(1).


πŸ’€ BUG REPORT πŸ’€

This tool is under development at the ASIM department of the LIP6 laboratory. We need your feedback to improve documentation and tools.

not me begging you to send feedback πŸ’€ they literally need it bestie, go tell them what's broken.

that's the whole page! ASIM/LIP6, dated October 1, 1997 β€” yeah, she's vintage, and she's still serving πŸ’…βœ¨ mwah, go synthesize something gorgeous πŸ¦‹πŸ’–