Synthesis = Translation +  Logic Optimization + Mapping

  

Step 1  Source files

 1) make directory

 mkdir    Lab
cd Lab
mkdir HDL
cd HDL

 2) Verilog code

 // --------- Full Adder -----------------
module fulladder(sum, c_out, x, y, c_in);
output sum, c_out;
input x, y, c_in; wire a, b, c; xor(a, x, y);
xor(sum, a, c_in);
and(b, x, y);
and(c, a, c_in);
or(c_out, c, b); endmodule
 // ------- 4-Bit Adder ---------------------
module FourBitAdder(sum, c_out, x, y, c_in);
output [:] sum;
output c_out;
input [:] x, y;
input c_in;
wire c1,c2,c3; fulladder fa0(sum[], c1, x[], y[], c_in);
fulladder fa1(sum[], c2, x[], y[], c1);
fulladder fa2(sum[], c3, x[], y[], c2);
fulladder fa3(sum[], c_out, x[], y[], c3); 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

RTL Compiler之Example的更多相关文章

  1. RTL Compiler之Technology Library

    1 Target Library Design Compiler uses the target library to build a circuit. During mapping, Design ...

  2. RTL Compiler之synthesis steps

    1 synthesis steps 1) Search Paths rc:/> set_attribute lib_search_path path / rc:/> set_attribu ...

  3. RTL Compiler之synthesis flow

    1 generic RTL Compiler work flow 2 invoking RTL compiler RTL Compiler is invoked from the operating ...

  4. backend flow

    在PD之后,netlist中会多出很多DCAP元件(去耦电容,减少IR-Drop)或者filter cell(保证芯片均匀度要求) 还有一些antenna cell也就是一些diode用来泻流,防止天 ...

  5. DFT设计绪论

    DFT设计的主要目的是为了将defect-free的芯片交给客户. 产品质量,通常使用Parts Per million(PPM)来衡量. 但是随着IC从SSI到VLSI的发展,在test上花销的时间 ...

  6. Tcl之Read files for synthesis

    The following file is to read all design files into syntehsis tool automatically, like Cadence RTL C ...

  7. DC/DCT/DCG 差别和联系

    在dc家族系列中,DC_V,DC_E为根本的DC(Design Compiler)对象,具有dc所具有的根本fearture,DC在synopys对象系列中地位,无足轻重,也是业界应用最普遍的综合对象 ...

  8. Compiler Theory(编译原理)、词法/语法/AST/中间代码优化在Webshell检测上的应用

    catalog . 引论 . 构建一个编译器的相关科学 . 程序设计语言基础 . 一个简单的语法制导翻译器 . 简单表达式的翻译器(源代码示例) . 词法分析 . 生成中间代码 . 词法分析器的实现 ...

  9. 行为级和RTL级的区别(转)

    转自:http://hi.baidu.com/renmeman/item/5bd83496e3fc816bf14215db RTL级,registertransferlevel,指的是用寄存器这一级别 ...

随机推荐

  1. [poj3537]Crosses and Crosses_博弈论

    Crosses and Crosses poj-3537 题目大意:给定一个1*n的网格,每次往格子内填一个$\times$,连续的三个即可获胜. 注释:$1\le n\le 2000$. 想法:我们 ...

  2. ZooKeeper实现配置中心的实例(原生API实现)(转)

    说明:要实现配置中心的例子,可以选择的SDK有很多,原生自带的SDK也是不错的选择.比如使用I0Itec,Spring Boot集成等. 大型应用通常会按业务拆分成一个个业务子系统,这些大大小小的子应 ...

  3. FLASH BACK

    overview of different flashback technologies flashback query(including flashback query, flashback ve ...

  4. C#: 旋转图片到正确位置

    当从iPhone等手机上传图片到服务器后,通常需要进行旋转处理,否则在进行图片压缩.缩放处理后会丢失正确的位置信息,导致显示的图片不处于正确的位置上. 处理的做法就是读取照片的Exif信息,并旋转到正 ...

  5. 迭代器概念与traits编程技法

    //迭代器是一种smart pointer template<typename T> class ListItem { public: T value() const { return _ ...

  6. sizeof小览

    一.文章来由-一道面试题迁出的探究 我发现我已经形成一种习惯写来由了,以后看博客的时候能够让我回顾起为什么出现这个问题,我用什么方法解决的,既然形成习惯就让这个习惯保持下去吧.今天实验室师姐在看书,一 ...

  7. SQL SERVER:一条SQL语句插入多条记录等

    在学习排名第二的mySql过程中,发现它的插入语句可以这样写: use test; create table fruits( fid char(10) not null ,s_id int null ...

  8. 创建FTP服务

    Step1: Create a FTP folder in your C disk, named “AutomationReport” Step2:  Install IIS components. ...

  9. QT Creater环境搭建

    需要的软件包: 1.qt-win-opensource-4.8.5-mingw.exe //Qt库 2.MinGW-gcc440_1.zip //QT编译器 3.qt-creator-opensour ...

  10. C++11系列-什么是C++11

    什么是C++0x? C++0x是C++最新标准标准化过程中的曾用名,在这一系列文章中我们将介绍最新标准添加的一系列新的语言特性.在2011年9月份,C++0x正式由官方发布并命名C++11,现在很多编 ...