首页 > 其他分享 >vivado 探针用作为数据和/或触发器、使用 XDC 命令来插入调试核

vivado 探针用作为数据和/或触发器、使用 XDC 命令来插入调试核

时间:2024-04-08 20:34:02浏览次数:27  
标签:触发器 set XDC get ila vivado debug property 调试

您可在 Vivado 硬件管理器中自定义探针 , 将其用作为数据和 / 或触发器。如果探针参与触发或采集比较值 , 则应将其 配置为仅限“触发器”探针。这样即可最优化 ILA 核使用 BRAM 的方式。通常 , 如需采集探针数据 , 则应将其配置为 仅限“数据”探针。如果探针同时参与触发比较值并且还需采集其数据 , 则应将其配置为“触发器和数据”。 您可使用“设置调试 (Set up Debug) ” Wizard 来将探针配置为数据和 / 或触发器 , 如下图所示。 对于包含配置为仅限“数据”的探针的设计 , 如果在运行时对其执行器件编程 , 则将无法使用这些探针来配置触发或采 集设置条件。相反 , 在“ Waveform ”波形中 , 将无法使用配置为仅限“触发器”的探针。 配置所用比较器数量 在综合后网表上插入 ILA 核后 , 即可设置用于任意位置的比较器的数量 ( 范围为 1 到 16 ) 。要在 Vivado IDE 中设置比 较器数量 , 请转至 ILA 核的“调试核选项 (Debug Core Options) ”选项卡 , 并将 ALL_PROBE_SAME_MU_CNT 属性设 置为所期望的比较器数量。 或者 , 也可以在 Tcl 控制台中设置 ALL_PROBE_SAME_MU_CNT 属性 , 如下所示 : set_property ALL_PROBE_SAME_MU_CNT 10 [get_debug_cores u_ila_0] 提示 如果启用“采集控制 (Capture Control) ” , 则可选比较器数量范围是 1 到 15 个。有 1 个比较器供采集控 制数据筛选机制使用。 重要提示 在 ILA 中无法使用插入流程来为不同探针设置不同数量的比较器。赛灵思建议您使用 HDL 例化流程 来为不同探针设置不同数量的比较器。 使用 XDC 命令来插入调试核 除了使用“设置调试 (Set up Debug) ” Wizard 外 , 您也可以使用 XDC 命令来创建、连接调试核并将其插入已综合的设 计网表。在 Tcl 控制台中输入 XDC 命令 , 并遵循以下步骤进行操作 : 1. 打开来自名为 synth_1 的综合运行的已综合的设计网表。 open_run synth_1 重要提示 仅当打开已综合的设计网表后 , 以下步骤中的 XDC 命令才有效。 2. 创建 ILA 核的黑盒。 create_debug_core u_ila_0 ila 3. 设置 ILA 核的各属性。 set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0] set_property C_TRIGIN_EN false [get_debug_cores u_ila_0] set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0] set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0] set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0] set_property C_EN_STRG_QUAL false [get_debug_cores u_ila_0] set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0] set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0] 4. 将 ILA 核的 clk 端口宽度设为 1 , 并将其连接到目标时钟信号线。 set_property port_width 1 [get_debug_ports u_ila_0/clk] connect_debug_port u_ila_0/clk [get_nets [list clk ]] 注释 您无需创建 ILA 核的 clk 端口 , 因为此端口将由 create_debug_core 命令自动创建。 重要提示 调试核的所有调试端口名称均为小写。使用大写或混合大小写调试端口名称将导致出错。 5. 将 probe0 端口的宽度设置为您计划连接到此端口的信号线的数量。 注释 您无需创建 ILA 核的首个探测端口 (probe0) , 因为此端口将由 create_debug_core 命令自动创建 : set_property port_width 1 [get_debug_ports u_ila_0/probe0] 6. 将 probe0 端口连接到您想要连接到该端口的信号线。 connect_debug_port u_ila_0/probe0 [get_nets [list A_or_B]] 7. ( 可选 ) 创建更多探测端口、设置其宽度并将其连接到您要调试的信号线。 create_debug_port u_ila_0 probe set_property port_width 2 [get_debug_ports u_ila_0/probe1] connect_debug_port u_ila_0/probe1 [get_nets [list {A[0]} {A[1]}]] 如需获取有关这些 Tcl 命令以及有关其它相关 Tcl 命令的更多信息 , 请在 Vivado Design Suite 的 Tcl 控制台中输入 help -category ChipScope 。 运行调试 XDC 命令后保存约束 使用“设置调试 (Set up Debug) ” Wizard 、使用 Vivado Design Suite 创建调试核或调试端口和 / 或运行以下 XDC 命令 后 , 需保存约束 : • create_debug_core • create_debug_port • connect_debug_port • set_property ( 针对任意 debug_core 或 debug_port 对象 ) 对应 XDC 命令将保存到含后缀 _debug.xdc 的约束文件 , 并在实现期间 , 用于插入和连接调试核。 重要提示 在工程模式下保存约束可能导致综合和实现步骤变为过期。但您无需重新综合设计 , 因为仅在实现期 间才使用这些调试 XDC 约束。您可通过选中“ Design Runs ”窗口、右键单击综合运行轮次 ( 例如 , synth_1 ), 然后单击“ Force up-to-date ”来强制将综合步骤更新至最新状态。 实现设计 完成插入、连接并自定义调试核后 , 即可着手实现设计 ( 请参阅“对包含调试核的设计执行实现” ) 。 在非工程模式下执行调试核插入 调试核可在工程模式或非工程模式下插入。以下 Tcl 脚本样本演示了如何在所探测的设计中创建调试核、设置调试核属 性以及将调试核探针连接到信号。在非工程模式下 , 调试核插入操作需在设计综合后且 opt_design 步骤前执行 , 如下 所示。 重要提示 仅限 ILA 核才支持调试核插入。 以下 Tcl 脚本提供了在非工程流程中使用调试核插入命令的示例。 #read relevant design source files read_vhdl [glob ./*.vhdl] read_verilog [ glob ./Sources/*.v ] read_xdc ./target.xdc #Synthesize Design synth_design -top top -part xc7k325tffg900-2 #Create the debug core create_debug_core u_ila_0 ila #set debug core properties set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0] set_property C_TRIGIN_EN false [get_debug_cores u_ila_0] set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0] set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0] set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0] set_property C_EN_STRG_QUAL false [get_debug_cores u_ila_0] set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0] set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0] #connect the probe ports in the debug core to the signals being probed in the design set_property port_width 1 [get_debug_ports u_ila_0/clk] connect_debug_port u_ila_0/clk [get_nets [list clk ]] set_property port_width 1 [get_debug_ports u_ila_0/probe0] connect_debug_port u_ila_0/probe0 [get_nets [list A_or_B]] create_debug_port u_ila_0 probe #Optionally, create more probe ports, set their width, # and connect them to the nets you want to debug #Implement design opt_design place_design report_drc -file ./placed_drc_rpt.txt report_timing_summary -file ./placed_timing_rpt.txt route_design report_drc -file ./routed_drc_rpt.txt report_timing_summary -file ./routed_timing_rpt.txt write_bitstream

