呵呵,lz还比较仔细,我认为ram的读写还是由wren 决定的 wr0: process( clock ) begin if rising_edge(clock) then if wren = '1' then 这里有判断wren的值,而对应的rd程序就没有。就是在clock上升沿且wren=1时写数,而rd段没有这个限制,只要clock上升就可以读出数据。因为是双端的,不会有地址数据冲突的现象。所以我个人觉得谁优先没有关系,吧wren控制好就可以了。 mem0(conv_integer(wr_adr)) <= data_re_in; end if; end if; end process wr0;
rd0: process( clock ) begin if rising_edge(clock) then addr_reg0 <= rd_adr; end if; data_re_out <= mem0(conv_integer(addr_reg0)); end process rd0; --data_re_out <= mem0(conv_integer(addr_reg0));
[此贴子已经被作者于2007-12-6 14:23:12编辑过] |