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. 22、Java并发性和多线程-Java中的读/写锁

    以下内容转自http://ifeve.com/read-write-locks/: 相比Java中的锁(Locks in Java)里Lock实现,读写锁更复杂一些.假设你的程序中涉及到对一些共享资源 ...

  2. ojdbc.jar

    Oracle的jdbc驱动是ojdbc.jar 文件,那么mysql的jdbc驱动是什么呢? 匿名 | 浏览 689 次 发布于2015-06-07 02:06   最佳答案   MySQL的JDBC ...

  3. Android 学习历程摘要(三)

    1.proguard混淆:对与Activity等不应进行混淆.否则系统将找不到生命周期函数:JSON字符串要考虑混淆之后是否会影响字段名:native方法也不混淆,否则调用不到 2.ListView的 ...

  4. dota监測

    执行环境:win7 32位. python版本号:3.4.1 因为用到了一些win32api,这些并不是python标准库自带的,所以你须要先去下载pywin32模块.去http://sourcefo ...

  5. 重学数据结构系列之——平衡树之SB Tree(Size Blanced Tree)

    学习来源:计蒜客 平衡树 1.定义 对于每一个结点.左右两个子树的高度差的绝对值不超过1,或者叫深度差不超过1 为什么会出现这样一种树呢? 假如我们依照1-n的顺序插入到二叉排序树中,那么二叉排序树就 ...

  6. unity3d杂记

    由于公司用unity3d开发客户端部分,今天去参加了下unity3d成都开发者大会.在这里简单记录一下会议里关于unity3d的内容. 说到unity3d,第一次知道的时候也是大概3年前的事情.这几年 ...

  7. Linux安装MATLAB

    Linux下的MATLAB在2013a及以后的版本中,就不再支持32位机了.所以32位Linux系统无法安装2013a及以后版本.[1] Linux下安装MATLAB时,需要先配置好JRE,可以参考: ...

  8. CA certificate

    1 什么是CA certificate CA证书本质上是一把公钥. 2 为什么需要CA证书 是为了避免黑客冒充服务器,服务器通过CA证书证明自己是真的服务器,而不是黑客. 就是说,一旦客户端有了一个服 ...

  9. D. Toy Sum(cf)

    http://codeforces.com/problemset/problem/405/D 题意:已知集合S={1,2,3......1000000},s=1000000,从集合S中选择n个数,X= ...

  10. TextMeshPro 图片字Sprite

      生成 需要一个资源  右键生成 调整位置  放在目录  使用 <sprite="NumDamage" index=1><sprite="NumDam ...