内容发布更新时间 : 2024/11/8 2:36:16星期一 下面是文章的全部内容请认真阅读。
四、引脚配置(约束文件) NET \NET \NET \NET \NET \NET \ LOC = \NET \ LOC = \NET \ LOC = \NET \ LOC = \NET \ LOC = \NET \ LOC = \NET \NET \NET \NET \NET \NET \NET \NET \ 五、思考与探索 寄存器地址 $00000 $00001 $00011 $00111 $01111 $11111 $10000 $11000 修改后的寄存器模块: ‘time scale 1ns/1ps Moudle Register(R_Addr_A,R_Addr_B,R_Data_A,R_Data_B,W_Addr,W_Data,Write_Reg,Clk,Reset); input [4:0] R_Addr_A; input [4:0] R_Addr_B; input [4:0] W_Addr; input [31:0] W_Data; input Write_Reg; input Clk; input Reset; output [31:0] R_Data_A; output [31:0] R_Data_B; integer i; 写入数据 0000_0000 0000_0003 7FFF_FFFF 7FFF_FFFF 0000_0000 0000_0003 7FFF_FFFF 7FFF_FFFF 读出数据 0000_0000 0000_0003 7FFF_FFFF 7FFF_FFFF 0000_0000 0000_0003 7FFF_FFFF 7FFF_FFFF reg[31:0] REG_Files[31:0];//定义寄存器 assign R_Data_A=REG_Files[R_Addr_A]; assign R_Data_B=REG_Files[R_Addr_B]; always @ (posedge Clk or posedge Reset) begin if(Reset)//清零 begin for(i=0;i<32;i++) REG_Files[i]<=0; end else begin if(Write_Reg&&(W_Addr!=0)) begin REG_Files[W_Addr]<=W_Data; end end end Endmoudle (3)、读操作是时钟的下降沿时候执行的,写操作是时钟上升沿执行的 (4)、通过实验深入理解了寄存器的工作过程,32位数据的显示,参考上次实验的分组显示法,将32位分为4组,每组8位。这次在写配置文件时,特意关注了引脚顺序。清零信号与clk时钟信号在需要清零时,同时按住才会将清零信号输入进去。