‘壹’ 如何在线调试 MicroSemi FPGA :Synospsy Identify 简明使用指南
MicroSemi的全球客户支持服务表现出色,用户在官网提问后,会有专门的工程师通过邮件提供解决问题的帮助。相比之下,某X家的论坛发帖效率较低。使用企业邮箱提问即可,无需提供购买凭证。
SignalTap、Chipscope和Hardware debug Manager是FPGA工程师熟知的在线调试组件。它们能够实时分析芯片信号状态,帮助工程师定位问题。然而,Synospsy Identify也值得被提及,尤其是在使用相对小众的MicroSemi FPGA品牌时。MicroSemi的集成开发环境Libero使用的是Synospsy的synplify和Identify,后者作为调试组件。
本文将结合Identify文档,解析在线逻辑分析调试组件的工作原理、部署步骤以及在MicroSemi平台的使用方法。
Debug系统由上位机(即运行调试环境的计算机)、FPGA设备以及连接两者的JTAG线缆构成。Identify系列软件在上位机运行,FPGA设备上运行用户逻辑。小的黑色方块代表在逻辑中插入的逻辑信号分析核IICE。逻辑分析核作为信号采集器,捕捉信号并传输至运行Identify软件的上位机。上位机和FPGA通过JTAG线缆连接,软件中可查看捕捉到的信号及其波形。
典型设计流程如左图所示,包括编写Verilog代码、综合、布局布线,最终生成的比特流编程到器件中。若要使用在线逻辑分析仪进行调试,则需在原有流程中增加一步,即在综合前插入逻辑分析核。在将含有逻辑分析核的比特流下载到设备后,用户可以在电脑上通过软件进行逻辑分析调试。
在其他平台如Xilinx的Vivado环境中,也可以在综合后插入逻辑分析核。
Identify调试组件包括三项,其中两项为软件,一项为用户逻辑中插入的IP核。
IP核IICE用于捕获信号,插入用户逻辑中,采集其他用户逻辑的信号,并将采集的信号返回至上位机软件。IICE由控制器和采集器组成,采集器负责信号采集,控制器通过JTAG与上位机通信。IICE内部有信号缓存RAM,支持更多信号及更深采样深度。使用IICE时,会消耗板上RAM资源。
另外两项是软件Identify Instrumentor,用于分析HDL代码,选择可观察信号并设置采样特性。工具根据用户设定及观察信号数量自动生成对应的IICE采集核并插入设计中。Identify Debugger是另一项软件组件,用于在编程芯片后观察设置的信号,在程序运行期间进行调试。
要在Microsemi环境中进行在线调试,大致分为两个步骤:instrument和debug。
在instrument阶段,使用Identify Instrumentor在当前HDL代码基础上插入调试核。在MicroSemi的开发环境Libero中,完成代码和工程开发后,在综合阶段通过右侧栏选择新增Identify Implementation,得到带有放大镜的图标。右键带有放大镜的图标,选择Identify Instrumentor打开软件。
设置待采集的信号、采样时钟及采样深度等属性后,保存设置并关闭软件,返回Synplify界面。建议删除除正在使用的implementation之外的选项,并保存工程。
下载比特流后,在左侧Flow界面选择Identify Debugger,进行强制触发捕获当前波形或设置触发条件以捕获特定时刻的波形。
本文介绍了MicroSemi平台上的在线调试工具及其使用流程。MicroSemi相对X/I品牌较为小众,本文旨在提供基本指导。欢迎有经验的用户交流,未来可能发布更多实用技巧。如有读者感兴趣,可以提供更多图片教程。
‘贰’ 关于chipscope的问题
If you use the XST synthesis tool, set the Keep Hierarchy option to Yes or Soft to preserve the design hierarchy and prevent the XST tool from optimizing across all levels of hierarchy in your design(综合后保设计名字不被优化或者改变). Using the Keep Hierarchy option preserves the names of nets and other recognizable components ring the core insertion stage of the flow. If you do not use the Keep Hierarchy option, some of your nets and/or components can be combined with other logic into new components or otherwise optimized away. To keep the design hierarchy:
a. Select Edit → Preferences to bring up the Preferences dialog box.
b. Select the Processes tab.
c. Set the Property Display Level combo box dropdown to Advanced and click OK.
d. Right-click on the Synthesize process and select the Properties... option.
e. Make sure the Keep Hierarchy option is set to Yes or Soft and click OK.