Search This Blog

Tuesday, September 21, 2010

Import the RTL Design


Import the RTL Design 


Step - 1: Now import your RTL code in a sequence of top module file is followed by the rest of the design files. For purpose of clear explanation here we are using a standard AES design. It is designed using verilog and whose topmodule name is "aes_cipher_top". AES design contains the following verilog files.

Step - 2: "import rtl" reads the RTL files. To analyze RTL code use "-analyze" at the end. "-analyze" is optional command.



mantle[0]:> import rtl aes_cipher_top.v aes_sbox.v aes_rcon.v aes_key_expand_128.v

mantle[0]:>import rtl aes_cipher_top.v  aes_sbox.v aes_rcon.v aes_key_expand_128.v
MSG-10   While running 'import rtl aes_cipher_top.v aes_sbox.v aes_rcon.v
         aes_key_expand_128.v':
RTL-3    Building model aes_cipher_top(aes_cipher_top)
RTL-3    Building model aes_key_expand_128(aes_key_expand_128)
RTL-3    Building model aes_sbox(aes_sbox)
RTL-3    Building model aes_rcon(aes_rcon)
/work/aes_cipher_top/aes_cipher_top

Step - 3: "set m" set the variable for the top level Design. In this design the top level model is "/work/aes_cipher_top/aes_cipher_top". The top level model path is displayed at the end of the report of the "import rtl" command.
mantle[0]:>set m /work/aes_cipher_top/aes_cipher_top

mantle[4]:>set m /work/aes_cipher_top/aes_cipher_top
/work/aes_cipher_top/aes_cipher_top

Step - 4: "fix rtl" performs RTL optimizations.
mantle[5]:> fix rtl $m



mantle[5]:> fix rtl $m

################### Starting Standard fix rtl ####################

MSG-10   While running 'run rtl expression /work/aes_cipher_top/aes_cipher_top':
EXP-4    Labeling datapath cells
EXP-5    Grouping datapath cells into expression models
EXP-6    Flattening expressions for expression models
EXP-7    Resource sharing over flat expressions
EXP-8    Generating DPF for expression models
CMD-8    cputime  0.4 minutes, walltime  0.4 minutes, process memory  133.4 MB, peak memory
         144.4 MB, command "run rtl implement /work/aes_cipher_top/aes_cipher_top"
MSG-10   While running 'export verilog equation /work/aes_cipher_top/aes_cipher_top
         snap/aes_cipher_top%fix-rtl-final%vereqn.veq':
WRI-2    Writing file snap/aes_cipher_top%fix-rtl-final%vereqn.veq.
MSG-10   While running 'export volcano snap/aes_cipher_top%fix-rtl-final.volcano':
LAVA-26  Writing library /cl013lv
LAVA-26  Writing library /work
LAVA-26  Writing library /macro_lib
LAVA-900 Successfully froze lava into volcano snap/aes_cipher_top%fix-rtl-final.volcano:  
         1 seconds,    1 on cpu.
LAVA-248 Volcano file size: 55.8 MByte, data compression was not used.
LAVA-251 Data throughput 44.352 MB/s (1.26 s elapsed)

################### Finished Standard fix rtl ####################

CMD-8    cputime  0.4 minutes, walltime  0.4 minutes, process memory  133.4 MB, peak memory
         144.4 MB, command "fix rtl /work/aes_cipher_top/aes_cipher_top"

Step - 5: "fix netlist" performs the logical optimizations.
mantle[5]:> fix netlist $m $l

Step - 6: "export verilog netlist" saves the verilog netlist file to specified file name for example "filename_netlist.v". The proper usage of export command is shown below.
mantle[6]:> export verilog netlist $m aes_cipher_top_netlist.v
mantle[6]:>export verilog netlist $m aes_cipher_top_netlist.v
MSG-10   While running 'export verilog netlist /work/aes_cipher_top/aes_cipher_top
         aes_cipher_top_netlist.v':
WRI-2    Writing file aes_cipher_top_netlist.v.

Note: The Netlist to GDSII flow will start from next point. You can import any netlist file to the magma flow.
Step - 7: "run bind logical" will bind the unbound cells to the target library.
mantle[7]:> run bind logical $m $l

mantle[7]:>run bind logical $m $l
MSG-10   While running 'run bind logical /work/aes_cipher_top/aes_cipher_top /cl013lv':
BND-3    Binding model /work/aes_cipher_top/aes_cipher_top to library /cl013lv
BND-4    All cells bound in model /work/aes_cipher_top/aes_cipher_top

Step - 8: "report model" Checks the model for basic netlist and floorplan integrity (for example, cell overlap and dangling input pins, etc.,).
mantle[8]:> report model $m

mantle[8]:>report model $m
MSG-10   While running 'report model /work/aes_cipher_top/aes_cipher_top':
CK-5 Collecting data on model aes_cipher_top .....
------------------- M O D E L  S T A T I S T I C S ------------------
Generated for user temp on host vlsi2             on Thu Mar  1 13:30:20 2007 
Model: /work/aes_cipher_top/aes_cipher_top
 
Cell Statistics                - count -    - area -         - legend -
  Super cells:                      12402      0.174mm2         (s)
  Bound cells:                         24      (without layout data)
  Constant cells:                     524
  Total cells:                      12950      0.174mm2
 
Net Statistics
  Number of signal nets:         13815
  Number of power/clock nets:        0
  Number of cell pins:           50077
  Average pins per signal net:    3.70       (maximum = 1668)
 
Dangling Pin Statistics
  Dangling cell pins:              276       (0 dangling input pins)
  Dangling model pins:              14 
 
  Estimated signal wire length:   7.653       meter
CK-16    Use 'check model /work/aes_cipher_top/aes_cipher_top' to check its sanity.
---------------------------------------------------------------------
 
force timing clock {/work/aes_cipher_top/aes_cipher_top/mpin:clk}

NEXT---->>>>>Import Design Constraints

No comments: