`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'b1 //译码输出格式选择标志,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