module test3(
clk,
reset,
en,
z0_in,
z0_out);
input clk;
input reset;
input en;
input [19:0] z0_in;
output [19:0] z0_out;
reg [19:0] z0_out;
reg [19:0] z0_in_temp;
always @(posedge clk or posedge reset)
begin
if(reset)
begin
z0_out <= 0;
z0_in_temp <= 0;
end
else
begin
if(en)
begin
z0_in_temp <= z0_in;
end
else
begin
z0_in_temp <= z0_in_temp;
end
if(-20'd131072<=z0_in_temp && z0_in_temp<=20'd131072)
begin
z0_out <= z0_in_temp;
end
if(20'd131072<z0_in_temp && z0_in_temp<20'd262144)
begin
z0_out <= z0_in_temp - 20'd262144;
end
if(-20'd262144<z0_in_temp && z0_in_temp<-20'd131072)
begin
z0_out <= z0_in_temp + 20'd262144;
end
end
end
endmodule |