0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA时序约束:如何查看具体错误的时序路径

FPGA设计论坛 来源:未知 2023-03-17 03:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1、时序错误的影响

一个设计的时序报告中,design run 时序有红色,裕量(slack)为负数时,表示时序约束出现违例,虽然个别违例不代表你的工程就有致命的问题,但是这是一个风险(时序报告是按照工艺、电压以及温度的上下限给出的结果)。当违例数较多,也就意味着设计在实际环境中出现问题的概率也会越大。 时间裕量包括建立时间裕量和保持时间裕量(setup slack和hold slack)。从字面上理解,所谓“裕量”即富余的、多出的。什么意思呢?即保持最低要求的建立时间或保持时间所多出的时间,那么“裕量”越多,意味着时序约束越宽松。

2、如何查看具体错误的时序路径

上述错误的时序,双击可以看到详细的时钟路径和数据路径,右键可以看到具体代码中的原理图。个人比较喜欢先查看原理图可以很直观的看到到底是哪一块的代码错了。 在调试的过程中发现,基本上时序错误都是代码的错误,比如没有跨时钟操作(跨时钟需要打两拍,跨时钟一些信号前后初始化不一致);数据路径过长(主要是针对位宽较大的数据,路径又长。解决办法是在该路径上添加寄存器)。出现时序错误,先从代码逻辑上找问题,代码逻辑排查完了,在考虑时序怎么约束。

3、clock interaction 时序错误还可以通过下图查看,以前特别爱用里面的指令 set false path 和 set clock groups。自从意识到大部分的时序错误都是逻辑错误导致以后,基本没用到这两句话。有一次盲目的使用set false path 指令,没有对 set false path 的用法有深刻理解, 导致代码逻辑不正常后,就更不会轻易用这些优化指令了。扩展:1)set_false_path 设置伪路径后,不再对特殊路径进行时序分析。特殊路径如测试逻辑、添加同步电路后的跨时钟域路径等。在两个时钟域之间应该相互设置为set_false:(注意:只是不对特殊路径进行时序分析,而不是只要出现错误就能用这句话) set_false_path -from [get_clocks clk_a] -to [get_clocks clk_b] set_false_path -from [get_clocks clk_b] -to [get_clocks clk_a] 2)set_clock_groups :添加完以后事这样的 set_clock_groups -asynchronous -group clk_a -group clk_b clk_a和clk_b是异步时钟 设置异步时钟







精彩推荐



至芯科技-FPGA就业培训来袭!你的选择开启你的高薪之路!3月28号北京中心开课、欢迎咨询!
FPGA学习-Verilog例化说明
FPGA vs ASIC
扫码加微信邀请您加入FPGA学习交流群




欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!


点个在看你最好看





原文标题:FPGA时序约束:如何查看具体错误的时序路径

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630236

