FPGA实战开发技巧(12)

5.6 大规模设计的调试经验 在大规模设计的调试应该按照和设计理念相反的顺序,从底层测试,主要依靠chipscope pro 工具。下面主要介绍chipscope pro、fpga editor 组件的使用方法。
5.6.1 chipscope pro组件应用实例 在赛灵思软件设计工具中,ise 可集成赛灵思公司的所有工具和程序。chipscope pro 也不例外,在ise 中将其作为一类源文件,和hdl 源文件、ip core 以及嵌入式系统的地位是等同的。本节在xilinx spartan3e-d开发板上实现一个计数器模块,基于该模块详细介绍如何在ise 中新建chipscope 应用以及观察、分析数据的详细操作。
例5.6.1 :在ise 中实现一个8 比特计数器,利用chipscope 分析其逻辑输出。
(1) 新建用户工程,添加mycounter.v 的源文件,其内容如下所列:
module mycounter(clk, reset, dout);
input clk;
input reset;
output [7:0] dout;
reg [7:0] dout;
always @(posedge clk) begin
if (reset == 0)
dout <= 0;
else
dout <= dout + 1;
end
endmodule
然后根据电路连接,添加相应的管脚约束。
(2) 综合工程,然后在ise 工程管理区,单击右键,选择“add new source”命令,在弹出的对话框中选择“chipscope definition and connection file” 类型, 并在“file name” 栏输入chipscope 设计名称mychipscope,如图5-41所示。
图5-41 添加chipscope设计示意图
图5-42 测试模块选择界面
单击“next”按键,进入分析文件选择界面,这里会将该文件夹里所有的hdl 设计、原理图设计都罗列出来( 包括顶层模块和全部底层模块),供用户挑选,用鼠标单击即可选中,本例选择mycounter,如图5-42 所示。单击“next”按键进入小结页面,单击“finish”按键完成添加。
(3) 双击工程区mycounter.v 下的子模块mychipscope.cdc,可自动打开chipscope pro core insterser软件,添加触发单元和触发位宽。其中触发类型选为basic,位宽为8比特;设置采样深度为4096,各步骤如图5-43到图5-46所示。
图5-43 调试工程配置界面
图5-44 icon核配置界面
图5-45 触发信号配置界面
图5-46 采集深度配置界面
(4) 点击“next”进入网表连接显示页面,如图5-47 所示。其中如果用户定义的触发和时钟信号线有未连接的情况,则图中“unit”、“clockport”以及“triggerports”等字样以红色显示;正确完成连接后则变成黑色。
图5-47网表连接提示界面
点击图5-47 中“modify connection”的按键,进入连接页面,时钟和数据的连接如图5-48、图5-49所示。需要注意的是,chipscope pro 只能分析fpga 设计的内部信号,因此不能直接连接输入信号的网表,所以输入信号网表全部以灰色显示。如果要采样输入信号,可通过连接其输入缓冲信号来实现,时钟信号选择相应的bufgp,普通信号选择相应的ibuf。如图5-48 中所示,选择采样时钟时,选择了clk_bufgp。
图5-48 时钟网表连接界面
图5-49 触发网表连接界面
连接完成后,单击“ok”按键返回连接显示界面,发现所有提示字符“unit”、“clockport”以及“triggerports”没有红色,则单击“return project navigator”,退出chipscope,返回到ise 中。否则需要再次点击“modify connection”按键重新连接。
(5) 在工程中加入ucf 文件,约束时钟、数据管脚位置。为了简化也可以只添加clk 和reset 这两个控制信号的管脚约束,其内容如下:
net clk loc = c9 | iostandard = lvcmos33 ;
# define clock period for 50 mhz oscillator (40%/60% duty-cycle)
net clk period = 20.0ns high 40%;
net reset loc = h13 | iostandard = lvttl | pulldown ;
(6) 在ise 过程控制区中双击“implement design”和“generate programming file”, 可以完成实现以及生成可编程文件,并将设计人员插入的各类核也将被包含在比特文件中。生成配置文件后,双击图5-50所示的“analyze design using chipscope”图标,可自动打开chipscope pro analyzer 软件。
图5-50 chipscope pro analyzer启动操作示意图
(7) 在chipscope analyzer 用户界面上点击工具栏上图标“ ”,初始化边界扫描链。等扫描完成后,单击“device”菜单下“dev: 0 my device0(xc3s500e) → configure”命令选择.bit 文件配置fpga。
(8) 芯片配置完成后,选择“file”菜单的“import”命令,可弹出cdc 文件加载页面,选择相应的cdc 文件,将会把所有以“dataport”的名称修改为综合后的线网名称。
(9) 组合cnt 总线信号。可按住“ctrl”键,选择多个总线信号,单击右键,选择“add to bus”命令,将其组合成相应的总线信号,如图5-51 所示。
图5-51 添加总线操作示意图
(10) 不设定触发条件采集数据。点击工具栏的“ ”图标,开始采集数据。整体结果如图5-52 所示,单击工具栏的“ ”按键,可放大信号,局部结果如图5-53 所示。从分析结果可以看出,本设计在fpga中成功地完成了8 比特计数器的功能。
图5-52 analyzer分析结果整体示意图
(11) 设定触发条件采集数据。在“trigger setup”栏match 区域的“m0: trigger port0”行的value 列输入触发条件“0000_0000”,如图5-54 所示。
点击工具栏的“ ”图标,开始采集数据,可以看到,采集结果的第一个数为0,如图5-55 所示。当然,
用户可以根据需要设置更复杂的触发条件。
(12) 利用bus plot 功能绘制输出信号波形。在工程区双击“bus plot”命令,然后在弹出窗口的“bus selection”区域选中“dout”,则会将采集数据以图形方式显示出来,如图5-56 所示。由于本设计是8 比特加1 计数器,因此其波形就是幅度为0 到255 的锯齿波。
图5-56 8计数器的波形示意图

不只有石墨烯电池,传感器也需要它!
光刻技术为中心的行业壁垒,EUV光刻机并非是是中国半导体行业的唯一症结
深入分析uCOS的任务堆栈
华为正式发布全球首款采用7nm处理器的麒麟980
诺基亚8国行版上市时间确定:性能、拍照全面升级,价格3999元起10月19日首发
FPGA实战开发技巧(12)
你必须掌握的十二个电路基础知识
特斯拉Autopilot新功能:似马里奥赛车彩虹赛道功能
论工控制未来发展趋势
中兴通讯与四川移动合作将共同推动5G+视频业务的发展
如何做好IC电源旁路?
XREAL Beam发布:实现3DoF悬停投屏 XREAL Air观影游戏体验再越级
dfrobot高亮LED模块简介
5.16双展启幕,武汉光博会+深圳SEMI-e展,台湾高技邀您看大展
适用于1mm薄型工业应用的数据备份解决方案
如何采用UX设计减轻驾驶员分心
智能汽车时代已来,博泰方案蓄势待发
区块链将可能成为我们验证几乎任何虚拟资产合法性的方式
一个文档把Go语言所有核心知识点撸全了
振动在线监测系统概述及功能特点