【SoCVista】FPGA时序分析之Gate Clock

更新时间:2023-06-15 00:58:49 阅读: 评论:0

Bruce Zhan
个人空间:/?uid/260邮件:zhanbin.
2009-2-26
Version 1-0-0
History:
Version 1-0-0, relead initiailly
(一)
FPGA设计一条原则是尽量使用同步逻辑,即尽量整个设计中使用一个clock,而且该clock 尽量走全局时钟线,也就是不要在clock path上加上逻辑,不要用“受控时钟”。但是在有些情况下,“受控时钟”难以避免,例如在用FPGA进行验证ASIC设计时,因为ASIC为了low power的要求,通常会使用逻辑控制时钟的开关。
如果对“受控时钟”不加以任何变换,其负面作用通常是通常会有hold timing冲突。hold timing 问题不像s
etup timing问题,不能靠依靠降低时钟频率解决;在ASIC设计时解决hold timing 问题通常靠工具自动增加时钟树分支延迟,使时钟到目标寄存器的时间在建立-保持时间窗内。
在FPGA阶段,通常有几种办法:
1. 不理会hold timing问题,这样可能有时编译出来的系统可以正常工作,有时候又不能工作,比较飘逸;
drill是什么意思2. 手工将gate clock等系统“异步”时钟改成同步时钟,办法就是将clock path上的逻辑合并到寄存器的数据输入端。
3. 使用synplify将gate clock转换为non-gate clock
fusion4. altera quartus8.0以上有转换gate clock的功能,可以使用。
字长
(二)
synplify把gate clock转换为non-gate clock的功能早已具有,这里先不讨论,下面主要试试altera的gate clock功能。
(1)先试个简单的电路图,
(2)打开菜单assignments->ttings,在Analysis&Synthesis Settings项,选More ttings,打开如下图对话框,
注意将Auto Gated Clock Conversion选项设置为:On。
还要写一个sdc约束文件,因为要使用Auto Gated Clock Conversion功能,必须使用TimeQuest Timing Analyzer 作时序分析,并且在sdc文件中定义所有的ba clocks。
简单SDC文件如下,
>>>>>>>>>>>>>># ####
main#
# Generated by : Bruce Zhanhi tec
# Purpo      : To verify gate-clock conversion using quartus8.1
# Project      : None
blood is thicker than water# Revision    : None
#
# Date        :
#
>>>>>>>>>>>>>># ####
# **************
# **Time Information
#    -------------
t_time_format \
我回来了日语
-unit ns \
-decimal_places 3
# **Create Clock 100MHz
#    -------------
t period 10.000
t period1 [expr $period*2]
create_clock [get_ports i_clk] \
-name clk \
-period $period \
大黄蜂 英文>pes4
-waveform {0.000 5.000}
然后在Timing Analysis Settings项下,作如下图设置,
记住要选中Using TimeQuest Timing Analysis during compilation。然后开始编译。
(3)查看结果。
编译报告见下图,
上图表明有一个clock被作了auto gated clock conversion。
打开如下图菜单,查看电路图,
Netlist电路图如下,英语单词墙
如果不使能auto gated clock conversion,则电路图如下,
从上面两附图中可以看出gated clock确实变成了non-gated clock。
(三)
并不是所有的gated clock都能够转换的,Quartus作了如下指导原则,
1)Gating逻辑应该使用两输入“与”门或者两输入“或”门。
2)“与”门/“或”门两个输入中应该只有一个是“真”的时钟(primary input clock)。
3)“与”门/“或”门的“非时钟输入”信号最好先用一个Register同步,这个用作同步的Register 要使用primary input clock。

本文发布于:2023-06-15 00:58:49,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/145378.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:时钟   使用   逻辑   编译   输入   寄存器   菜单
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图