RTL Compiler之Example
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的更多相关文章
- RTL Compiler之Technology Library
1 Target Library Design Compiler uses the target library to build a circuit. During mapping, Design ...
- RTL Compiler之synthesis steps
1 synthesis steps 1) Search Paths rc:/> set_attribute lib_search_path path / rc:/> set_attribu ...
- RTL Compiler之synthesis flow
1 generic RTL Compiler work flow 2 invoking RTL compiler RTL Compiler is invoked from the operating ...
- backend flow
在PD之后,netlist中会多出很多DCAP元件(去耦电容,减少IR-Drop)或者filter cell(保证芯片均匀度要求) 还有一些antenna cell也就是一些diode用来泻流,防止天 ...
- DFT设计绪论
DFT设计的主要目的是为了将defect-free的芯片交给客户. 产品质量,通常使用Parts Per million(PPM)来衡量. 但是随着IC从SSI到VLSI的发展,在test上花销的时间 ...
- Tcl之Read files for synthesis
The following file is to read all design files into syntehsis tool automatically, like Cadence RTL C ...
- DC/DCT/DCG 差别和联系
在dc家族系列中,DC_V,DC_E为根本的DC(Design Compiler)对象,具有dc所具有的根本fearture,DC在synopys对象系列中地位,无足轻重,也是业界应用最普遍的综合对象 ...
- Compiler Theory(编译原理)、词法/语法/AST/中间代码优化在Webshell检测上的应用
catalog . 引论 . 构建一个编译器的相关科学 . 程序设计语言基础 . 一个简单的语法制导翻译器 . 简单表达式的翻译器(源代码示例) . 词法分析 . 生成中间代码 . 词法分析器的实现 ...
- 行为级和RTL级的区别(转)
转自:http://hi.baidu.com/renmeman/item/5bd83496e3fc816bf14215db RTL级,registertransferlevel,指的是用寄存器这一级别 ...
随机推荐
- MySQL语句给字段值加1
update tbl_moment_like set like_count = like_count + #{addLikes} where mid = #{mid}
- 《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 ...
- Spring注解配置定时任务<task:annotation-driven/>
http://m.blog.csdn.net/article/details?id=50945311 首先在配置文件头部的必须要有: xmlns:task="http://www.sprin ...
- 安装 openCV 2.4.10
近期试验了一下 ubuntu 12.06 (x86) 安装.openCV 安装脚本 最好的文章是 https://help.ubuntu.com/community/OpenCV. 它提供一个脚本( ...
- Android应用程序相关的文件文件夹具体解释
一.方法介绍: 每一个Android应用程序都能够通过Context来获取与应用程序相关的文件夹,这些文件夹的功能各异,每一个文件夹都有自己的特点.有时候可能会搞混淆,本文结合andr ...
- oc const 关键字 对指针的理解
/* int const *p; *p是常量, p是变量 const int *p; *p是常量, p是变量 int * const p; *p是变量, p是常量 const int * const ...
- leetcode题解||Palindrome Number问题
problem: Determine whether an integer is a palindrome. Do this without extra space. click to show sp ...
- CentOS6.5配置代理上网
虚拟机vmWare下装了个CentOS,第一件事是配置代理上网,因为工作环境需要使用代理上网,但发觉与uBuntu不同,根本没有什么/etc/environment. 在网上疯狂搜索,都说要配置/et ...
- ubuntu多版本jdk安装及切换
系统:ubuntu14.04 一.安装openjdk1.7 sudo apt-get install openjdk-7-jre openjdk-7-jdk 安装完成后找到其安装路径: dpkg -L ...
- Git下的冲突解决【转】
本文转载自:http://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html 冲突的产生 很多命令都可能出现冲突,但从根本上来讲,都是m ...