zoukankan      html  css  js  c++  java
  • RTL Compiler之Example

      Synthesis = Translation +  Logic Optimization + Mapping

      

    Step 1  Source files

     1) make directory

    1 mkdir    Lab
    2 cd       Lab
    3 mkdir    HDL
    4 cd       HDL

     2) Verilog code

     1 // --------- Full Adder -----------------
     2 module fulladder(sum, c_out, x, y, c_in);
     3     output  sum, c_out;
     4     input  x, y, c_in;
     5     
     6     wire a, b, c;
     7     
     8     xor(a, x, y);
     9     xor(sum, a, c_in);    
    10     and(b, x, y);
    11     and(c, a, c_in);
    12     or(c_out, c, b);
    13 
    14 endmodule
     1 // ------- 4-Bit Adder ---------------------
     2 module  FourBitAdder(sum, c_out, x, y, c_in);
     3     output [3:0] sum;
     4     output c_out;
     5     input  [3:0] x, y;
     6     input c_in;
     7     wire c1,c2,c3;
     8 
     9     fulladder fa0(sum[0], c1, x[0], y[0], c_in);
    10     fulladder fa1(sum[1], c2, x[1], y[1], c1);
    11     fulladder fa2(sum[2], c3, x[2], y[2], c2);
    12     fulladder fa3(sum[3], c_out, x[3], y[3], c3);
    13 
    14 endmodule

    Step 2  Invoke RTL Compiler

    rc    -gui

    Step 3  Setting the lib

    # This tells the compiler where to look for the libraries 
    set_attribute lib_search_path 
    /home/cadence/ic-6.1.0/tools.lnx86/dfII/local/ncsu-cdk-1.6.0.bet
    a/lib/tsmc025/signalstorm 
     
    # This defines the libraries to use
    set_attribute library {osu025_stdcells.lib}

       This step I got the following messages: (maybe the osu025 library is not configured correctly)

        Could not find an attribute in the library. [LBR-436]: 101

        Missing library level attribute. [LBR-516]: 1 

       library download: http://vlsiarch.ecen.okstate.edu/flows/MOSIS_SCMOS/

    Step 4  Read and Elaborate RTL

    # This must point to your VHDL/verilog file 
    read_hdl ../HDL/FourBitAdder.v 
    # Elaborate your top-level module 
    set DESIGN     "FourBitAdder" 
    elaborate $DESIGN 

    Step 5  Apply Constraints

      Since the design is a very simple, we only set the some operating conditions, for example:

    # Setting constraints 
    set_attribute wireload_mode enclosed       # Use the default wireload operaqtion mode
    set_attribute max_dynamic_power 0.0 $DESIGN   # Restrict RC to optimise for dynamic and leakage power
    set_attribute max_leakage_power 0.0 $DESIGN

    Step 6  Synthesize/Compile

    # This synthesizes your design
    set  MAP_EFF  high
    synthesize  -to_mapped  -eff  $MAP_EFF  -no_incr
    # This section writes the mapped design and sdc file 
    # THESE FILES YOU WILL NEED THEM WHEN SETTING UP THE PLACE & ROUTE 
    write -mapped > ${DESIGN}_synth.v 
    write_sdc > ${DESIGN}.sdc 

    Step 7  Analyze Timing and Power

    # report and analyze power and timing  
    report power        > ${DESIGN}.power.rpt 
    report timing       > ${DESIGN}.timing.rpt 

    Step 8  Exit

    # exit
    exit
  • 相关阅读:
    webpack 添加 jquery 插件
    openldap安装配置
    生成ssl证书
    vyos (三) HA
    vyatta的fork开源版本
    vyos (一) 基础配置
    iptable软路由
    keepalive实现web服务器active/passive
    docker学习(二)
    docker学习(一)
  • 原文地址:https://www.cnblogs.com/mengdie/p/4613444.html
Copyright © 2011-2022 走看看