本文作者: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) 进行捕捉:
进入捕捉等候状态:
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:
需要注意的是,两条chain对应的jtag信号都会产生toggle动作,所以实际工程中,需要依靠不同的sel信号来区分并做对应的控制。
汽车电路图的一般规律
Intel年初将发布14nm十核Skylake-X处理器,价格得涨,没得商量!
创智成携多款重磅产品相约工博会
正是凭借在品牌向上的华丽转身 领途汽车成为后补贴时代的强者
极端的高频信号可实现每秒兆兆位的数据链路
如何在设计中例化和使用多个BSCANE2模块
不可不知的投影幕选购常识
有机硅生产厂家
Modbus RTU转Modbus TCP网关应用技术
智能包装必定会成为包装行业的主流趋势
思必驰通话降噪为英特尔大师挑战赛提供清晰的通话质量
苹果WWDC的传统更新项目,iOS也将迎来新一代的更新
人工智能在未来制造业中扮演什么角色
长亭科技专注技术创新 获2019 Fortress Cyber Security Award提名
Proteus :一起来了解PWM信号!
苹果在“双十一”期间销售额低于华为、小米
电感在DC-DC升压电路的工作原理
OpenAI图像检测工具曝光,AI生成的99%都能认出
ds18b20的C语言程序
武汉弘芯基于FinFET 先进逻辑工艺与晶圆级先进封装技术经验