问题描述
关键字:无效,错误
我一直在仿真一个新的MPMC2设计,它在NPI端口上使用双字访问存储器。写访问时数据已损坏。
我该如何解决这个问题?
解决/修复方法
问题是BRAM上’dbl_word_transaction’信号的时序错误导致’push_toggle’(在write_fifo_bram.v中)为双字事务切换。要解决此问题,请修改mpmc2_write_fifo.v文件,如下所示:
//制作BRAM FIFO
其他
开始:use_BRAMs
write_fifo_bram
#(
.C_FAMILY(C_FAMILY),
.C_NUM_BRAM(C_WRITE_FIFO_NUM_BRAM),
.C_WRITE_FIFO_MEMORY_WIDTH(C_WRITE_FIFO_MEMORY_WIDTH),
.C_WRITE_FIFO_PORT_WIDTH(C_WRITE_FIFO_PORT_WIDTH),
.C_WRITE_FIFO_APP_PIPELINE(C_WRITE_FIFO_APP_PIPELINE),
.C_WRITE_FIFO_MEM_PIPELINE(C_WRITE_FIFO_MEM_PIPELINE)
)
wrfifo_bram
(
.CLK_bram_mem_side(CLK_mem_side),
.CLK_bram_app_side(CLK_app_side),
.CLK2X_bram_mem_side(CLK2X_mem_side),
.CLK2X_bram_app_side(CLK2X_app_side),
.reset(Rst || reset_fifo),
。推推),
.pop(pop),
.app_data_in(app_data_to_fifo),
.app_be_in(app_be_to_fifo),
.mem_data_out(fifo_data_to_tml),
.mem_be_out(fifo_be_to_tml),
.dbl_word_transaction(dbl_word_transaction_i),// IB已更改17/06/08 – ‘dbl_word_transaction_i_d1’是一个双字访问迟到的周期!
// .dbl_word_transaction(dbl_word_transaction_i_d1),
.which_dbl_word(which_dbl_word)
);
此问题不会影响MPMC v3及更高版本。
没有回复内容