您的当前位置:首页正文

FPGA实验报告8位计数器—徐艺萍

2021-08-29 来源:步旅网
实验三 8位计数器试验

一、实验原理

所做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

因篇幅问题不能全部显示,请点此查看更多更全内容