PlanAhead与ChipScope

举报
李锐博恩 发表于 2021/07/15 08:18:12 2021/07/15
【摘要】 本节将简单介绍在PlanAhead工具中如何应用ChipScope核和分析工具进行逻辑调试与验证。先通过一个向导将ChipScope核插入设计中,选择待测试的网线,并进行例化、连接和综合,最后,导入布局和时序报告,产生位流文件,用ChipScope分析器进行验证。 1. 打开项目。 (1) 运行PlanAhead,在目录“PlanAhead_Tutorial\Projects...

本节将简单介绍在PlanAhead工具中如何应用ChipScope核和分析工具进行逻辑调试与验证。先通过一个向导将ChipScope核插入设计中,选择待测试的网线,并进行例化、连接和综合,最后,导入布局和时序报告,产生位流文件,用ChipScope分析器进行验证。

1. 打开项目。

(1) 运行PlanAhead,在目录“PlanAhead_Tutorial\Projects\project_cpu_hdl”下找到“Project_cpu_hdl.ppr”项目并打开,PlanAhead窗口显示如图10-86所示。

【PlanAhead】窗口

图10-86 【PlanAhead】窗口

(2) 将项目存储为另外一个项目,以确保原始项目不被损坏。运行【File】→【Save Project as】,打开【Save Project As】对话框,按图10-87中所示设置项目名和项目存储路径。

设置项目名和存储路径

图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所示。

【Set Up ChipScope】窗口

图10-88 【Set Up ChipScope】窗口

(3) 单击【Next】,出现图10-89所示的【Specify Nets to Debug】窗口。

【Specify Nets to Debug】对话框

图10-89 【Specify Nets to Debug】对话框

(4) 单击【Add/Remove Nets】按钮,出现图10-90所示【Add/Remove Nets】对话框,按照图中所示设置查找匹配条件为wbArbEngine/m0/wb_*,单击【Find】按钮,查找结果会显示在【Find Results】中。

查找结果

图10-90 查找结果

(5) 单击按钮,将查找到的网线选为待测试网络,如图10-91所示。单击【OK】退出网线设置对话框。

加入待测网线

图10-91 加入待测网线

(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所示。

加入网线后的【Specify Nets to Debug】对话框

图10-92 加入网线后的【Specify Nets to Debug】对话框

增加了ChipScope 核的【Netlist】窗口

图10-93 增加了ChipScope 核的【Netlist】窗口

3. 修改ChipScope 核和触发信号的属性。

如图10-94 所示,在【ChipScope】视图选择一组触发信号TRIG0,在【Debug Port Properties】中选择【Options】选项卡,可以改变match_type 属性,选择不同的触发条件。

改变触发属性

图10-94 改变触发属性

如图10-95 所示,在【ChipScope】视图选择ChipScope 的ILA 核,在【Debug Core Properties】中选择【Options】选项卡,在这里可以修改该核的属性,例如采样深度和采样时钟边沿。

改变ChipScope 核属性

图10-95 改变ChipScope 核属性

4. 实现ChipScope 核。

在图10-96 所示【ChipScope】视窗选择一个ILA 核,单击按钮,实现ChipScope 调试核【Implement ChipScope Debug Cores】,这个命令调用COREGen 工具,将黑盒子ChipScope 调试核转换成综合后ChipScope 核,然后就可以对其进行翻译、映射、布局布线。

实现ChipScope 核

图10-96 实现ChipScope 核

另外, 读者可以在【ChipScope 】窗口选择一个ILA 核, 单击鼠标右键选择【Schematic】,可以看到ChipScope 核的原理图模块,如图10-97 所示。

【Schematic】窗口

图10-97 【Schematic】窗口

在【Schematic】窗口双击CLK和TRIG0引脚,再单击按钮,重新生成原理图,如图10-98所示。可以看到,TRIG0连接到了设计中的cpuEngine的地址端,这些信号由cpuClk时钟控制。

【Schematic】窗口

图10-98 【Schematic】窗口

需要注意的是,在设计中插入ChipScope核,会影响实现结果。因此建议将触发器的输出作为测试点,并且使用区域约束(在PlanAhead中用Pblock),将ChipScope核与关键路径约束在一起,使ChipScope核对时序的影响降至最小。

5. 实现设计。

(1) 单击工具栏的运行实现图标,出现【Run Implementation】对话框,如图10-99所示,按图中所示设置各参数。

【Run Implementation】对话框

图10-99 【Run Implementation】对话框

(2) 单击【OK】按钮,【Design Runs】窗口会增加impl_1 进程,如图10-100 所示,该实现进程会简要显示图10-99 所示的设置,并且会显示出该实现的当前状态及进度信息。

【Design Runs】窗口

图10-100 【Design Runs】窗口

(3) 运行结束后,双击impl_1 进程,弹出【Import Implementation Results】对话框,提示是否导入impl_1 的布局和时序结果,单击【OK】按钮,impl_1 的实现结果会被反标注到设计中。如图10-101 所示。

【Import Implementation Results】对话框

图10-101 【Import Implementation Results】对话框

(4) 单击图10-101 中的【OK】按钮,会弹出一个确认对话框,如图10-102,单击【确定】按钮,impl_1 的实现结果会被反标注到设计中。同时,图10-103 所示【Device】窗口会显示这一实现结果。

属性更改确认对话框

图10-102 属性更改确认对话框

【Device】窗口显示的impl_1实现结果

图10-103 【Device】窗口显示的impl_1实现结果

6. 产生.bit位流文件。

在【Design Run】窗口选中impl_1,在右键菜单中选择运行【Run Bitgen】命令,弹出图10-104所示对话框,单击【OK】按钮,生成.bit文件。

【Run Bitgen】对话框

图10-104 【Run Bitgen】对话框

7. 启动ChipScope分析仪。

在【Design Run】窗口选中impl_1,在右键菜单中选择运行【Launch ChipScope Analyzer】命令,弹出图10-105所示对话框,选择impl_1(如果设计中运行产生了多个实现结果,这里会显示多个实现),单击【OK】启动ChipScope分析器。使用ChipScope分析仪的步骤请参考相关章节,这里不再赘述。

【Select Run for ChipScope Analyzer】对话框

图10-105 【Select Run for ChipScope Analyzer】对话框

10.8 PlanAhead导入导出功能

在PlanAhead的【File】菜单栏有一些导入导出功能。设计者可以导入I/O引脚文件、约束文件、位置约束文件、时序文件以及更新网表。设计者可以将PlanAhead的实现结果,通过运行【Export Netlist…】导出EDIF格式的网表文件,运行【Export Constraints…】导出相关的约束文件,然后将这两个文件导入ISE中进行布局布线等后续操作。还可以导出Pblock文件、IP文件、I/O端口文件等。

【File】菜单的导入输出功能

图10-106 【File】菜单的导入输出功能

10.9 小结

本章重点介绍了如何在PlanAhead中进行RTL源代码开发与分析,如何进行I/O规划,如何进行时序分析,如何进行布局规划,以及在PlanAhead中如何使用ChipScope逻辑分析工具。在PlanAhead中导入综合网表、约束文件以及ISE的布局布线结果的操作流程与上述介绍的过程类似,这里不再赘述。有兴趣的读者可以参考Xilinx相关的设计文档。

文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。

原文链接:reborn.blog.csdn.net/article/details/80354757

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。