周慶芳
【摘 要】隨著電子技術(shù)的不斷發(fā)展與進(jìn)步,電子系統(tǒng)的設(shè)計方法發(fā)生了很大的變化,那些只提供特定的邏輯功能,不能夠由用戶根據(jù)具體設(shè)計的需要修改的成品邏輯器件已經(jīng)慢慢被可編程邏輯控制器件所替代。本文介紹PLD可編程邏輯器件的設(shè)計開發(fā)及相關(guān)軟件的使用。并通過PLD的應(yīng)用設(shè)計FIFO。在傳統(tǒng)設(shè)計的基礎(chǔ)上提出一種新穎的電路結(jié)構(gòu)并對其進(jìn)行綜合仿真和實現(xiàn)。首先介紹異步FIFO的概念、應(yīng)用及其結(jié)構(gòu),然后分析實現(xiàn)異步FIFO的難點問題及其解決辦法;詳細(xì)介紹了每一個過程的設(shè)計思想和處理過程。使用Max+plusII和ALTERA公司的實驗箱對FIFO進(jìn)行設(shè)計。
【關(guān)鍵詞】CPLD;Max+plusII;異步FIFO
一、引言
當(dāng)前電子系統(tǒng)的設(shè)計正朝著速度快、容量大、體積小、質(zhì)量輕、用電少的方向發(fā)展。推動該潮流迅猛發(fā)展的決定性的因素就是使用了現(xiàn)代化的EDA設(shè)計工具,使電子系統(tǒng)的電路設(shè)計變得更簡單,設(shè)計周期大大縮短。設(shè)計人員在不必更改硬件電路設(shè)計的前提下,只須要修改可編程邏輯電路的功能和用戶軟件,就可以完成面向不同應(yīng)用需求的系統(tǒng)設(shè)計了。PLD(Programmable Logic Devices)是可以由用戶進(jìn)行編程實現(xiàn)所需邏輯功能的數(shù)字集成電路。利用PLD內(nèi)部的邏輯結(jié)構(gòu)可以實現(xiàn)任何布爾表達(dá)式或寄存器函數(shù)。它能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡單的74電路,都可以用PLD來實現(xiàn)。FIFO (First In First Out)是一種在電子系統(tǒng)得到廣泛應(yīng)用的器件,通常用于數(shù)據(jù)的緩存和用于容納異步信號的頻率或相位的差異。
二、PLD和Max+plusII簡介以及FIFO的設(shè)計原理
PLD是一種由用戶根據(jù)自己要求來構(gòu)造邏輯功能的數(shù)字集成電路,一般可利用計算機(jī)輔助設(shè)計,即用原理圖\狀態(tài)機(jī)\布爾方程\硬件描述語言(HDL)等方法來表示設(shè)計思想,經(jīng)一系列編譯或轉(zhuǎn)換程序,生成相應(yīng)的目標(biāo)文件,再由編程器或下載電纜將設(shè)計文件配置到目標(biāo)文件中,這時可編程器件就可作為滿足用戶要求的專用集成電路使用了。Max+plusII是Altera公司推出的第三代PLD開發(fā)系統(tǒng),主要用于設(shè)計新器件和大規(guī)模CPLD/FPGA。使用MAX+PLUSII的設(shè)計者不需精通器件內(nèi)部的復(fù)雜結(jié)構(gòu),因而被公認(rèn)為是最易使用,人機(jī)界面最友好的PLD開發(fā)軟件。
FIFO的基本單元是寄存器,作為存儲器件,F(xiàn)IFO的存儲能力是由其內(nèi)部定義的存儲寄存器的數(shù)量決定?,F(xiàn)在的FIFO存儲器采用SRAM單元來實現(xiàn)。它是基于帶兩個指針的環(huán)行FIFO結(jié)構(gòu)的。要寫入的數(shù)據(jù)的存儲地址放在寫指針中,而FIFO結(jié)構(gòu)中要讀出的第一個數(shù)據(jù)的地址放在讀指針中。從硬件上來實現(xiàn)循環(huán)存儲器,可以用雙端口的SRAM來存取數(shù)據(jù)。
三、異步FIFO的設(shè)計
FIFO(先進(jìn)先出隊列)是一種在電子系統(tǒng)得到廣泛應(yīng)用的器件,通常用于數(shù)據(jù)的緩存和用于容納異步信號的頻率或相位的差異。FIFO的實現(xiàn)通常是利用雙口ram和讀寫地址產(chǎn)生模塊來實現(xiàn)的。FIFO的接口信號包括異步的寫時鐘(wr_clk)和讀時鐘(rd_clk)、與寫時鐘同步的寫有效(wren)和寫數(shù)據(jù)(wr_data)、與讀時鐘同步的讀有效(rden)和讀數(shù)據(jù)(rd_data)。為了實現(xiàn)正確的讀寫和避免FIFO的上溢或下溢,通常還應(yīng)該給出與讀時鐘和寫時鐘同步的FIFO的空標(biāo)志(empty)和滿標(biāo)志(full)以禁止讀寫操作。寫地址產(chǎn)生模塊根據(jù)寫時鐘和寫有效信號產(chǎn)生遞增的寫地址,讀地址產(chǎn)生模塊根據(jù)讀時鐘和讀有效信號產(chǎn)生遞增的讀地址。FIFO的操作如下:在寫時鐘wr_clk的升沿,當(dāng)wren有效時,將wr_data寫入雙口RAM中寫地址對應(yīng)的位置中;始終將讀地址對應(yīng)的雙口RAM中的數(shù)據(jù)輸出到讀數(shù)據(jù)總線上。圖1給出了FIFO的接口信號和內(nèi)部模塊圖。
四、系統(tǒng)仿真與測試
本文中的設(shè)計方案經(jīng)過仿真與測試,證明了系統(tǒng)實現(xiàn)了FIFO的基本要求。通過實踐,我們發(fā)現(xiàn)編譯的結(jié)果與仿真測試的結(jié)果一致,同時驗證了基于CPLD設(shè)計的FIFO系統(tǒng)具有非常高效率以及正確率,得到了比較滿意的結(jié)果。
五、總結(jié)與展望
通過軟件仿真,我們可以事先驗證設(shè)計的正確性。在PCB完成以后,還可以利用PLD的在線修改能力,隨時修改設(shè)計而不必改動硬件電路。使用PLD來開發(fā)數(shù)字電路,可以大大縮短設(shè)計時間,減少PCB面積,提高系統(tǒng)的可靠性。PLD的這些優(yōu)點使得PLD技術(shù)在90年代以后得到飛速的發(fā)展,同時也大大推動了EDA軟件和硬件描述語言(HDL)的進(jìn)步。
【參考文獻(xiàn)】
[1]王彩鳳,胡波,李衛(wèi)兵,杜玉杰.EDA技術(shù)在數(shù)字電子技術(shù)實驗中的應(yīng)用[J].實驗科學(xué)與技術(shù),2011.01:4-6+110
[2]幸云輝,楊旭東.計算機(jī)組成原理實用教程.清華大學(xué)出版社,2004.1
[3]王金明.數(shù)字系統(tǒng)設(shè)計與Verilog HDL等編著.電子工業(yè)出版社出版,2004.3
[4]潘松等.現(xiàn)代DSP技術(shù).西安電子科技大學(xué)出版社,2005.7