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

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

3天内不再提示

物理约束实践:网表约束MARK_DEBUG

FPGA快乐学习 来源:FPGA快乐学习 作者:FPGA快乐学习 2022-11-03 11:51 次阅读

16912bd6-5b2a-11ed-a3b6-dac502259ad0.jpg

概述

网表约束MARK_DEBUG可应用在源码中的任意一个网络信号上,被施加该约束的网络信号在调试界面中可见,从而方便在线调试时快速定位该信号,提升调试效率。话不多说,下面以FPGA中的在线逻辑分析仪(ILA)的调试实践为例,让大家感受一下网表约束MARK_DEBUG的妙用。

工程实践

以STAR FPGA开发板中的at7_ex10工程为例,这个工程实现UART传输的loopback功能。该实例中使用在线逻辑分析仪希望探测到FPGA端接收并进行串并转换过程中所设计的一些主要信号。

首先需要找出待探测的信号。如图1和图2所示,在my_uart_rx.v模块中,uart_rx、clk_bps、rx_data、rx_int、num、rx_temp_data是需要探测监控的信号。

16a5954e-5b2a-11ed-a3b6-dac502259ad0.jpg

图1 识别需要进行探测的信号1

16c1d39e-5b2a-11ed-a3b6-dac502259ad0.jpg

图2识别需要进行探测的信号2

如图3所示,在待探测信号定义申明前面增加语句:(*mark_debug= "true"*)。当然了,如果后续不探测这个信号了,直接修改“true”为“false”就可以。

16d7a246-5b2a-11ed-a3b6-dac502259ad0.jpg

图3 标注需要探测的信号

完成对探测信号的mark_debug标记后,如图4所示,点击“Synthesis à Run Synthesis”对工程进行综合编译。

16eae234-5b2a-11ed-a3b6-dac502259ad0.jpg

图4 工程的综合编译

综合编辑完成后,如图5所示,接着点击“Synthesis à Synthesized Design à Set Up Debug”。

16fb14a6-5b2a-11ed-a3b6-dac502259ad0.jpg

图5 Set Up Debug菜单

如图6所示,点击Next进入下一步。

1712baac-5b2a-11ed-a3b6-dac502259ad0.jpg

图6 Set Up Debug Wizard页面

如图7所示,Nets to Debug界面显示的信号正是我们在前面的工程源码中标记了(*mark_debug = "true"*)的信号。如果没有被标记过的信号,我们希望添加到Nets to Debug界面中,就要点击Find Netsto Add…按钮逐个查找并添加了,效率要明显低于直接在工程源码中事先标记。对这些调试信号做采样和触发属性设置后,点击Next进入下一页面。

173474a8-5b2a-11ed-a3b6-dac502259ad0.jpg

图7 Nets to Debug页面

如图8所示,ILA Core Options页面中,可以设定探测信号的采样深度、缓存寄存器等级和信号采集触发相关控制选项。完成设置后,点击Next进入下一页面。

17531f84-5b2a-11ed-a3b6-dac502259ad0.jpg

图8 ILA CoreOptions页面

如图9所示,Set up Debug Summary中点击Finish完成设置。

1769d134-5b2a-11ed-a3b6-dac502259ad0.jpg

图9 Set upDebug Summary页面

此时,如图10所示,所有的探测信号出现在了Debug窗口中。

177e67a2-5b2a-11ed-a3b6-dac502259ad0.jpg

图10 Debug窗口

接着,重新对工程进行编译,将产生的比特流烧录到FPGA器件中,最终便能捕捉到如图11所示的实际的信号波形。

178ed380-5b2a-11ed-a3b6-dac502259ad0.jpg

图11 触发位置的波形

审核编辑 :李倩

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

    关注

    1624

    文章

    21608

    浏览量

    601088
  • 源码
    +关注

    关注

    8

    文章

    632

    浏览量

    29100
  • 约束
    +关注

    关注

    0

    文章

    82

    浏览量

    12708

原文标题:物理约束实践:网表约束MARK_DEBUG

