逻辑&综合要注意的几点问题

上传人:第*** 文档编号:33571024 上传时间:2018-02-15 格式:DOCX 页数:6 大小:241.79KB
返回 下载 相关 举报
逻辑&综合要注意的几点问题_第1页
第1页 / 共6页
逻辑&综合要注意的几点问题_第2页
第2页 / 共6页
逻辑&综合要注意的几点问题_第3页
第3页 / 共6页
逻辑&综合要注意的几点问题_第4页
第4页 / 共6页
逻辑&综合要注意的几点问题_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《逻辑&综合要注意的几点问题》由会员分享,可在线阅读,更多相关《逻辑&综合要注意的几点问题(6页珍藏版)》请在金锄头文库上搜索。

1、逻辑 综合要注意的几点问题使用 Design Compiler 做电路综合的过程:图 417 给出了做电路综合所需要的一些设置、命令以及综合的全过程。Design Rule ConstraintsSet_max_transitionSet_max_capacitanceSet_max_fanoutDesign objectDesign Opt. ConstraintsTarget_library create_clockLink_library set_dont_touch_networkSymbol_library set_clock_uncertaintySynthetic_library

2、 set_input_delaySet_output_delaySet_max_areaRead_fileanalyze top_downelaborate bottom_uplinkCompileset_operating_conditionsset_wire_load_modelset_wire_load_modeset_driveset_driving_cell check_designset_load report_areaset_fanout_load report_constraintset_min_library report_timingDevelop HDL filesSpe

3、cify librarySet design constraint Read design and linkSelect design strategyOptimize the designDefine design environmentAnalyze and resolve design problemsSave the design database图 417 综合的全过程以及各个步骤所使用的命令综合一个设计。我们可以采用 bottom-up ,也可以采用 top-down。top-down 综合方法:1. 读进所有的设计,2. 解决多实例问题3. 应用顶层约束4. 编译5. 查看结果6

4、. 保存设计top-down 综合方法的优点是模块之间的依赖关系被自动维护。人花在工具运行的时间比较少。bottom-up 综合方法:1. 单独约束和编译每一个子模块,2. 确定所有的子模块都符合了它们的初始约束,3. 读进完整的设计,并应用顶层约束,4. 检查约束报告,如果都通过了,那你就完成了。bottom-up 综合方法的优点是大型的设计通过”divide and conquer”方法编译了,不受有效内存的限制。缺点是需要人们反复的干预直到块与块之间的接口稳定下来。需要仔细的修改控制。约束脚本的编写(constraints.scr) (这里假设所有的输出都已锁存,故不需要设置input

5、delay 和 output delay):1. Reset the design2. Create a clock object3. Set input delays on all input ports except the clock port(若无 Assume 则 set output delays on all output ports)4. Set the operating condition5. Set the wire load model6. Define the cell driving all input ports except the clock port7. D

6、efine the maximum capacitance allowed on the input ports8. Define the pin capacitive load on all output ports总的综合脚本的编写(runit.scr) (假设设计明和文件名相同) :1. Read a list of designs into dc_shell2. For each design, set the current_design variable3. For each design, link4. For each design, apply the constraints

7、.scr script file5. For each design, compile6. For each design, generate and save the results from a constraint report tothe reports directory, using a meaningful name7. For each design, save the mapped design under the mapped directory under ameaningful name8. Quit dc_shell综合采取自底向上的策略,先局部后整体。首先将当前工作

8、层次设置为系统芯片的某个子模块,然后对该子模块添加各项具体约束,接着完成子模块的综合。依次对各子模块重复上述综合流程,当各个模块都顺利通过了初次综合后,通过 set_dont_touch_network 命令将模块中的关键路径和时钟线网保护起来,然后做一次全局优化,检查是否满足时序等各方面的设计要求,达到要求就可以输出最终的网表和各项综合报告。选择综合方案在优化电路时用户可以有两种方案,一种是自底向上的综合方案,一种是自顶向下的综合方案。1、 自顶向下的综合方案(top-down)在 top-down 的综合方案中,顶层模块和它的所有子模块放在一起优化,所有的限制条件和电路工作环境一般也都是针

