一、实验原理
所做8位计数器,有1个时钟输入端,1个同步清0端,输出为8位并行输出,每来1个时钟脉冲,所输出的八位二进制数加1,当由00000000计数到时,计数器返回到00000000重新开始计数。
其代码如下:
module counter8(out,reset,clk); output[7:0] out;(可以不写吗) input reset,clk; reg[7:0] out;
always @(posedge clk) begin
if (reset) out<=0; 熟悉开发环境,掌握工程的生成方法;
2. 熟悉SEED-XDTK XUPV2Pro实验环境; 3. 了解Verilog HDL语言在FPGA中的使用;
4. 通过掌握8位计数器的Verilog HDL设计,了解数字电路的设计。
三、实验内容
1.用Verilog HDL语言设计8位计数器,进行功能仿真验证。 2.使用chipscope-Pro生成 ILA/ICON核,在线观测调试。
四、实验准备
1. 将USB下载电缆与计算机及XUPV2Pro板的J8连接好;
2. 将RS232串口线一端与计算机连接好,另一端与板卡的J11相连接; 3. 启动计算机,当计算机启动后,将 XUPV2Pro板的电源开关 SW11打开到 ON 上。观察 XUPV2Pro板上的+,+,+ 的电源指示灯是否均亮。若有不亮的,请断开电源,检查电源。
五、实验步骤
1.创建工程及设计输入
1
⑴ 在E:\\project\\目录下,新建名为counter8的新工程; 器件族类型(Device Family)选择“Virtex2P”, 器件型号(Device)选“XC2VP30 ff896 -7”,
综合工具(Synthesis Tool)选“XST (VHDL/Verilog)”, 仿真器(Simulator)选“ISE Simulator” ⑵ 设计输入 2.功能仿真
⑴ 在sources窗口sources for中选择Behavioral Simulation。 ⑵ 由Test Bench WaveForm 添加激励源,如图1所示。
图1 波形激励编辑窗口
仿真结果如图2所示。
图2 仿真结果
从图中可以验证由Verilog HDL语言设计的8位计数器的工作是正确的。在reset=0时,数据输出在每一时钟上升沿到来时加1;在reset=1时,数据的输出为0。
3.添加引脚约束
⑴ 首先对生成的工程进行综合。 ⑵ 添加引脚约束,如图3所示。
2
图3 引脚约束
4.添加ChipScope核
采用核生成法。由于要对模块进行实时的控制,因此在这里需要1个ICON核,1个ILA核,1个VIO核。将例化模块所用到的代码加到counter8相应的位置,并进行修改,最后得到的代码如下:
module counter8(out,CLK); output[7:0] out; input CLK; reg[7:0] out; wire reset;
wire [35 : 0] CONTROL_ILA; wire [35 : 0] CONTROL_VIO; wire CLK;
wire [0 : 0] ASYNC_OUT; wire [7 : 0] ASYNC_IN; ICON I_ICON(
.CONTROL0(CONTROL_ILA), .CONTROL1(CONTROL_VIO) );
ILA I_ILA( .CLK(CLK),
.CONTROL(CONTROL_ILA), .TRIG0(reset), .DATA(out) );
VIO I_VIO(
3
.CONTROL(CONTROL_VIO), .ASYNC_OUT(ASYNC_OUT), .ASYNC_IN(ASYNC_IN) );
assign ASYNC_IN=out; assign reset=ASYNC_OUT; always @(posedge CLK) begin
if (reset) out<=0; //同步复位 else out<=out+1; //计数 end
endmodule 5.在线调试
⑴ 设计综合和实现。
⑵ 在实现步骤成功后,点击Generate Programming Files ,生成bit流文件。
⑶ 双击Analyze Design Using Chipscope,出现chipscope Pro Analyzer 窗口。双击
图标,检测连接情况。
⑷ 然后下载bit流文件。 6.观测调试
双击VIO Console,可以看到异步输入信号在不停的变化着,如图4所示。
图4 调试结果1
将异步输出信号即reset信号设为1,则异步输入都变为0,如图5所示。
4
图5 调试结果2
将异步输入信号设为总线形式,并重命名,可以更加直观的观测信号,如图6所示。
图6 调试结果3
设置触发条件,然后双击示。
按钮,出现ILA核捕获的数据波形,如图7所
图7 调试结果4
对相应信号设为总线形式并重命名,可以更好的观测信号,如下图8所示。
图8 调试结果5
5
六、总结
通过这次试验,我主要学习了如何生成ILA核,需要进行哪些项的设置和如何例化它,以及如何设置触发条件和查看波形;并且对以前所学的知识也有了进一步的掌握和理解。
6
因篇幅问题不能全部显示,请点此查看更多更全内容