文章出处:【微信号:FPGA快乐学习,微信公众号:FPGA快乐学习】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    电路的两类约束指的是哪两类

    电路的两类约束通常指的是电气约束物理约束。这两类约束在电路设计和分析中起着至关重要的作用。 一、电气
    的头像 发表于 08-25 09:34 633次阅读

    深度解析FPGA中的时序约束

    建立时间和保持时间是FPGA时序约束中两个最基本的概念,同样在芯片电路时序分析中也存在。
    的头像 发表于 08-06 11:40 505次阅读
    深度解析FPGA中的时序<b class='flag-5'>约束</b>

    两种SR锁存器的约束条件

    基本约束条件: SR锁存器是一种基本的数字逻辑电路,用于存储一位二进制信息。它有两个输入端:S(Set)和R(Reset),以及两个输出端:Q和Q'(Q的反相)。以下是SR锁存器的基本约束
    的头像 发表于 07-23 11:34 710次阅读

    Xilinx FPGA编程技巧之常用时序约束详解

    今天给大侠带来Xilinx FPGA编程技巧之常用时序约束详解,话不多说,上货。 基本的约束方法 为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径以及异常路径为
    发表于 05-06 15:51

    时序约束实操

    添加约束的目的是为了告诉FPGA你的设计指标及运行情况。在上面的生成约束之后,在Result àxx.sdc中提供约束参考(请注意该文件不能直接添加到工程中,需要热复制到别的指定目录或者新建自己的SDC文件添加到工程)。
    的头像 发表于 04-28 18:36 2091次阅读
    时序<b class='flag-5'>约束</b>实操

    Xilinx FPGA的约束设置基础

    LOC约束是FPGA设计中最基本的布局约束和综合约束,能够定义基本设计单元在FPGA芯片中的位置,可实现绝对定位、范围定位以及区域定位。
    发表于 04-26 17:05 1036次阅读
    Xilinx FPGA的<b class='flag-5'>约束</b>设置基础

    Xilinx FPGA编程技巧之常用时序约束详解

    今天给大侠带来Xilinx FPGA编程技巧之常用时序约束详解,话不多说,上货。 基本的约束方法为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径以及异常路径为
    发表于 04-12 17:39

    机器人运动学中的非完整约束与运动模型推导

    机器人运动学中的运动学约束是指机器人在运动过程中受到的限制,包括位置、姿态、速度和加速度等因素。这些约束会对机器人的自由度产生影响,从而影响机器人的运动和控制。运动学约束通常用数学模型来描述,为机器人的运动控制提供了理论基础。
    的头像 发表于 01-18 16:45 1538次阅读
    机器人运动学中的非完整<b class='flag-5'>约束</b>与运动模型推导

    FPGA物理约束之布局约束

    在进行布局约束前,通常会对现有设计进行设计实现(Implementation)编译。在完成第一次设计实现编译后,工程设计通常会不断更新迭代,此时对于设计中一些固定不变的逻辑,设计者希望它们的编译结果
    的头像 发表于 01-02 14:13 1333次阅读
    FPGA<b class='flag-5'>物理</b><b class='flag-5'>约束</b>之布局<b class='flag-5'>约束</b>

    Pod一直处于Pending状态?什么是Pod拓扑约束

    起因: 今天在部署组件的时候,发现组件的pod一直处于Pending状态,报错显示的原因是:不满足Pod拓扑分布约束,看了代码发现是原来同事给组件新增了Pod拓扑约束
    的头像 发表于 12-18 11:46 1135次阅读
    Pod一直处于Pending状态?什么是Pod拓扑<b class='flag-5'>约束</b>?

    FPGA物理约束之布线约束

    IS_ROUTE_FIXED命令用于指定网络的所有布线进行固定约束。进入Implemented页面后,Netlist窗口如图1所示,其中Nets文件展开后可以看到工程中所有的布线网络。
    的头像 发表于 12-16 14:04 1093次阅读
    FPGA<b class='flag-5'>物理</b><b class='flag-5'>约束</b>之布线<b class='flag-5'>约束</b>

    SV约束随机化总结

    constraint 约束随机化类中的变量 在main_phase 之前就已经提前产生一个变量的随机值。 用法:一般在类中定义一个rand 类型的变量, 然后根据需求写约束就可以
    的头像 发表于 12-14 14:30 755次阅读
    SV<b class='flag-5'>约束</b>随机化总结

    FPGA器件几个比较常用的配置配置约束

    Xilinx Vivado工具的配置约束隐藏得比较深,如图1所示,在进入配置页面前,首先需要点击PROGRAM AND DEBUG->Generate Bitstream执行工程的全编译,然后点击IMPLEMENTATION->OpenImplemented Design
    发表于 12-02 12:19 716次阅读
    FPGA器件几个比较常用的配置配置<b class='flag-5'>约束</b>

    物理约束实践:I/O约束

    I/O约束(I/O Constraints)包括I/O标准(I/OStandard)约束和I/O位置(I/O location)约束
    的头像 发表于 11-18 16:42 1007次阅读
    <b class='flag-5'>物理</b><b class='flag-5'>约束</b><b class='flag-5'>实践</b>:I/O<b class='flag-5'>约束</b>

    FPGA时序约束--基础理论篇

    FPGA开发过程中,离不开时序约束,那么时序约束是什么?简单点说,FPGA芯片中的逻辑电路,从输入到输出所需要的时间,这个时间必须在设定的时钟周期内完成,更详细一点,即需要满足建立和保持时间
    发表于 11-15 17:41