时钟约束讲解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
因此,如果同一个时钟管理模块输出的多个异步时钟时间之间有大量的跨时 钟域布线,那么博主强烈建议,不要使用由输入时钟衍生出来的输出时钟时序约束, 改为手动的对每一个输出时钟进行约束。当然,如果输出时钟之间的确是有关系的, 如同频不同相且相位关系固定,那么就需要在时序约束中指定它们的关系。对于那些 没有直接关系的输出时钟(频率或相位无关),需要约束两两之间的最大布线延迟, 可以用两者中时钟周期比较大的作为它们的总线路延迟,如40M 和200M 时钟,用 25ns 作为它们的总线路延迟。
武汉站街女吆喝"打炮" VC 残酷资本世界里的女汉子 孕妇无节制补充营养的后果 史唯平:恒天然爆出"原装进口"奶粉真相 揭秘中国官车号牌排序规则 杨恒均:假如我是穆巴拉克 独家对话六大门派高手 南周唐慧报道是如何失控的
ຫໍສະໝຸດ Baidu
对于 Xilinx FPGA,如果内部时钟是通过时钟管理模块产生的,那么只要约束 输入时钟的周期(用关键字 PERIOD),ISE 在 Implement(实现)的时候,会自动将 输入时钟的周期约束传递到时钟管理模块的输出时钟,不需要用户自己定义每个输出 时钟的频率。同时,ISE 会自动识别同一时钟管理模块输出的各个时钟之间频率与相 位关系,并且在 Implement 完成后分析各个时钟域之间的走线是否满足时序。这个功 能可以省去我们对每一个输出时钟进行约束的辛苦。当然,如果输入时钟有除了周期 约束之外的其他约束,ISE 就不会自动的将时钟管理模块的输入时钟约束传递到各个 输出时钟,各个输出时钟必须分别约束各自的时钟周期。
对于从不同时钟管理模块输出的异步时钟,ISE 不会自动产生两两之间的时序 约束。如果两个不同时钟管理模块输出的时钟在频率和相位上有关系,例如其中一个 时钟的频率是另一个时钟频率的一半,且两者相位相同,那么这种相互关系就需要在 两者的时序约束中体现出来。如果两个不同时钟管理模块输出的时钟在时钟和频率上 毫不相干,为了保证这种异步时钟之间的走线不会太长,也需要约束两两之间的最大 布线延迟。最大布线延迟的取值同样是去取两者之间最大的那个时钟周期。
Clk1X 的时钟周期为5ns,Clk2X180的时钟周期为 Clk1X 的一半,Clk2X180 的时钟相位与 Clk1X 的时钟相位的偏差为1.25ns。需要在 ucf 文件中添加这两个异步 时钟的时序约束,如下:
NET "Clk1X" TNM_NET = "Clk1X"; NET "Clk2X180" TNM_NET = "Clk2X180"; TIMESPEC "TS_Clk1X" = PERIOD "Clk1X" 5 ns;
网易 博客 发现 小组 风格
下载最文艺的手机博客 APP> 创建博客登录 加关注
技术无极-创意无限
===========( 一座连往 FPGA 世界的桥 )===========
首页 日志 相册 博友 关于我
日志
ISE 中 FPGA 的实现流程
3.5 数据类型
跨时钟域时序约束
2012-05-16 23:41:11| 分类: FPGA 设计工具 | 标签:跨时钟域 约束 from-to 时序约 束 period |字号 订阅
使用 ISE 自动根据输入时钟对同一个时钟管理模块输出的时钟进行时钟约束 时,如果设计中不同输出时钟之间有大量的跨时钟域布线(异步线路),ISE 会对每 一条异步线路进行分析。例如,一个40M 的时钟域和一个200M 的时钟域,当从40M 时钟域跨域到200M 时钟域时,异步线路的总延时(包括时序逻辑的内部响应时间、 布线延迟以及 LUT 的响应时间)限制在5ns 以内;当从200M 时钟域跨越到40M 时钟 域时,异步线路的总延时为25ns。实际上,从40M 时钟域跨越到200M 时钟域,异步 线路的总延迟只要限制在25ns 之内即可,因为处于40M 时钟域的时序逻辑(如 FF、 Block RAM 等),每25ns 才会更新一次。由此可见,ISE 自动生成的时钟约束过于苛 刻,上例中如果存在大量的从40M 时钟域跨越到200M 时钟域的线路,那么给 MAP 和 PAR 实现过程的压力会很大。在大型的、资源占用率比较高的设计里面,时序的 过约束会造成设计很难实现。
图一.跨时钟域路径
NET "CLKA" TNM_NET = "GRP_A"; NET "CLKB" TNM_NET = "GRP_B"; TIMESPEC TS_Path_A_B = FROM "GRP_A" TO "GRP_B" 5 ns DATAPATHONLY;
设定两个相关的异步时钟的时序约束时,一般是先指定主时钟的频率和占空 比,然后另一个时钟的频率和相位以主时钟的频率和相位作为参考。以下给出一个相 关异步时钟时序约束的例子:
以下给出一个不相关异步时钟之间的时序约束的例子:
下图中时钟 CLKA 和 CLKB 为不相关的异步时钟,CLKA 为源时钟, 时钟周期为25ns,CLKB 为目的时钟,时钟周期为8ns。CLKA 与
CLKB 之间的路径 Data_A_B 为异步路径,为了约束 Data_A_B 的布线延迟, 需要在 ucf 文件中添加以下跨时钟约束:
在一个 FPGA 设计里面,经常会用到多个全局时钟,而这些全局时钟是通过 几个外部时钟晶振从全局时钟管脚(GC)输入后,再经过一些时钟管理模块产生的(如 DCM、PLL、MMCM 等)。一般来说,小型设计只需要一个外部晶振作为时钟输入 即可,大型设计也很少超过5个外部晶振输入。一个外部时钟输入到 FPGA 的时钟管 理模块以后,通过倍频、分频、相位偏移等手段,可以产生多个内部时钟,这些时钟 在频率或相位上互不相同,但又有一定的关联。不同管脚输入的时钟经过时钟管理模 块处理之后,尽管不是同源时钟,也有可能频率上存在一定的关系。
TIMESPEC "TS_Clk2X180" = PERIOD "Clk2X180" TS_Clk1X/2 PHASE + 1.25 ns;
ISE 中 FPGA 的实现流程
评论 点击登录|昵称:
分享到: 阅读(1146)| 评论(1)| 不可转载 |举报
3.5 数据类型
公司简介 - 联系方法 - 招聘信息 - 客户服务 - 隐私政策 - 博客风格 - 手机博客 - VIP 博客 - 订阅此博客 网易公司版权所有 ©1997-2013
设定两个不相关的异步时钟的最大延迟时,不管异步时钟是不是由同一个时钟 管理模块产生,都只需约束异步线路的最大布线延迟,而不需将异步线路中时序逻辑 与 LUT 的响应时间纳入时序约束的范围。最大布线延迟约束使用 From-To 时序指定 方式,再添加 DATAPATHONLY 关键字表明只约束布线延迟。