搜索
bottom↓
回复: 5

SRAM控制代码,各位看看时序对不对

[复制链接]

出0入0汤圆

发表于 2011-7-10 11:02:07 | 显示全部楼层 |阅读模式
从网上载了几个SRAM控制代码,各种不能用。于是照着时序图写了一个,请各位看看有没有时序上的错误。

读时序


读时序 (原文件名:读时序.png)

写时序


写时序 (原文件名:写时序.png)

oe、ce 接地, 用we信号控制读写,
我的操作过程如下:
读:1、打开读信号,锁存地址传到地址总线
    2、锁存数据,关闭读信号
写:1、打开写信号,锁存地址和数据
    2、等待SRAM总线高阻形成
    3、关闭写信号,完成写过程

不知这样操作行不行?

代码如下:

module sram_ctrl (
        clk,rst_n,
        read,write,addr_i,wdata_i,rdata_o,
        SRAM_DQ,
        SRAM_ADDR,SRAM_LB_N,SRAM_UB_N,SRAM_CE_N,SRAM_OE_N,SRAM_WE_N

);

input                                clk;
input                                rst_n;

input                [22:0]        addr_i;
input                                read;
input                                write;
input                [15:0]        wdata_i;

output                [15:0]        rdata_o;

inout                [15:0]        SRAM_DQ;                // SRAM Data bus 16 Bits

output                [22:0]        SRAM_ADDR;                // SRAM Address bus 18 Bits
output                                SRAM_LB_N;                // SRAM Low-byte Data Mask
output                                SRAM_UB_N;                // SRAM High-byte Data Mask
output                                SRAM_CE_N;                // SRAM Chip chipselect
output                                SRAM_OE_N;                // SRAM Output chipselect
output                                SRAM_WE_N;                // SRAM Write chipselect


assign SRAM_LB_N=1'b1;
assign SRAM_UB_N=1'b1;
assign SRAM_OE_N=1'b1;
assign SRAM_CE_N=1'b1;

reg HIGHZ;
reg [22:0] SRAM_ADDR_r;
reg SRAM_WE_N_r;
reg [15:0] rdata_r;
reg [15:0] wdata_r;

reg [2:0] CS;        //状态寄存
parameter IDLE=0;
parameter R_START=1;
parameter R_FINISH=2;
parameter W_START=3;
parameter THIGHZ=4;
parameter W_FINISH=5;

always@(posedge clk or negedge rst_n)
if(!rst_n)begin
        HIGHZ<=0;
        SRAM_WE_N_r<=1;
        SRAM_ADDR_r<=0;
        rdata_r<=0;
        wdata_r<=0;
        end
else begin
        case(CS)
        IDLE:        begin
                        HIGHZ<=0;
                        if(read) CS<=R_START;
                        else if(write) CS<=W_START;
                        else CS<=IDLE;  
                        end
        R_START:begin
                        SRAM_WE_N_r<=1;
                        SRAM_ADDR_r<=addr_i;
                        CS<=R_FINISH;
                        end
        R_FINISH:begin            
                        rdata_r<=SRAM_DQ;
                        SRAM_WE_N_r<=0;
                        CS<=IDLE;
                        end
        W_START:begin
                        SRAM_WE_N_r<=0;
                        SRAM_ADDR_r<=addr_i;
                        wdata_r<=wdata_i;
                        CS<=THIGHZ;
                        end
        THIGHZ:begin                                //等待SRAM总线上拉成高阻
                        CS<=W_FINISH;
                        HIGHZ<=1;             //高阻形成信号,送给inout做判断
                        end
        W_FINISH:begin
                       
                        SRAM_WE_N_r<=1;
                        CS<=IDLE;
                        end
        default:CS<=IDLE;
        endcase
        end
       
assign SRAM_DQ=HIGHZ ? wdata_r : 16'bzzzz_zzzz_zzzz_zzzz; //HIGHZ控制inout方向

assign         SRAM_WE_N=SRAM_WE_N_r;
assign        SRAM_ADDR=SRAM_ADDR_r;
assign        rdata_o=rdata_r;

endmodule

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2011-7-11 20:53:32 | 显示全部楼层
好几天了都没人看看吗?大神们搞起啊。。。

出0入0汤圆

 楼主| 发表于 2011-7-12 13:45:05 | 显示全部楼层
没人回帖,自己琢磨

出0入0汤圆

发表于 2011-7-14 13:07:43 | 显示全部楼层
自个仿真一下不是更方便,在仿真文件中加个RAM的虚拟器件,就能很容易的仿真出效果了

出0入0汤圆

发表于 2012-4-25 01:59:09 | 显示全部楼层
看图,貌似你用的塞朴拉斯的sram吧。

出0入0汤圆

发表于 2012-4-25 08:14:02 | 显示全部楼层
不知道 呵呵
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 11:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表