资源描述:
《杭电计算机组成原理多功能alu设计实验3》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、杭州电子科技大学计算机学院课程名称:计算机组成原理实验项目:多功能ALU设计实验指导教师:实验位置:实验报告姓班学H^:氣#:肌实验0的sms(1)学习多功能ALU的工作原理,掌握运算器的没计方法。(2)掌握运用VerilogHDL进行行为描述与建模的技巧和方法。实骑XilinxISEDesignSuite13.4环境(1)创建工程,编写ALU模块代码。(2)编写对A、B数据进行选择的模块代码。(3)编写选择输出数据模块代码。(4)设置顶层文件,并将三个模块代码导入。(5)设置输入信号,进行软件仿真并记录仿真波形。(6)生成BIT文件并下载入FPGA中,进
2、行硬件测试。(7)记录测试结果。(1)ALU模块代码,利用三八译码器,将我们将要操作的对象,进行分别的处理。moduleALU_TOP(A,B,F,ZF,OF,ALU_OP);i叩ut[31:0]A,B;input[2:0JALU_OP;outputZF,OF;output[31:01F;reg[31:0]F;regZF,OF;reg[5:0]i;regC;always@(ALU_OPorAorB)beginregf32:01CF;(sH)mgscase(ALU_OP)3’b000:beginCF=A&B;end3’b001:beginCF=A
3、B;end
4、3’b()10:beginCF=AAB;end3'b011:beginCF=A〜八B;end3*bl00:beginCF=A+B;end3’bl0kbeginCF=A-B;end3'bl10:beginCF=(A
5、F[i];ZF=〜ZF;OF=A[31]AB[31]AF[31]AC;endendmodule(2)输入数据选择模块代码,根据实验指导书上的对于32位数据的处理方式。
6、moduleChoice(AB_SW,A,B);input[2:0]AB一SW;output[31:01A,B;reg[31:0]A,B;wire12:OJAB_SW;always@(*)begincase(AB_SW)3*b000:beginA=32,h0000_0000;B=32,h0000_0000;end3*b001:beginA=32,h0000_0003;B=32'h0000_0607;end3*b010:beginA=32,h8000_0000;B=32,h8000_0000;end3'bOll:beginA=32,h7FFF_FFFF;B=
7、32,h7FFF_FFFF;end3'bl00:beginA=32,hFFFF_FFFF;B=32,hFFFF_FFFF;end3'blOl:beginA=32,h8000_0000;B=32,hFFFF_FFFF;end3.bl10:beginA=32,hFFFF_FFFF;B=32,h8000_0000;end3*blll:beginA=32,hl234_5678;B=32,h3333_2222;enddefault:beginA=32,h9ABC_DEF0;B=32,hl11l_2222;endendcaseendendmodule(2)输出数据选择
8、模块代码,根据实验指导书上的对于32位数据的处理方式。moduleCLED(F_LED_SW,LED,F,ZF,OF);input[31:0]F;inputZF,OF;i叩ut[2:0]F_LED_SW;output[7:01LED;reg[7:0]LED;wire[31:0]F;wire[2:0]F_LED_SW;wireZF,OF;always@(*)begincase(FLEDSW)3fb000:LED=F[7:0];3,bOOl:LED=F[15:8];3'b010:LED=F[23:16];3'b011:LED=F[31:24];default:
9、beginLED[7]=ZF;LED[0]=OF;LED[6:1J=6’b0;endendcaseendendmodule(2)顶层设计模块代码:moduleALU(AB_SW,ALU_OP,F_LED_SW,LED);input[2:0]AB_SW,ALU_OP,F_LED_SW;output[7:0]LED;wire[2:0]AB_SW,ALU_OP,F_LED_SW;wire[31:0]A,B,F;wireZF,OF;wire[7:0]LED;ChoiceC1(AB_SW,A,B);ALU一TOPA1(A,B,F,ZF,OF,ALU_OP);CLED
10、C2(F_LED一SW,LED,F,ZF,OF);endmodul