可編程邏輯器件的應(yīng)用參考
引言
隨著大規(guī)模超大規(guī)模可編程邏輯器件的發(fā)展,邏輯器件日益以其低廉的價(jià)格及靈活的設(shè)計(jì)方式、豐富完備的功能而廣泛應(yīng)用于電子線路設(shè)計(jì)中。采用CPLD可對(duì)邏輯電路功能進(jìn)行綜合集成,根據(jù)需要設(shè)計(jì)最小的單元,節(jié)約系統(tǒng)資源,極大的減少了電路板上功能模塊及模塊間連線。同時(shí)以其靈活的設(shè)計(jì)及在線升級(jí)方式對(duì)系統(tǒng)進(jìn)行修改升級(jí),減少了對(duì)電路板本身的修改,提高了系統(tǒng)整體可靠性,節(jié)約了制版費(fèi)用,縮短了設(shè)計(jì)的周期。
但可編程邏輯器件使用中還有諸多需要注意的細(xì)節(jié),特別是對(duì)于才開始應(yīng)用其進(jìn)行設(shè)計(jì)的電子線路設(shè)計(jì)人員,只有把握住這些細(xì)節(jié)才能成功的進(jìn)行設(shè)計(jì)。
應(yīng)用基礎(chǔ)
在設(shè)計(jì)之前需要對(duì)邏輯器件進(jìn)行了解,以MAX7000系列為例,器件管腳設(shè)置如圖1。這是將CPLD器件應(yīng)用于PCI接口邏輯的一個(gè)示例,實(shí)現(xiàn)對(duì)PCI接口芯片輸出的本地控制信號(hào)的譯碼及部分功能模塊的嵌入式設(shè)計(jì)。
元件除去電源部分所需管腳,剩下的大部分是I/O口,可定義為系統(tǒng)所需控制管腳。需要注意幾個(gè)全局信號(hào)控制腳,如GCLK、OE等管腳可用于整個(gè)邏輯器件工作時(shí)序的控制,一般用于全局信號(hào)的連接。同時(shí)需要注意的是TDI、TMS、TDO、TCK四個(gè)管腳是與在線編程相關(guān)的程序下載管腳,必要時(shí)候也可作為通用的管腳使用。ALTERA元件的下載線可以購(gòu)買或是自行制作,資料比較完備。要實(shí)現(xiàn)在線編程,CPLD元件部分的PCB設(shè)計(jì)時(shí)需要注意,幾個(gè)下載管腳不是懸空的,都必須進(jìn)行上拉、下拉設(shè)計(jì),電路如圖2。這點(diǎn)容易忽略,而導(dǎo)致下載軟件無法發(fā)現(xiàn)下層的器件,相關(guān)說明在文檔“In-System Programmability”中。
在操作系統(tǒng)中安裝相應(yīng)的下載線驅(qū)動(dòng),就可在其圖形化的設(shè)計(jì)軟件中發(fā)現(xiàn)可編程控制器件,并對(duì)其進(jìn)行在線編程、調(diào)試。
控制邏輯設(shè)計(jì)
CPLD的巨大優(yōu)勢(shì)體現(xiàn)在其靈活性,可根據(jù)需要設(shè)計(jì)組合邏輯,減少了分離元件的使用,提高了系統(tǒng)的集成程度及可靠性。對(duì)于一般的應(yīng)用采用MAX+plus編輯軟件就可以完成,其界面簡(jiǎn)單,所有功能都集成于菜單中,可方便完成設(shè)計(jì)、綜合、仿真、下載的全過程。圖3為是應(yīng)用74LS154對(duì)應(yīng)軟核設(shè)計(jì)的PCI接口譯碼電路,從而在CPLD內(nèi)部實(shí)現(xiàn)4-16譯碼。電路圖中可標(biāo)明其用到的管腳,還可根據(jù)需要進(jìn)行配置,以便于外部PCB設(shè)計(jì)的布線優(yōu)化。
應(yīng)用ALTERA公司的硬件開發(fā)語言AHDL及通用的VHDL等硬件描述設(shè)計(jì)語言,能實(shí)現(xiàn)軟核的自主開發(fā),同時(shí)可實(shí)現(xiàn)同步仿真,驗(yàn)證設(shè)計(jì)的邏輯正確性。以下是一個(gè)數(shù)字分頻器設(shè)計(jì)示例。
SUBDESIGN NDivide
(
clk :INPUT;
clkoutD :OUTPUT;%偶分頻輸出%
BXCOUNTout[3..0] :OUTPUT;
COUNTAOUT[2..0] :OUTPUT;
)
VARIABLE
%偶分頻變量%
COUNTD[3..0] :DFF;%小于16分頻器,偶
數(shù)分頻器%
clkRegD :DFF;
BEGIN
%偶分頻部分%
COUNTD[].clk=!(clk);
clkRegD.d=!clkRegD.q;
clkoutD=clkRegD.q;
IF (COUNTD[].q==1) THEN%根據(jù)分頻數(shù)定,2的n+1分
頻,此處為4分頻,2分頻時(shí)clkRegD.clk=!clk即可%
COUNTD[].d=0;
ELSE
COUNTD[].d=COUNTD[].q+1;
END IF;
clkRegD.clk=COUNTD0.q;
END;
該程序仿真波形如圖4,實(shí)現(xiàn)了四分頻電路的邏輯設(shè)計(jì)、實(shí)現(xiàn)。
PCB電路設(shè)計(jì)
應(yīng)用CPLD還需注意其輸出腳狀態(tài)改變時(shí)所產(chǎn)生的高頻的脈沖,會(huì)對(duì)下一級(jí)器件帶來嚴(yán)峻的考驗(yàn)。因此在 PCB設(shè)計(jì)中必須進(jìn)行相應(yīng)的處理,才能有效抑制脈沖的極值,同時(shí)保證上升沿的陡直。圖5為一脈寬調(diào)制軟核的輸出效果圖。該模塊實(shí)現(xiàn)精度為8位的脈寬調(diào)制,方波信號(hào)基頻為4kHz,由33M的PCI時(shí)鐘分頻得來。系統(tǒng)只應(yīng)用最簡(jiǎn)單的阻容濾波電路來降低脈沖值。
該圖為直接輸出與濾波輸出兩種條件下的示波器顯示圖,在圖a中沒有采取濾波措施,可以看到在上跳沿處為4V左右的尖峰脈沖,相比穩(wěn)定的高電平3V輸出高出1V。而圖b是經(jīng)簡(jiǎn)單的阻容濾波電路后輸出,上跳沿脈沖的峰值明顯得到抑制。較大的改善了系統(tǒng)的性能。
結(jié)束語
應(yīng)用可編程邏輯器件,可加速開發(fā)的進(jìn)程,在器件提供的方針環(huán)境中進(jìn)行功能的仿真驗(yàn)證,可及時(shí)發(fā)現(xiàn)設(shè)計(jì)中的缺陷。但是自帶的仿真器本身也并非完美,在電路設(shè)計(jì)完成后還需進(jìn)行更細(xì)致的驗(yàn)證。CPLD的廣泛應(yīng)用給電子線路設(shè)計(jì)人員有更大的發(fā)揮空間,更靈活的設(shè)計(jì)方式,極大的提高了設(shè)計(jì)效率。