Registers:
moduleRegisters(Reset_n,Clock,R_num1,R_num2,R_num3,W_num,DIN,RegWrite,DOUT1,DOUT2,
DOUT3,DOUT4,DOUT5,DOUT6,DOUT7,DOUT8,
R_num4,R_num5,R_num6,R_num7,R_num8);
input Reset_n,Clock;
input [5:1]R_num1,R_num2,W_num;
input[4:0]R_num3,R_num4,R_num5,R_num6,R_num7,R_num8;
input [32:1]DIN;
input RegWrite;
output[32:1]DOUT1,DOUT2,DOUT3,DOUT4,DOUT5,DOUT6,DOUT7,DOUT8;
reg [32:1]DOUT1,DOUT2,DOUT3,DOUT4,DOUT5,DOUT6,DOUT7,DOUT8;
reg[32:1]at,v0,v1,a0,a1,a2,a3,t0,t1,t2,t3,t4,t5,t6,t7;
reg[32:1]s0,s1,s2,s3,s4,s5,s6,s7,t8,t9,k0,k1,gp,sp,fp,ra;
always@(negedge Reset_n or posedge Clock)
begin
if(Reset_n== 0)
begin
at<=0;
v0<=0;
v1<=0;
a0<=0;
a1<=0;
a2<=0;
a3<=0;
t0<=0;
t1<=0;
t2<=0;
t3<=0;
t4<=0;
t5<=0;
t6<=0;
t7<=0;
s0<=0;
s1<=0;
s2<=0;
s3<=0;
s4<=0;
s5<=0;
s6<=0;
s7<=0;
t8<=0;
t9<=0;
k0<=0;
k1<=0;
end
elseif(RegWrite)
begin
case(W_num)
5'b00001:at<=DIN;
5'b00010:v0<=DIN;
5'b00011:v1<=DIN;
5'b00100:a0<=DIN;
5'b00101:a1<=DIN;
5'b00110:a2<=DIN;
5'b00111:a3<=DIN;
5'b01000:t0<=DIN;
5'b01001:t1<=DIN;
5'b01010:t2<=DIN;
5'b01011:t3<=DIN;
5'b01100:t4<=DIN;
5'b01101:t5<=DIN;
5'b01110:t6<=DIN;
5'b01111:t7<=DIN;
5'b10000:s0<=DIN;
5'b10001:s1<=DIN;
5'b10010:s2<=DIN;
5'b10011:s3<=DIN;
5'b10100:s4<=DIN;
5'b10101:s5<=DIN;
5'b10110:s6<=DIN;
5'b10111:s7<=DIN;
5'b11000:t8<=DIN;
5'b11001:t9<=DIN;
5'b11010:k0<=DIN;
5'b11011:k1<=DIN;
default :;
endcase
end
2015年04月23日 15点04分
6