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

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

3天内不再提示

如何在设计中例化和使用多个BSCANE2模块

XILINX开发者社区 来源:XILINX开发者社区 作者: Ivy Guo 2022-11-30 10:30 次阅读

本文作者:AMD XILINX工程师 Ivy Guo。

本文对如何在一个工程里例化和使用多个BSCANE2模块做一个简单说明。

BSCANE2模块是FPGA的一种特殊硬核模块,用于联通外部JTAG引脚和内部逻辑,构建FPGA内部的用户扫描链。关于BSCANE2的用法, 有一个基于7系列器件的参考设计:
https://support.xilinx.com/s/article/1181110?language=zh_CN
在UltraScale/UltraScale+器件上, BSCANE2的用法类似。

UG570里面提到,UltraScale/UltraScale+的BSCANE2模块多达4个,可以在设计中全部例化,并用JTAG_CHAIN属性加以区分。之后,就可以用使用JTAG的指令USER1到USER4来对应操作了。

本文对如何在一个工程里例化和使用多个BSCANE2模块做一个简单说明。工程基于Xilinx的KCU105开发板,同时例化两个BSCANE2模块,并使用ILA去观测两个模块的信号。由于ILA的实现同样需要借助一个BSCANE2,由Vivado在综合后自动插入设计,所以其实是使用了全部四个中的三个BSCANE2。

工程文件请点击阅读原文查看并下载

这个设计简单利用KCU105板上4盏User LED灯GPIO_LED_2/3/4/5来展示一个counter最低4位的结果。BSCANE2_inst2对应User Scan Chain 2, BSCANE3_inst3对应User Scan Chain3。通过JTAG指令发送USERx指令,可以观测到对应的sel信号会置高有效。当选中User chain 2时,sel2有效,counter收到工作信号0101, counter随时钟信号递增;当选中User Chain 3时,counter收到工作信号1010, counter值递减操作。

调试步骤:

1. 打开Vivado,按照常规流程下载好bit和ltx文件

2. 由于调试需要进入JTAG模式,先关闭上个步骤正常/自动打开的target, 但此时FPGA已经处于工作状态(不要掉电),Tcl console输入:close_hw_target

3. 以JTAG调试的方式重新打开链:
open_hw_target -jtag_mode 1

4. 运行:
refresh_hw_device [lindex [get_hw_devices xcku040_0] 0]

看到ILA的界面。我们主要是对比观测可以起到控制作用的sel2和sel3,在Trigger中,将其设为B (Both Transitions) 进行捕捉:

9333539a-6fdd-11ed-8abf-dac502259ad0.png

进入捕捉等候状态:

9353b770-6fdd-11ed-8abf-dac502259ad0.png

5. 从BSDL文件中,查询到KU040对应的USER指令:

"USER2 (000011)," & -- Not available until after configuration
"USER3 (100010)," & -- Not available until after configuration

6. 选择USER Chain 2和Chain 3的指令分别如下;依次输入,可以看到LED灯增减方向会有变化。

scan_ir_hw_jtag 6 -tdi 03
scan_ir_hw_jtag 6 -tdi 22

7. 对应查看ILA波形,可以看到第一条指令USER2执行时,捕捉到的sel2:

937e3ce8-6fdd-11ed-8abf-dac502259ad0.png

需要注意的是,两条chain对应的JTAG信号都会产生toggle动作,所以实际工程中,需要依靠不同的sel信号来区分并做对应的控制。

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

    关注

    1625

    文章

    21663

    浏览量

    601670
  • 模块
    +关注

    关注

    7

    文章

    2666

    浏览量

    47331
  • Xilinx
    +关注

    关注

    71

    文章

    2163

    浏览量

    120971

