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