您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 杭电计算机组成原理寄存器堆设计实验-4
杭州电子科技大学计算机学院实验报告课程名称:计算机组成原理实验项目:寄存器堆设计实验指导教师实验位置:姓班级:学号:日期:2015年5月7日实验目的(1)学习和使用VerlilogHDL进行和思绪电路的设计方法(2)掌握灵活的运用VerilogHDL进行各种描述与建模的技巧和方法(3)学习寄存器堆的数据传送与读写工作原理,掌握寄存器读一的设计方法实验环境ISEDesignSuite14.6DigilentAdeptNexys3实验板实验内容(算法、程序、步骤和方法)根据实验原理设计32个32位的寄存器堆,有俩个读端口,1个写端口,既能同时读出两个寄存器的值,写入一个寄存器,设计寄存器只需要定义一个reg类型的数组即可完成,利用数组下标操作,寄存器即可,同时也有Rest和CLk信号控制我们的操作的进行。8位的LED进行显示我们读出的数据的一部分!1.实验的顶层模块:moduleTest_Rgisterfile(Addr,Write_Reg,C1,C2,Clk,Reset,LED);input[4:0]Addr;input[1:0]C1;inputWrite_Reg,C2,Clk,Reset;outputreg[7:0]LED;wire[31:0]R_Data_A,R_Data_B;reg[31:0]W_Data;reg[4:0]A,B;Registerfilereg1(A,B,Addr,Write_Reg,W_Data,Clk,Reset,R_Data_A,R_Data_B);always@(AddrorWrite_RegorC1orC2orR_Data_AorR_Data_B)beginA=0;B=0;LED=0;W_Data=0;if(!Write_Reg)beginif(!C2)beginA=Addr;case(C1)2'b00:LED=R_Data_A[7:0];2'b01:LED=R_Data_A[15:8];2'b10:LED=R_Data_A[23:16];2'b11:LED=R_Data_A[31:24];endcaseendelsebeginB=Addr;case(C1)2'b00:LED=R_Data_B[7:0];2'b01:LED=R_Data_B[15:8];2'b10:LED=R_Data_B[23:16];2'b11:LED=R_Data_B[31:24];endcaseendendelsebegincase(C1)2'b00:W_Data=32'h0000_0003;2'b01:W_Data=32'h0000_0607;2'b10:W_Data=32'hFFFF_FFFF;2'b11:W_Data=32'h1111_1234;endcaseendendendmodule2.寄存器的操作模块:moduleRegisterfile(input[4:0]R_Addr_A,input[4:0]R_Addr_B,input[4:0]W_Addr,inputWrite_Reg,input[31:0]W_Data,inputClk,inputReset,output[31:0]R_Data_A,output[31:0]R_Data_B);reg[31:0]REG_Files[0:31];reg[5:0]i;initialbeginfor(i=0;i=31;i=i+1)REG_Files[i]=0;endassignR_Data_A=REG_Files[R_Addr_A];assignR_Data_B=REG_Files[R_Addr_B];always@(posedgeClkorposedgeReset)beginif(Reset)for(i=0;i=31;i=i+1)REG_Files[i]=0;elseif(Write_Reg&&W_Addr!=0)REG_Files[W_Addr]=W_Data;endendmodule(接上)实验内容(算法、程序、步骤和方法)3.管脚配置NETAddr[0]LOC=M8;NETAddr[1]LOC=N8;NETAddr[2]LOC=U8;NETAddr[3]LOC=V8;NETAddr[4]LOC=T5;NETC1[0]LOC=T10;NETC1[1]LOC=T9;NETC2LOC=B8;NETClkLOC=C9;NETLED[0]LOC=U16;NETLED[1]LOC=V16;NETLED[2]LOC=U15;NETLED[3]LOC=V15;NETLED[4]LOC=M11;NETLED[5]LOC=N11;NETLED[6]LOC=R11;NETLED[7]LOC=T11;NETResetLOC=D9;NETWrite_RegLOC=V9;数据记录和计算实验仿真波形:结论(结果)按照实验的要求,一步步的进行操作。能够正确的进行Wire_Reg写操作,进行读操作时LED灯的显示,利用选择A,B操作读出信号,已经Reset进行清零信号的操作,都能顺利的进行,本实验多次失败,收获不小。试验心得与小结本实验,让我更加清楚的认识到寄存器如何进行操作,实验了很多次,学到了很多的东西,经过多次的调试最终成功了,还是特别的开心。在不同模块中调用寄存器,利用寄存器数组的方式进行,32位的数据的输入采用选择信号进行操作,这些都是一步步的实验进行下来的收获!指导教师评议成绩评定:指导教师签名:
本文标题:杭电计算机组成原理寄存器堆设计实验-4
链接地址:https://www.777doc.com/doc-4812290 .html