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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 2431|回复: 2

[求助] 关于SDRAM的读写

[复制链接]
发表于 2017-6-5 22:06:45 | 显示全部楼层 |阅读模式

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

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

×
FPGA里面有一段写SDRAM的代码如下:
该芯片型号为:MT48LC32B2



   

        

                
  1. module WR_RD_DSP16_clk(clk,
  2. DSP_ECLKOUT,
  3. DSP_ED,
  4. nWR,
  5. nRD,
  6. data
  7. );
  8. input clk;//不同时钟域的clk
  9. input DSP_ECLKOUT;
  10. inout [15:0] DSP_ED;
  11. input nWR;
  12. input nRD;
  13. output [15:0] data;reg [15:0] data;
  14. reg [15:0] dsp_data;
  15. always @(posedge DSP_ECLKOUT)
  16. if(~nWR)
  17.    dsp_data[15:0]<=DSP_ED[15:0];
  18. else
  19.    dsp_data[15:0]<=dsp_data[15:0];

  20. assign DSP_ED[15:0]=(nRD) ? 16'hzzzz:dsp_data[15:0];  

  21. always @(posedge clk)
  22.   data[15:0]<=dsp_data[15:0];


  23. endmodule
            

   

    复制代码



其中:


   

        

                
  1. nWR =~(~DSP_CE& ~DSP_AWE& (DSP_EA[21:2]==20'h00000));
  2. nRD =~(~DSP_CE& ~DSP_ARE&~DSP_AOE&(DSP_EA[21:2]==20'h00000));
            

   

    复制代码



请问,能否看出来这是异步还是同步时序,为什么?
另外,这句话是什么作用?

assign DSP_ED[15:0]=(nRD) ? 16'hzzzz:dsp_data[15:0];

谢谢大家!
发表于 2017-6-6 17:41:29 | 显示全部楼层
截取代码完整一点吧,目前看截取部分是一个组合逻辑,并不涉及同步还是异步,主要看组合逻辑前后的时序逻辑是否属于同一个时钟域。
第二句话,由于DSP_ED是inout信号,所以需要进行三态处理,就是说当它作为输出态的时候,如果没有读操作,就要输出高阻态,你可以了解一下三态逻辑的原理,再来理解这一句话。
回复 支持 反对

使用道具 举报

发表于 2021-8-12 13:32:23 | 显示全部楼层
good!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-8-22 08:54 , Processed in 0.013792 second(s), 3 queries , Gzip On, Redis On.

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