八选一数据选择器和四位数据比较器(verilog实验报告)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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型,通过这个例子我明白了书上所说的有时往往是一个比较笼统的,而更多的需要我们自己去实践、探索、勤思考,只有这样我们才能把书本上的知识转化为属于我们自己的知识,才能在学习的道路上走的更远!

相关文档
最新文档