本文作者:赛灵思工程师 Ivy Guo
SEM IP在上板调试过程中有时会出现一些错误,比如无法执行IP的插错纠错功能,或者自身的初始化无法完成等等,需要对SEM IP本身进行调试定位。我们最推荐客户去查看IP从上电开始打印出来的串口信息。这里面的log不仅包含了IP从初始化开始经历的一系列状态,还能清楚地显示出一些事件的时间戳。
但是很多客户反应,实际调试的硬件板上没有连接串口,没办法查看log,只能靠抓取SEM IP Status Interface的 status_*信号,通过其可以查看 IP有无心跳,或者IP是否进入了正确的状态等。困难的是,很多问题需要同时查看所有的status_*信号组合,并且综合分析status_*的历史状态以及当前状态,复杂且需要较多的调试经验。
解决方法其实很简单,我们只要在设计里面添加一个FIFO,将SEM IP Monitor Interface输出的ASCII字符 log全部存入FIFO。需要定位的时候,用ILA+VIO控制读出来并直接显示就行了。
这里以VCU118 (VU9P) 开发板为例说明, 步骤如下:
1. 生成适配VCU118开发板的SEM IP example design。
2. 按照开发板的构造, 按需修改icap_clk的频率及管脚位置。也可以添加其他想要查看的信号。比如,可以绑定6个status_*信号到LED管脚上方便查看。
3. 顶层引入FIFO读写时钟clk300p/n (300MHz)。
XDC里面做好相应的约束:
4. 生成并添加用于存储log的FIFO,读取显示FIFO字符的ILA和用于控制的VIO。
至于FIFO的大小,SEM IP 正常情况下除了最开始会打印出初始化过程和基本信息,进入工作状态Observation后就基本没有输出了。只有发生了SEU事件或者其他异常,才会在串口推送出对应的报告。由于SEU事件是极为偶发的罕见事件,报告字符也不会多。所以这里设定500 bytes已经能满足绝大多数应用需求:
更多步骤,请点击阅读原文移步赛灵思中文博客如何利用FIFO+ILA/VIO抓取SEM IP的串口log
原文标题:开发者分享|如何利用FIFO+ILA/VIO抓取SEM IP的串口log
文章出处:【微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !