计算机组成与系统结构实验3,计算机组成与系统结构实验课件.ppt

本实验主要包括四个部分:设计并仿真运算器,实现加减逻辑运算及标志位判断;设计寄存器堆,具备双读一写端口功能;构建多周期处理机控制器,支持多种指令;最后,整合设计简单CPU模型。实验中使用Verilog HDL进行建模和仿真,通过Modelsim软件验证功能正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《计算机组成与系统结构实验课件.ppt》由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关《计算机组成与系统结构实验课件.ppt》文档请在天天文库搜索。

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

2、abci+abci+abci+abci=a b ciCo=abci+abci+abci+abci=ab+aci+bciADD1abscicoADD1abscicoADD1abscicoADD1abscicocoabaaaabbbbssssssub其中:Sub=0,做加法,Sub=1,做减法。2、建立Verilog模型参见Modelsim中的相关设计文件。3、设计测试文件参见Modelsim中的测试文件。注意:测试的完备性。 4、将设计文件和测试文件输入Modelsim仿真工具,并进行编译和功能仿真。5、观测仿真波形图,分析结果是否正确。若有错误,则修改设计文件或测试文件,重新编译和仿真。五、实验结果参见Modelsim中的波形图和下表。序号输入数据仿真结果正确结果仿真结果的正确性1a=32'h4540_2251; b=32'hA520_4232;op=2'b00S=?n=?z=?v=?c=。

3、?S=?n=?z=?v=?c=?正确或错误?23《计算机组成与系统结构》 实验二存储器设计与仿真一、实验目的理解并掌握寄存器堆的基本电路结构及其设计方法,学会使用Verilog HDL对电路进行行为建模、结构建模以及仿真测试。二、实验内容利用Verilog HDL设计一个寄存器堆模型,并进行仿真测试。要求该寄存器堆具有32个32位的寄存器,并具有2个读端口和1个写端口。要求采用层次化的建模方法,即先搭建低层模块,然后再逐级搭建高层模块。三、实验环境PC机1台、Modelsim仿真软件1套。 四、实验步骤1、电路结构设计N1DINDN2WECLKN1DINDN2WECLKQ1Q2Q1Q2寄存器堆外框图dcecr0qdcr1qdcecr2qdcecr3qdcecr4qdcec…qdcecr30qdcecr31qcea0a1a2a3a4ed0d1d2d3d4…d30d31NDNDNDNDNDND。

4、WECLKCLRN2N1DIN1N1N1N1N1N2N2N2N2N2A0A1A2A3A4…A30A31YQ1A0A1A2A3A4…A30A31YQ2Mux32*32Mux32*32寄存器堆内部结构图2、建立Verilog模型参见Modelsim中的相关设计文件。3、设计测试文件参见Modelsim中的测试文件。注意:测试的完备性。 4、将设计文件和测试文件输入Modelsim仿真工具,并进行编译和功能仿真。5、观测仿真波形图,分析结果是否正确。若有错误,则修改设计文件或测试文件,重新编译和仿真。五、实验结果参见Modelsim中的波形图和下表。序号输入数据仿真结果正确结果仿真结果的正确性1reset=0;data=32'd1; we=1;waddr=5'd0Register0=?Register0=? 正确或错误?2…………3reset=0;we=0; raddr1=5'd0;raddr2。

5、=5'd1;q11=?,q22=?q11=?,q22=?正确或错误?4………...《计算机组成与系统结构》 实验三控制器设计与仿真一、实验目的理解并掌握CPU控制器的基本电路结构及其设计方法,学会使用Verilog HDL对电路进行行为建模、结构建模以及仿真测试。二、实验内容利用Verilog HDL设计一个多周期处理机控制器,并进行仿真测试。要求该处理机能够实现下页表所示的指令系统。要求把指令的执行分为以下5个步骤,每个步骤用一个时钟周期。1、取指令及PC+1周期2、指令译码、读寄存器及转移周期3、ALU执行或者存储器地址计算周期4、ALU指令结束周期或者存储器访问周期5、写回周期31 2625 2120 1615 54 0指 令00 0000rdrs1 rs2and rd,rs1,rs2 00 0001rdrs1immeandi rd,rs1,imme00 0010rdrs1 rs2o。

