项目日志3——AD调试(在线调试)
0赞上一篇博文提到了简单的AD板级调试方法,主要的 方法是通过内部设计一个串口通信模块,将采样到的AD数据发送到PC机进行观察验证。之所 以采样这样的方式和特权同学过去的设计使用的器件都相对比较老(军品较多),而无法支持开发工具提供的各种先进的嵌入式调试手段有关,习惯了用这种比较土 的调试方法。
但是我们需要意识到,可以有很多更加便当的方法来支持这种芯片级的调试和验证。下面我们就来讨论其 中的一些方法。特权同学过去也曾撰文专门讨论Quartus II工具内嵌的一些在系统设计调试方法。即《基于Quartus II的在线调试方法》一文提出的5种调试方法,只不过没有 详细展开讨论。
l SignalProbe
l SignalTap II Embedded Logic Analyzer
l Logic Analyzer Interface
l In-System Memory Content Editor
l In-System Sources and Probes
对于像这个项目中的AD初步调试,无非是要读取模块中采集到的AD数据,特权同学第一 个想到的方法是用In-System Memory and Constants这个方法。之前也没有尝试过这 个方法,于是决定现在目前手头的SF-EP2C(Cyclone II)板 子上做个验证,正好上面也有个AD片子。不过例化了一个1port-RAM后,开 启Allow In-System Memory Content Editor to capture and update content选项一编译就出现error。查了不少官方 文档,Cyclone II应该是支持的,但是至今特权同学还没有准确找出问题出在哪里了。想通过此方式查看器件中的数据无非 只能是例化一个RAM,然后在Quartus II的In-System Memory Content Editor中捕获并查看。此外,特权同学在另一个DA实例中例化了一个LPM_CONSTANT,在In-System Memory Content Editor中对8bit的constant进行更改,就可以轻易的改变芯片中与其接口的DA输出转换模拟量,并 且准确无误。In-System Memory Content Editor的窗口如图1所示。
图1
In-System Sources and Probes方式也是相当的实用,Altera工 具用其作为调试手段的一个基本的目的应该是要达到在芯片级别上做类似于纯粹软件仿真的效果,就像跑DSP有 了仿真器。因为In-System Sources and Probes既可以关联到FPGA的输入管脚,改变它的输入值,也可以关联到FPGA的 输出管脚,观察它的结果。其基本的原理框图可以如图2所示。
图2
用In-System Sources and Probes方式的调试界面如图3所 示,这个实例中只是将AD采样的结果连接到了JTGA的 输出Probes上,因此可以在这里方便的观察FPGA内 的寄存器的变化,甚至是可以实时的观察其变化,基本上用起来和外部接一个示波器或逻辑分析仪没有区别了。用起来相当的方便,只是一个简单例化连接映射,重 新编译后就可以使用了。
图3
参考:
《Quartus II Handbook, Volume 3:Section IV. In-System Design Debugging》
《基于Quartus II的在线调试方法》:http://blog.chinaaet.com/detail/8669.html