//Universal shift register..32 bit
// en_out=1 serial out..
//en_out=0..parallel out
module Uni_shft_reg(data_out,
data_in,
s1,s0,
lft_shf,
ryt_shf,
en_out,load,
clk,reset);
output reg [31:0]data_out;
input [31:0]data_in;
input s1,s0,clk,reset,lft_shf,ryt_shf,en_out,load;
reg temp1[31:0],temp2 [31:0],temp3[31:0];
reg f1,f2;
always @(posedge clk or negedge reset)
begin
if (!reset)
begin data_out <= 32'd0; end
else
begin
case ({s1,s0})
2'b00 : data_out <= data_out;
2'b01 :begin
if(en_out==1)
data_out <= {ryt_shf,data_out[31:1]};
else begin
temp1[31] <= ryt_shf;
data_out <= temp1;
temp1 <= {temp1[30:0],1'b0};
end
end
2'b10 :begin
case(en_out)
1'b1: data_out <= {data_out[30:0],lft_shf};
1'b0: begin
temp2[0] <= lft_shf ;
data_out <= temp2;
temp2 <= {temp2[30:0],1'b0};
end
endcase
end
2'b11 : begin
if(en_out==0)
data_out<=data_in;
else
begin
if (load)
temp3 <= data_in;
else
begin data_out<= temp3[31];
temp3 <= {temp3[30:0],1'b0};end
end
endcase
end
endcase
end
end
endmodule
este es el código que he escrito para el registro de desplazamiento universal .. Al compilar ... Tengo un error que no puedo solucionar. Por favor, ayúdame ... gracias.
ERROR : Assignment compatible type required for assignment.
errores en la línea
línea 33, 34 44 46 58 61 63