`timescale 1ns / 1ns ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2019/11/14 17:44:48 // Design Name: // Module Name: CCSDS_LDPC_DEC_K1024_R12_TOPP // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module CCSDS_LDPC_DEC_K1024_R12_TOPP #( parameter MAX_ITER_NUM = 6'd14, //最大迭代次数常量 parameter WIDTH = 4'd8, //量化比特 parameter OUT_ONLY_INFORMATION = 1'b0 //译码输出格式选择标志,1:只输出信息位;0:输出整个码字 ) ( input clk, //工作时钟,100MHz input Rst, //同步复位信号,高有效 input FrameSync, //帧同步标志,高脉冲 input Nd, //译码输入数据有效标志,高有效 input [WIDTH-1:0] Din, //译码输入数据,软信息 output LDPC_SyncOut, //LDPC 模块帧同步输出信号,高脉冲,指示帧起点 output Rdy, //译码输出信号有效标志,高有效 output [0:0] LDPC_Dout, //译码输出信号,MSB输出 output [8:0] good_frames, //译码好帧计数 output [8:0] bad_frames, //译码坏帧计数 output [8:0] total_frames //译码总帧数计数 ); wire FrameSync_A_TM; wire Nd_A_TM; wire [WIDTH-1:0] Din_A_TM; wire FrameSync_B_TM; wire Nd_B_TM; wire [WIDTH-1:0] Din_B_TM; wire LDPC_SyncOut_A; wire Rdy_A; wire [0:0] LDPC_Dout_A; wire [8:0] good_frames_A; wire [8:0] bad_frames_A; wire [8:0] total_frames_A; wire LDPC_SyncOut_B; wire Rdy_B; wire [0:0] LDPC_Dout_B; wire [8:0] good_frames_B; wire [8:0] bad_frames_B; wire [8:0] total_frames_B; LDPC_TopManage_2 #( .WIDTH(WIDTH) ) TM ( .clk(clk), .Rst(Rst), .FrameSync_TM(FrameSync), .Nd_TM(Nd), .Din_TM(Din), .FrameSync_A_TM(FrameSync_A_TM), .Nd_A_TM(Nd_A_TM), .Din_A_TM(Din_A_TM), .FrameSync_B_TM(FrameSync_B_TM), .Nd_B_TM(Nd_B_TM), .Din_B_TM(Din_B_TM), .LDPC_SyncOut_A_TM(LDPC_SyncOut_A), .Rdy_A_TM(Rdy_A), .LDPC_Dout_A_TM(LDPC_Dout_A), .good_frames_A_TM(good_frames_A), .bad_frames_A_TM(bad_frames_A), .total_frames_A_TM(total_frames_A), .LDPC_SyncOut_B_TM(LDPC_SyncOut_B), .Rdy_B_TM(Rdy_B), .LDPC_Dout_B_TM(LDPC_Dout_B), .good_frames_B_TM(good_frames_B), .bad_frames_B_TM(bad_frames_B), .total_frames_B_TM(total_frames_B), .LDPC_SyncOut_TM(LDPC_SyncOut), .Rdy_TM(Rdy), .LDPC_Dout_TM(LDPC_Dout), .good_frames_TM(good_frames), .bad_frames_TM(bad_frames), .total_frames_TM(total_frames) ); CCSDS_LDPC_DEC_K1024_R12 #( .MAX_ITER_NUM(MAX_ITER_NUM), .WIDTH(WIDTH), .OUT_ONLY_INFORMATION(OUT_ONLY_INFORMATION) ) inst_DEC_A ( .clk(clk), .Rst(Rst), .FrameSync(FrameSync_A_TM), .Nd(Nd_A_TM), .Din(Din_A_TM), .LDPC_SyncOut(LDPC_SyncOut_A), .Rdy(Rdy_A), .LDPC_Dout(LDPC_Dout_A), .good_frames(good_frames_A), .bad_frames(bad_frames_A), .total_frames(total_frames_A) ); CCSDS_LDPC_DEC_K1024_R12 #( .MAX_ITER_NUM(MAX_ITER_NUM), .WIDTH(WIDTH), .OUT_ONLY_INFORMATION(OUT_ONLY_INFORMATION) ) inst_DEC_B ( .clk(clk), .Rst(Rst), .FrameSync(FrameSync_B_TM), .Nd(Nd_B_TM), .Din(Din_B_TM), .LDPC_SyncOut(LDPC_SyncOut_B), .Rdy(Rdy_B), .LDPC_Dout(LDPC_Dout_B), .good_frames(good_frames_B), .bad_frames(bad_frames_B), .total_frames(total_frames_B) ); endmodule