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