📄 ctc_decoder.v
字号:
.rden ( dpram32_rd ),
.wraddress ( dpram32_wradr ),
.wren ( dpram32_wr ),
.q ( dpram32_rddat[23:0] )
);
///ctc rx_fsm
ctc_rx_fsm ctc_rx_fsm
(
.empty(empty_pre_ctc_fifo),
.usedw(usedw_pre_ctc_fifo),
.eop_rd(eop_rd_pre_ctc_fifo),
.dat_rd(dat_rd_pre_ctc_fifo),
.rd(rd_pre_ctc_fifo),
.core1_req(core1_req),
.core1_gnt(core1_gnt),
.wr1_over(wr1_over),
.rx2ctrl1_length(rx2ctrl1_length),
.rx2ctrl1_type(rx2ctrl1_type),
.rx2ctrl1_frame_end_flag(rx2ctrl1_frame_end_flag), //add by mahui 070704
.rx2ctrl1_inst(rx2ctrl1_inst),
.rx2ctrl1_code_rate(rx2ctrl1_code_rate),
.rx2ctrl1_modu_type(rx2ctrl1_modu_type),
.rx2ctrl1_bnum(rx2ctrl1_bnum),
.rx2ctrl1_fnum(rx2ctrl1_fnum),
.rx2ctrl1_miter(rx2ctrl1_miter),
.rx2ctrl1_segId(rx2ctrl1_segId),
.core2_req(core2_req),
.core2_gnt(core2_gnt),
.wr2_over(wr2_over),
.rx2ctrl2_length(rx2ctrl2_length),
.rx2ctrl2_type(rx2ctrl2_type),
.rx2ctrl2_frame_end_flag(rx2ctrl2_frame_end_flag), //add by mahui 070704
.rx2ctrl2_inst(rx2ctrl2_inst),
.rx2ctrl2_code_rate(rx2ctrl2_code_rate),
.rx2ctrl2_modu_type(rx2ctrl2_modu_type),
.rx2ctrl2_bnum(rx2ctrl2_bnum),
.rx2ctrl2_fnum(rx2ctrl2_fnum),
.rx2ctrl2_miter(rx2ctrl2_miter),
.rx2ctrl2_segId(rx2ctrl2_segId),
.core3_req(core3_req),
.core3_gnt(core3_gnt),
.wr3_over(wr3_over),
.rx2ctrl3_length(rx2ctrl3_length),
.rx2ctrl3_type(rx2ctrl3_type),
.rx2ctrl3_frame_end_flag(rx2ctrl3_frame_end_flag), //add by mahui 070704
.rx2ctrl3_inst(rx2ctrl3_inst),
.rx2ctrl3_code_rate(rx2ctrl3_code_rate),
.rx2ctrl3_modu_type(rx2ctrl3_modu_type),
.rx2ctrl3_bnum(rx2ctrl3_bnum),
.rx2ctrl3_fnum(rx2ctrl3_fnum),
.rx2ctrl3_miter(rx2ctrl3_miter),
.rx2ctrl3_segId(rx2ctrl3_segId),
.dpram11_wrdat(dpram11_wrdat),
.dpram11_wr(dpram11_wr),
.dpram11_wradr(dpram11_wradr),
.dpram12_wrdat(dpram12_wrdat),
.dpram12_wr(dpram12_wr),
.dpram12_wradr(dpram12_wradr),
.dpram21_wrdat(dpram21_wrdat),
.dpram21_wr(dpram21_wr),
.dpram21_wradr(dpram21_wradr),
.dpram22_wrdat(dpram22_wrdat),
.dpram22_wr(dpram22_wr),
.dpram22_wradr(dpram22_wradr),
.dpram31_wrdat(dpram31_wrdat),
.dpram31_wr(dpram31_wr),
.dpram31_wradr(dpram31_wradr),
.dpram32_wrdat(dpram32_wrdat),
.dpram32_wr(dpram32_wr),
.dpram32_wradr(dpram32_wradr),
.ctc_fifo1_usedw(ctc_fifo1_usedw),
.ctc_fifo2_usedw(ctc_fifo2_usedw),
.ctc_fifo3_usedw(ctc_fifo3_usedw),
.sys_clk(sys_clk),
.reset_b(reset_b),
.rx_counter1_nc(),.rx_counter2_nc(),.rx_counter3_nc()//debug
);
///ctc tx_fsm
ctc_tx_fsm ctc_tx_fsm
(
.ctc_fifo1_rddat(ctc_fifo1_rddat),
.ctc_fifo1_usedw(ctc_fifo1_usedw),
.ctc_fifo1_empty(ctc_fifo1_empty),
.ctc_fifo1_rdreq(ctc_fifo1_rdreq),
.ctc_fifo2_rddat(ctc_fifo2_rddat),
.ctc_fifo2_usedw(ctc_fifo2_usedw),
.ctc_fifo2_empty(ctc_fifo2_empty),
.ctc_fifo2_rdreq(ctc_fifo2_rdreq),
.ctc_fifo3_rddat(ctc_fifo3_rddat),
.ctc_fifo3_usedw(ctc_fifo3_usedw),
.ctc_fifo3_empty(ctc_fifo3_empty),
.ctc_fifo3_rdreq(ctc_fifo3_rdreq),
.full_post_ctc_fifo(full_post_ctc_fifo),
.empty_post_ctc_fifo(empty_post_ctc_fifo),
.wrusedword_post_ctc_fifo(wrusedword_post_ctc_fifo),
.wr_post_ctc_fifo(wr_post_ctc_fifo),
.eop_wr_post_ctc_fifo(eop_wr_post_ctc_fifo),
.dat_wr_post_ctc_fifo(dat_wr_post_ctc_fifo),
.sys_clk(sys_clk),
.reset_b(reset_b),
.tx_counter1_nc(),.tx_counter2_nc(),.tx_counter3_nc()//debug
);
///ctc decoder core1 output fifo
ctc_fifo ctc_fifo1
(
.aclr ( !reset_b ),
.clock ( sys_clk ),
.data ( ctc_fifo1_wrdat[31:0] ),
.rdreq ( ctc_fifo1_rdreq ),
.wrreq ( ctc_fifo1_wrreq ),
.empty ( ctc_fifo1_empty ),
.full ( ctc_fifo1_full ),
.q ( ctc_fifo1_rddat[31:0]),
.usedw ( ctc_fifo1_usedw[8:0] )
);
///ctc decoder core2 output fifo
ctc_fifo ctc_fifo2
(
.aclr ( !reset_b ),
.clock ( sys_clk ),
.data ( ctc_fifo2_wrdat[31:0] ),
.rdreq ( ctc_fifo2_rdreq ),
.wrreq ( ctc_fifo2_wrreq ),
.empty ( ctc_fifo2_empty ),
.full ( ctc_fifo2_full ),
.q ( ctc_fifo2_rddat[31:0]),
.usedw ( ctc_fifo2_usedw[8:0] )
);
///ctc decoder core3 output fifo
ctc_fifo ctc_fifo3
(
.aclr ( !reset_b ),
.clock ( sys_clk ),
.data ( ctc_fifo3_wrdat[31:0] ),
.rdreq ( ctc_fifo3_rdreq ),
.wrreq ( ctc_fifo3_wrreq ),
.empty ( ctc_fifo3_empty ),
.full ( ctc_fifo3_full ),
.q ( ctc_fifo3_rddat[31:0]),
.usedw ( ctc_fifo3_usedw[8:0] )
);
///ctc_decoder_core
ctc_decoder_core ctc_decoder_core1
(
.core_gnt(core1_gnt),
.wr_over(wr1_over),
.rx2ctrl_length(rx2ctrl1_length),
.rx2ctrl_type(rx2ctrl1_type),
.rx2ctrl_frame_end_flag(rx2ctrl1_frame_end_flag), //add by mahui 070704
.rx2ctrl_inst(rx2ctrl1_inst),
.rx2ctrl_code_rate(rx2ctrl1_code_rate),
.rx2ctrl_modu_type(rx2ctrl1_modu_type),
.rx2ctrl_bnum(rx2ctrl1_bnum),
.rx2ctrl_fnum(rx2ctrl1_fnum),
.rx2ctrl_miter(rx2ctrl1_miter),
.rx2ctrl_segId(rx2ctrl1_segId),
.dec_finish(dec1_finish),
.core_req(core1_req),
.dpram1_rddat(dpram11_rddat),
.dpram1_rdadr(dpram11_rdadr),
.dpram1_rd(dpram11_rd),
.dpram2_rddat(dpram12_rddat),
.dpram2_rdadr(dpram12_rdadr),
.dpram2_rd(dpram12_rd),
.ctc_fifo_empty(ctc_fifo1_empty),
.ctc_fifo_full(ctc_fifo1_full),
.ctc_fifo_usedw(ctc_fifo1_usedw),
.ctc_fifo_wrdat(ctc_fifo1_wrdat),
.ctc_fifo_wrreq(ctc_fifo1_wrreq),
.sys_clk(sys_clk),
.reset_b(reset_b)
);
ctc_decoder_core ctc_decoder_core2
(
.core_gnt(core2_gnt),
.wr_over(wr2_over),
.rx2ctrl_length(rx2ctrl2_length),
.rx2ctrl_type(rx2ctrl2_type),
.rx2ctrl_frame_end_flag(rx2ctrl2_frame_end_flag), //add by mahui 070704
.rx2ctrl_inst(rx2ctrl2_inst),
.rx2ctrl_code_rate(rx2ctrl2_code_rate),
.rx2ctrl_modu_type(rx2ctrl2_modu_type),
.rx2ctrl_bnum(rx2ctrl2_bnum),
.rx2ctrl_fnum(rx2ctrl2_fnum),
.rx2ctrl_miter(rx2ctrl2_miter),
.rx2ctrl_segId(rx2ctrl2_segId),
.dec_finish(dec2_finish),
.core_req(core2_req),
.dpram1_rddat(dpram21_rddat),
.dpram1_rdadr(dpram21_rdadr),
.dpram1_rd(dpram21_rd),
.dpram2_rddat(dpram22_rddat),
.dpram2_rdadr(dpram22_rdadr),
.dpram2_rd(dpram22_rd),
.ctc_fifo_empty(ctc_fifo2_empty),
.ctc_fifo_full(ctc_fifo2_full),
.ctc_fifo_usedw(ctc_fifo2_usedw),
.ctc_fifo_wrdat(ctc_fifo2_wrdat),
.ctc_fifo_wrreq(ctc_fifo2_wrreq),
.sys_clk(sys_clk),
.reset_b(reset_b)
);
ctc_decoder_core ctc_decoder_core3
(
.core_gnt(core3_gnt),
.wr_over(wr3_over),
.rx2ctrl_length(rx2ctrl3_length),
.rx2ctrl_type(rx2ctrl3_type),
.rx2ctrl_frame_end_flag(rx2ctrl3_frame_end_flag), //add by mahui 070704
.rx2ctrl_inst(rx2ctrl3_inst),
.rx2ctrl_code_rate(rx2ctrl3_code_rate),
.rx2ctrl_modu_type(rx2ctrl3_modu_type),
.rx2ctrl_bnum(rx2ctrl3_bnum),
.rx2ctrl_fnum(rx2ctrl3_fnum),
.rx2ctrl_miter(rx2ctrl3_miter),
.rx2ctrl_segId(rx2ctrl3_segId),
.dec_finish(dec3_finish),
.core_req(core3_req),
.dpram1_rddat(dpram31_rddat),
.dpram1_rdadr(dpram31_rdadr),
.dpram1_rd(dpram31_rd),
.dpram2_rddat(dpram32_rddat),
.dpram2_rdadr(dpram32_rdadr),
.dpram2_rd(dpram32_rd),
.ctc_fifo_empty(ctc_fifo3_empty),
.ctc_fifo_full(ctc_fifo3_full),
.ctc_fifo_usedw(ctc_fifo3_usedw),
.ctc_fifo_wrdat(ctc_fifo3_wrdat),
.ctc_fifo_wrreq(ctc_fifo3_wrreq),
.sys_clk(sys_clk),
.reset_b(reset_b)
);
endmodule ///ctc_decoder
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -