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. MySQL语句给字段值加1

    update tbl_moment_like set like_count = like_count + #{addLikes} where mid = #{mid}

  2. 《Sams Teach Yourself Windows® Workflow Foundation in 24 Hours》读书笔记目录

    目录 1 Part I - The Basics 1.1 Hour 1 - Understanding Windows Workflow Foundation 1.2 Hour 2 - A Spin ...

  3. Spring注解配置定时任务<task:annotation-driven/>

    http://m.blog.csdn.net/article/details?id=50945311 首先在配置文件头部的必须要有: xmlns:task="http://www.sprin ...

  4. 安装 openCV 2.4.10

    近期试验了一下 ubuntu 12.06 (x86) 安装.openCV 安装脚本 最好的文章是 https://help.ubuntu.com/community/OpenCV. 它提供一个脚本( ...

  5. Android应用程序相关的文件文件夹具体解释

    一.方法介绍:         每一个Android应用程序都能够通过Context来获取与应用程序相关的文件夹,这些文件夹的功能各异,每一个文件夹都有自己的特点.有时候可能会搞混淆,本文结合andr ...

  6. oc const 关键字 对指针的理解

    /* int const *p; *p是常量, p是变量 const int *p; *p是常量, p是变量 int * const p; *p是变量, p是常量 const int * const ...

  7. leetcode题解||Palindrome Number问题

    problem: Determine whether an integer is a palindrome. Do this without extra space. click to show sp ...

  8. CentOS6.5配置代理上网

    虚拟机vmWare下装了个CentOS,第一件事是配置代理上网,因为工作环境需要使用代理上网,但发觉与uBuntu不同,根本没有什么/etc/environment. 在网上疯狂搜索,都说要配置/et ...

  9. ubuntu多版本jdk安装及切换

    系统:ubuntu14.04 一.安装openjdk1.7 sudo apt-get install openjdk-7-jre openjdk-7-jdk 安装完成后找到其安装路径: dpkg -L ...

  10. Git下的冲突解决【转】

    本文转载自:http://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html 冲突的产生 很多命令都可能出现冲突,但从根本上来讲,都是m ...