DC学习(11)综合产⽣的⽂件
⼀:综合产⽣的⽂件
前⾯也讲了⼀些综合后的需要进⾏的⼀些⼯作,这⾥就集中讲⼀下DC完成综合了,产⽣了⼀些⽂件,我们就要查看它⽣成的⽹表和信息,下⾯就来介绍DC综合完成之后要进⾏哪些⼯作:
也就是说,DC⼀般完成综合后,主要⽣成.ddc、.def、.v和.sdc,.sdf格式的⽂件(当然还有各种报告和log)
.sdc⽂件:write_sdc -version 1.7 filename.sdc
标准延时约束⽂件:
⾥⾯都是⼀些约束,⽤来给后端的布局布线提供参考。
Scan_def.def⽂件:DFT、形式验证可能⽤到excited的音标
⾥⾯包含的是⼀些扫描链的布局信息,需要注意的是,必须在⽣成ddc⽹表⽂件之前⽣成.def(也就先⽣成.def⽂件),以便将def⽂件包含在ddc⽂件中。
.
sdf、.v⽂件:write_sdf -version 2.1 filename.sdf; write -f verilog -hierarchy output filename.v
p r s标准延时格式和⽹表格式⽂件,⽤于后仿真。
下⾯是输出(⽣成)⽂件的⼀些命令:
1:综合⽹表的处理:
完成综合并通过时序等的分析后,我们需要把设计和约束以某种格式存储好,作为后端⼯具的输⼊。
把设计以VHDL或Verilog格式存档时,需要去掉或避免⽂件中有assign指令,因为该指令会使⾮Synopsys公司的⼯具在读⼊⽂件时产⽣问题。该指令也可能会在反标( back-annotation)流程中产⽣问题。此外,要保证⽹表中没有特别的字符。例如,写出⽹表时,有时⽹表中会有反斜线符号“\”,对于这个符号,不同的⼯具有不⼀样的理解。
·assign:
多端⼝连线(multiple port nets)会在⽹表中⽤assign指令表⽰,如下图所⽰:
报名mba 上⾯的设计中有冗余的端⼝(包括内部端⼝,⼜称层次引脚)。如果我们将设计展开(flatten), DC可能把它们优化掉,即去掉这些端⼝。但是如果我们不展开设计,将得到下⾯的结果:
芥子气是什么
Output Ret_AluRegs,Latch_Instr,....
assign Ret_AluRegs=Latch_Instr;
多端⼝连线,即⼀条连线连接多个端⼝,三种类型:直通连线(Feedthroughs),即从输⼊端直接到输出端;连线驱动多个端⼝(也就是上⾯的那个情况);常数连线驱动多个端⼝。
在默认的情况下,如遇到上述的情况,DC写出⽹表时,会在⽹表产⽣assign指令。如果设计中有多端⼝连线,应该在编译过程中将它们去掉。去掉多端⼝连线使⽤下⾯的命令:
t_fix_multiple_port_nets -all -buffer_constants [get_designs *]
·特殊符号: leapyear
特别字符是指除数字,字母或下划线以外的任何字符。当DC写出⽹表时,如果遇到信号Bus[31],它会插⼊反斜线符号“\”,将其变为
最新外国电影
\BUS[31]。但是总线Bus[31:0」中的⼀个信号还⽤Bus[31],没有⽤反斜线符号,也就是说设计⾥⾯可能会遇到即使⽤到了Bus[31]⼜⽤到Bus[31:0]这种情况(⽐如⼀组总线⽹A⽅向⾛,⽽同时⼜有这组总线的最⾼位充当某个控制信号)。这时⽅括弧不是名字的⼀部分,它们是位分隔符。这时候,同⼀个信号⽤了两种符号串表⽰(也就是Bus[31]和Bus[31:0]中的第31位是同⼀个信号,但是却有不同的字符串表⽰,这是不好的,⼀些⼯具可能解读出错)。最好的办法是把设计中的反斜线符号去掉,⽤有效的字符代替⾮有效(特别)的字符。
⽤change_names命令可将设计中的特别字符去掉。change_names命令的其中⼀选项是“-rules",后⾯可跟⽤⾃定义的命名规则或
putzVerilog命名规则。在DC中⽤define_name_rules命令来规定⾃定义的命名规则。例如我们可以⽤该命令来指定可以使⽤哪些字符,禁⽌使⽤哪些字符,名字的长度等。⼀般来说,Verilog命名规则可以处理⼏乎所有的特殊字符。
执⾏change_names命令后,它会把不允许使⽤的字符⽤允许使⽤的字符来代替。VHDL语⾔中,多维数组(multi-dimensionalarrays)使⽤⽅括弧作为字下标的分隔符(word subscript delimiters)。为了避免使⽤反斜线符号,先使⽤change_names命令把字下标的分隔符转换为下划线。如下所⽰:
2)相关⽂件的⽣成
经过处理之后的⽹表就可以⽣成了,除了了⽹表之外,我们还可以⽣成时序、⾯积报告等,相关命令如下所⽰:
⼀个是⽣成.ddc⽂件,⾥⾯包含了很多信息。⼀个是⽣成.v的门级⽹表。⼀个是⽣成标准约束⽂件,以供后⾯进⾏布局布线提供参考。
none什么意思
交卸 write -f -hierarchy -output filename.ddc
最后,进⾏⽹表处理和⽣成⽂件的综合命令如下所⽰:
learn
⼆:DC理想⽹络
t_ideal_network [get_ports {t rst}]