- 相關推薦
SDRAM在任意波形發(fā)生器中的應用
摘要:隨著任意波形發(fā)生器工作頻率的不斷提高,為了精確表達復雜信號,使用SRAM作為波形存儲體已不能滿足容量上的要求。介紹了一種基于SDRAM的設計方案,能有效解決這一問題。文中重點討論了一種簡化SDRAM控制器的設計方法。關鍵詞:任意波同步動態(tài)存儲器可編程邏輯器件
任意波形發(fā)生器在雷達、通信領域中發(fā)揮著重要作用,但目前任意波形發(fā)生器大多使用靜態(tài)存儲器。這使得在任意波形發(fā)生器工作頻率不斷提高的情況下,波形的存儲深度很難做得很大,從而不能精確地表達復雜信號。本文介紹的基于動態(tài)存儲器(SDRAM)的設計能有效解決這一問題,并詳細討論了一種簡化SDRAM控制器的設計方法。
。比我獠ㄐ伟l(fā)生器的總體方案
工作頻率、分辨率和存儲長度是任意波形發(fā)生器最關鍵的三個性能參數(shù)。高的工作頻率意味著高的輸出信號頻率和帶寬,高的分辨率通常意味著高的信噪比,而存儲長度決定了信號的精確程度。下面介紹的方案是筆者實際開發(fā)的一款任意波形發(fā)生器/卡(如圖1所示),它的工作頻率為300MHz,分辨率為14位,存儲長度為8M字,現(xiàn)已得到了廣泛地應用。
該電路主要有兩種工作狀態(tài):寫數(shù)據(jù)狀態(tài)和讀數(shù)據(jù)狀態(tài)。下面簡單描述其工作過程。
寫數(shù)據(jù)狀態(tài):CPU根據(jù)所要設計的波形計算波形數(shù)據(jù),并轉換成14位的無符號數(shù);打開總線開關,屏蔽FIFO操作,在SDRAM控制器的配合下,將波形數(shù)據(jù)通過接口電路交替寫入SDRAM1和SDRAM2中,即SDRAM1中依次存放數(shù)據(jù)0,2,4,6...;SDRAM2中依次存放數(shù)據(jù)1,3,5,7...(如表1所示)。
表1SDRAM中的數(shù)據(jù)存放格式
地址SDRAM1SDRAM20D0D11D2D32D4D5………
讀數(shù)據(jù)狀態(tài):開啟FIFO通道,關閉總線開關以斷開SDRAM與CPU之間的數(shù)據(jù)連接;在SDRAM控制器的控制下,將SDRAM1/2中的數(shù)據(jù)同時(并行)讀出;經(jīng)過FIFO的緩沖得到連續(xù)的數(shù)據(jù)流,再經(jīng)32位向16位的并串轉換,將數(shù)據(jù)速率提升2倍后,供給DAC進行數(shù)-模轉換,即可得到所編輯的信號。
圖1中用兩片SDRAM并行工作,是因單片SDRAM不可能提供300MSPS的數(shù)據(jù)流。實際使用的器件是K4S641632C-TC60,工作時鐘為166MHz。FIFO緩存SDRAM的輸出數(shù)據(jù),將突發(fā)數(shù)據(jù)流轉換成連續(xù)數(shù)據(jù)流,使得在SDRAM處于刷新狀態(tài)時,仍能維持正常的數(shù)據(jù)輸出。實際使用的器件是兩片并行工作的IDT72V263L6PF,寫入時鐘為166MHz,讀出時鐘為150MHz。并串轉換的作用是提升數(shù)據(jù)的速率,在DAC器件內部完成,筆者采用具有良好動態(tài)性能的AD9755AST。CPU及控制接口是一個基于PC的ISA設備,可改進為PCI設備;時鐘電路用來產生166MHz和150MHz的同步時鐘。下面重點研究SDRAM控制器的設計,它是本系統(tǒng)的主要特色之一。
。玻樱模遥粒涂刂破鞯脑O計
。玻保樱模遥粒偷闹饕攸c
與靜態(tài)存儲器(SRAM)相比,SDRAM的容量大(通常是幾倍至幾十倍的關系);與DDRSDRAM或RDRAM相比,它的控制又相對簡單,因而它依然是大容量存儲器工程項目的良好選擇。下面描述的幾個重要基本概念反映了它的主要特點。
行列地址:SDRAM的地址是行列復用的,此舉有效減少了芯片的引腳。
預充電:讀寫操作只對預充電過的行有效。也就是說,在數(shù)據(jù)讀寫操作跨行時,需要先進行至少一次的預充電操作。
自動刷新:眾所周知,只要是動態(tài)RAM,就存在刷新問題,SDRAM也不例外。通常每隔64ms需要將所有存儲單元刷新一遍。
自刷新:當需要保留芯片內的數(shù)據(jù),而暫時又不需要操作時,可以設置芯片進入自刷新狀態(tài)。
工作模式寄存器:控制SDRAM工作方式的寄存器。
2.2SDRAM的狀態(tài)流程
。樱模遥粒偷耐暾麪顟B(tài)機由17個狀態(tài)構成,且狀態(tài)轉移是非隨機的(如圖2所示)。正是如此眾多的狀態(tài)及其復雜的轉換關系,導致SDRAM的控制較為復雜。
需要特別說明的是,SDRAM的狀態(tài)轉移有自動轉移與人工轉移之分(圖2中以粗細箭頭加以區(qū)別)。自動轉移在當前狀態(tài)結束后立即進入下一個狀態(tài);而人工轉移在當前狀態(tài)結束后即停留在當前狀態(tài),只有一條當前狀態(tài)允許的命令才能進入下一個狀態(tài)。
可以想象,自行設計如此復雜的控制流程絕非易事。值得慶幸的是,在大多數(shù)應用中并不需要完備的狀態(tài)機。下面討論一種簡化的SDRAM狀態(tài)機。
。玻澈喕臓顟B(tài)流程
根據(jù)任意波形發(fā)生器的特點,對SDRAM的功能進行了以下簡化:
。ǎ保┦÷噪S機存取功能,固定為順序讀寫;
(2)省略待機、自刷新、普通讀/寫功能;
。ǎ常┦÷运械膾炱鸸δ;
。ǎ矗┕ぷ髂J焦潭橥话l(fā)式讀、單個式寫;
。ǎ担⿺(shù)據(jù)延時固定為3個時鐘周期;
(6)刷新模式只使用自動刷新方式,器件空閑時即處于連續(xù)的自動刷新狀態(tài);
。ǎ罚┢骷䞍H在上電后進行一次初始化,不能改變工作模式;
。ǎ福┩话l(fā)方式固定為順序方式,突發(fā)長度固定為整頁;
。ǎ梗┲皇褂脦ьA充電的讀/寫指令;在每次讀/寫操作完成后,即啟動一個自動刷新周期。
經(jīng)過以上簡化的狀態(tài)機如圖3所示。
2.4SDRAM控制器的EPLD實現(xiàn)
為了實現(xiàn)上述簡化的SDRAM控制功能,采用一片ALTERA公司生產的EPLD器件MAX7256ATC144-6。圖4是任意波形發(fā)生器SDRAM控制流示意圖。由于具體編程要涉及許多細節(jié)問題,在此不做贅述,其主要功能如下:
。ǎ保┩ㄟ^ISA總線,實現(xiàn)與CPU的接口,接收波形數(shù)據(jù)和讀命令;
。ǎ玻┥想娮詣映跏蓟;
(3)生成23位(8M字存儲器空間)的線性地址,并按行列復用的方式輸出;
。ǎ矗┥桑樱模遥粒偷目刂菩盘,完成讀、寫和自動刷新功能;
。ǎ担┛刂疲疲桑疲,以解決SDRAM刷新和波形長度不是頁長度的倍數(shù)問題。
雖然完全應用SDRAM確實比較復雜,但只要本著“夠用就行”的原則,對其功能進行合理的簡化,設計出具有特殊需求、適用于特定條件的SDRAM控制器是完全可行的。目前,筆者已將基于SDRAM的任意波形發(fā)生器應用到多個研發(fā)項目中。
【SDRAM在任意波形發(fā)生器中的應用】相關文章:
一種高精度波形發(fā)生器的設計08-06
基于CPLD的三相多波形函數(shù)發(fā)生器設計08-06
三相SPWM發(fā)生器HEF4752在變頻調速系統(tǒng)中的應用08-06
基于VXI總線的四通道智能化任意波發(fā)生器的研制08-06
多路讀寫的SDRAM接口設計08-06
DDR SDRAM控制器的FPGA實現(xiàn)04-12
任意門作文11-10
比法在物理中的應用08-17