原文标题:开发者分享|如何在设计中例化和使用多个 BSCANE2 模块

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CMU通道与普通GXB的差异比较

    :CMU通道使用时GXB配置本文主要比较了普通GXB和CMU GXB是的差异,大家在使用CMU通道时候必须按照图2进行配置,后面我们再详细讨论如何在用户逻辑
    发表于 12-03 16:04

    模块

    能不能分享个Verilog模块的教程?
    发表于 01-02 00:43

    说FPGA连载62:电子点菜单之FIFO说明

    模块,使用了3个FIFO,分别用于DDR2数据写入缓存和DDR2数据读出缓存。如图10.6所示,实际上,我们只需要
    发表于 12-26 17:22

    模块错误

    SW[1]这样子错误,请问下,不能这样的吗?在顶层模块是input[4]sw;这样定义的,然后在底层
    发表于 04-17 17:07

    在verilog调用VHDL模块

    模块化形式就可以了。下面举个简单的例子来说明如何在verilog模块
    发表于 07-03 12:58

    在verilog调用VHDL模块

    模块化形式就可以了。下面举个简单的例子来说明如何在verilog模块
    发表于 07-09 01:14

    何在RTC程序设置多个报警?

    你好如何在RTC程序设置多个报警?PSoC 4器件1.首次报警[日期和时间]2.第二报警[日期和时间]3.3报警[日期和时间]如果第一个闹钟被激活[日期和时间],然后打开LED 30
    发表于 09-18 13:13

    基于7系列的ISE版本的参考设计

      BSCANE2 模块是 FPGA 的一个特殊硬核模块,是联通外部 JTAG 管脚和 FPGA 内部用户逻辑的一个接口。BSCANE2
    发表于 01-07 17:19

    何在UltraScale+设计中使用UltraRAM模块

    了解如何在UltraScale +设计包含新的UltraRAM模块。 该视频演示了如何在UltraScale + FPGA和MPSoC中使用UltraRAM,包括新的Xilinx参
    的头像 发表于 11-22 05:50 8047次阅读

    BSCANE2模块是FPGA的一个特殊硬核模块

    界面上直接显示和控制。BSCANE2 其实就是实现这一内外沟通的关键核心模块,这部分实现对于用户来说是透明的。 那么如何利用BSCANE2 模块,构建用户自己的专用内部扫描链/功能链呢
    的头像 发表于 02-08 14:23 2981次阅读

    开发者分享 | 如何在设计里并使用BSCANE2模块 (一)

    界面上直接显示和控制。BSCANE2 其实就是实现这一内外沟通的关键核心模块,这部分实现对于用户来说是透明的。 那么如何利用BSCANE2 模块,构建用户自己的专用内部扫描链/功能链呢
    发表于 03-01 09:41 12次下载
    开发者分享 | 如<b class='flag-5'>何在</b>设计里<b class='flag-5'>例</b><b class='flag-5'>化</b>并使用<b class='flag-5'>BSCANE2</b><b class='flag-5'>模块</b> (一)

    在SpinalHDL如何优雅地端口?

    在编写Verilog代码时最痛苦的事情便是模块时端口的连接,这时候的你我便成了连线工程师,本节就在SpinalHDL如何像软件调用方法那样优雅地
    的头像 发表于 06-16 17:19 1921次阅读

    何在arduino中使用I2c LCD模块

    电子发烧友网站提供《如何在arduino中使用I2c LCD模块.zip》资料免费下载
    发表于 10-26 14:29 1次下载
    如<b class='flag-5'>何在</b>arduino中使用I<b class='flag-5'>2</b>c LCD<b class='flag-5'>模块</b>

    FPGA学习-Verilog说明

    Verilog 说明 1.什么是模块?为什么要
    的头像 发表于 12-12 09:50 4002次阅读

    仿真时为什么顶层不

    示例,在顶层top_tb化了两个module(h1和h2),化名分别是top_tb和u2
    的头像 发表于 04-28 10:28 1295次阅读
    仿真时为什么顶层不<b class='flag-5'>例</b><b class='flag-5'>化</b>