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
    +关注

    关注

    1635

    文章

    21837

    浏览量

    608344
  • 源码
    +关注

    关注

    8

    文章

    656

    浏览量

    29786
  • 约束
    +关注

    关注

    0

    文章

    82

    浏览量

    12813

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

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

收藏 人收藏

    评论

    相关推荐

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

    xilinx FPGA IOB约束使用以及注意事项 一、什么是IOB约束 在xilinx FPGA中,IOB是位于IO附近的寄存器,是FPGA上距离IO最近的寄存器,同时位置固定。当你输入或者输出
    的头像 发表于 01-16 11:02 289次阅读
    xilinx FPGA IOB<b class='flag-5'>约束</b>使用以及注意事项

    浅谈多目标优化约束条件下充电设施有序充电控制策略

    随着电动汽车的普及,充电设施的需求日益增长,如何在多目标优化约束下实现充电设施的有序充电成为亟待解决的问题。新能源汽车的快速发展为清洁能源和可持续交通带来了新机遇,但也引出了许多问题。其中,充电设施的有序充电控制策略在多目标优化约束条件下显得尤为重要。
    的头像 发表于 01-07 13:17 211次阅读
    浅谈多目标优化<b class='flag-5'>约束</b>条件下充电设施有序充电控制策略

    时序约束一主时钟与生成时钟

    的输出,对于Ultrascale和Ultrascale+系列的器件,定时器会自动地接入到GT的输出。 1.2 约束设置格式 主时钟约束使用命令create_clock进行创建,进入Timing
    的头像 发表于 11-29 11:03 776次阅读
    时序<b class='flag-5'>约束</b>一主时钟与生成时钟

    常用时序约束使用说明-v1

    为了节省每层导入网的时间,在设置中我们通常不会勾选Aoto Load place and route Data 前面的勾选框。这样每次编译完成之后Show/Hide Tcl Command
    的头像 发表于 11-01 11:06 324次阅读

    与非门构成的基本RS触发器的约束条件是什么

    触发器的约束条件主要涉及输入信号和输出信号的状态。 以下是与非门构成的RS触发器的一些基本约束条件: 输入信号的约束 : RS = 0 :当R和S都为0时,触发器保持当前状态不变。这是因为两个与非门的输入都是0,输出Q和Q'将保
    的头像 发表于 10-18 11:15 2352次阅读

    SR锁存器有约束项的原因

    SR锁存器作为数字电路中的一个基础元件,其设计和使用过程中存在约束项的原因是多方面的。这些约束项旨在确保SR锁存器能够稳定、可靠地工作,避免产生不可预测或错误的状态。 一、SR锁存器的基本工作原理
    的头像 发表于 08-28 10:51 751次阅读

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

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

    深度解析FPGA中的时序约束

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

    两种SR锁存器的约束条件

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

    鸿蒙ArkTS声明式开发:跨平台支持列表【布局约束】 通用属性

    通过组件的宽高比和显示优先级约束组件显示效果。
    的头像 发表于 05-30 09:35 439次阅读
    鸿蒙ArkTS声明式开发:跨平台支持列表【布局<b class='flag-5'>约束</b>】 通用属性

    加法进位链的手动约束

    在激光雷达中,使用FPGA实现TDC时需要手动约束进位链的位置。这里简单记录下。 在outflow下会生成一个.qplace文件 。用于指示布线的各个原语资源的分布位置 。 它的内容主是 是原语
    的头像 发表于 05-20 11:38 1432次阅读
    加法进位链的手动<b class='flag-5'>约束</b>

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

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

    时序约束实操

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

    Xilinx FPGA的约束设置基础

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

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

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