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

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

3天内不再提示

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

电子设计 来源:电子设计 作者:电子设计 2022-02-08 14:23 次阅读

本文转载自:Xilinx技术社区微信公众号

BSCANE2 模块是 FPGA 中的一个特殊硬核模块,是联通外部 JTAG 管脚和 FPGA 内部用户逻辑的一个接口。BSCANE2 的定义和端口描述,可以在对应器件的 Libraries Guide中找到。

比如7系列的定义可以参考 UG768,第4章。

其基本功能介绍,请参考 UG470, 第10章。

在 FPGA 中,JTAG 管脚除了负责原始的芯片测试功能 (IEEE1149.1),还主要用于下载和调试,比如ILA就是通过 JTAG 接口捕捉内部逻辑信号,送回 ISE 或 Vivado,并在界面上直接显示和控制。BSCANE2 其实就是实现这一内外沟通的关键核心模块,这部分实现对于用户来说是透明的。

那么如何利用BSCANE2 模块,构建用户自己的专用内部扫描链/功能链呢?

本文提供一个基于7系列的 ISE 版本的参考设计。通过 FPGA 的 JTAG 管脚,用户可以直接控制内部的逻辑实现自定义的功能。

UltraScale/UltraScale+ 的 BSCANE2 模块用法和7系列基本相同。

设计说明:

这是一个关于如何使用 BSCANE2 模块的简单实例。基于Xilinx的开发板 KC705,该设计例化了一个 BSCANE2 模块,由 USER1 命令控制。通过 JTAG 接口发送标准和自定义的指令,可以实现:

1. 从运行的设计中读取32位的用户ID;

2. 从 JTAG 接口输入控制 LED灯显示的字符串;

3. 从 JTAG 口向 BRAM 写入32位数据;

4. 从 BRAM 读出32位数据;

5. 向 BRAM 中一次写入1024 bits(可用于 EDK 设计中 bootloader 的修改,升级等)。

指令定义:

该设计的 shift register 定位为33位。其中第32位(从0开始计数)用于区分JTAG发送的是指令还是数据。Bit[32] 为1,则送入的为指令;Bit[32]为0,则送入的为指令对应的数据。其他的 JTAG 寄存器均为 32 位。

33'h100000241 用户ID读取;

33'h100000242 LED 灯显示控制;

33'h100000243 向 BRAM 写入32位数据;

33'h100000244 从 BRAM 读取32位数据;

33'h100000245 向 BRAM 写入1024位数据。

设计运行实现:

SVF文件可以以可读形式清楚的描述、记录 JTAG 链的动作,并可以在 ISE/iMPACT或Vivado/HW Manager 中直接执行。本设计使用 SVF 来实现以下功能:

1. 发送 USER1指令‘02’,来选择和使能用户自定义的 JTAG 链;

2. 发送指令‘100000241’ 读取用户定义ID;

3. 发送指令‘100000242’获取一个二进制码,并送入7位 LED 灯显示;

4. 使用指令‘100000243’向BRAM中每次写入一个32位数据;然后使用指令‘100000244’将写入的数据逐个读出来。

5. 使用指令‘100000245’向 BRAM 写入1024位数据;如果需要写入的数据大于1024,则多次执行该指令即可。

审核编辑:何安

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

    关注

    7

    文章

    2654

    浏览量

    47274