6、r rd,rs1,rs200 0011rdrs1immeori rd,rs1,imme00 0100rdrs1 rs2add rd,rs1,rs200 0101rdrs1immeaddi rd,rs1,imme00 0110rdrs1 rs2sub rd,rs1,rs200 0111rdrs1immesubi rd,rs1,imme00 1000rdrs1immeload rd,rs1,imme00 1001rdrs1immestore rd,rs1,imme00 1010dispbne disp00 1011dispbeq disp00 1100dispbranch disp指令系统该多周期处理机的数据路径如下PC寄存器堆ALUABZERO存储器addressdataoutdatainCSOEWEWRITEMEMALUOPZEROZEROWRITEZEROMUXMUXMUX1偏移量符号扩。

7、展立即数符号扩展WRITEREGDIADA1A2Q2Q1SELLOADSELST偏移量立即数rdrs1rs2rdWRITEPCMUXIRMUXSELLDSTSELALUASELALUBABIMWRITEIR控制信号定义:参见上图,数据路径所需要的控制信号如下:WRITEPC:PC写使能信号,为1时,CLK上升沿把PC输入端的数据写入PC; SELLDST:存储器地址输入选择,为1时,选ALU计算出的地址,为0选PC; WRITEMEM:写存储器使能信号,由store指令产生;WRITEIR:IR写使能信号,为1时,CLK上升沿把由PC访问到的指令写入IR; SELLOAD:寄存器堆数据输入选择,为1时选存储器输出,为0选ALU输出;SELST:执行store指令时,从寄存器堆Q2端口读出寄存器rd的内容;WRITEREG:写寄存器堆使能信号;SELALUA:ALU A输入端选择,0选寄存器。

8、RS1,1选PC;SELALUB:ALU B输入端选择,00选寄存器RS2,01选立即数IM,10选1,11选偏移量;ALUOP:ALU操作控制码;WRITEZERO:写标志寄存器ZERO的使能信号;三、实验环境PC机1台、Modelsim仿真软件1套。四、实验步骤1、电路结构设计与逻辑设计多周期处理机的控制部件电路结构下一状态产生模块控制信号 产生模块状态寄存器CLKZEROOPCODEQ3Q2Q1Q0D3D2D1D0Q0Q1Q2Q3OPCODED0D1D2D3Q0Q1Q2Q3OPCODEZEROWRITEPCSELLDSTWRITEMEMWRITEIRSELLOADSELSTWRITEREGSELALUASELALUBALUOPWRITEZERO多周期处理机的状态转移图状态:完成某些特定功能的一个时钟周期,例如我们把取指令周期定义为一个状态,把指令译码周期定义为下一个状态。状态之间的转。

9、化发生在时钟上升沿。对于同一个问题,状态的定义和划分可以是不同的。下面给出一种多处理机的状态划分方案。见下图:IF (S0)ID (S1)ALURR (S2)LDWB (S10)ALURI (S3)LOAD (S4)STORE (S5)LDMEM (S8)STMEM (S9)ALURWB (S6)ALUIWB (S7)ALUR-RALUR-IloadstorebranchIFIDEXEMEMWB多周期处理机的状态转移表当前状态Q3Q2Q1Q0当前输入下个状态D3D2D1D00000 (S0)X0001 (S1)0001 (S1)BR0000 (S0)0001 (S1)RR0010 (S2)0001 (S1)RI0011 (S3)0001 (S1)load0100 (S4)0001 (S1)store0101 (S5)0010 (S2)X0110 (S6)0011 (S3)X0111 (S7。

10、)0100 (S4)X1000 (S8)0101 (S5)X1001 (S9)0110 (S6)X0000 (S0)0111 (S7)X0000 (S0)1000 (S8)X1010(S10)1001 (S9)X0000 (S0)1010(S10)X0000 (S0)其中:RR=and+or+add+sub(寄存器-寄存器操作);RI=andi+ori+addi+subi(寄存器-立即数操作);BR=branch+bne+beq(转移指令);X=任意。根据上述状态转移表,可以得到下一状态产生电路的逻辑表达式:D0=S0+S1*RI+S1*store+S3+S5;D1=S1*RR+S1*RI+S2+S3+S8;D2=S1*load+S1*store+S2+S3;D3=S4+S5+S8; 多周期处理机的控制信号表 S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 WRITEP。

