RTL Compiler之synthesis steps
1 synthesis steps
1) Search Paths
rc:/> set_attribute lib_search_path path /
rc:/> set_attribute script_search_path path /
rc:/> set_attribute hdl_search_path path /
2) Target Technology Library
rc:/> set_attribute library lib_name.lib
- Target Library: Design Compiler uses the target library to build a circuit. During mapping, Design Compiler selects functionally correct gates from the target library. It also calculates the timing of the circuit, using the vendor-supplied timing data for these gates.
3) Loading the HDL Files
- sequentially: read_hdl file1.v read_hdl file2.v read_hdl file3.v
- simultaneously: read_hdl { file1.v file2.v file3.v }
read_hdl [-v1995 | -v2001 | -sv
| -vhdl [-library library_name ]
| -netlist]
[-define macro=value ] ... file_list
4) Performing Elaboration
This is only required for top-level design. The elaborate command automatically elaborates the top-level design and all of its references.
5) Applying Constraints
- Operating conditions; clock waveforms; I/O timing
6) Applying Optimization Constraints
7) Performing Synthesis
rc:\> synthesize -to_mapped
8) Analyzing the Synthesis Results
- generate a detailed area report, use report area
- generate a detailed gate selection and area report, use report gates
- generate a detailed timing report, including the worst critical path of the current design, use report timing
9) Exporting the Design
- gate-level netlist rc:/> write_hdl > design.v
- design constraints rc:/> write_script > constraints.g
- constraints in SDC format rc:/> write_sdc > constraints.sdc
10) Exiting RTL Compiler
quit or exit
2 recommended flow
#general setup
#--------------
set_attributer lib_search_path ...
set_attribute hdl_search_path ..
#load the library
#------------------------------
set_attribute library library_name
#load and elaborate the design
#------------------------------
read_hdl design.v
elaborate
#specify timing and design constraints
#--------------------------------------
read_sdc sdc_file
# add optimization constraints
#----------------------------
.....
#synthesize the design
#---------------------
synthesize -to_mapped
#analyze design
------------------
report area
report timing
report gates
#export design
#-------------
write_hdl > dessign.vm
write_sdc > constraints.sdc
write_script > constraints.g
# export design for EDI
#-----------------------
write_design [-basename string ] [-gzip_files] [-tcf]
[-encounter] [-hierarchical] [ design ]
3 working in the top-level(root) directory

Root is a special object that contains all other objects represented as a ‘tree’ underneath it.
The root object is always present in RTL Compiler and is represented by a “/”, as shown in above Figure.
Root attributes contain information about all loaded designs.
RTL Compiler之synthesis steps的更多相关文章
- RTL Compiler之synthesis flow
1 generic RTL Compiler work flow 2 invoking RTL compiler RTL Compiler is invoked from the operating ...
- RTL Compiler之Example
Synthesis = Translation + Logic Optimization + Mapping Step 1 Source files 1) make directory mkdir ...
- RTL Compiler之Technology Library
1 Target Library Design Compiler uses the target library to build a circuit. During mapping, Design ...
- 行为级和RTL级的区别(转)
转自:http://hi.baidu.com/renmeman/item/5bd83496e3fc816bf14215db RTL级,registertransferlevel,指的是用寄存器这一级别 ...
- Verilog的数据流、行为、结构化与RTL级描述
Verilog语言可以有多种方式来描述硬件,同时,使用这些描述方式,又可以在多个抽象层次上设计硬件,这是Verilog语言的重要特征. 在Verilog语言中,有以下3种最基本的描述方式: 数据流描述 ...
- RTL 与 technology schematic的区别,包含概念与实例
2013-06-25 16:40:45 下面是xilinx官网上的问答贴: http://china.xilinx.com/support/answers/41500.htm#solution The ...
- 1.2 the structure of a compiler
Compiler 1.2 the structure of a compiler Compiler : analysis and synthesis syntactically 语法上的 sema ...
- Tcl之Read files for synthesis
The following file is to read all design files into syntehsis tool automatically, like Cadence RTL C ...
- backend flow
在PD之后,netlist中会多出很多DCAP元件(去耦电容,减少IR-Drop)或者filter cell(保证芯片均匀度要求) 还有一些antenna cell也就是一些diode用来泻流,防止天 ...
随机推荐
- BZOJ(3) 1051: [HAOI2006]受欢迎的牛
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 7365 Solved: 3937[Submit][Sta ...
- MyBatis3-实现单表数据的增删查改
继续前一篇文章http://www.cnblogs.com/EasonJim/p/7050710.html所示的例子,返回的是单个实体,而接下来将进行列表的返回等操作: 一.查询列表 查询出列表,也就 ...
- 【python】字符遍历
Python为我们提供了很多便捷的方式去遍历一个字符串中的字符.比如,将一个字符串转换为一个字符数组(列表): theList = list(theString) 同时,我们可以方便的通过for语句进 ...
- windows下检測文件改变
这个主要是应用在我前一篇博客里提到的脚本热载入功能. 主要实现的功能检測目录内文件的变化(改变.新增.删除.重命名),当发现改变的时候通知lua又一次载入脚本.基本上就是一个windows api的使 ...
- Python FAQ2:赋值、浅拷贝、深拷贝的区别?
在Python编程过程中,经常会遇到对象的拷贝,如果不理解浅拷贝和深拷贝的概念,你的代码就可能出现一些问题.所以,在这里按个人的理解谈谈它们之间的区别. 一.赋值(assignment) 在<P ...
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...
- 【cocos2dx 小技巧】半透明屏蔽罩和弹出框的实现
今天介绍一下,弹出框的和屏蔽罩的小实现~ 弹出框主要用到了cocos2dx生命周期里面的OnEnter()函数,就是当Layer被addChild的时候会调用的函数(所以假设把OnEnter的代码加到 ...
- HDOJ 题目2475 Box(link cut tree去点找祖先)
Box Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 【POJ 2054】 Color a Tree
[题目链接] http://poj.org/problem?id=2054 [算法] 贪心 [代码] #include <algorithm> #include <bitset> ...
- JZOJ 1003 [ 东莞市选 2007 ] 拦截导弹 —— 递推
题目:https://jzoj.net/senior/#main/show/1003 n^2 的话递推就可以啦. 代码如下: #include<iostream> #include< ...