新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA 的DDR SDRAM控制器在高速數(shù)據(jù)采集系統(tǒng)中

基于FPGA 的DDR SDRAM控制器在高速數(shù)據(jù)采集系統(tǒng)中

作者: 時(shí)間:2012-11-05 來源:網(wǎng)絡(luò) 收藏

2.1 的讀操作流程

通過對(duì) 的讀時(shí)序的分析,將整個(gè)讀操作過程分解為7 個(gè)狀態(tài),每一個(gè)狀態(tài)都對(duì)應(yīng)著不同的命令(CMD)值, 控制核通過對(duì)CMD 的譯碼完成對(duì)DDR 的操作。從整體的控制過程來看,讀操作流程如圖2 所示。其中實(shí)線表示的是讀操作的控制流程,虛線表示的讀操作的狀態(tài)轉(zhuǎn)換流程??刂屏鞒痰膶?shí)現(xiàn)依賴于內(nèi)部狀態(tài)轉(zhuǎn)換產(chǎn)生的控制信號(hào)。實(shí)現(xiàn)各狀態(tài)之間切換的控制信號(hào)主要有命令應(yīng)答信號(hào)CMDACK,外部控制信號(hào)RDREQ 以及程序內(nèi)部的計(jì)數(shù)器Count_READ。當(dāng)系統(tǒng)的主狀態(tài)機(jī)進(jìn)入到讀數(shù)據(jù)狀態(tài)時(shí),控制信號(hào)CBE=“010”;內(nèi)部的狀態(tài)機(jī)進(jìn)入到讀狀態(tài)。讀流程中另一個(gè)重要的信號(hào)為RDREQ,它是由后端的緩存(FIFO)產(chǎn)生的,當(dāng)緩存中數(shù)據(jù)容量低于設(shè)定值時(shí),信號(hào)RDREQ 被置高,讀狀態(tài)由PRE_NOP 進(jìn)入READA,發(fā)起一次讀操作,完成8 個(gè)數(shù)據(jù)的傳送。程序內(nèi)部的計(jì)數(shù)器Count_READ 保證控制核在經(jīng)過設(shè)定的CAS 潛伏期后從數(shù)據(jù)總線上讀取數(shù)據(jù)。

3 DDR SDRAM 控制器的實(shí)現(xiàn)

3.1 控制電路主狀態(tài)機(jī)設(shè)計(jì)

主狀態(tài)機(jī)用于控制整個(gè)數(shù)據(jù)采集系統(tǒng)的工作流程。各功能模塊的配合,命令的發(fā)送,數(shù)據(jù)的采集、存儲(chǔ)和傳輸都需要狀態(tài)機(jī)來協(xié)調(diào)并嚴(yán)格控制時(shí)序關(guān)系。其狀態(tài)轉(zhuǎn)換圖如圖4 所示??刂破魃想娀驈?fù)位時(shí)進(jìn)入IDLE 狀態(tài),其中LA 和LD 分別為PCI 局部總線的地址線和數(shù)據(jù)線,上位機(jī)的發(fā)送的命令通過PCI 總線及接口芯片傳送到PCI 局部總線,其中地址線的變化將引起狀態(tài)機(jī)內(nèi)部的狀態(tài)轉(zhuǎn)換,狀態(tài)轉(zhuǎn)換的同時(shí),相應(yīng)的配置字將出現(xiàn)在數(shù)據(jù)線上。配置完參數(shù)之后,轉(zhuǎn)態(tài)機(jī)進(jìn)入等待數(shù)據(jù)狀態(tài)(WAIT_DATA),當(dāng)觸發(fā)信號(hào)滿足要求之后(TRG=‘1’),自動(dòng)進(jìn)入到保存數(shù)據(jù)狀態(tài)(SAVE_DATA),在此狀態(tài)下,控制程序開始進(jìn)行數(shù)據(jù)采集。指定存儲(chǔ)深度的數(shù)據(jù)采集完成后,主狀態(tài)機(jī)自動(dòng)進(jìn)入等待讀數(shù)據(jù)狀態(tài),在接受到地址線上的狀態(tài)轉(zhuǎn)換命令后,分別進(jìn)入讀取A 通道和B 通道數(shù)據(jù)的狀態(tài)。數(shù)據(jù)讀完之后,上位機(jī)發(fā)送命令使?fàn)顟B(tài)返回到IDLE 狀態(tài)。



關(guān)鍵詞: SDRAM FPGA DDR 控制器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