Vivado高效设计案例分享大赛---8. PS与PL结合的硬件调试
 
- UID
- 1023229
- 来自
- 中国
|

Vivado高效设计案例分享大赛---8. PS与PL结合的硬件调试
前面我们提到了可以用例化ILA的IP核的办法来调用ILA进行在线的逻辑分析,这个方法还是有点稍显繁琐。在PS与PL相结合的设计中,Vivado IP Integrator是它们沟通的核心,需要更加有效地利用集成化的设计环境进行硬件在线调试,所以我们再完整地体验一下这个高效的设计过程。 首先在Vivado中打开或者新建一个RTL工作,添加PS和一些AXI GPIO、AXI内存控制器的IP,生成相关的设计文件,然后对工程进行综合,不清楚此过程的网友请参考http://xilinx.eetrend.com/blog/4669。 综合之后,打开综合后的视图,然后切换Vivado的视图为Debug模式,如图1所示。[[wysiwyg_imageupload:1078:]]图1 切换为调试模式 接下来的一步我们可以不用手动例化ILA的IP了,而是直接启动调试向导进行信号的关联,如图2所示。[[wysiwyg_imageupload:1079:]]图2 调试向导 在调试向导中,我们需要为没有分配时钟域的网表进行手动分配时钟域,如图3所示。[[wysiwyg_imageupload:1080:]]图3 分配时钟域在MicroZed中,在不使用扩展卡的情况下PL部分没有直接提供的外部时钟,所以我们使用PS提供的FCLK0时钟信号,如图4所示。在不需要PL部分进行手动编程的情况下,可以直接让Vivado去处理FCLK0的buf等问题,我们只需要选择它就可以了,如图4所示。[[wysiwyg_imageupload:1081:]]图4 选择时钟信号然后配置硬件调试内核的触发与捕获模式,如图5所示。[[wysiwyg_imageupload:1082:]]图5 配置ILA的触发与捕获模式 向导配置完成之后,被使用的ILA已经出现了网表列表里的IP里了,如图6所示。[[wysiwyg_imageupload:1083:]]图6 例化之后的ILA接下来进行布局布线、实现和产生比特流等工作,并把硬件配置导出到SDK中,在打开的SDK中新建一个Application Project,不清楚此流程的网友请参考http://xilinx.eetrend.com/blog/4680;在这里我们新建的是外设测试的例子。然后配置JTAG和烧写FPGA,如图7所示。[[wysiwyg_imageupload:1084:]]图7 配置JTAG与烧写PL然后新建C/C++的调试程序,如图8所示。[[wysiwyg_imageupload:1085:]]图8 新建调试程序配置完成之后点击图8中的Debug,此时调试窗口被打开。在外设读写的程序之前我们插入一个断点,如图9所示。插入断点是为了让我们可以手动控制程序的执行流程,从而看出ILA调试的效果。[[wysiwyg_imageupload:1086:]]图9 插入断点然后回到Vivado,打开硬件管理器并连接ZYNQ,不清楚此过程的网友请参考http://xilinx.eetrend.com/blog/6067。然后观察PL部分中的ILA内核,已经是空闲状态了,如图10所示。[[wysiwyg_imageupload:1087:]]图10 ILA为空闲状态此时可以尝试运行一下ILA的触发,如图11所示。[[wysiwyg_imageupload:1088:]]图11 触发按钮在这个例子里,在PS对外设进行读写时,使用有效信号进行ILA的触发,所以在ILA的配置里,使用这个信号做为触发信号,并对其进行配置,如图12所示。[[wysiwyg_imageupload:1089:]]图12 配置ILA触发信号然后再点击图11中的触发按钮,可以看到ILA已经变为等待状态了,如图13所示。[[wysiwyg_imageupload:1090:]]图13 ILA等待状态然后我们回到SDK,继续运行程序,如图14所示。[[wysiwyg_imageupload:1091:]]图14 SDK中继续执行程序 此时读写有效信号发生状态改变,ILA被触发,我们可以看到ILA分析的结果了,如图15所示。目前的Vivado Logic Analyzer还没有显示为analog模式的功能,这点上还需要向ChipScope学习啊。[[wysiwyg_imageupload:1092:]]图15 ILA分析结果 |
|
|
|
|
|