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. [kuangbin带你飞]专题五 并查集 A - Wireless Network

    An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wi ...

  2. Eclipse创建Maven多模块工程

    一.创建父项目 [New]->[Maven Project] 在弹出界面中选择[Create a simple project...] 二.创建子项目 选中刚建的父项目,在弹出菜单中点击[New ...

  3. java的异常(Exception)信息的详细记录

    下面的三个方法都是获取异常的详细信息,或许的异常详细信息以字符串的形式返回,保持栈堆载的风格 方法一: public static String getExceptionAllinformation( ...

  4. RxJava系列之二 变换类操作符具体解释1

    1.回想 上一篇文章我们主要介绍了RxJava , RxJava 的Observables和 RxJava的just操作符.以及RxJava一些经常使用的操作. 没看过的抓紧点我去看吧. 事实上RxJ ...

  5. 架构师速成6.7-设计开发思路-uml

    uml是什么东西?统一建模语言.一门语言.是用来进行软件设计的一门语言. 事实上一门语言的诞生并不伟大,让大多数人都使用才足够伟大. uml就是一门伟大的语言.由于眼下软件设计的唯一语言就是它. UM ...

  6. javascript 中文与Unicode相互转化

      javascript 中文与Unicode相互转化 CreateTime--2018年3月30日11:26:50 Author:Marydon /** * 中文与Unicode的相互转换 */ v ...

  7. Python3基础(四) 条件与循环控制

    Python的流程控制语句包括:if条件语句.while循环语句.for循环语句.range函数以及break.continue.pass控制语句.这些语句在Python中的语义和在其他语言中基本是一 ...

  8. C#之选择排序

    算法描述 1.假定未排序序列中第一位为数组最小值,通过与后面的数值进行比较,找到未排序序列中最小值,与未排序序列第一位交换位置: 2.重复步骤一,对剩余未排序序列进行比较找出最小值,与未排序序列中第一 ...

  9. Android 录制屏幕的实现方法

    Android 录制屏幕的实现方法 Chrome   2017-02-15 15:32:01 发布 您的评价:       5.0   收藏     0收藏 长久以来,我一直希望能够直接从Androi ...

  10. coffeescript的上下文

    CoffeeScript代码中,变量,甚至函数前面有时会带上一个@符号,那么翻译到 javascript里,就是 "this." 这就涉及到运行过程中的上下文. 这个this指什么 ...