硬件描述语言作业.doc
文本预览下载声明
硬件描述语言上机作业
班级:1314011
学号 姓名:梁全振
时间:2015年10月28号
《硬件描述语言》上机作业
报告总体要求:
设计仿真基于Modelsim工具;
提供每一道题目的Verilog 电路设计代码、仿真测试代码和仿真结果,仿真结果用截图的方式。
设计报告封面写上学号和姓名。
提交email: hltang@xidian.edu.cn。
第一题:用Verilog语言的结构描述和行为描述分别设计下面的电路。
结构描述:
电路设计代码:
module jg(A,B,Y);
input[2:0] A,B;
output Y;
wire w1,w2,w3;
xor U1(w1,A[0],B[0]);
xor U2(w2,A[1],B[1]);
xor U3(w3,A[2],B[2]);
nor U4(Y,w1,w2,w3);
endmodule
仿真测试代码:
module test_jg;
reg[2:0] A,B;
wire Y;
jg U1(A,B,Y);
initial
begin
A=3b000;B=3b000;
#50 A=3b000;B=3b000;
#50 A=3b111;B=3b111;
#50 A=3b000;B=3b110;
#50 A=3b111;B=3b000;
#50 A=3b110;B=3b110;
#50 A=3b011;B=3b010;
#50 A=3b001;B=3b011;
#50 A=3b111;B=3b010;
#50 $stop;
end
initial $monitor($time,\tA=%d\tB=%d\tY=%d,A,B,Y);
endmodule
验证结果:
行为描述:
电路设计代码:
module xw(A,B,Y);
input[2:0] A,B;
output Y;
wire Y;
assign Y=~((A[0]^B[0])||(A[1]^B[1])||(A[2]^B[2]));
endmodule
仿真测试代码:
module test_xw;
reg[2:0] A,B;
wire Y;
xw U1(A,B,Y);
initial
begin
A=3b000;B=3b000;
#50 A=3b000;B=3b000;
#50 A=3b111;B=3b111;
#50 A=3b000;B=3b110;
#50 A=3b111;B=3b000;
#50 A=3b110;B=3b110;
#50 A=3b011;B=3b010;
#50 A=3b001;B=3b011;
#50 A=3b111;B=3b010;
#50 $stop;
end
initial $monitor($time,\tA=%b\tB=%b\tY=%b,A,B,Y);
endmodule
验证结果:
第二题:参数化电路设计
用行为描述方式实现下图所示的具有“one-hot”(独热)状态的环形计数器。要求使用参数化的模块。
parameter SIZE =3;
input clock, reset;
output [SIZE-1:0]counter;
说明:低电平同步复位,此时counter最低位为“1”,其余位均为“0”。
编写测试程序来验证该模块的正确性,要求测试对象是一个5位的独热状态环形计数器。
电路设计代码:
module one_hot(counter,clock,reset);
parameter SIZE =3;
input clock, reset;
output[SIZE-1:0]counter;
re
显示全部