标签:触发器,set,XDC,get,ila,vivado,debug,property,调试
From: https://blog.csdn.net/cckkppll/article/details/137522628

相关文章

  • vivado向赛灵思器件添加配置存储器器件
    使用VivadoIDE右键单击SVF链中的赛灵思器件时,可以选择创建配置存储器器件,并将配置存储器器件与该器件关联。这样会打开“添加配置存储器器件(AddConfigurationMemoryDevice)”对话框,如下所示。选择相应的存储器器件,然后单击“OK”。......
  • vivado 向 SVF 目标添加器件
    向SVF目标添加器件创建SVF目标后,可向其中添加器件以定义SVFJTAG器件链配置。SVFJTAG器件链配置应与目标硬件链相匹配,以确保能正确执行SVF文件。使用VivadoIDE单击“+”按钮以向SVF链添加赛灵思器件或非赛灵思器件。单......
  • 行为和触发器
    目录什么是行为和触发器?行为和触发器的区别?什么是行为和触发器?监控一组逻辑,当条件满足时,自动执行一组响应逻辑。监控一组控件,当它们发生属性值变化,或发生了事件,亦或它们发生了更复杂的属性事件逻辑,然后操作一组其他控件。行为和触发器的区别?触发器分为监控逻辑Trigger和响应......
  • Jenkins设置定时触发器执行任务
     1.选中任务,选择配置/构建触发器,选择定时构建  2.填写定时器参数,格式说明如下,共五个参数,参数之间空格隔开,不需要填的直接*号即可。  此处d定时任务的格式遵循cron的语法(可以与cron的语法有轻微的差异)。具体格式,每行包含5个字段,依次为分钟、小时、日、月、星期几,并......
  • vivado通过eco修改网表加快调试
    在FPGA工程中,在调试过程中需要插入ila来验证设计的准确性,但一次验证不能达到设计的初衷,需要反复修改ila来定位问题,往往一个大工程编译、布线时间较长,反复定位问题非常耗费时间。xilinx系列的vivado16.4以上版本支持了类似ic设计的ECO功能。1、dcp文件在implement成功后,/xxx.runs......
  • vivado 硬件器件编程
    硬件器件编程当编程文件与硬件器件相关联后,即可在“硬件(Hardware)”窗口中右键单击器件并选择“器件编程(ProgramDevice)”菜单项来执行硬件器件编程。您也可以使用program_hw_deviceTcl命令。例如,要对JTAG链中的首个器件执行编程,请使用以下Tcl......
  • 在 Vivado 中执行远程调试
    在Vivado中执行远程调试远程调试需求可能在各种情况下出现。在产品原型设计阶段可能需要远程调试以便您在无法实地访问实验室的情况下对实验室中的设计进行调试,或者供您在组织内部共享资源。执行现场调试以诊断问题或者延长产品生命周期时也可能需要远程调试。......
  • openGauss 事件触发器
    事件触发器可获得性本特性自openGauss5.0.0版本开始引入。特性简介支持事件触发器,允许捕获DDL操作并做相应处理。客户价值典型使用场景是:通过事件触发器捕获DDL操作和目标对象,来实现数据同步。特性描述事件触发器支持捕获当前数据库下的ddl操作以及ddl操作的目标对象(事件......
  • 2024年3月28日-UE5-地图触发器,摄像机控制,后期盒子,关卡蓝图
    在全局蓝图里加一句简单的话测试下 然后选打印输入一句话 新建一个触发框 调整位置 然后改名 创建一个平面放到之前触发框的位置 选中关卡触发器,然后打开关卡蓝图然后右键点击,然后选第一个,为这个关卡触发器添加逻辑   当ACTOR进入触发器区域,输出前......
  • Xilinx ZYNQ 7000+Vivado2015.2系列(十五)AXI Timer 用户定时器中断控制LED
    前面的中断学习中我们学了按键,GPIO,Timer,是时候把它们整合到一起了。今天我们混合使用PS/PL部分的资源,建立一个比较大的系统。板子:zc702。实现功能如下:1.通过串口打印信息询问你要按SW5还是SW7;2.当正确的按键被按下,定时器启动,关闭ledDS23;3.当定时器溢出后触发中断,开启DS23,......