对传统的非dfx设计进行调试时,一个重要环节是插入ila(integrated logic analyzer,集成逻辑分析仪)。可以采用如下图所示的两种方式。方式1是实例化方式,即在rtl代码或者bd中实例化ila。如果图中红色字体“instantiation”所示。方式2是网表插入方式,即在综合后的网表中插入ila。
不难看出方式1是在综合之前完成,而方式2则是在综合之后完成。方式1需要手工例化ila,同时将待测网线连接到ila的测试端口,这个过程稍显繁琐,尤其是待测信号需要穿越多个层次到达ila所在层次时,但也确保了待测信号能够百分之百被观测到(不会被工具优化掉)。方式2更为自动化,在综合后的网表中找到待测信号将其标记为debug(本质上是将其属性mark_debug设置为true)。但有可能出现待测信号名字发生改变或者彻底被优化掉而无法找到的情形。
对于dfx设计,那么就只能使用实例化方式插入ila。但即便如此,仍有一些特殊之处。为便于说明,我们看一个实际案例。这个dfx设计中的rp(reconfigurable partition)为math,该rp下有两个rm(reconfigurablemodule),分别为add和mult,如下图所示。
每个rm中均包含一个ila。这个ila无论参数配置是否一致,都要分别调用ila ip core,单独例化。这是dfx设计所要求的,即每个ip都要以唯一的方式存在于rm中。
到这里我们看到的例化ila的方式与传统的非dfx设计并没有什么不同。但是在每个rm的顶层,需要添加12个bscan端口,如下图所示。这12个端口最终会与dbg_hub相连。这里要求端口名字必须与图中红色方框内的名字完全一致,如果不一致,则要通过属性x_interface_info设定。
在整个设计的顶层,对rm进行实例化时,这12个端口的端口映射为空,如下图所示,如果使用的是vhdl,端口映射内填写open。
在综合阶段生成的网表中,dbg_hub是以黑盒子的形式存在,在设计顶层和rm内分别有一个dbg_hub,如下图所示。dbg_hub与ila的连接关系由工具自动处理,无需人工干预。
实际上,在opt_design阶段,vivado会自动生成dbg_hub,这可在runme.log文件中查看到,如下图所示。
打开布线后的网表文件,执行命令get_debug_cores,可以看到当前网表中的ila、vio和dbg_hub。如下图所示,设计顶层和rm中各有一个dbg_hub。
如果某个rm中并没有使用ila或vio,而其他rm中至少有一个使用了ila或vio,那么所有的rm都要列出上文提到的12个bscan端口,以确保所有rm接口的一致性。
便携手持式三维激光扫描仪在土方体积测量中的应用
我国机器人产业规模保持20%以上增速,工业机器人精密减速机需求巨大
cd4066中文资料汇总(cd4066引脚图功能_内部结构参数及应用电路)
感应焊接的优点,高频焊接过程中应该注意哪些问题?
小屏手机小米6和大屏手机iPhone7 plus,你喜欢谁
如何对传统的非DFX设计进行调试呢?
Win10避免系统变慢的方法是什么
日本限制韩国半导体,三星拉响警报!
纳米晶材料应用于逆变电源的优点与问题
Digi发布业界首款极简单易用的可编程 ZigBee模块
四维图新提出车路云一体化发展方向
百度将与广州共同打造人工智能应用新高地
高速PCB设计释疑
深耕散热风扇30余载,台湾三巨电机坚持“以质取胜”
MOSFET理解与应用 如何提高放大器的Robust
传字节跳动PICO业务将裁上千名员工 组织架构调整方案曝光
AR光波导技术如何赋能元宇宙发展
触摸屏控制厂商:厦门联创微电子股份有限公司简介
被罚88亿美元!GDPR生效三天,科技公司灾难来了
新唐科技N32901R1DN解码器介绍