QFLOW(1)

πŸ“¦ version 1.3.17, in debian bookworm, ubuntu jammy

πŸ’– QFLOW(1) β€” the manual page bestie πŸ’–

okay so. welcome to qflow, aka the Open-Source Digital Synthesis Flow. yes it's a manual page, no it does not have to be boring, and yes I'm gonna walk you through every single crumb of it. grab a snack. πŸ“


✨ NAME ✨

qflow β€” Open-Source Digital Synthesis Flow. that's it. that's the girl. πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

qflow [processes] [options] <module_name>

🌸 DESCRIPTION 🌸

okay so listen. qflow is the main executable for a complete tool chain that synthesizes digital circuits. like, full journey: you start with verilog source and you end with physical layout for a specific target fabrication process. start to finish. main character energy fr fr.

now here's the tea about the commercial world β˜• β€” in commercial electronics, digital synthesis targeting a chip design is usually bundled up into big ol' EDA software systems. and because commercial designers have to keep that cutting-edge performance, those toolchains just keep getting more and more expensive πŸ’€ and they've largely priced themselves right out of everyone except the established integrated circuit manufacturers. which leaves a genuinely unfortunate gap where startup companies and small businesses literally cannot afford to do any sort of integrated circuit design.

and that's the gap qflow is trying to fill. 🫢 not me getting emotional about open-source EDA.


πŸ‘‘ PROCESSES πŸ‘‘

here's the whole lineup, bestie β€” pick your fighter:

  • synthesize β€” synthesize verilog source
  • place β€” run initial placement
  • sta β€” static timing analysis
  • route β€” run placement and route
  • decongest β€” run congestion analysis, final place and route
  • clean β€” remove temporary working files
  • display β€” display routed result
  • build β€” run scripts synthesize to route
  • all β€” run scripts synthesize to display

πŸ’… OPTIONS πŸ’…

  • -T, --tech <name> β€” use technology <name> (default: osu035)
  • -p, --project <name> β€” project root directory is <name>

πŸŽ€ USAGE πŸŽ€

the simplest way to use qflow? be in a directory with one Verilog file called input.v and then execute:

qflow build input.v

that runs all the necessary steps in order to produce a layout of the specified Verilog file. slay. ✨

but say you only want certain steps. no problem. first run:

qflow input.v

and then open qflow_exec.sh, uncomment the desired steps, and at last run:

./qflow_exec.sh

and yesss you can also change other "project-specific" details in the files qflow_vars.sh and project_vars.sh β€” which have also been created in the current directory. they're just sitting there. waiting for you. πŸ™ˆ


πŸ”₯ TECHNOLOGY πŸ”₯

so qflow looks for technology files under /usr/share/qflow/tech. a shell script has to be placed in a sub directory there declaring where each of the technology files are located:

/usr/share/qflow/tech/[TECHNAME]/[TECHNAME].sh

usually, the files needed are placed in these locations:

/usr/share/qflow/tech/[TECHNAME]/SCN4M_SUBM.20.tech
/usr/share/qflow/tech/[TECHNAME]/[TECHNAME].magicrc
/usr/share/qflow/tech/[TECHNAME]/[TECHNAME].prm
/usr/share/qflow/tech/[TECHNAME]/[TECHNAME]_stdcells.v
/usr/share/qflow/tech/[TECHNAME]/[TECHNAME]_stdcells.lef
/usr/share/qflow/tech/[TECHNAME]/[TECHNAME].par
/usr/share/qflow/tech/[TECHNAME]/[TECHNAME]_stdcells.sp
/usr/share/qflow/tech/[TECHNAME]/[TECHNAME]_stdcells.lib

if no technology name is specified on the command line with the -T/--tech option, it will attempt to use the default technology, which is "osu035". that's the fallback bae. πŸ’œ

and if the technology files are located somewhere else? totally fine β€” you can specify that in qflow_vars.sh, which is created when running qflow. the variables "techdir" and "techname" must be changed accordingly. don't forget them, bestie, or she'll be looking in the wrong place. 😭


πŸ’– AUTHOR πŸ’–

this manual page was written by Ruben Undheim <ruben.undheim@gmail.com> for the Debian project (and may be used by others). iconic of them honestly. 🫢


that's the whole page, no cap. every flag, every path, every process, all accounted for. vibe check passed. βœ…

okay bye bestie!! this was QFLOW(1), dated 11 October 2015 β€” go build something gorgeous with it. πŸ’…βœ¨πŸŒˆ

πŸ“¦ where this page comes from