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

    关注

    1603

    文章

    21331

    浏览量

    593309
  • 模块
    +关注

    关注

    7

    文章

    2486

    浏览量

    46561
  • Xilinx
    +关注

    关注

    70

    文章

    2121

    浏览量

    119395

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

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

收藏 人收藏

    评论

    相关推荐

    多个模块共用inout总线

    各位大大,请问下多个模块共用inout总线如何处理,主要是顶层的如何处理,inout类型只能定义为wire,无法定义为reg,因此不能在always
    发表于 05-07 18:09

    调用IP核时,多个通道时,软件自己产生的文件无法综合

    当我调用triple speed ethernet或10G-BaseR时,一个口时可以,我想同时用一个IP多个端口,这时软件生成的I
    发表于 11-04 14:23

    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

    何在PSoC板上调试多个程序

    你好,我正在使用PSoC4BLE,我想知道我们如何在PSoC板上调试多个程序。如何在PSOC创建者添加日志文件。
    发表于 09-20 14:22

    请问如何在Vivado项目中实例hdl系统生成器输出的多个实例》

    嗨,如何在Vivado项目中实例hdl系统生成器输出的多个实例?在vivado项目中很容易实例一个hdl系统生成器输出。当我想将另一个实例实例
    发表于 07-31 10:38

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

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

    何在esp8266制作多个html页面?

    我一直在网上搜索如何在 esp8266 制作多个 html 页面,到目前为止我迷路了。有人可以帮我指出正确的方向吗?
    发表于 02-22 07:49

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

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

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

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