微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 双口RAM的读与写,遇到一个尴尬的问题。

双口RAM的读与写,遇到一个尴尬的问题。

时间:10-02 整理:3721RD 点击:
问题是这样:
读位宽是写位宽的两倍,因此我设计读时钟是写时钟的1/2,这应该是没有问题的。
我的想法是写满之后触发读。问题出在触发,想必大家看出问题来了。就是快时钟到慢时钟的问题。
写时钟给的触发上升沿,读时钟似乎捕捉不到,时钟是同源时钟,这很让我受伤,该怎么触发才好呢?触发的脉冲对写时钟来说正好一个周期,对读时钟来说是半个周期。该怎么办呢,简单点的方法。

有点没看懂。你是说写满之后,必须立刻捕捉写CLK的最后一个上升沿吗?不能等一等吗。

设一个标志位然后展宽

1. 設置一個full的標誌; 寫滿後拉起標誌, 等待讀取後再行清除
2. 假如是很確定2:1的關係, 那麼建議直接使用最快的時鐘(寫入端)當作唯一的時鐘, 讀寫兩端都參考這個時鐘.

你就不能把触发信号展宽吗?

谢谢大家的热心回复。我这里主要就是说慢时钟捕捉快时钟的触发脉冲。5楼说的算是最简单的方法了,脉冲宽一倍,就能捕捉到,从而触发后面的操作。

不能使用FIFO么,FIFO的各种空、满信号都有

当然可以,两者其实我感觉差不太多,各有优缺点。ram的话,有一个地址线,FIFO的话,可供控制的标志位多一些。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top