CPLD
CPLD(Complex Programmable Logic Device)復(fù)雜可編程邏輯器件,是從PAL和GAL器件發(fā)展出來的器件,相對而言規(guī)模大,結(jié)構(gòu)復(fù)雜,屬于大規(guī)模集成電路范圍。是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計(jì)方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標(biāo)芯片中,實(shí)現(xiàn)設(shè)計(jì)的數(shù)字系統(tǒng)。
CPLD主要是由可編程邏輯宏單元(MC,Macro Cell)圍繞中心的可編程互連矩陣單元組成。其中MC結(jié)構(gòu)較復(fù)雜,并具有復(fù)雜的I/O單元互連結(jié)構(gòu),可由用戶根據(jù)需要生成特定的電路結(jié)構(gòu),完成一定的功能。由于CPLD內(nèi)部采用固定長度的金屬線進(jìn)行各邏輯塊的互連,所以設(shè)計(jì)的邏輯電路具有時間可預(yù)測性,避免了分段式互連結(jié)構(gòu)時序不完全預(yù)測的缺點(diǎn)。
發(fā)展歷史及應(yīng)用領(lǐng)域
20世紀(jì)70年代,最早的可編程邏輯器件--PLD誕生了。其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因?yàn)樗挠布Y(jié)構(gòu)設(shè)計(jì)可由軟件完成(相當(dāng)于房子蓋好后人工設(shè)計(jì)局部室內(nèi)結(jié)構(gòu)),因而它的設(shè)計(jì)比純硬件的數(shù)字電路具有很強(qiáng)的靈活性,但其過于簡單的結(jié)構(gòu)也使它們只能實(shí)現(xiàn)規(guī)模較小的電路。為彌補(bǔ)PLD只能設(shè)計(jì)小規(guī)模電路這一缺陷,20世紀(jì)80年代中期,推出了復(fù)雜可編程邏輯器件--CPLD。此應(yīng)用已深入網(wǎng)絡(luò)、儀器儀表、汽車電子、數(shù)控機(jī)床、航天測控設(shè)備等方面。
器件特點(diǎn)
它具有編程靈活、集成度高、設(shè)計(jì)開發(fā)周期短、適用范圍寬、開發(fā)工具先進(jìn)、設(shè)計(jì)制造成本低、對設(shè)計(jì)者的硬件經(jīng)驗(yàn)要求低、標(biāo)準(zhǔn)產(chǎn)品無需測試、保密性強(qiáng)、價格大眾化等特點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路設(shè)計(jì),因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計(jì)和產(chǎn)品生產(chǎn)(一般在10,000件以下)之中。幾乎所有應(yīng)用中小規(guī)模通用數(shù)字集成電路的場合均可應(yīng)用CPLD器件。CPLD器件已成為電子產(chǎn)品不可缺少的組成部分,它的設(shè)計(jì)和應(yīng)用成為電子工程師必備的一種技能。
如何使用
CPLD是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計(jì)方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標(biāo)芯片中,實(shí)現(xiàn)設(shè)計(jì)的數(shù)字系統(tǒng)。
這里以搶答器為例講一下它的設(shè)計(jì)(裝修)過程,即芯片的設(shè)計(jì)流程。CPLD的工作大部分是在電腦上完成的。打開集成開發(fā)軟件(Altera公司 Max+pluxII)→畫原理圖、寫硬件描述語言(VHDL,Verilog)→編譯→給出邏輯電路的輸入激勵信號,進(jìn)行仿真,查看邏輯輸出結(jié)果是否正確→進(jìn)行管腳輸入、輸出鎖定(7128的64個輸入、輸出管腳可根據(jù)需要設(shè)定)→生成代碼→通過下載電纜將代碼傳送并存儲在CPLD芯片中。
7128這塊芯片各管腳已引出,將數(shù)碼管、搶答開關(guān)、指示燈、蜂鳴器通過導(dǎo)線分別接到芯片板上,通電測試,當(dāng)搶答開關(guān)按下,對應(yīng)位的指示燈應(yīng)當(dāng)亮,答對以后,裁判給加分后,看此時數(shù)碼顯示加分結(jié)果是否正確,如發(fā)現(xiàn)有問題,可重新修改原理圖或硬件描述語言,完善設(shè)計(jì)。設(shè)計(jì)好后,如批量生產(chǎn),可直接復(fù)制其他CPLD芯片,即寫入代碼即可。如果要對芯片進(jìn)行其它設(shè)計(jì),比如進(jìn)行交通燈設(shè)計(jì),要重新畫原理圖、或?qū)懹布枋稣Z言,重復(fù)以上工作過程,完成設(shè)計(jì)。這種修改設(shè)計(jì)相當(dāng)于將房屋進(jìn)行了重新裝修,這種裝修對CPLD來說可進(jìn)行上萬次。
AD574
AD574是美國核擬器件公司Analog Devices) 生產(chǎn)的12 位逐次逼近型快速A/D 轉(zhuǎn)換器。其轉(zhuǎn)換35us,轉(zhuǎn)換誤差為土0.05%,是前我國應(yīng)用廣泛,價格適中的A/D轉(zhuǎn)換器。其內(nèi)部含三態(tài)電路,可直接與各種微處理器連接,且無須附加邏輯接口電路,便能與CMOS 及TTL 電平兼容。內(nèi)部配置的高精度參考電壓源和時鐘電路,使它不需要任何外部電路和時鐘信號,就能實(shí)現(xiàn)A/D轉(zhuǎn)換功能,應(yīng)用非常方便。
利用CPLD實(shí)現(xiàn)AD574控制器的設(shè)計(jì)
基于PCI總線的汽車電子系統(tǒng)對傳感器的信號進(jìn)行采樣分析和處理時,均需要利用A/D轉(zhuǎn)換模塊。本文選用AD574芯片實(shí)現(xiàn)汽車電子系統(tǒng)信號調(diào)理板上傳感器信號的A/D轉(zhuǎn)換。
傳感器采集的模擬信號在信號調(diào)理板卡上經(jīng)過放大、濾波后,通過AD574進(jìn)行A/D轉(zhuǎn)換后,經(jīng)PCI總線讀取到MCU中進(jìn)行分析處理。設(shè)計(jì)中通過應(yīng)用VerilogHDL硬件可編程語言在CPLD器件上實(shí)現(xiàn)對AD574的控制,節(jié)省了MCU的指令執(zhí)行時間,提高讀寫速度,增強(qiáng)了可靠性和穩(wěn)定性。
1.AD574工作原理
1.1AD574結(jié)構(gòu)及特性
AD574是美國模擬數(shù)字公司推出的單片高速12位逐次比較型A/D轉(zhuǎn)換器,內(nèi)置雙極性電路構(gòu)成的混合集成轉(zhuǎn)換芯片,具有外接元件少、功耗低、精度高等特點(diǎn),同時具有自動校零和自動極性轉(zhuǎn)換功能,只需外接少量的阻容器件即可構(gòu)成一個完整的A/D轉(zhuǎn)換器。
AD574內(nèi)部結(jié)構(gòu)及外部引腳如下圖所示。
AD574的基本特點(diǎn)和參數(shù)如下:AD574帶有內(nèi)部采樣保持的12位逐次比較型模/數(shù)轉(zhuǎn)換器;轉(zhuǎn)換速率達(dá)25μs,總線訪問時間最大為150ns;非線性誤差小于±1/2LBS或±1LBS;數(shù)據(jù)可采用12位或8位丙種模式并行輸出;四種單極或雙極電壓輸入范圍分別為±5V、±IOV、0V~10V和0V~20V;采用雙電源供電方式,模擬電路電壓為±l2V或者±l5V,數(shù)字電路電壓為±5V。
1.2AD574引腳功能及時序控制
AD574的邏輯控制需要用到以下端口:數(shù)據(jù)輸出位選擇輸入端12/8、片選信號輸入端CS、讀/轉(zhuǎn)換狀態(tài)輸入端R/C、操作使能端CE、位尋址/短周期轉(zhuǎn)換選擇輸入端AO以及轉(zhuǎn)換狀態(tài)輸出端STS。
當(dāng)CE=1且CS=0同時滿足時,AD574開始正常工作。AD574處于工作狀態(tài)時,R/C=0時,開始AID轉(zhuǎn)換;當(dāng)R/C=1時,讀出數(shù)據(jù)。數(shù)據(jù)輸出位選擇輸入端12/8和AO端用來控制啟動轉(zhuǎn)換的方式和數(shù)據(jù)輸出格式。當(dāng)AO=0時,啟動轉(zhuǎn)換方式按完整的12位AID轉(zhuǎn)換方式進(jìn)行;當(dāng)AO=1時,按8位A/D轉(zhuǎn)換方式進(jìn)行。當(dāng)R/C=1,AD574處于數(shù)據(jù)狀態(tài),此時AO和數(shù)據(jù)輸出位選擇輸入端12/8控制數(shù)據(jù)輸出的格式。當(dāng)12/8=1時,數(shù)據(jù)以12位并行輸出;當(dāng)12/8=0時,數(shù)據(jù)以8位分兩次輸出;且當(dāng)AO=0時,輸出A/D轉(zhuǎn)換數(shù)據(jù)的高8位;AO=1時輸出A/D轉(zhuǎn)換數(shù)據(jù)的低4位,轉(zhuǎn)換數(shù)據(jù)的低四位占一個字節(jié)的高半字節(jié),低半字節(jié)補(bǔ)零。
AD574的工作時序分別如下圖所示。
1.3AD574與PCI的接口時序
系統(tǒng)設(shè)計(jì)中AD574與PCI接口芯片PCI9052相連進(jìn)行數(shù)據(jù)傳輸。AD574的轉(zhuǎn)換控制及讀取數(shù)據(jù)控制信號均采自PCI9052的引腳,轉(zhuǎn)換后的數(shù)據(jù)在PCI9052的控制下通過PCI總線傳輸?shù)組CU中進(jìn)行分析與處理。通過CPLD設(shè)計(jì)實(shí)現(xiàn)PCI9052對AD574的邏輯控制和時序控制,對應(yīng)的時序如圖4所示。
時序圖中ADS#、BLAST、LRDYi和LCLK均為PCI總線接口芯片PCI9052的信號引腳。ADS#是PCI總線上發(fā)起一次訪問的地址鎖存引腳,用于控制AD574的采樣時間;BLAST為PCI總線上一次訪問的最后一個數(shù)據(jù)期,用于控制AD574的數(shù)據(jù)讀?。籐RDYi為從設(shè)備準(zhǔn)備引腳,有效則表明PCI9052可以開始對本地端設(shè)備進(jìn)行讀寫數(shù)據(jù),文中用于控制AD574的數(shù)據(jù)轉(zhuǎn)換完成的有效信號,以便開始讀取數(shù)據(jù);LCLK為PCI9052產(chǎn)生的一個局部時鐘信號,用于控制時序邏輯。
2CPLD設(shè)計(jì)與實(shí)現(xiàn)基于VerilogHDL硬件描述語言實(shí)現(xiàn)的ADC574采樣控制設(shè)計(jì)源程序如下:
代碼中信號定義與圖 2時序圖中引腳對應(yīng),同時設(shè)計(jì)了一個計(jì)數(shù)器用于控AD574的時序,以滿足AD574的轉(zhuǎn)換精度及讀取要求。
QUARTus 11軟件為可編程片上系統(tǒng)(SOPC)設(shè)計(jì)提供了一個工具齊全、功能強(qiáng)大的設(shè)計(jì)環(huán)境。在根據(jù)需要選擇好CPLD器件系列后,采用Veilog HDL語言輸入方式編寫控制組合邏輯代碼和測試激勵代碼,利用 Quartus 11 軟件白帶的工具分析綜合代碼,進(jìn)行布線、布局、資源分配以及分析時序、波形仿真。Quartus11還為第三方 EDA工具軟件提供了友好的接口,可以直接在Quartus 11 中調(diào)用 Modelsim軟件進(jìn)行仿真。
利用 Quartus 11 6.0 和 Modelsim6.1 軟件系統(tǒng)在MAX3000A 系列可編程器件上使用了 50%左右的資源實(shí)現(xiàn)了對AD574 的采樣、AID 轉(zhuǎn)換及數(shù)據(jù)讀取的控制。本文在 Mod-elsim6.1 軟件中進(jìn)行仿真的結(jié)果分別如下圖所示。
經(jīng)過驗(yàn)證,電路能順利、方便地控制AD574 的工作和運(yùn)行,轉(zhuǎn)換過程和結(jié)果均符合AD574的時序邏輯和精度要求。
3. 結(jié) 語
利用 CPLD技術(shù)實(shí)現(xiàn)邏輯和時序的控制,在硬件電路上簡化了設(shè)計(jì)的復(fù)雜度,基于CPLD 的可編程特點(diǎn),可以在不改變硬件電路整體結(jié)構(gòu)的情況下對設(shè)計(jì)電路進(jìn)行改造、升級和維護(hù);在軟件程序上減少了操作指令,一定程度上提高了數(shù)據(jù)處理和讀取的速度。
評論