数字后端简要流程教材

上传人:F****n 文档编号:95422121 上传时间:2019-08-18 格式:PPT 页数:51 大小:188KB
返回 下载 相关 举报
数字后端简要流程教材_第1页
第1页 / 共51页
数字后端简要流程教材_第2页
第2页 / 共51页
数字后端简要流程教材_第3页
第3页 / 共51页
数字后端简要流程教材_第4页
第4页 / 共51页
数字后端简要流程教材_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《数字后端简要流程教材》由会员分享,可在线阅读,更多相关《数字后端简要流程教材(51页珍藏版)》请在金锄头文库上搜索。

1、数字后端简要流程,HDL代码,逻辑综合,布局布线,形式验证,综合的定义,逻辑综合:决定设计电路逻辑门之间的相互连接。 逻辑综合的目的:决定电路门级结构,寻求时序、面积和功耗的平衡,增强电路的测试性。 逻辑综合的过程(constraint_driven) : Synthesis = Translation + Logic Optimization + Mapping 首先,综合工具分析HDL代码,用一种模型(GTECH) ,对HDL进行映射,这个模型是与技术库无关的,也不包含Timing和Load信息; 然后,在设计者的控制下,对这个模型进行逻辑优化; 最后一步,进行逻辑映射和门级优化,将逻辑根

2、据约束,映射为专门的技术目标单元库(target cell library)中的cell,形成了综合后的网表。,综合环境初始化,初始化设计环境,技术库文件及其它设计环境设置。 search_path:指明文件的位置。 target_library:既技术库,由生产厂家提供,该库中的cells,用于逻辑映射。Target library的文件名应包含在Link library的文件清单中,用于读取门级网表。 link_library:该库中的cells,DC无法进行映射,例如:RAM,ROM及Pad,在RTL设计中,这些cells以实例化的方式引用。 symbol_library:该库文件包含技

3、术库中cells的图形表示,用于生成门级示意图。 read:读入HDL代码,环境属性,定义设计的工艺参数,I/O端口属性,wire-load模型,下图解释了描述设计环境约束的DC命令:,set_operating_conditions,set_operating_conditions用于描述cells操作条件: process、voltage 和temperature。例如:set_operating_conditions -max slow set_wire_load_model用于设置Nets的寄生RC模型,一般选用悲观的模型。例如:set_wire_load_model -name sm

4、ic18_slow set_load用于定义nets或ports的电容负载,为了保证输出路径的时序,default条件下为0。例如:set_load 0.6 all_outputs(),set_drive用于定义模块的input ports,0表示最大的驱动强度,通常用于clock ports和reset,例如:set_drive 0 clk,rst。 set_driving_cell用于定义input ports,模拟cell的驱动阻抗,为了保证输入路径的时序和输入信号的transition time。例如: set_driving_cell -lib_cell BUFX2 -pin Y -

5、library slow all_inputs() set_min_library允许用户同时设置worst-case和best-case libraries,从而在初步编译时,DC修正hold-time冲突时,验证setup-time冲突。也可用于在编译时修正hold-time冲突。例如: set_min_library slow.db -min_version fast.db DRC的设计规则约束:set_max_transition、set_max_capacitance和set_max_fanout。这些约束用于的input ports,output ports或current_des

6、ign,一般在技术库内部设置。当技术库的内部设置不能满足时,可用以上命令设置。例如:,set_max_transition 0.3 current_design set_max_capacitance 1.5 current_design set_max_fanout 3.0 all_outputs(),面积和时序约束,描述设计的目标,包括时序和面积约束,要注意约束必须是可实现的,否则会导致面积超额,功耗增加或时序不能满足要求。设计约束的DC命令如下:,set_max_area用于约束current_design的最大面积。0表示在满足时序、功耗的前提下,尽可能的减小面积。例如:set_max

7、_area 0 时序约束包括3个部分:all inputs、register to register和all outputs。 输入路径的约束: set_input_delay:定义信号相对于时钟的到达时间。指一个信号,在时钟沿之后多少时间到达。,例如: set_input_delay -max 20 -clock CLK get_ports A set_input_delay -min 0.8 -clock CLK get_ports A 输出时序约束: set_output_delay:定义从输出端口数据不可用开始到后一个时钟有效沿的时间。例如: set_output_delay -max