9、对顶层模块设置的,因此,这种综合方案能够自动将模块之间的连接和依赖关系考虑到综合中去,从而优化综合结果。但是,这种方法对于一个规模比较大的电路显然不适合,因为在综合的过程中,所有的模块必须同时存在于存储区中,而且运行时间也会比较长。2、 自底向上的综合方案(bottom-up)即分而治之的解决方法。从最低层模块开始综合优化,必须对所有底子模块施加限制条件并且需要单独优化,这个过程一直延续到顶层模块。其中每一个子模块综合完成之后,直接将该模块集成到它的上一级中和上一级的其他模块一起优化,而且一般使用 set_dont_touch 命令让 DC 不再改变该子模块的结构。使用这种方法进行优化的优点是

10、当工作站的处理能力不足时,可以分别进行子模块的优化,而不需要将所有的模块都放到存储区中,这种做法的缺点是只能在子模块内部进行优化,无法考虑到模块周围的环境而将子模块和其他的模块一起优化。3、 综合采用自底向上和自顶向下的综合方案考虑到以上两种综合方案的有缺点,在做综合的时候一般同时采用以上两种方案。即对于层次较多或者比较复杂的模块采用自底向上的的综合,而对于层次结构简单底模块则使用自顶向下底综合。如图 423 D 子模块采用自顶向下底综合,B 子模块采用自底向上底综合。建立时间和保持时间对于传输门多路开关型寄存器,输入 D 在时钟上升沿之前 必须传播通过 I1、T1、I3、I2,这就保证了在传

11、输门 T2 两端的节点电压值相等。所以,建立时间是数据必须传播通过图 423 一个电路顶层结构示意图I1、T1 、I3 、I2 的延迟。Tc-q 就是通过 T3 和 I6 的延时(tc-q=tpd_tx +tpd_inv)在理想情况下,tclk1=tclk2,因此这一时序电路要求的最小时钟周期仅取决于最坏情况的传播延迟。T tc-q + tlogic + tsu目标寄存器的维持时间必须小于通过逻辑网络的最小传播延时Thold tc-q,cd + tlogic,cd时钟偏差(clock skew)芯片中时钟经过不同的传输路径,由于每条路经延时不一,导致从时钟源到达各个寄存器的始终输入端的相位差。

12、这种由于空间分布而产生的偏差叫做时钟倾斜(clock skew)。T + tc-q + tplogic + tsu so T tc-q + tplogic + tsu - thold + t cdlogic + tcdreg so thold t cdlogic + tcdreg - 时钟抖动(clock jitter)由于温漂、电子漂移的随机性,使时钟信号的边沿可能超前也可能滞后。这种具有时间不确定性的偏移称为时钟抖动(clock jitter)。T - 2tjitter tc-q + tplogic + tsu so T tc-q + tplogic + tsu + 2tjitterT t

13、c-q + tplogic + tsu - + 2tjitter thold tcdlogic + tcdreg 2tjitter偏移导致时钟信号到达各个触发器的时钟引脚的时间不一致,需要给予约束。多时钟域约束时序检查默认以一个时钟周期为界,但对于 ZSU32 系统芯片,存在着一些多周期路径,在这些路径上,数据不需要在单时钟周期内到达终点。例如,clk30mhz 和 clk10mhz 是同源的同步时钟,前者频率是后者的 3 倍,对从clk10mhz 时钟域向 clk30mhz 时钟域传输数据的路径,采用如下命令:#按照 3 个周期(clk30mhz)进行#建立时间约束set_multicycle_path 3 -setup -start -from clk10mhz -to clk30mhz;对于异步时钟域之间的路径,不用进行同步的时序检验,应该将其定义为伪路径(false path),这样在逻辑综合时就不必浪费资源去优化。#将异步时钟 e_clk 和 p_clk 之间的路径设置为伪路径set_false_path -from e_clk to p_clk;set_false_path -from p_clk -to e_clk;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

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