.\" Text automatically generated by txt2man .TH QFLOW 1 "11 October 2015" "" "" .SH NAME \fBqflow \fP- Open-Source Digital Synthesis Flow \fB .SH SYNOPSIS .nf .fam C \fBqflow\fP [\fIprocesses\fP] [\fIoptions\fP] .fam T .fi .fam T .fi .SH DESCRIPTION This is the main executable for a complete tool chain for synthesizing digital circuits starting from verilog source and ending in physical layout for a specific target fabrication process. In the world of commercial electronics, digital synthesis with a target application of a chip design is usually bundled into large EDA software systems. As commercial electronics designers need to maintain cutting-edge performance, these commercial toolchains get more and more expensive, and have largely priced themselves out of all but the established integrated circuit manufacturers. This leaves an unfortunate gap where startup companies and small businesses cannot afford to do any sort of integrated circuit design. .PP Qflow tries to fill this gap. .SH PROCESSES .TP .B synthesize Synthesize verilog source .TP .B place Run initial placement .TP .B sta Static timing analysis .TP .B route Run placement and route .TP .B decongest Run congestion analysis, final place and route .TP .B clean Remove temporary working files .TP .B display Display routed result .TP .B build Run scripts synthesize to route .TP .B all Run scripts synthesize to display .SH OPTIONS .TP .B \fB-T\fP, \fB--tech\fP Use technology (Default: osu035) .TP .B \fB-p\fP, \fB--project\fP Project root directory is .SH USAGE The simplest way to use \fBqflow\fP is to be in a directory with one Verilog file called input.v and execute: .PP .nf .fam C qflow build input.v .fam T .fi This will run all the necessary steps in order to produce a layout of the specified Verilog file. If only certain steps are desired, one may first run: .PP .nf .fam C qflow input.v .fam T .fi and then open qflow_exec.sh and uncomment the desired steps, and at last run: .PP .nf .fam C ./qflow_exec.sh .fam T .fi It is also possible to change other "project-specific" details in the files qflow_vars.sh and project_vars.sh which also have been created in the current directory. .SH TECHNOLOGY \fBqflow\fP looks for technology files under /usr/share/\fBqflow\fP/tech. A shell script must be placed in a sub directory there declaring where each of the technology files are located: .PP .nf .fam C /usr/share/qflow/tech/[TECHNAME]/[TECHNAME].sh .fam T .fi Usually, the files needed are placed in the following locations: .PP .nf .fam C /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 .fam T .fi If no technology name is specified on the command line with the \fB-T\fP/\fB--tech\fP option, it will attempt to use the default technology which is "osu035". .PP If the technology files are located somewhere else, this can be specified in qflow_vars.sh which is created when running \fBqflow\fP. The variables "techdir" and "techname" must be changed accordingly. .SH AUTHOR This manual page was written by Ruben Undheim for the Debian project (and may be used by others).