SYF(1)
π SYF(1) β the Finite State Machine synthesizer
okay so this is SYF(1), straight out of the CAO-VLSI Reference Manual bestie, and it's literally the glow-up station for your finite state machines β¨
πΈ NAME πΈ
SYF β Finite State Machine synthesizer. that's it, that's the whole vibe π
π¦ ORIGIN π¦
so 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 πΌ (yes the accented characters are giving trΓ¨s chic, we keep them).
- Web :
http://asim.lip6.fr/recherche/alliance/ - E-mail :
alliance-users@asim.lip6.fr
like, they built this whole thing in Paris. main character energy honestly π
β SYNOPSIS β
syf -a|j|m|u|o|r [-CDEOPRSTV] input_name [output_name]
π DESCRIPTION π
okay so syf is a Finite State Machine synthesizer. and not to be dramatic but it's fast β it generates a VHDL Data Flow description (peep vbe(5)) from a VHDL Finite State Machine description (peep fsm(5)) and it does NOT waste your time π
the input FSM spec can use an internal STACK (yes, a whole stack, iconic). both MOORE and MEALEY FSMs can be synthesized, with output registers if you want them. and for a MOORE FSM specifically, there's this timing-optimized implementation that emulates a ROM with a microsequencer β we love an overachiever β¨ a scan-path for the state registers can also be implemented. no cap, it does a lot.
π§ ENVIRONMENT VARIABLES π§
MBK_WORK_LIB(1)β tells you the path to the read/write directory for the session. that's where the files live, bestie π
β¨ OPTIONS β¨
π the encoding girlies (pick one, fr)
-aβ uses "Asp" as the encoding algorithm.-jβ uses "Jedi" as the encoding algorithm.-mβ uses "Mustang" as the encoding algorithm.-uβ uses an encoding given by you, the user, through the<input_name>.encfile π in this file, a line started by a#character is a comment. a valid line contains one state name followed by its hexadecimal code. yes, hex. we're fancy.-oβ uses the one hot encoding algorithm. classic, beloved, slays.-rβ uses distinct random numbers for state encoding. chaos. love that for you π²
π¦ the behaviour tweaks
-Cβ checks the transition's consistency. like a vibe check but for transitions.-Dβ with this optionsyfdoesn't optimize unused codes, i.e. Don't Care codes. so they just sit there. existing. unbothered. π-Eβ saves the encoding result in the<output_name>.enc. this file has the same syntax as the<input_name>.encfile which is used by the-uoption. round trip, we love a round trip π«Ά-Oβ with this optionsyfplaces registers on the outputs.-Pβ implements a scan-path for the state registers, stack registers and possibly output registers π the scan-path mechanism is directely included in the states decoder (their spelling, not mine, keeping it π). users should usescapin(5)for a correct insertion of a scan-path in a netlist. please checkfsm(5)for information about scan-path descriptions.-Rβ this option is only available for MOORE FSM π with this option,syfemulates a ROM with micro-sequencer implementation: there is no combinatorial logic between the state registers and the FSM outputs. like, none. this can be mandatory for external timing constraints β° seefsm(5)andgrog(1)for more on ROM descriptions.-Sβ with this optionsyfdoesn't take into account the cost of the transitions to compute an encoding. it's just not thinking about cost bestie. living in the moment.-Vβ Verbose mode on π₯ each step of the FSM synthesis is displayed on the standard output, along with some statistics. numbers! graphs! lore!
β οΈ quick note:-Pdoesn't magically insert your scan-path into a netlist β that'sscapin(5)'s job. don't skip that step or it's giving chaos π
π EXAMPLE π
environment variables first, obviously:
setenv MBK_WORK_LIB /alliance/tutorials/dlxm
then 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 files! for free! well, for the cost of one command.
π SEE ALSO π
fsm(5), vbe(5), vhdl(5), boom(1), boog(1), loon(1), scapin(1), asimut(1), proof(1), MBK_WORK_LIB(1).
(the whole friend group honestly, go say hi π«Ά)
π BUG REPORT π
this tool is under development at the ASIM department of the LIP6 laboratory.
we need your feedback to improve documentation and tools π like genuinely, tell them. they're asking. it's giving collaborative.
and that's the page bestie π β brought to you by ASIM/LIP6, dated October 1, 1997 (a vintage, an icon, a legend π°οΈβ¨). now go synthesize something gorgeous.
π¦ where this page comes from
- nixos 26.05: alliance 5.1.1-unstable-2025-02-24
- nixpkgs unstable: alliance 5.1.1-unstable-2025-02-24
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms