Verilog HDL实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HDL实验报告
专业电子科学与技术
姓名
学号
指导老师
1 实验一Modelsim仿真软件的使用
1.1 实验目的
(1)熟悉Modelsim 软件;
(2)掌握Modelsim 软件的编译、仿真方法;
(3)熟练运用Modelsim 软件进行HDL 程序设计开发。
1.2 实验步骤
(1)学习使用Modelsim软件;
(2)分析原理及功能;
(3)用Verilog HDL编写程序;
(4)编写测试程序进行仿真;
(4)观察波形,分析仿真结果是否正确。
1.3 实验内容
用Verilog HDL 程序实现一个异或门,Modelsim 仿真,观察效果。
1.4.1 程序
module my_xor(ina,inb,out);
input ina,inb;
output out;
assign out=ina^inb;
endmodule
module t_xor;
reg ina,inb;
wire out;
initial
begin
ina=1'b0;
forever #20 ina=~ina;
end
initial
begin
inb=1'b0;
forever #10 inb=~inb;
end
my_xor tt(.ina(ina),.inb(inb),.out(out));
endmodule
2 实验二简单组合电路设计
2.1 实验目的
(1)掌握基于Modelsim 的数字电路设计方法;
(2)熟练掌握HDL 程序的不同实现方法
2.2 实验步骤
(1)分析原理及功能;
(2)根据原理用Verilog HDL编写程序;
(3)编写测试程序进行仿真;
(4)观察波形,分析仿真结果是否正确。
2.3 实验内容
设计一个三人表决器(高电平表示通过) ,实验内容如下:
(1)三个人,一个主裁判,两个副裁判;
(2)规则:只要主裁判同意,输出结果为通过;否则,按少数服从多数原则决定是否通过。使用Verilog HDL 程序实现上述实验内容,并使用modelsim 仿真(要求:至少使用两种方法实现上述实验内容和testbench)。
2.4.1 程序
方法1:
module voter(v0,v1,v2,y);
input v0,v1,v2;
output y;
assign y=v0|(v1&v2);
endmodule
方法2:
module voter(v0,v1,v2,y);
input v0,v1,v2;
output reg y;
always @(v0,v1,v2)
begin
if(v0)
y=1;
begin
if(v1&v2)
y=1;
else
y=0;
end
end
endmodule
module t_voter;
reg v0,v1,v2;
wire y;
initial
begin
v0=1'b0; v1=1'b0; v2=1'b0;
#10 v2=1'b1;
#10 v1=1'b1; v2=1'b0;
#10 v1=1'b1; v2=1'b1;
#10 v0=1'b1; v1=1'b0; v2=1'b0;
#10 v2=1'b1;
#10 v1=1'b1; v2=1'b0;
#10 v1=1'b1; v2=1'b1;
#10 $finish;
end
voter tt(.v0(v0),.v1(v1),.v2(v2),.y(y));
endmodule
2.4.2 波形
2.5 心得体会
同样的功能可以通过不同的方法来实现,可以根据情况灵活选择。
3 实验三二进制全加器设计
3.1 实验目的
(1)熟悉Verilog HDL 元件例化语句的作用;
(2)熟悉全加器的工作原理;
(3)用Verilog HDL 语言设计四位二进制全加器,并仿真,下载验证其功能。
3.2 实验原理
(1)一位全加器原理:
Ai ,Bi分别是两个二进制位,Ci-1是前级进位,Ci是进位,Si是加法结果。
Si=Ai^Bi^Ci-1 ;Ci=(Ai&Bi)|(Ai&Ci-1)|(Bi&Ci-1)
(2)四位二进制全加器原理:
在一位全加器基础上设计多位全加器,利用进位进行级联。
3.3 实验步骤
(1)分析原理及功能;
(2)根据原理用Verilog HDL编写程序;
(3)编写测试程序进行仿真;
(4)观察波形,分析仿真结果是否正确。
3.4 实验内容
(1)用Verilog HDL 语言描述一位全加器,并使用modelsim 仿真验证结果;
(2)用Verilog HDL 元件例化语句实现四位全加器,modelsim 仿真并下载到实验箱,用按键模拟输入,led 灯模拟输出,验证结果;
(3)设计程序将加法结果分开输出,即十位数和个位数分别用四位数组表示。
3.4.1 一位全加器
3.4.1.1 程序
module add_1bit(a,b,ci,co,s);
input a,b,ci;
output co,s;
assign s=a^b^ci,
co=(a&b)|(a&ci)|(b&ci);
endmodule
module t_add1;
reg a,b,ci;
wire co,s;
initial
begin
a=1'b0;
forever #1 a=~a;
end
initial
begin
b=1'b0;
forever #2 b=~b;
end