lin-win-share/DA4008_V1.3/model/DEM_Reverse_64CH.v

69 lines
1.5 KiB
Coq
Raw Permalink Normal View History

module DEM_Reverse_64CH (
input clk
,input [6:0] msb_pos_in [31:0]
,input [4:0] lsb_pos_in [31:0]
,input [6:0] msb_neg_in [31:0]
,input [4:0] lsb_neg_in [31:0]
,input vld_in
,output reg vld_out
,output reg [7:0] data_out [63:0]
);
reg [7:0] data_neg_out_rr[31:0];
reg [7:0] data_pos_out_r [31:0];
reg [7:0] data_neg_out_r [31:0];
reg [1:0] vld_out_r;
genvar k;
generate
for(k = 0; k < 32; k = k + 1) begin
DEM_Reverse U_DEM_Reverse (
.clk ( clk )
,.therm_in ( msb_pos_in[k] )
,.bin_in ( lsb_pos_in[k] )
,.data_out ( data_pos_out_r[k] )
);
end
for(k = 0; k < 32; k = k + 1) begin
DEM_Reverse U_DEM_Reverse (
.clk ( ~clk )
,.therm_in ( msb_neg_in[k] )
,.bin_in ( lsb_neg_in[k] )
,.data_out ( data_neg_out_r[k] )
);
end
endgenerate
generate
for(k = 0; k < 64; k = k + 1) begin
if(k<32) begin
assign data_out[k] = data_pos_out_r[k];
end
else begin
assign data_out[k] = data_neg_out_rr[k-32];
end
end
endgenerate
always @(posedge clk) begin
data_neg_out_rr <= data_neg_out_r;
end
// \u5728\u65f6\u949f\u4e0a\u5347\u6cbf\u5bc4\u5b58\u8f93\u51fa
always @(posedge clk) begin
vld_out_r <= {vld_out_r[0],vld_in};
end
assign vld_out = vld_out_r[1];
endmodule