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