ALTERA 公司 白海龍 陳文
QDR2 RAM是一種特殊結構的SRAM,它的讀寫端口是分開的,有兩套讀寫數據總線。地址是讀寫共享的,對BURST長度為2的QDR2 RAM來說,讀地址在時鐘CK的上跳沿鎖存,寫地址在時鐘CK的下跳沿鎖存。它的這種結構消除了數據總線的turn-around的必要,延遲更小。
在ALTERA的高端FPGA中,我們可以利用一些底層IP,如DQDQS,DLL,PLL來實現一個低延遲的QDR2 RAM讀寫控制器,因為其結構簡單,讀延遲很小,可以滿足客戶在一些數據通信產品方面的需要,比如幀包頭的存取。
圖1 控制器的結構圖
圖2 讀延遲為7個時鐘周期
FPGA實現方案
這個控制器的結構如圖1所示,包括一個DLL,一組DQDQS,一個PLL,命令地址輸出模塊,數據輸入接收以及同步模塊。PLL產生內部數據時鐘以及命令時鐘,DLL以及DQDQS負責移相DQS,將36位雙沿輸入數據轉成72位單沿并行數據,命令地址輸出模塊產生讀寫地址、讀寫命令信號,數據輸入接收以及同步模塊負責將DQDQS接收到的數據同步到內部數據時鐘域。
這個控制器的內部用戶接口包括21位的讀寫地址輸入,72位的輸入數據,72位的輸出數據,單bit的讀使能和寫使能控制,以及單bit的讀數據有效信號。所有這些信號都同步到PLL的數據時鐘域上,便于用戶使用。QDR2 RAM接口則是標準的形式,36bit的輸出數據,36bit的輸入數據,一對DQS差分對,一對輸出時鐘CK差分對,讀寫控制信號。
表1 控制器消耗的FPGA資源
FPGA設計的資源和性能
這個控制器消耗的FPGA資源如表1所示(在A2GZ器件上實現)。
讀延遲(從讀請求信號qdr2_rps_en_n上跳沿到返回數據有效信號clt_rd_valid上跳沿)為7個時鐘周期,如圖2所示。
這個設計可以移植到ALTERA的所有中高端FPGA,包括A2GX,A2GZ,STRATIX3,STRATIX4,STRATIX5上,對延遲等性能沒有影響。