原文标题:FPGA时序约束:如何查看具体错误的时序路径

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    vivado时序分析相关经验

    vivado综合后时序为例主要是有两种原因导致: 1,太多的逻辑级 2,太高的扇出 分析时序违例的具体位置以及原因可以使用一些tcl命令方便快速得到路径信息
    发表于 10-30 06:58

    移植E203到Genesys2开发板时遇到时序问题的常见原因

    -clk_out2 to clk_out1的setup违例,看block design发现违例太大和时序约束无关,其实是axi_interconnect一侧的端口时钟需要保持一致。这里e203核时钟16M,而
    发表于 10-29 07:04

    E203内核移植到FPGA开发板时出现时序违例的解决方式

    在移植内核时,用VIVADO进行综合实现后会出现时序违例,如图: 虽然可以上板正常进行开发,但是还是想把这些违例解决下^_^ 检查后,发现是 apb_adv_timer 这条路径报的违例,解决方式
    发表于 10-27 07:32

    时序约束问题的解决办法

    在使用vivado对 Verilog 代码进行综合后,点击“SYNTHESIS”下的“Report Timing Summary”,可以查看综合后的时序报告,查看 Setup Time 和 Hold
    发表于 10-24 09:55

    网络延迟具体是怎样影响实时波形查看的?

    监测的准确性和有效性。以下结合波形传输的全链路流程,拆解延迟的具体影响机制: 一、先明确:实时波形查看的 “全链路延迟构成” 要理解影响,需先清楚波形从 “现场发生” 到 “远程显示” 的完整路径,每一步都会产生延迟,最终叠
    的头像 发表于 10-23 11:45 590次阅读

    欧/美标直流充电桩控制时序讲解

    直流充电桩控制时序
    的头像 发表于 06-30 09:22 993次阅读
    欧/美标直流充电桩控制<b class='flag-5'>时序</b>讲解

    西门子再收购EDA公司 西门子宣布收购Excellicon公司 时序约束工具开发商

    精彩看点 此次收购将帮助系统级芯片 (SoC) 设计人员通过经市场检验的时序约束管理能力来加速设计,并提高功能约束和结构约束的正确性   西门子宣布 收购 Excellicon 公司
    的头像 发表于 05-20 19:04 1274次阅读
    西门子再收购EDA公司  西门子宣布收购Excellicon公司  <b class='flag-5'>时序</b><b class='flag-5'>约束</b>工具开发商

    FPGA时序约束之设置时钟组

    Vivado中时序分析工具默认会分析设计中所有时钟相关的时序路径,除非时序约束中设置了时钟组或false
    的头像 发表于 04-23 09:50 967次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>时序</b><b class='flag-5'>约束</b>之设置时钟组

    一文详解Vivado时序约束

    Vivado的时序约束是保存在xdc文件中,添加或创建设计的工程源文件后,需要创建xdc文件设置时序约束时序
    的头像 发表于 03-24 09:44 4385次阅读
    一文详解Vivado<b class='flag-5'>时序</b><b class='flag-5'>约束</b>

    IGBT IPM的错误输出功能

    本文将介绍“保护功能和工作时序”系列的第五个功能——“错误输出功能(FO)”。
    的头像 发表于 03-19 17:22 1070次阅读
    IGBT IPM的<b class='flag-5'>错误</b>输出功能

    AXI握手时序优化—pipeline缓冲器

    skid buffer(pipeline缓冲器)介绍   解决ready/valid两路握手的时序困难,使路径流水线化。   只关心valid时序参考这篇写得很好的博客链接: 握手协议(pvld
    的头像 发表于 03-08 17:10 1009次阅读
    AXI握手<b class='flag-5'>时序</b>优化—pipeline缓冲器

    有没有对appsfpga_io模块输入端功能时序的控制的资料?

    我们的要求,只是按行输入数据,全局reset。有没有对appsfpga_io模块输入端功能时序的控制的资料?
    发表于 02-27 07:02

    集成电路设计中静态时序分析介绍

    Analysis,STA)是集成电路设计中的一项关键技术,它通过分析电路中的时序关系来验证电路是否满足设计的时序要求。与动态仿真不同,STA不需要模拟电路的实际运行过程,而是通过分析电路中的各个时钟路径、信号传播延迟等信息来评
    的头像 发表于 02-19 09:46 1303次阅读

    xilinx FPGA IOB约束使用以及注意事项

    采用了IOB约束,那么就可以保证从IO到达寄存器或者从寄存器到达IO之间的走线延迟最短,同时由于IO的位置是固定的,即存在于IO附近,所以每一次编译都不会造成输入或者输出的时序发生改变。 二、为什么要使用IOB约束 考虑一个场景
    的头像 发表于 01-16 11:02 1486次阅读
    xilinx <b class='flag-5'>FPGA</b> IOB<b class='flag-5'>约束</b>使用以及注意事项

    ldc1000使用的具体时序是怎样的呢?

    ldc1000 evm,测得它的波形均是在上跳变接收数据和发送数据,这与ldc1000的芯片手册中的时序图不同,想问下您ldc1000的使用的具体时序是怎样的呢? 2.我最开始是使用pic16f887
    发表于 01-13 07:59