我在FPGA中自定义了一个FIFO,一个RAM,两者都与DSP的总线XD(16位)相连,错误提示如下:
Error: The pin "XD[0]" has multiple drivers due to the non-tri-state driver "dataram:ram_hinbc2|altsyncram:altsyncram_component|altsyncram_lra1:auto_generated|q_a[0]"
一直到XD[15],都有同样的提示。
FIFO与RAM的片选地址并不相同,请问该如何处理,谢谢。
如下:
newfifo fifo2_armtodsp(//FIFO COMPONET
.aclr(FIFO2CLR),
.data(DATA),
.rdclk(XCLK_DSPOUT),
.rdreq(FIFO2RD),
.wrclk(FIFO_CLK),
.wrreq(FIFO2WR),
.q(XD),
.rdusedw(FIFO2RDDW),
.wrusedw(FIFO2WRDW)
);
以上是FIFO的定义。
dataram ram_hinab1(
.address(add_hin),
.clken (cs_hinab1),
.clock(XCLK_DSPOUT),
.data(RD_CNT_HINAB1),
.wren(wr_hin),
.q(XD)
);
以上是RAM的定义。
两个模块都有.q(XD)。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
原因我明白,就是不知道如何解决。
事实上,两种模块的片选地址在定义模块的读写时,是分开的,但FPGA编译时显然做不到智能判断,该如何定义呢?两个模块的输出都需要连接到数据总线上去。
除了这两个模块外,FPGA还需要控制其他外设的访问时序,所以XD总线是大于2个的多个设备总线共用。
我想用这个办法来解决XD多驱动的问题。
谢谢指导。
试试多选一
一周热门 更多>