8、 20 -clock CLK get_ports B set_output_delay -min -0.5 -clock CLK get_ports B,时钟描述:时钟的描述在设计中非常关键,一般通过clock period和clock source(port/pin) 、duty cycle、offset/skew和clock name进行描述。 DC时钟约束命令: create_clock:用于定义时钟的周期和波形(占空比及起始沿) 例如: create_clock -period 40 -waveform0 20 对于仅包含组合逻辑的模块,为了定义该模块的延时约束,需要创造一个虚拟时钟定

9、义。例如: create_clock -name V_clk -period 20,set_clock_transition:在pre_layout必须设置一个固定的transition值(由技术库提供),因为时钟网有很大的fanout.这样可使DC根据该时钟计算实际的延时值。 set_clock_skew:设置时钟的skew及delay,pre_layout和post_layout命令选项不一样。-propagated选项让DC计算时钟的skew。,例如: set_clock_skew -delay 2.5 -minus_uncertainty 2.0 -plus_uncertainty 0

10、.2 CLK -minus_uncertainty用于setup-time的计算,-plus_uncertainty用于hold-time的计算。 一个cell的delay是根据input signal的斜率和output pin的电容负载决定。对于时钟信号,因为clock network的fanout很大,从而造成clock network末端门的时钟信号的clock transition time很慢,是DC计算的门延迟失真。 set_dont_touch_network常用于port或net阻止DC隔离该net,和该net向连的门具有dont_touch属性,常用于CLK和RST。 例如

11、:set_dont_touch_network CLK,RST 当一个电路包含门时钟逻辑时,若在时钟的输入设置set_dont_touch_network,则阻止DC隔离该门逻辑,导致DRC发现时钟信号冲突,对门RESET同样。,set_dont_touch应用于current_design,cell,net,references。阻止DC对模块中的这些元素进行技术映射。 其它的一些约束条件 set_dont_use用于将技术库中的某些设计中不需要的cell滤除,比如Latch、Delay Cell,禁止DC映射; 例如: set_dont_use mylib/SD* set_false_pa

12、th指示DC对指定的路径不要按照时序约束优化。比如:异步路径或约束不可实现的路径。false path路径的鉴别在设计中很关键,如果不对false path路径进行标识,DC会对所有的路径进行优化,从而影响关键时序路径。此命令也用于当因为有false path关键逻辑,时序静态分析失败时。 set_false_path -from get_clock CLKA -to get_clock CLKB,set_multicycle_path:因为DC假设所有的路径都是单周期的,为了满足时序,对多周期路径会做不必要的优化,从而影响相邻路径或面积。所以这个命令用于隔离多周期路径,通知DC通过这条路径所

13、需的周期数。 例如:set_multicycle_path 2 -from FFA/CP -through Multyply/Out -to FFB/D,set_max_delay: 1、对于仅包含组合逻辑的模块,用此命令约束所有输入到输出的总延时。 例如: set_max_delay 5 -from all_inputs() -to all_outputs 2、对于含有多个时钟的模块,可用通常的方法定义一个时钟,用此命令进行约束定义时钟和其他时钟之间的关系。 例如:set_max_delay 0 from CLK2 to all_register(clock_pin) set_min_del

14、ay: 1、对于仅包含组合逻辑的模块,定义指定路径的最小延时。 例如:set_min_delay 3 -from all_inputs() 2、和set_fix_hold一起使用,只是DC添加一定的延迟,满足最小延迟需求。,编译,编译就是将GETCH逻辑网络映射为技术库的gate cell,使设计满足用户的约束。对于一个层次设计分两步实现: 1、映射各子模块到逻辑门,不考虑约束; 2、根据时序和面约束优化逻辑,修正模块分界间的违例。,布局布线,Design Setup,Floor Plan,Timing Setup,Placement,CTS,Route,DFM&Data Out,Design

15、 Setup,Design Setup:布局布线的准备工作,读入网表,跟Foundry提供的STDCell、Pad库以及Macro库进行映射。,Floor Plan,Floor Plan:整体的布局规划,设置Core的大致面积、管脚位置以及Macro位置等一些粗略的布局信息。,Timing Setup,Timing Setup:读入时序约束文件(.sdc),设置时序信息,主要是Environment、Optimization、Parasitics、Model四个比较常用的设置。,Placement,Placement:这一步是详细的布局,一是要满足设计的时序要求,二是保证后面的布线能够顺利进行。,CTS,CTS:时钟树综合,目的就是为了降低clock skew,有很多buffer构成。,Route,Route:布线,一般是先对电源线和时钟信号线布线,然后再对信号线布线,目的就是为了最大满足时序。,DFM&Data Out,DFM:可制造性设计,,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号