高清电视芯片的综合优化设计
发布时间:2008/9/4 0:00:00 访问次数:611
引言
--- 作为一种大众传播的媒介,高清数字电视(hdtv)以其极高的图像质量和丰富的图像表现力正成为未来信息媒介的核心。实现hdtv的各种芯片是目前集成电路设计的竞争热点。
本文首先介绍利用自动化综合工具在编码和综合的阶段完成用于hdtv芯片设计的优化。由于verilog代码的好坏会直接影响到综合的结果,所以在设计代码的阶段就应该把综合的要求考虑进去。其次介绍该hdtv芯片的特点和结构,重点考虑hdtv芯片的结构复杂导致综合的困难及解决方法。最后,介绍了如何把hdtv芯片用综合工具design compiler将设计优化,使延迟从-0.94降到0.11。
veriloghdl综合性设计
1 时钟安排
选用上升沿触发的单时钟信号,尽量不使用混合触发的时钟信号。因为时钟周期在时序分析的过程中是关键问题,它还影响到时钟的频率。使用简单的时钟结构利于时钟信号的分析和保持,避免在时钟信号上添加buffer,还利于得到更好的综合结果。图1给出了上升沿触发的单时钟信号结构。
尽量避免使用门控时钟。时钟门控电路通常与工艺和时序有关,错误的时序关系会导致错误的时钟和脉冲干扰。时钟的skew会导致hold time的混乱,如图2所示。此外,门控时钟会使设计的可测试性下降。
同时,要避免使用内部的寄生时钟和寄生reset。寄生时钟不能作为扫描链的一部分,所以会使设计的可测试性下降,综合约束的设计难度提高。只有一些低功耗的设计需要门控时钟,在顶层模块中注意要把时钟或reset电路作为分立模块。
2 综合代码
使用可综合的代码可以提高电路的可测试性,简化静态时序分析,使门级的电路和初始的寄存器级代码功能一致。
利用寄存器代替组合逻辑的反馈,避免使用锁存器(latches)。寄存器受到时序逻辑的青睐,它可以维持一致性和综合的正确性。在设计中用reset信号来初始化寄存器的信号。在verilog中不要使用initial语句对信号进行初始化。
在每个always块中,指定完整的敏感信号列表。如果不指定完整的敏感信号,行为级的前端综合和后端综合网表的结果会不符。综合工具在elaborate设计时会给出警告。若增加多余的敏感信号则会降低仿真的速度。另外,注意阻塞性赋值和非阻塞性赋值的问题,阻塞性赋值一般用于时序电路中。
case语句相当于一个单层的多路器;if-then-else语句相当于一个层叠的组合多路器。单一多路器的速度会快一些,所以通常建议使用case语句。避免使用full-case 和parallel_case,这两种语句会导致在仿真和综合过程中代码的解释出现差异。
编写时序逻辑的代码要包括状态机和一个时序的进程,通过在进程外用assign语句来生成复杂的内部中间变量从而改进代码的可读性。使用define语句来定义状态向量。把有限状态机和非有限状态机放在不同的模块中有利于综合。
在rtl代码中不要使用任何延迟常量。延迟量不仅会导致在一些环境中的不正确,还会使得仿真和综合的结果不一致,扰乱rtl仿真器代码的优化。
3 代码划分
为了得到更好的综合结果,更快的综合速度,用简单的综合策略来满足时序的要求,推荐使用以下综合划分的技术。
● 所有模块都使用寄存器输出。对于每个设计的子模块都要记录所有的输出信号,这样可以简化综合的过程并可预测输出的驱动能力和输入的延迟。
● 把局部的相关联的组合逻辑放到同一个模块中,对于有不同目标的设计应放在不同的模块中。例如在综合的过程中,把需要优化面积和速度的关键路径逻辑放在分开的两个模块中,如图3所示。
● 综合时间的划分最主要的标准是逻辑功能、设计目标、时序和面积的需要。准确的时序计算和适当的约束对综合时间的影响远远大于电路规模的影响。把同一设计目标的电路逻辑放到一起也会减少综合时间,而设计的约束过多会增加综合时间。减少综合时间的关键是在设计之前制定精确的时间预算,并使设计的宏模块达到预算的要求,然后编写综合约束来满足预算,最后是运用综合工具的命令来实现约束。
● 避免时序异常。时序异常主要包括multicycle path和false path。如果设计中一定要用到多周期路径,应记录开始和
引言
--- 作为一种大众传播的媒介,高清数字电视(hdtv)以其极高的图像质量和丰富的图像表现力正成为未来信息媒介的核心。实现hdtv的各种芯片是目前集成电路设计的竞争热点。
本文首先介绍利用自动化综合工具在编码和综合的阶段完成用于hdtv芯片设计的优化。由于verilog代码的好坏会直接影响到综合的结果,所以在设计代码的阶段就应该把综合的要求考虑进去。其次介绍该hdtv芯片的特点和结构,重点考虑hdtv芯片的结构复杂导致综合的困难及解决方法。最后,介绍了如何把hdtv芯片用综合工具design compiler将设计优化,使延迟从-0.94降到0.11。
veriloghdl综合性设计
1 时钟安排
选用上升沿触发的单时钟信号,尽量不使用混合触发的时钟信号。因为时钟周期在时序分析的过程中是关键问题,它还影响到时钟的频率。使用简单的时钟结构利于时钟信号的分析和保持,避免在时钟信号上添加buffer,还利于得到更好的综合结果。图1给出了上升沿触发的单时钟信号结构。
尽量避免使用门控时钟。时钟门控电路通常与工艺和时序有关,错误的时序关系会导致错误的时钟和脉冲干扰。时钟的skew会导致hold time的混乱,如图2所示。此外,门控时钟会使设计的可测试性下降。
同时,要避免使用内部的寄生时钟和寄生reset。寄生时钟不能作为扫描链的一部分,所以会使设计的可测试性下降,综合约束的设计难度提高。只有一些低功耗的设计需要门控时钟,在顶层模块中注意要把时钟或reset电路作为分立模块。
2 综合代码
使用可综合的代码可以提高电路的可测试性,简化静态时序分析,使门级的电路和初始的寄存器级代码功能一致。
利用寄存器代替组合逻辑的反馈,避免使用锁存器(latches)。寄存器受到时序逻辑的青睐,它可以维持一致性和综合的正确性。在设计中用reset信号来初始化寄存器的信号。在verilog中不要使用initial语句对信号进行初始化。
在每个always块中,指定完整的敏感信号列表。如果不指定完整的敏感信号,行为级的前端综合和后端综合网表的结果会不符。综合工具在elaborate设计时会给出警告。若增加多余的敏感信号则会降低仿真的速度。另外,注意阻塞性赋值和非阻塞性赋值的问题,阻塞性赋值一般用于时序电路中。
case语句相当于一个单层的多路器;if-then-else语句相当于一个层叠的组合多路器。单一多路器的速度会快一些,所以通常建议使用case语句。避免使用full-case 和parallel_case,这两种语句会导致在仿真和综合过程中代码的解释出现差异。
编写时序逻辑的代码要包括状态机和一个时序的进程,通过在进程外用assign语句来生成复杂的内部中间变量从而改进代码的可读性。使用define语句来定义状态向量。把有限状态机和非有限状态机放在不同的模块中有利于综合。
在rtl代码中不要使用任何延迟常量。延迟量不仅会导致在一些环境中的不正确,还会使得仿真和综合的结果不一致,扰乱rtl仿真器代码的优化。
3 代码划分
为了得到更好的综合结果,更快的综合速度,用简单的综合策略来满足时序的要求,推荐使用以下综合划分的技术。
● 所有模块都使用寄存器输出。对于每个设计的子模块都要记录所有的输出信号,这样可以简化综合的过程并可预测输出的驱动能力和输入的延迟。
● 把局部的相关联的组合逻辑放到同一个模块中,对于有不同目标的设计应放在不同的模块中。例如在综合的过程中,把需要优化面积和速度的关键路径逻辑放在分开的两个模块中,如图3所示。
● 综合时间的划分最主要的标准是逻辑功能、设计目标、时序和面积的需要。准确的时序计算和适当的约束对综合时间的影响远远大于电路规模的影响。把同一设计目标的电路逻辑放到一起也会减少综合时间,而设计的约束过多会增加综合时间。减少综合时间的关键是在设计之前制定精确的时间预算,并使设计的宏模块达到预算的要求,然后编写综合约束来满足预算,最后是运用综合工具的命令来实现约束。
● 避免时序异常。时序异常主要包括multicycle path和false path。如果设计中一定要用到多周期路径,应记录开始和
上一篇:芯片设计中的IP技术
上一篇:通用芯片和嵌入式芯片有什么区别
热门点击
- 通用芯片和嵌入式芯片有什么区别
- 芯片大小和电极位置对GaN基LED特性的影响
- 用UC3842芯片设计开关电源
- 直流无刷电机控制芯片LB1690
- 芯片设计中的IP技术
- 滑动条与转轮的触摸传感器芯片
- 高清电视芯片的综合优化设计
- 可编程系统级芯片(SoPC)应用
- 用低温芯片增强卫星系统的性能
- 高速芯片冷却技术的趋势
推荐技术资料
- 单片机版光立方的制作
- N视频: http://v.youku.comN_sh... [详细]