在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2000|回复: 1

[求助] 求救!!BRAM数据读出现随机错误。

[复制链接]
发表于 2015-8-15 18:01:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
大家好, 我有个项目在XINLINX 的Artix100T上运行,开发板为Digilent公司的nexys 4。发现有个BRAM读数据出现随机性错误,甚至对同一地址反复读都是同一错误数据,好像BRAM数据被篡改一样, 读写时钟为50MHz。时序报告*.twx 对该BRAM接口无任何异常报告。 这个问题已经困扰我好长时间了,测量VCCINT 和VCCBRAM都在合理范围,相问问各位大侠有又没有遇到类似情况?问题应该从那里下手?谢谢(如果能有高手解决,有酬谢)!!
附上BRAM的VHDL代码:

entity BlockRAM_SDP is


generic(MemDepth : integer := 2048;

AddrBusWidth:integer:= 11;

DataBusWidth: integer := 16);
   
Port (

   
Clk : in  STD_LOGIC;
   
CE: in STD_LOGIC;

  
Read_Addr : in  STD_LOGIC_VECTOR ((AddrBusWidth - 1) downto 0);

Read_Data : out  STD_LOGIC_VECTOR ((DataBusWidth - 1) downto 0);



Write_Addr : in  STD_LOGIC_VECTOR ((AddrBusWidth - 1) downto 0);

Write_Data : in  STD_LOGIC_VECTOR ((DataBusWidth - 1) downto 0);

Write_En : in  STD_LOGIC


            
);


end BlockRAM_SDP;            


--read first model

architecture Behavioral of BlockRAM_SDP is

TYPE BRAMDataVector is array (natural range <>) of STD_LOGIC_VECTOR ((DataBusWidth - 1) downto 0);

signal Memory : BRAMDataVector(0 to (MemDepth - 1)) := (others => (others=>'0'));

begin


Process(Clk)


begin


if(Clk'event and Clk = '1') then

if(CE = '1') then





Read_Data <= Memory(conv_integer(Read_Addr));




if(Write_En = '1') then

Memory(conv_integer(Write_Addr)) <= Write_Data;

end if;




end if;

end if;



end process;

end Behavioral;
发表于 2015-8-16 10:06:29 | 显示全部楼层
可以考虑调用BRAM IP core试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-9-28 19:27 , Processed in 0.016605 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表