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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2907|回复: 6

[原创] 在FPGA内部生成RAM,在modelsin下仿真数据正确,但是下载到板子上数据出错???

[复制链接]
发表于 2016-3-7 20:55:50 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 诠释幸福 于 2016-3-7 20:57 编辑

在FPGA内部生成RAM大小为256*1,初始化mif文件全是0,现在对地址1先进行读,接着将数据1写进地址1,接着再对地址1读,按道理应该先读出0,写了之后在读出1,在modelsin下仿真ram输出数据正确,但是下载到板子上数据出错???主要是haspush_ram_data_out信号,应该是先低后高,但是抓出来全是高电平!!!!!!

程序如下:
//////////////////////////////////////////////////////////////////////////////////
module cfuwp(
input                           clk,
input
                          rst_n,
output                          haspush_ram_data_out
);


wire  [7:0]haspush_ram_rdaddress,haspush_ram_wraddress;
wire  haspush_ram_wren,haspush_ram_rden;
wire clk_200M;

reg [4:0]stage_count;

assign haspush_ram_wren=(stage_count==5'd1)?1'b1:1'b0;//写
assign haspush_ram_rden=(stage_count==5'd0 | stage_count==5'd2)?1'b1:1'b0;//两次读
assign haspush_ram_rdaddress=8'd1;
assign haspush_ram_wraddress=8'd1;

always @(posedge clk or negedge rst_n)
   if(!rst_n)

    stage_count<=5'b0;

else

stage_count<=stage_count+1'b1;

pll_200 pll_200_m0(.inclk0(clk),.c0(clk_200M));//又50Mhz时钟倍频到200Mhz用于生成下载到板子上的采样时钟
haspush_ram m3(.clock(clk),.data(1'b1),.rdaddress(haspush_ram_rdaddress),.rden(haspush_ram_rden),.wraddress(haspush_ram_wraddress),.wren(haspush_ram_wren),.q(haspush_ram_data_out));
endmodule

sigaltap抓出来的信号:haspush_ram_data_out为啥会一直保持高电平

sigaltap抓出来的信号:haspush_ram_data_out为啥会一直保持高电平

modelsim正确:haspush_ram_data_out先低后高

modelsim正确:haspush_ram_data_out先低后高
发表于 2016-3-7 21:33:15 | 显示全部楼层
建议用FPGA内部的软逻辑分析 ChipScope或者signaltap 直接抓RAM接口再定位什么原因
发表于 2016-3-7 21:33:17 | 显示全部楼层



rst 好怪 ..

    always @(posedge clk or negedge rst_n)
   
但看 simulation rst 一直 low -> hi ..跟本沒有 negedge
去 reset 內部吧 .
发表于 2016-3-7 22:54:00 | 显示全部楼层
请先判断时序是否满足啊?
 楼主| 发表于 2016-3-8 09:34:18 | 显示全部楼层
回复 2# paolocheng


    第一张图就是用sigaltap抓的
 楼主| 发表于 2016-3-8 09:39:04 | 显示全部楼层
回复 4# zhangbinsniper


   是看输入时钟吗?
发表于 2016-3-8 10:08:53 | 显示全部楼层
感觉逻辑没有问题,可能是复位问题吧,你先写10个地址,再从这10个地址读出来试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-5 18:51 , Processed in 0.021317 second(s), 10 queries , Gzip On, Redis On.

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