八选一数据选择器和四位数据比较器(verilog实验报告)
- 格式:doc
- 大小:100.00 KB
- 文档页数:5
Verilog HDV 数字设计与综合实验报告
微电子0901班
**:*** _
学号:_********
一、实验课题:
1.八选一数据选择器
2.四位数据比较器
二、八选一数据选择器Verilog程序:
2.1主程序
module option(a,b,c,d,e,f,g,h,s0,s1,s2,out);
input [2:0] a,b,c,d,e,f,g,h;
input s0,s1,s2;
output [2:0] out;
reg [2:0] out;
always@(a or b or c or d or e or f or g or h or s0 or s1 or s2) begin
case({s0,s1,s2})
3'd0 : out=a;
3'd1 : out=b;
3'd2 : out=c;
3'd3 : out=d;
3'd4 : out=e;
3'd5 : out=f;
3'd6 : out=g;
3'd7 : out=h;
endcase
end
endmodule
2.2激励程序
module sti;
reg [2:0] A,B,C,D,E,F,G,H;
reg S0,S1,S2;
wire [2:0] OUT;
option dtg(A,B,C,D,E,F,G,H,S0,S1,S2,OUT);
initial
begin
A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=0;S1=0;S2=0;
#100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=0;S1=0;S2=1; #100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=0;S1=1;S2=0; #100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=0;S1=1;S2=1; #100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=1;S1=0;S2=0; #100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=1;S1=0;S2=1; #100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=1;S1=1;S2=0; #100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=1;S1=1;S2=1;
end
endmodule
三、四位数据比较器
3.1主程序
module fourcompare(a,b,c);
input[3:0] a,b;
output [1:0] c;
reg[1:0] c;
always@(a or b)
begin
if(a>b)
c=2'd2;
else if(a
c=2'd1;
else
c=2'd0;
end
endmodule
3.2激励程序
module sti;
reg [3:0] A,B;
wire [1:0]C;
fourcompare fte(A,B,C);
initial
begin
A=2'd0;B=2'd1;
#100 A=2'd2;B=2'd1;
#100 A=2'd1;B=2'd1;
end
endmodule
四、实验波形图截图:
4.1八选一数据选择器
4.2四位数据比较器
四、波形分析及实验心得:
4.1.波形分析
1.八选一数据选择器
输入数据为A=000,B=001,C=010,D=011,E=100,F=101,g=110,h=111;S0,S1,S2,为选择控制端,它们组成一个三位数,记为enable,控制数据的输出,其中S0为最高位,S1次之,S2为最低位。当enable=000,输出A; enable= 001,输出B;enable= 010,输出C;enable= 011,输出D;enable= 100,输出E;enable= 101,输出F;enable= 110,输出G;enable= 111,输出H
观察波形当enable=000时,输出为000即A;当enable=001时,输出为001,即B;当enable=010时,输出为010即C;当enable=011时,输出为011即D;当enable=100时,输出为100即E;当enable=101时,输出为101,即F;当enable=110时,输出为110即G;当enable=111时,输出为111即G,其结果与理论结果相吻合故验证该设计是正确的。
2.四位数据选择器
该设计要求比较两个四位数的大小A、B,输出结果为A>B(10)、A=B(00)或A
观察波形当输入数据当A=0000,B=0001,输出结果为01
当A=0010,B=0001,输出结果为10
当A=0001,B=0001,输出结果为00
经分析其仿真结果与理论相符合,说明了其设计的正确性。
4.2 实验心得
这次实验与上次相比有明显的进步,通过这次实验我对modelsim的应用更加得心应手,深切的体会到了verilog是一种描述性语言,这次实验总的来说是比较顺利的,但在实验过程中还是遇到了一些问题,比如端口的匹配问题,在写程序的时候误将位宽写在了变量名的后面,虽然程序能够运行但有警告,仿真波形是错误的,可见在写程序时警告有时也是致命的,这要求我们在学习的过程中思想一定要严谨!其次在做实验时一定要多想,例如在学习这门课时,书上说在模块外部输入可以是wire型或reg型,但在写程序时激励模块往往要初始化数据,所以编程时其类型往往声明为reg型,通过这个例子我明白了书上所说的有时往往是一个比较笼统的,而更多的需要我们自己去实践、探索、勤思考,只有这样我们才能把书本上的知识转化为属于我们自己的知识,才能在学习的道路上走的更远!