cruelfox 发表于 2022-5-22 17:17

安路SparkRoad开发板测评(9) 片上SDRAM的使用,TD的调试功能

<p>  安路EG4S20这块FPGA是内置了SDRAM的,在有需求的情况下可以直接使用片上SDRAM,避免外接SDRAM占用许多引脚资源,省去了SDRAM布局布线的工作。在IP generator的选择对话框里,可以看到有SDRAM的IP.</p>

<p></p>

<p>&nbsp;</p>

<p>  感觉有IP会用起来方便很多,点进去,就有些失望了&hellip;&hellip;</p>

<p></p>

<p>  纯粹就是一块SDRAM,引脚和片外接一片SDRAM是一样的。IP没有控制器,所以只是省了分配FPGA管脚,使用方式和用片外的一样。</p>

<p>&nbsp;</p>

<p>  由于我没有写过操作SDRAM的逻辑,就用安路Demo里面的SDRAM_TEST来看一下。</p>

<p></p>

<p>  引用片上SDRAM的部分,用IP的形式,就不是把SDRAM的信号从顶层引出来了。片上的SDRAM数据位宽是32. 这个Demo里面有一个简单的SDRAM控制器,外部用状态机在操作控制器进行一些测试,数码管显示的数字在不断变化。</p>

<p>  不过控制器的接口没有注释不是一看就知道怎么用,要想和RISC-V CPU IP连起来用还要费点劲(只有通过RISC-V的外部总线连接,但是那个总线不支持等待状态,直接读SDRAM是不合适的),就算了。</p>

<p>&nbsp;</p>

<p>  那就用TD软件的调试功能,来查看一下SDRAM的信号吧。</p>

<p>  TD带了Chip probe和Chip watcher两个调试工具。</p>

<p>  Chip probe是什么功能?点开看</p>

<p></p>

<p>  它的意思是,可以把内部信号引到一个FPGA管脚上,而不需要整个再做综合。如果没有这个工具,我在调试FPGA的时候需要把一个内部模块的信号引出来(比如接示波器进行逻辑分析),就需要逐层改代码添加输出端口,然后分配一个IO口,重新综合。</p>

<p>  试一下,看SD_WE_N这个信号,结果,居然找不着?</p>

<p>  放弃了,随便看两个能看的吧,从全部列出当中选的。</p>

<p></p>

<p>&nbsp;</p>

<p>  点&ldquo;Check and save all changes&rdquo;之后,TD会运行流程,虽然不是把代码重新综合,布局布线可能还是重做了的,Bit码流重新生成了,要重新下载一次。</p>

<p>  把示波器接到B15, C11这两个管脚上,可以看到Chip probe指定了的信号。因为切换速度太快,好象是夹子探头响应跟不上。</p>

<p></p>

<p>&nbsp;</p>

<p>  Chip Watcher是TD带的另外一个工具,可以通过JTAG连接,在软件里面观察信号。</p>

<p></p>

<p>&nbsp;</p>

<p>  先添加信号,出来和Chip probe时一样的对话框,也有同样的问题,不是所有信号都有。我随便选了几个,加进去。</p>

<p></p>

<p>  还需要选择一个时钟,选择采样深度。</p>

<p>  然后TD上面提示要重新跑一遍流程了,chip watcher需要的逻辑会自动加进去。生成新的bit文件之后要重新下载,才能用chip watcher看信号。</p>

<p>&nbsp;</p>

<p>  下载后直接切到Data页,就可以查看了。抓取方式有单次和连续触发两种。</p>

<p></p>

<p>  不过,居然没有时间尺度的缩放控件?这么要看清楚也不方便,复杂一点的问题难搞定了。还有就是采样速度的问题,毕竟JTAG的传输速度太慢了。</p>

<p>&nbsp;</p>

<p>  总之,TD软件的Chip probe和Chip watcher功能为调试提供了一点便利,但不强大。聊胜于无,如果刚好用得着的话是有帮助的。</p>

<p>  另外撇除更能本身,TD软件的界面设计有很多不完善的地方,会影响操作效率。有坛友吐槽很多了,我就不说了。</p>

littleshrimp 发表于 2022-5-22 21:23

<p>安路的硬件上没发现什么问题,开发板设计的我觉得也还不错。软件方面十分拉夸,IDE像是业余人员开发的,手册写的很随意,官方提供的IP比较少,有的IP看起来也比较随意,整体应该是想到哪写到哪,没有统一标准参考。demo不知道和verimake什么关系,好像软件都是外包弄的一样。</p>
页: [1]
查看完整版本: 安路SparkRoad开发板测评(9) 片上SDRAM的使用,TD的调试功能