当前位置:文档之家› 4FPGA实验报告8位乘法器—徐艺萍

4FPGA实验报告8位乘法器—徐艺萍

实验四8位乘法器实验
一、实验原理
8位乘法器,输入为两个8位信号,输出结果为16位。

module mult8(out, a, b); //8位乘法器源代码
parameter size=8;
input[size-1:0] a,b; //两个操作数
output[2*size-1:0] out; //结果
assign out=a*b; //乘法运算符
endmodule
本实验采用Chipscope-Pro生成VIO/ICON核,并插入到8位乘法器设计中,在线进行观测和调试。

二、实验目的
1. 熟悉ISE9.1 开发环境,掌握工程的生成方法;
2. 熟悉SEED-XDTK XUPV2Pro 实验环境;
3. 了解Verilog HDL语言在FPGA 中的使用;
4. 通过掌握8位乘法器的Verilog HDL设计,了解数字电路的设计。

三、实验内容
1. 用Verilog HDL语言设计8位乘法器,进行功能仿真验证。

2. 使用chipscope-Pro 生成VIO/ICON 核,在线观测调试。

四、实验准备
1. 将USB 下载电缆与计算机及XUPV2Pro 板的J8 连接好;
2. 将RS232 串口线一端与计算机连接好,另一端与板卡的J11 相连接;
3. 启动计算机,当计算机启动后,将XUPV2Pro 板的电源开关SW11 打开到ON 上。

观察XUPV2Pro 板上的+2.5V,+3.3V,+1.5V 的电源指示灯是否均亮。

若有不亮的,请断开电源,检查电源。

五、实验步骤
⑴创建工程及设计输入
①在E:\project\目录下,新建名为mult8的新工程;
器件族类型(Device Family)选择“Virtex2P”,
器件型号(Device)选“XC2VP30 ff896 -7”,
综合工具(Synthesis Tool)选“XST (VHDL/Verilog)”,
仿真器(Simulator)选“ISE Simulator”
②设计输入并保存。

⑵功能仿真
①在sources窗口sources for中选择Behavioral Simulation。

②由Test Bench WaveForm 添加激励源,如图1所示。

仿真结果如图2所示。

图1 波形激励编辑窗口
图2 仿真结果
从图中可以验证由Verilog HDL语言设计的8位乘法器的工作是正确的,不论是输入a的值变化还是输入b的值变化,输出值随之变化,为a与b的乘积。

⑶生成核并添加核
本次试验内容为8位乘法器,不需要使用ILA核。

因此下面使用核生成法生成一个ICON核,一个VIO核就可以了。

①首先对生成的工程进行综合。

②生成核
③添加核
最后的代码如下:
module mult8(out);
parameter size=8;
output[2*size-1:0] out;
wire[size-1:0] a,b;
wire [35 : 0] CONTROL0;
wire [15 : 0] ASYNC_OUT;
wire [15 : 0] ASYNC_IN;
ICON I_ICON(
.CONTROL0(CONTROL0)
);
VIO I_VIO(
.CONTROL(CONTROL0),
.ASYNC_OUT(ASYNC_OUT),
.ASYNC_IN(ASYNC_IN)
);
assign ASYNC_IN[15:0]=out[15:0];
assign a[7:0]=ASYNC_OUT[7:0];
assign b[7:0]=ASYNC_OUT[15:8];
assign out=a*b;
endmodule
⑷在线调试
①设计综合和实现。

②在实现步骤成功后,点击Generate Programming Files,生成bit流文件。

③双击Analyze Design Using Chipscope,出现chipscope Pro Analyzer窗口。

双击图标,出现如图3所示的对话框,点击OK。

图3 操作示意画面1
然后下载bit流文件,具体操作步骤:右击DEV:2 myDevice2(XC2VP30),选择Configure...,如图4所示。

会弹出一个对话框如图5所示,点击“Select New File”,在弹出的对话框中选择mult8.bit文件并打开,再点击OK,如图6所示。

图4 操作示意画面2
图5 操作示意画面3
图6 操作示意画面4
④观测调试
双击VIO console,可以看到异步输入信号和异步输出信号,如图7所示。

图7 调试结果1
分别将异步输入和异步输出信号按照在代码中设定的改为总线形式并重命
名,以更加直观的观测信号。

也可以右键单击各个信号选择Bus Radix 后的
Unsigned Decimal...将各个信号以十进制的形式显示,如图8所示。

图8 调试结果2
用二进制显示方式如图9所示。

图9 调试结果3
可以通过输入不同的数值然后与自己的计算进行比较来验证设计的正确性。

六、总结
通过本次实验,我对以前所学的知识有了更一步的掌握,了解了用V erilog HDL语言如何设计8位乘法器,进行功能仿真。

相关主题