计组第一次实验 定点加法
新建工程
设备选择中 family选择Artix 7 package选择fbg676 型号为:xc7a200tfbg676-2
添加加法器程序
`timescale 1ns / 1ps
module adder(
input [31:0] operand1,
input [31:0] operand2,
input cin,
output [31:0] result,
output cout
);
assign {cout,result} = operand1+operand2+cin;
endmodule
- 两个32位操作数输入和一个进位信号输入
- 一个32位结果输入和一位进位信号输出
进行仿真
添加仿真文件
`timescale 1ns / 1ps //仿真单位时间为1ns,精度为1ps
module testbench;
// Inputs
reg [31:0] operand1;
reg [31:0] operand2;
reg cin;
// Outputs
wire [31:0] result;
wire cout;
// Instantiate the Unit Under Test (UUT)
adder uut (
.operand1(operand1),
.operand2(operand2),
.cin(cin),
.result(result),
.cout(cout)
);
initial begin
// Initialize Inputs
operand1 = 0;
operand2 = 0;
cin = 0;
// Wait 100 ns for global reset to finish
#100;
// Add stimulus here
end
always #10 operand1 = $random; //$random为系统任务,产生一个随机的32位数
always #10 operand2 = $random; //#10 表示等待10个单位时间(10ns),即每过10ns,赋值一个随机的32位数
always #10 cin = {$random} % 2; //加了拼接符,{$random}产生一个非负数,除2取余得到0或1
endmodule
目的是进行一个随机模拟输入信号,以验证程序正确
进行仿真
点击 Run simulation 可以看到波形图,右键信号源可更改颜色和数制等
添加外围模块
到板子上需要用触摸屏显示,所以需要加一个触摸屏模块,并将输入输出信号与之联系起来