11、C 1 BT 0 0 0 0 0 0 0 0 0SELLDST 0 X X X 1* 1* X X 1 1 1WRITEMEM 0 0 0 0 0 0 0 0 0 1 0WRITEIR 1 0 0 0 0 0 0 0 0 0 0SELLOAD X X X X 1* X 0 0 1* X 1SELST X 0 0 X X 1 0 X X 1 XWRITEREG 0 0 0 0 0 0 1 1 0 0 1SELALUA 1 1 0 0 0 0 0 0 0 0 0SELALUB1 1 1 0 0 0 0 0 0 0 0 0SELALUB0 0 1 0 1 1 1 0 1 1 1 1WRITEZERO 0 0 0 0 0 0 1 1 0 0 0ALUOP1 1 1 OP1 OP1 1 1 OP1 OP1 1 1 1ALUOP0 0 0 OP0 OP0 0 0 OP0 OP0 0 0 0 BT=br。

12、anch+bne*ZERO+beq*ZERO(转移发生) OP0=or+ori+sub+subi OP1=add+addi+sub+subi 多周期处理机控制信号的表达式WRITEPC=S0+S1*BT SELLDST=S4+S5+S8+S9+S10WRITEMEM=S9WRITEIR=S0SELLOAD=S4+S8+S10SELST=S5+S9WRITEREG=S6+S7+S10SELALUA=S0+S1SELALUB1=S0+S1SELALUB0=S1+S3+S4+S5+S7+S8+S9+S10WRITEZERO=S6+S7ALUOP1=S0+S1+S2*OP1+S3*OP1+S4+S5+S6*OP1+S7*OP1+S8+S9+S10ALUOP0=S2*OP0+S3*OP0+S6*OP0+S7*OP02、建立Verilog模型参见Modelsim中的相关设计文件。3、设计测试文件参见M。

13、odelsim中的测试文件。注意:测试的完备性。 4、将设计文件和测试文件输入Modelsim仿真工具,并进行编译和功能仿真。5、观测仿真波形图,分析结果是否正确。若有错误,则修改设计文件或测试文件,重新编译和仿真。五、实验结果参见Modelsim中的波形图。《计算机组成与系统结构》 实验四简单CPU设计与仿真一、实验目的理解并掌握CPU的基本电路结构及其设计方法,学会使用Verilog HDL对电路进行行为建模、结构建模以及仿真测试。二、实验内容利用Verilog HDL设计一个简单的CPU模型,并进行仿真测试。要求该处理机能够实现下页表所示的指令系统。要求把指令的执行分为以下5个步骤,每个步骤用一个时钟周期。1、取指令及PC+1周期2、指令译码、读寄存器及转移周期3、ALU执行或者存储器地址计算周期4、ALU指令结束周期或者存储器访问周期5、写回周期31 2625 2120 1615 。

14、54 0指 令00 0000rdrs1 rs2and rd,rs1,rs2 00 0001rdrs1immeandi rd,rs1,imme00 0010rdrs1 rs2or rd,rs1,rs200 0011rdrs1immeori rd,rs1,imme00 0100rdrs1 rs2add rd,rs1,rs200 0101rdrs1immeaddi rd,rs1,imme00 0110rdrs1 rs2sub rd,rs1,rs200 0111rdrs1immesubi rd,rs1,imme00 1000rdrs1immeload rd,rs1,imme00 1001rdrs1immestore rd,rs1,imme00 1010dispbne disp00 1011dispbeq disp00 1100dispbranch disp指令系统三、实验环境PC机1台、Model。

15、sim仿真软件1套。四、实验步骤1、电路结构设计见下页图:PC指令存储器寄存器堆ALUAB数据存储器AdderZEROaddressdataoutdatainCSOEWEWRITEMEMALUOPZEROWRITEZEROSELIMMEMUXMUXMUXMUXSELBRANCH1偏移量符号扩展立即数符号扩展WRITEREGDIADA1A2Q2Q1SELLOADSELST偏移量立即数rdrs1rs2rdaddressinsoutWRITEPCZEROOPCODE控制部件控制信号2、建立Verilog模型参见Modelsim中的相关设计文件。3、设计测试文件参见Modelsim中的测试文件。注意:测试的完备性。 4、将设计文件和测试文件输入Modelsim仿真工具,并进行编译和功能仿真。5、观测仿真波形图,分析结果是否正确。若有错误,则修改设计文件或测试文件,重新编译和仿真。五、实验结果参见Modelsim中的波形图。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值