[X]关闭

SRAM问题。

文档创建者:luleiwangqi
浏览次数:10516
最后更新:2015-08-09
 
大家好。请问一下SRAM问题,困扰了好几天了。我是使用SRAM储存图像的,现在实验只存储四个点。现象是,存储后取出来的点,不断的在显示器上闪烁。同时显示的点的颜色也是错误的。因此推断是SRAM存储有问题。
下面是写SRAM代码:
   if((counter_y==10'd200)&&(counter_x==24'd400))//读取到第一个点
        begin
                                wr_cnt <= 17'b0;//写控制位
                                state <= WAIT;
                                send_c <= 1'b0;
                                wr_cnt <= 17'b1;
                                sram_we <= 1'b0;
                                sram_ce <= 1'b0;
                                sram_oe <= 1'b0;       
        end

    assign sram_data = (state==WAIT)? EDAT:23'hzzz;//EDAT是FPGA 与图像芯片RGB管脚相连接的


SRAM读代码:

        else if((counter_y==10'd500)&&(counter_x==24'd400))//读出第一个点
        begin

                                send_c <= 1'b0;
                                wr_cnt <= 17'b0;
                                sram_we <= 1'b1;
                                sram_ce <= 1'b0;
                                sram_oe <= 1'b0;
                                Red_1[11:4]<=sram_data[23:16];//Red_1,Grn_1,Blu_1是显示输出数据
                                Grn_1[11:4]<=sram_data[7:0];
                                Blu_1[11:4]<=sram_data[15:8];
               
        end


发表评论已发布 9

luleiwangqi

发表于 2015-8-8 15:18:49 | 显示全部楼层

请问这样的存取方法有问题吗?

米联-汤金元

发表于 2015-8-8 20:43:03 | 显示全部楼层

回帖奖励 +2

luleiwangqi 发表于 2015-8-8 15:18
请问这样的存取方法有问题吗?

没看明白你的程序,如果你是单次写,一次最多只能写入16bit数据,如果单次读,一次最多也只能读出16bit数据,因此怀疑你没有搞清楚SRAM读写时序,建议好好阅读下SRAM技术手册

牛见君

发表于 2015-8-8 21:39:02 | 显示全部楼层

回帖奖励 +2

在群里好像看到你把sram的数据端口做成三态的,我用sram都没这么搞过,就算是最简单的单端sram,写端口跟读端口都是独立开来的。

感觉楼主还是应该先弄清楚sram的读写时序,毕竟sram的读写时序是比较简单的。
光看到的,是凝固在时间中的你;就像你看到的,是凝固在时间中的光一样。

luleiwangqi

发表于 2015-8-9 08:55:39 | 显示全部楼层

一片sram的确是16位,但是我是把地址同时给两片sram。这样就是实现实现了24位数据了。我感觉这个时序关系没有问题啊。就是实现不了。

luleiwangqi

发表于 2015-8-9 08:57:17 | 显示全部楼层

牛见君 发表于 2015-8-8 21:39
在群里好像看到你把sram的数据端口做成三态的,我用sram都没这么搞过,就算是最简单的单端sram,写端口跟读 ...

额,我看了技术手册了,写的时候所有控制位都拉低。读的时候写拉高。但是怎么就实现不了呢。

牛见君

发表于 2015-8-9 09:07:59 | 显示全部楼层

你用的是外部硬件的sram,还是fpga内部的sram,如果是外部sram,还要考虑硬件故障的可能。

你可以先仿真测试代码的功能再上硬件测试。
光看到的,是凝固在时间中的你;就像你看到的,是凝固在时间中的光一样。

luleiwangqi

发表于 2015-8-9 09:13:47 | 显示全部楼层

牛见君 发表于 2015-8-9 09:07
你用的是外部硬件的sram,还是fpga内部的sram,如果是外部sram,还要考虑硬件故障的可能。

你可以先仿真 ...

硬件是确定没有问题的,因为他其他SOC的SRAM读写是正常的,这个输入比较特别,仿真不太好弄啊。

luleiwangqi

发表于 2015-8-9 09:14:30 | 显示全部楼层

luleiwangqi 发表于 2015-8-9 09:13
硬件是确定没有问题的,因为他其他SOC的SRAM读写是正常的,这个输入比较特别,仿真不太好弄啊。

对了。是外部SRAM。我感觉很好操作啊。怎么在这就行不通了呢。

牛见君

发表于 2015-8-9 19:08:16 | 显示全部楼层

如果你仿真功能可以实现的话,那就要检查一下管脚分配,硬件有没有问题了。
光看到的,是凝固在时间中的你;就像你看到的,是凝固在时间中的光一样。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则