|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
reg [7:0] mem[63:0] //64个寄存器构成寄存器组,里面包含了2个异步FIFO下面我对这个寄存器组进行写操作
例如
always @(negedge resetn or posedge tx_wclk) //这是对TX_FIFO所对应的寄存器组进行写操作
begin
if(!resetn)
begin
for(i=0;i<63;i=i+1)
mem <= 8'b0;
end
else if(tx_wreq && !tx_wfull)
mem[tx_waddr] <= tx_wdata;
end
always @(posedge rx_wclk or negedge resetn) //这是对RX_FIFO所对应的寄存器组进行写操作
begin
if(!resetn)
begin
for(i=0;i<63;i=i+1)
mem <= 8'b0;
end
else if(rx_wreq&&!rx_wfull)
mem[rx_waddr] <= rx_wdata;
end
这里我能确保tx_waddr和rx_waddr不会指向相同的地址单元,但编译时显示对mem多驱动赋值,我想把这两块合成一块来避免这个错误,但试了很多都无法解决,因为TX_FIFO和RX_FIFO是两个独立的模块,tx_clk和rx_clk可能同时跳变,即可能同时对2个FIFO进行写操作,这里不知道该怎么办了,求助~~ |
|