打印

MCU如何通过CPLD读写SRAM ?

[复制链接]
3834|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangwenjia|  楼主 | 2011-9-26 21:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想让MCU通过cpld把数据写入SRAM,
其他时候CPLD能直接读取SRAM中的数据,
可是这个功能调试了好多天都实现不了 。。。
哪位大侠能提供点思路不?
谢谢了 !

相关帖子

沙发
charrijon| | 2011-9-27 10:30 | 只看该作者
MCU写SRAM时间间隔恒定吗?如果恒定就可以等写完数据后由CPLD做一个读写机读取SRAM,我觉得不至于这么难吧

使用特权

评论回复
板凳
wangwenjia|  楼主 | 2011-9-27 10:49 | 只看该作者
MCU写SRAM时间间隔恒定吗?如果恒定就可以等写完数据后由CPLD做一个读写机读取SRAM,我觉得不至于这么难吧
charrijon 发表于 2011-9-27 10:30



你的意思是,CPLD先读取MCU的数据,读完后再把接收到得数据写入SRAM ?
这样的话大量数据连续写入时会不会有问题,sram好像是没有wait信号的,
而且MCU读取数据的话好像就要执行两次读指令才能读到需要的值了

使用特权

评论回复
地板
charrijon| | 2011-9-27 19:09 | 只看该作者
不是你那个意思,这么说吧,MCU对RAM来说是一个控制器,而你的CPLD需要做另外一个控制器来控制RAM,你的RAM不是双口RAM,所以说呢肯定是要分时控制RAM的,假如MCU写RAM时间间隔固定,那么你用CPLD做的控制器就得在空闲的时候去读RAM,这么说明白吗?

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
wangwenjia + 1 给力
5
wangwenjia|  楼主 | 2011-9-27 21:11 | 只看该作者
assign sram_data = (sram_rd==0)?16'hzzzz:sram_data_r;
assign mcu_data =  (sram_rd==0)?mcu_data_r:16'hzzzz;
assign pld_data =  (sram_rd==0)?pld_data_r:16'hzzzz;


always @(negedge sram_wr)
begin               
                        sram_data_r <= mcu_data;
end

always @(posedge sram_rd)
begin
                        mcu_data_r <= sram_data;
end




CPLD 里这样操作,mcu还是无法对sram进行正确的读写
wr rd 已经做了跨时钟处理

使用特权

评论回复
6
lelee007| | 2011-9-29 18:37 | 只看该作者
;P

很简单的问题,做一个总线仲裁器,把CPLD控制SRAM的总线和mcu的总线通过总线仲裁挂到sram上,很简单的问题,都是些最基本的东西

使用特权

评论回复
7
anhuihbo| | 2012-4-21 23:17 | 只看该作者
MCU直接控SRAM。。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

79

帖子

0

粉丝