高清电视芯片的综合优化设计
根据上述统计结果,得到core-top模块不满足时序要求的critical path最多,所以要通过把core-top模块单独进行优化来得到更佳的综合结果。首先设置Design Environment和Design Rules,然后对延迟进行优化。
Design Compiler对设计的时序优化是基于所指定的延迟约束进行的。影响延迟的约束包括时钟、输入和输出延迟、外部负载、输入单元的驱动能力、运行环境和线负载模型等。解决延迟问题的具体方法如下。
● 使用set_false_path命令。包含两个以上时钟的设计中,在没有关联的时钟之间要设置false路径,否则就会浪费更长的运行时间和更高的内存占用率。
● 使用ungroup命令,拆分底层模块。
● 用set_critical_range命令定义关键路径的优化范围。
● 用set_cost_priority-delay命令设置延迟的优先级高于设计约束的优先级。
● 用set_ultra_optimization命令,可以用调用逻辑复制和门映射的算法来编译。
● Compile incremental命令是在原有的综合的基础上,改进设计中不满足约束的部分,保留满足约束条件的部分。
● Compile-map_effort-high命令中,-high与-medium和-low相比需要编译时间更长,但是能得到更佳的综合结果。这个设置可以使关键路径再次综合。
3 综合结果
图7给出三步对延迟进行优化的结果,实现的具体步骤如下。
首先,依据报表查出延迟产生的原因。根据报表把主要的三个时钟之间设成false_path,根据前端coding阶段的设计设置multicycle,加上下面约束生成新的报表。
Ungroup
Set_critical_range 5
Set_cost_priority -delay
Set_ultra_optimization
Compile incremental
通过设置错误路径和多周期后,由新的报表可以得到path slack减少到了 -0.50。
然后,使用compile-map_effort high命令。根据报表path slack=-0.36,结果还需要进一步优化。
从报表可以看出slack不满足的路径主要集中在视频模块中的时钟信号ve_clk、PCI模块中的pci_clk,以及RAM模块中的sdr_clk0、sdr_clk1、ssr_clk0和ssr_clk1,所以需要给以上路径增加false_path 。Video_mode_reg模块是一个存储状态值的模块,写入后不再改变,所以也设为false_path。最终结果path slack=0.11,满足要求。
如果slack是由两个模块产生而不是模块内部的问题,还可以用ungroup命令拆分。本结果的slack就是由ve_mem模块内部产生,但结果的slack已经满足了要求,而且经过后端处理会改进的更好。
结束语
本文对HDTV芯片,从编码和综合两个方向入手,提出了解决方案。通过使用Synopsys公司的综合器Design Compiler,采用Top-down的方法对设计进行综合。结果表明综合方案较好的满足了综合目标,效果明显。
评论