synthesis = translation + gate mapping + logic optimization
Gate Mapping: mapping the GTECH netlist to the gate-lavel standard cells in target library,like register, AND, OR.
因此我的理解是认为translate是把RTL文件翻译成GTECH,是一种通用的网表文件,Mapping这一步才是和工艺厂商特有的工艺库做对接。能不能具体详细区分这两个步骤?以及第一个步骤的意义在哪里?
search_path: look for design and library files 指定路径地址,
Target_library: GTECH 文件映射到标准单元库生成gate-level netlist, 满足DRC, timing, function.
Link library: 连接各个库的library, 包括RAM,IO PAD,analog IP,
set_app_var link_library " * $ram_lib $io_lib $analog_lib"
link_library中/*/代表已写入DC memory
Ports 与Pins区别?
ports代表design的输入输出端口
pins代表cells的输入输出端口,对于DC的一些get_ports以及get_pins操作有区别。
读取design设计文件步骤?
三种方式读取verilog
1. 读取最后一个文件作为current_design
read_verilog Top.v
read_verilog A.V
read_verilog B.v
current_design
2. 读取第一个文件作为Current_design
read_verilog {Top.v A.v B.v}
current_design
3. 读取一个file文件,第一个module作为current_design
read_verilog Top_hier.v
current_design
后面伴随一个link命令,去除Current_design和reference的联系。
继续check_design语法和设计检查,没有error返回0.
analyze和elaborate组合作用检查。
之后即可source top_const.tcl约束文件读入
uniquify给一个例化的模块起一个独立的名字,相当于给instance复制多份,但在优化每一个模块的时候,就不会影响其他模块。
中间文件如何保存?
在check_design之后,先理解一个概念ddc文件。ddc主要是design相关信息,包括timing ,db,lib等,作为一个中间文件,可以理解为对设计约束的一种加密,细节见参考文档【2】。
dc_shell> write -format ddc -hierarchy -output my_design.ddc
下次使用直接读取ddc中间文件即可使用。不论你的DC进行到哪一步,只要你想保存当前的状态,在下次开启DC后用 read_ddc从当前状态继续开始都可以用writ -f ddc。
用gvim打开各个文件会在各个文件之间相互切换,
gf 编辑光标所在位置的文本go to file的缩写 :bf 返回到原来的文本处back to file的缩写
GTECH:generic technology netlist,GTECH库是Synopsys提供的通用的共享技术库,GTECH库是Synopsys提供的通用的共享技术库。
【1】GTECH是什么的缩写?
【2】DC综合生成的ddc文件
【3】[求助]请问DC中write的问题