NanoXplore

nx_carry - NanoXplore: create carry cells

yosys> help nx_carry
nx_carry [options] [selection]
Fixes carry chain if needed, break it on 24 elements and group by 4 into NX_CY.

Note

Help text automatically generated from techlibs/nanoxplore/nx_carry.cc:138

synth_nanoxplore - synthesis for NanoXplore FPGAs

yosys> help synth_nanoxplore
synth_nanoxplore [options]
This command runs synthesis for NanoXplore FPGAs.
-top <module>
use the specified module as top module
-family <family>
run synthesis for the specified NanoXplore architecture
generate the synthesis netlist for the specified family.
supported values:
- medium: NG-Medium
- large: NG-Large
- ultra: NG-Ultra
-json <file>
write the design to the specified JSON file. writing of an output file
is omitted if this parameter is not specified.
-run <from_label>:<to_label>
only run the commands between the labels (see below). an empty
from label is synonymous to 'begin', and empty to label is
synonymous to the end of the command list.
-noflatten
do not flatten design before synthesis
-abc9
use new ABC9 flow (EXPERIMENTAL)
-nocy
do not map adders to CY cells
-nodffe
do not use flipflops with L in output netlist
-min_ce_use <min_ce_use>
do not use flip-flops with load signal if the resulting count is less
than min_ce_use in output netlist
-min_srst_use <min_srst_use>
do not use flip-flops with async reset signal if the resulting count is less
than min_srst_use in output netlist
-norfram
do not use Register File RAM cells in output netlist
-nobram
do not use block NX_RAM cells in output netlist
-noiopad
do not insert IO buffers
-no-rw-check
marks all recognized read ports as "return don't-care value on
read/write collision" (same result as setting the no_rw_check
attribute on all memories).

The following commands are executed by this synthesis command:

begin:
    read_verilog -lib -specify +/nanoxplore/cells_sim.v +/nanoxplore/cells_sim.v +/nanoxplore/cells_bb.v +/nanoxplore/cells_bb.v
    techmap -map +/nanoxplore/cells_wrap.v
    techmap -map +/nanoxplore/cells_wrap.v
    hierarchy -check -top <top>

coarse:
    proc
    flatten    (skip if -noflatten)
    tribuf -logic
    deminout
    opt_expr
    opt_clean
    check
    opt -nodffe -nosdff
    fsm
    opt
    wreduce
    peepopt
    opt_clean
    share
    techmap -map +/cmp2lut.v -D LUT_WIDTH=4
    opt_expr
    opt_clean
    alumacc
    opt
    memory -nomap [-no-rw-check]
    opt_clean

map_ram:
    memory_libmap -lib +/nanoxplore/rf_rams.txt -lib +/nanoxplore/brams.txt [-no-auto-block] [-no-auto-distributed]    (-no-auto-block if -nobram, -no-auto-distributed if -norfram)
    techmap -map +/nanoxplore/rf_rams_map.v -map +/nanoxplore/brams_map.v
    techmap -map +/nanoxplore/cells_wrap.v t:NX_RAM*
    techmap -map +/nanoxplore/cells_wrap.v t:NX_XRFB* t:NX_RFB*

map_ffram:
    opt -fast -mux_undef -undriven -fine
    memory_map
    opt -undriven -fine -mux_undef

map_gates:
    techmap -map +/techmap.v -map +/nanoxplore/arith_map.v
    nx_carry
    iopadmap -bits -outpad $__BEYOND_OBUF I:PAD -toutpad $__BEYOND_TOBUF C:I:PAD -inpad $__BEYOND_IBUF O:PAD -tinoutpad $__BEYOND_IOBUF C:O:I:PAD A:top    (skip if '-noiopad')
    techmap -map +/nanoxplore/io_map.v
    opt -fast

map_ffs:
    dfflegalize -cell $_DFF_?_ 01 -cell $_DFF_?P?_ r -cell $_SDFF_?P?_ r [-cell $_DFFE_?P_ 01 -cell $_DFFE_?P?P_ r -cell $_SDFFE_?P?P_ r] -cell $_DLATCH_?_ x -mince 8 -minsrst 8    ($_*DFFE_* only if not -nodffe)
    opt_merge
    techmap -map +/nanoxplore/latches_map.v
    techmap -map +/nanoxplore/cells_map.v
    opt_expr -undriven -mux_undef
    clean -purge

map_luts:
    abc -dress -lut 4
    techmap -map +/nanoxplore/cells_map.v t:$lut
    opt -fast
    clean

check:
    autoname
    hierarchy -check
    stat
    check -noinit
    blackbox =A:whitebox
    setundef -zero -undriven

json:
    write_json <file-name>

Note

Help text automatically generated from techlibs/nanoxplore/synth_nanoxplore.cc:31