收藏 人收藏

    评论

    相关推荐

    三菱PLC编程软件FX2N PLC怎么添加模块

    三菱电机的FX2N系列PLC是种小型、高性能的可编程逻辑控制器,广泛应用于工业自动化领域。FX2N PLC支持多种扩展模块,包括输入/输出模块
    的头像 发表于 06-20 10:18 2229次阅读

    蓝牙模块、WiFi模块等无线通信模块使用规范

    并避免可能的安全隐患,我们必须遵循定的使用规范。接下来,我们将详细讨论这些规范。  使用无线通信模块前的硬件准备:  般的无线通信模块都是用UART通讯,UART有两
    的头像 发表于 05-27 14:07 735次阅读
    蓝牙<b class='flag-5'>模块</b>、WiFi<b class='flag-5'>模块</b>等无线通信<b class='flag-5'>模块</b>使用规范

    mpo-lc模块是什么模块

    。MPO-LC模块通常用于高密度光纤配线架、预端模块和光纤跳线等应用。 具体来说,MPO-LC预端接模块盒是
    的头像 发表于 05-13 10:12 1181次阅读

    基于FPGA的常见的图像算法模块总结

    意在给大家补充下基于FPGA的图像算法基础,于是讲解了下常见的图像算法模块,经过个人的总结,将知识点分布如下所示。
    的头像 发表于 04-28 11:45 499次阅读
    基于<b class='flag-5'>FPGA</b>的常见的图像算法<b class='flag-5'>模块</b>总结

    DC电源模块的设计与制造流程

    BOSHIDA  DC电源模块的设计与制造流程 DC电源模块种用于将交流电转换为直流电的设备。它广泛应用于各种电子设备,如电子产品、工业仪器、电视等。下面是DC电源
    的头像 发表于 03-28 13:21 445次阅读
    DC电源<b class='flag-5'>模块</b>的设计与制造流程

    TSMaster 序列发送模块在汽车开发测试的应用

    。本文重点和大家分享下关于TSMaster序列发送模块的使用。本文关键字:序列发送、无代码发送目录Catalog1.序列发送模块的使用方法2
    的头像 发表于 02-19 14:00 600次阅读
    TSMaster 序列发送<b class='flag-5'>模块</b>在汽车开发测试<b class='flag-5'>中</b>的应用

    【基于Lattice MXO2的小脚丫FPGA核心板】工程创建和固件烧录

    功能块(硬核):路SPI、路定时器、2路I2C 支持DDR/DDR2/LPDDR存储器; 1
    发表于 01-31 21:01

    什么是光模块的浪涌测试?

    什么是光模块的浪涌测试? 光模块的浪涌测试是种验证光模块抗击浪涌电压能力的测试方法。随着光
    的头像 发表于 01-31 14:24 584次阅读

    电源模块和伺服模块维修实例

    堆坏了的AXV300系统模块2电源模块SM24080-BX、2
    的头像 发表于 01-04 11:02 940次阅读
    电源<b class='flag-5'>模块</b>和伺服<b class='flag-5'>模块</b>维修实例

    模块是成对使用的吗?光模块与转发器的区别

    模块主要负责将电信号转换为光信号并传输到光纤,而接收光模块则负责将光信号转换为电信号并传输到接收设备。 因此,光模块
    的头像 发表于 12-27 10:56 1515次阅读

    FPGA优质开源模块-SRIO IP核的使用

    本文介绍FPGA常用模块:SRIO(Serial RapidIO)。SRIO协议是种高速串行通信协议,在我参与的项目中主要是用于
    的头像 发表于 12-12 09:19 1979次阅读
    <b class='flag-5'>FPGA</b>优质开源<b class='flag-5'>模块</b>-SRIO IP核的使用

    MMU包含两模块是什么

    模块 MMU包含两模块TLB(Translation Lookaside Buffer)和TWU(Table Walk Unit)。 TLB是
    的头像 发表于 11-26 15:40 577次阅读
    MMU包含两<b class='flag-5'>个</b><b class='flag-5'>模块</b>是什么

    python如何import自己的模块

    。 首先,让我们看简单的例子。假设我们有名为 my_module 的模块,它位于当前工作目录的根目录
    的头像 发表于 11-22 14:57 2782次阅读

    python如何导入模块

    Python是种强大的编程语言,它支持模块化编程,使得开发者可以将代码分解为可重用且独立的模块模块
    的头像 发表于 11-22 14:46 862次阅读

    pycharmmath模块选哪个

    在PyCharm,常用的math模块是Python标准库模块,用于执行数学运算和计算常
    的头像 发表于 11-22 11:06 892次阅读