PlanAhead与ChipScope
本节将简单介绍在PlanAhead工具中如何应用ChipScope核和分析工具进行逻辑调试与验证。先通过一个向导将ChipScope核插入设计中,选择待测试的网线,并进行例化、连接和综合,最后,导入布局和时序报告,产生位流文件,用ChipScope分析器进行验证。
1. 打开项目。
(1) 运行PlanAhead,在目录“PlanAhead_Tutorial\Projects\project_cpu_hdl”下找到“Project_cpu_hdl.ppr”项目并打开,PlanAhead窗口显示如图10-86所示。
(2) 将项目存储为另外一个项目,以确保原始项目不被损坏。运行【File】→【Save Project as】,打开【Save Project As】对话框,按图10-87中所示设置项目名和项目存储路径。
2. 应用【Set Up ChipScope】向导。
(1) 【Set Up ChipScope】向导引导设计者在综合后网表中插入ChipScope的ICON核和ILA核,并选择待测网线,设置插入的ChipScope核的数目,然后例化这些核,最后将所选网线和核连接起来。
(2) 运行【Tools】→【Set Up ChipScope】向导,将wbArbEngine/m0/wb*网线连接到ChipScope核。如图10-88所示。
(3) 单击【Next】,出现图10-89所示的【Specify Nets to Debug】窗口。
(4) 单击【Add/Remove Nets】按钮,出现图10-90所示【Add/Remove Nets】对话框,按照图中所示设置查找匹配条件为wbArbEngine/m0/wb_*,单击【Find】按钮,查找结果会显示在【Find Results】中。
(5) 单击按钮,将查找到的网线选为待测试网络,如图10-91所示。单击【OK】退出网线设置对话框。
(6) 单击【OK】退出网线设置对话框。这时的【Specify Nets to Debug】对话框显示如图10-92所示,可以看到,共加入了39个需要测试的网线。单击【Next】按钮,出现【Set Up ChipScope Summary】对话框,单击【Finish】,在PlanAhead的【Netlist】窗口可以看到添加了ChipScope核后增加了csdebugcore_0_0、csdebugcore_0_1和u_icon,如图10-93所示。
3. 修改ChipScope 核和触发信号的属性。
如图10-94 所示,在【ChipScope】视图选择一组触发信号TRIG0,在【Debug Port Properties】中选择【Options】选项卡,可以改变match_type 属性,选择不同的触发条件。
如图10-95 所示,在【ChipScope】视图选择ChipScope 的ILA 核,在【Debug Core Properties】中选择【Options】选项卡,在这里可以修改该核的属性,例如采样深度和采样时钟边沿。
4. 实现ChipScope 核。
在图10-96 所示【ChipScope】视窗选择一个ILA 核,单击按钮,实现ChipScope 调试核【Implement ChipScope Debug Cores】,这个命令调用COREGen 工具,将黑盒子ChipScope 调试核转换成综合后ChipScope 核,然后就可以对其进行翻译、映射、布局布线。
另外, 读者可以在【ChipScope 】窗口选择一个ILA 核, 单击鼠标右键选择【Schematic】,可以看到ChipScope 核的原理图模块,如图10-97 所示。
在【Schematic】窗口双击CLK和TRIG0引脚,再单击按钮,重新生成原理图,如图10-98所示。可以看到,TRIG0连接到了设计中的cpuEngine的地址端,这些信号由cpuClk时钟控制。
需要注意的是,在设计中插入ChipScope核,会影响实现结果。因此建议将触发器的输出作为测试点,并且使用区域约束(在PlanAhead中用Pblock),将ChipScope核与关键路径约束在一起,使ChipScope核对时序的影响降至最小。
5. 实现设计。
(1) 单击工具栏的运行实现图标,出现【Run Implementation】对话框,如图10-99所示,按图中所示设置各参数。
(2) 单击【OK】按钮,【Design Runs】窗口会增加impl_1 进程,如图10-100 所示,该实现进程会简要显示图10-99 所示的设置,并且会显示出该实现的当前状态及进度信息。
(3) 运行结束后,双击impl_1 进程,弹出【Import Implementation Results】对话框,提示是否导入impl_1 的布局和时序结果,单击【OK】按钮,impl_1 的实现结果会被反标注到设计中。如图10-101 所示。
(4) 单击图10-101 中的【OK】按钮,会弹出一个确认对话框,如图10-102,单击【确定】按钮,impl_1 的实现结果会被反标注到设计中。同时,图10-103 所示【Device】窗口会显示这一实现结果。
6. 产生.bit位流文件。
在【Design Run】窗口选中impl_1,在右键菜单中选择运行【Run Bitgen】命令,弹出图10-104所示对话框,单击【OK】按钮,生成.bit文件。
7. 启动ChipScope分析仪。
在【Design Run】窗口选中impl_1,在右键菜单中选择运行【Launch ChipScope Analyzer】命令,弹出图10-105所示对话框,选择impl_1(如果设计中运行产生了多个实现结果,这里会显示多个实现),单击【OK】启动ChipScope分析器。使用ChipScope分析仪的步骤请参考相关章节,这里不再赘述。
10.8 PlanAhead导入导出功能
在PlanAhead的【File】菜单栏有一些导入导出功能。设计者可以导入I/O引脚文件、约束文件、位置约束文件、时序文件以及更新网表。设计者可以将PlanAhead的实现结果,通过运行【Export Netlist…】导出EDIF格式的网表文件,运行【Export Constraints…】导出相关的约束文件,然后将这两个文件导入ISE中进行布局布线等后续操作。还可以导出Pblock文件、IP文件、I/O端口文件等。
10.9 小结
本章重点介绍了如何在PlanAhead中进行RTL源代码开发与分析,如何进行I/O规划,如何进行时序分析,如何进行布局规划,以及在PlanAhead中如何使用ChipScope逻辑分析工具。在PlanAhead中导入综合网表、约束文件以及ISE的布局布线结果的操作流程与上述介绍的过程类似,这里不再赘述。有兴趣的读者可以参考Xilinx相关的设计文档。
文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。
原文链接:reborn.blog.csdn.net/article/details/80354757
- 点赞
- 收藏
- 关注作者
评论(0)