多个输入端口共享一个存储器,如何处理好 ?
本帖最后由 atom100 于 2014-9-21 16:33 编辑请教,多个输入端口共享一个存储器,如何处理好 ?
moduleinput_port(
input clk,
input rst_n,
input port1_data,
input port1_addr,
input port2_data,
input port2_addr,
input port3_data,
input port3_addr
output ram_data,
output ram_addr,
)
三个端口共享一个ram存储器,用下面的方法是否可行 ?
always @(poseedge clk or negedge rst_n)
if(条件1)
begin
ram_data <=port1_data;
ram_add r<= port1_addr;
end
else if(条件2)
begin
ram_data <=port2_data;
ram_add r<= port2_addr;
end
else if(条件3)
begin
ram_data <=port3_data;
ram_add r<= port3_addr;
end
像上面这样处理是否好用 ??
可以,为什么要这么用呢? 可以的,条件互斥,处理好三态,不要数据冲突 lanliang714 发表于 2014-9-21 14:22
可以,为什么要这么用呢?
没有想到 其他好办法,你用办法的 ? zkf0100007 发表于 2014-9-21 15:06
可以的,条件互斥,处理好三态,不要数据冲突
请问 处理好三态是什么意思?
port1_data,
port1_addr;
port2_data,
port2_addr
port3_data,
port3_addr
是输入,没法三态啊? atom100 发表于 2014-9-21 16:40
请问 处理好三态是什么意思?
port1_data,
port1_addr;
如果都是输入,那就没问题,互斥就行 加一个多路选择器就可以了。 rayman_ppx 发表于 2014-9-21 22:21
加一个多路选择器就可以了。
quartus ii 里的 megawizard里有 多路选择器吗 ?在哪个目录下,没找到呢 双口ram?加上仲裁? 双口ram?加上仲裁? 双口ram?加上仲裁? 不是,我用 外挂 sdram的,想用5个端口分时共享一个sdram存储器 不明白,楼主是想这个ram_data能够存储Port1-3中的任意一个数据吗? 本帖最后由 atom100 于 2014-9-22 00:20 编辑
嗯,是想这样,不过sdram 是bank的 ,某bank 存port1,另一个 bank存port2 。。。
本帖最后由 atom100 于 2014-9-22 00:20 编辑
步之道 发表于 2014-9-21 22:53
不明白,楼主是想这个ram_data能够存储Port1-3中的任意一个数据吗?
或者是分地址区间
嗯,是想这样,不过sdram 是分区的 ,某个地址区间 存port1,另一个 地址区间存port2 。。。
页:
[1]