实验1运算器设计与仿真.doc

上传人:自*** 文档编号:124911891 上传时间:2020-03-14 格式:DOC 页数:7 大小:77KB
返回 下载 相关 举报
实验1运算器设计与仿真.doc_第1页
第1页 / 共7页
实验1运算器设计与仿真.doc_第2页
第2页 / 共7页
实验1运算器设计与仿真.doc_第3页
第3页 / 共7页
实验1运算器设计与仿真.doc_第4页
第4页 / 共7页
实验1运算器设计与仿真.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《实验1运算器设计与仿真.doc》由会员分享,可在线阅读,更多相关《实验1运算器设计与仿真.doc(7页珍藏版)》请在金锄头文库上搜索。

1、预做实验报告1 运算器设计与仿真一、实验目的理解并掌握运算器的基本电路结构及其设计方法,学会使用Verilog HDL对电路进行行为建模、结构建模以及仿真测试。二、实验内容利用Verilog HDL设计一个运算器模型,并进行仿真测试。要求该运算器的字长为32位,能够实现加法、减法、逻辑与、逻辑或四种运算,并产生N(结果为负)、Z(结果为零)、V(结果溢出)、C(进位)四个标志位。要求采用层次化的建模方法,即先搭建低层模块,然后再逐级搭建高层模块。三、实验环境PC机1台、Modelsim仿真软件1套。四、实验步骤1、电路结构设计ALU的电路结构OPABOPOPOPAYBAYBand2*32or2

2、*32SSA1A0Ymux2*32A1A0Ymux2*32零判断ZSasbsubCVsNVCOP00 AND01 OR10 ADD11 SUBabcisco 1位全加器逻辑表达式:S= abci+abci+abci+abci=a b ciCo=abci+abci+abci+abci=ab+aci+bciADD1abscicoADD1abscicoADD1abscicoADD1abscicocoabaaaabbbbssssssub其中:Sub=0,做加法,Sub=1,做减法。2、建立Verilog模型module fadd(a,b,s,ci,co);input a,b,ci;output s,c

3、o;reg s,co;always (a or b or ci)begin s=(a&b&ci)|(a&b&ci)|(a&b&ci)|(a&b&ci);co=(a&b)|(a&ci)|(b&ci);endendmodulemodule add(a,b,sub,s,c,v,n);input 31:0a;input 31:0b;input sub;output 31:0s;output c,v,n;wire 31:0a;wire 31:0b;wire c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c20,c21

4、,c22,c23,c24,c25,c26,c27,c28,c29,c30,c31;fadd f0(a0,b0sub,s0,sub,c1);fadd f1(a1,b1sub,s1,c1,c2);fadd f2(a2,b2sub,s2,c2,c3);fadd f3(a3,b3sub,s3,c3,c4);fadd f4(a4,b4sub,s4,c4,c5);fadd f5(a5,b5sub,s5,c5,c6);fadd f6(a6,b6sub,s6,c6,c7);fadd f7(a7,b7sub,s7,c7,c8);fadd f8(a8,b8sub,s8,c8,c9);fadd f9(a9,b9su

5、b,s9,c9,c10);fadd f10(a10,b10sub,s10,c10,c11);fadd f11(a11,b11sub,s11,c11,c12);fadd f12(a12,b12sub,s12,c12,c13);fadd f13(a13,b13sub,s13,c13,c14);fadd f14(a14,b14sub,s14,c14,c15);fadd f15(a15,b15sub,s15,c15,c16);fadd f16(a16,b16sub,s16,c16,c17);fadd f17(a17,b17sub,s17,c17,c18);fadd f18(a18,b18sub,s18

6、,c18,c19);fadd f19(a19,b19sub,s19,c19,c20);fadd f20(a20,b20sub,s20,c20,c21);fadd f21(a21,b21sub,s21,c21,c22);fadd f22(a22,b22sub,s22,c22,c23);fadd f23(a23,b23sub,s23,c23,c24);fadd f24(a24,b24sub,s24,c24,c25);fadd f25(a25,b25sub,s25,c25,c26);fadd f26(a26,b26sub,s26,c26,c27);fadd f27(a27,b27sub,s27,c2

7、7,c28);fadd f28(a28,b28sub,s28,c28,c29);fadd f29(a29,b29sub,s29,c29,c30);fadd f30(a30,b30sub,s30,c30,c31);fadd f31(a31,b31sub,s31,c31,c);assign n=s31;assign v=cc31;endmodulemodule mux21_32(f,a,b,s);output31:0 f;input31:0 a,b;input s;reg 31:0 f;always (s or a or b)case(s)1d0: f=a;1d1: f=b;endcaseendm

8、odulemodule ALU(op,a,b,s,n,v,c,z);input 1:0op;input 31:0a,b;output31:0s;output n,v,c,z;wire 31:0d,e,f,s1;assign d=a&b;assign e=a|b;mux21_32 u0(f,d,e,op0);add u2(a,b,op0,s1,c,v,n);mux21_32 u1(s,f,s1,op1);assign z=(|s);endmodule3、设计测试文件timescale 1ns / 1nsmodule ALUtest;reg clk;reg 1:0op;reg 31:0a,b;wi

9、re 31:0s;wire n,v,c,z;/op=00 AND;/op=01 OR;/op=10 ADD;/op=11 SUB;ALU A(op,a,b,s,n,v,c,z);/clock generation initial clk = 1;always #50 clk = clk;initial begin#20 a=32b0100_0101_0100_0000_0010_0010_0101_0001; b=32b1010_0101_0010_0000_0100_0010_0011_0010; op=2b00;#100 a=32b0100_0101_0100_0000_0010_0010

10、_0101_0001; b=32b1010_0101_0010_0000_0100_0010_0011_0010; op=2b01;#100 a=32b0100_0101_0100_0000_0010_0010_0101_0001; b=32b1010_0101_0010_0000_0100_0010_0011_0010; op=2b10;#100 a=32b0100_0101_0100_0000_0010_0010_0101_0001; b=32b1010_0101_0010_0000_0100_0010_0011_0010; op=2b11;#100 a=32b0111_1011_1101

11、_1110_1111_1111_1111_1111; b=32b0111_1011_1101_1110_1111_1111_1111_1111; op=2b11;#100 a=32d15; b=32d9; op=2b11;#100 a=32d9; b=32d15; op=2b11;#100 $stop; endEndmodule $display(a= %b, b= %b, op= %b, s= %b,n=%b,z=%b,v=%b,c=%bn,a,b,op,s,n,z,v,c);注意:测试的完备性。4、将设计文件和测试文件输入Modesim仿真工具,并进行编译和功能仿真。5、观测仿真波形图,分析结果是否正确。若有错误,则修改设计文件或测试文件,重新编译和仿真。五、实验结果序号输入数据仿真结果正确结果仿真结果的正确性1a=32h4540_2251; b=32hA520_4232;op=2b00S=?n=?z=?v=?c=?S=?n=?z=?v=?c=?正确或错误?23六、实验分析与总结七、实验思考题1、设计一个32位的原码乘法器并进行仿真测试。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 工业设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号