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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三8位计数器试验

一、实验原理

所做8位计数器,有1个时钟输入端,1个同步清0端,输出为8位并行输出,每来1个时钟脉冲,所输出的八位二进制数加1,当由00000000计数到11111111时,计数器返回到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; //同步复位

else out<=out+1; //计数

end

endmodule

本实验采用ChipScope-Pro生成ILA/ICON 核,并插入到8位计数器设计中,在线进行观测和调试。

二、实验目的

1. 熟悉ISE9.1开发环境,掌握工程的生成方法;

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板上的+2.5V,+3.3V,+1.5V 的电源指示灯是否均亮。若有不亮的,请断开电源,检查电源。

五、实验步骤

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

图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(

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

相关文档
最新文档