在Protel99SE下實現(xiàn)可編程邏輯器件設(shè)計
關(guān)鍵詞:可編程邏輯器件(PLD);硬件描述語言(CUPL);Protel99se
1 引言
在以往的DSP設(shè)計中,采用TTL、CMOS電路和專用數(shù)字電路進行設(shè)計時,器件對電路的處理功能是固定的,用戶不能定義或修改其邏輯功能。但隨著電子技術(shù)的發(fā)展和工程對所需功能復(fù)雜程度的進一步提高,系統(tǒng)將需要很多芯片,這樣,在芯片之間,以及芯片和印刷電路板的布線和接點也相應(yīng)增多,因而導(dǎo)致系統(tǒng)的可靠性下降和功耗增加,這樣也就越來越不能滿足工程實際的需要。而大規(guī)模可編程邏輯器件?PLD:Programmable Logic Device?和基于芯片的EDA?Electronic Design Automatic電子設(shè)計自動化?工具軟件則可以解決這一問題。半導(dǎo)體技術(shù)的提高使ASIC?Application Specific Integrated Circuit:特定用途集成電路?設(shè)計技術(shù)日趨完善,同時可編程邏輯器件在結(jié)構(gòu)、工藝、集成度、功能、速度、靈活性等方面的改進和提高,也為高效率、高質(zhì)量、靈活設(shè)計數(shù)字系統(tǒng)提供了可靠性。此外,CPLD?Complex Pro-grammable Logic Device?或FPGA?Field Programmable Array?技術(shù)的出現(xiàn),又為DSP提供了一種嶄新的方法,并使CPLD或FPGA設(shè)計的DSP系統(tǒng)具有良好的實用性和極強的實時性。
在Protel99se嵌套的PLD99的開發(fā)環(huán)境下,可編程邏輯器件設(shè)計可以直接面向用戶要求,自上而下地逐層完成相應(yīng)的描述、綜合、優(yōu)化、仿真與驗證,直到生成能夠下載到器件的JED文件,該方法結(jié)構(gòu)嚴謹,易于操作,其設(shè)計流程如圖1所示。
2 實例介紹
在某工程中,要求利用SYN0,SYN1,SYN2,SYN3,SYN4,SYN5作為同步信號進行64個通道的選擇,以使64個通道在不同時刻進行工作,電路產(chǎn)生的發(fā)射脈沖連接在64個雙晶探頭上,然后將雙晶探頭產(chǎn)生的原始回波信號a1,b1,c1,d1經(jīng)過AD8184?四選一開關(guān)?輸出到信號板進行處理。
3 設(shè)計過程
3.1 確定設(shè)計目的
由于每一通道的電路都是相同的,考慮到硬件電路以及電路板容量的問題,可先將64個通道分成16組,即每塊電路PCB板設(shè)計四個通道,這16組利用SYN2,SYN3,SYN4,SYN5和撥碼開關(guān)S1選通,然后利用SYN0,SYN1產(chǎn)生選通每塊電路板的四個通道的選通信號A0、A1和輸出使能EN,其電路原理如圖2所示,信號的先后次序及邏輯關(guān)系見圖3。
3.2 PLD器件的選擇和輸入輸出的確定
由于CUPL語言與器件和生產(chǎn)廠家無關(guān),根據(jù)設(shè)計目的和要求,最簡單、最常用的GAL22V10可以作為目標(biāo)器件。根據(jù)GAL22V10的技術(shù)資料和器件各個管腳的定義,可將同步信號SYN0,SYN1,SYN2 ,SYN3,SYN4,SYN5和撥碼開關(guān)S1的四個管腳作為輸入信號,即選擇2~11為輸入管腳,13腳直接接地,14~20為輸出管腳,其中14~17腳用來進行通道選擇,18、19腳作為AD8184的選通信號,20腳作為AD8184的輸出使能,參見圖2。
圖3 信號邏輯關(guān)系圖
3.3 創(chuàng)建包括頭信息的源文件
在PLD99的開發(fā)環(huán)境下,根據(jù)上述設(shè)想及管腳分配,利用Protel99se模板和硬件描述語言CUPL定義輸入輸出管腳,以創(chuàng)建包括頭信息的文本文件Tan-Shang.pld,然后用CUPL語言寫出如下的中間變量邏輯式和邏輯等式?注:由于描述變量EN的乘積項過多,故將變量EN分成中間變量EN1和EN2?,并完善文本文件。經(jīng)過一系列設(shè)置后便可編譯原文件,編譯成功后會提示Compilation successful,方法如下:
/** Declarations and Intermediate Variables **/
EN1=!(k1 & k2 & k3 & k4 & syn2 & syn3 & syn4 & syn5
#!k1 & k2 & k3 & k4 & !syn2 & syn3 & syn4 & syn5
#k1 & !k2 & k3 & k4 & syn2 & !syn3 & syn4 & syn5
#!k1 & !k2 & k3 & k4 & !syn2 &!syn3 & syn4 & syn5
#k1 & k2 & !k3 & k4 & syn2 & syn3 & ?。螅睿?& syn5
#!k1 & k2 & !k3 & k4 & !syn2 & syn3 & ?。螅睿?& syn5
#k1 & ?。耄?& !k3 & k4 & syn2 & ?。螅睿?& ?。螅睿?& syn5
#?。耄?& ?。耄?& ?。耄?& k4 & ?。螅睿?&?。螅睿?& ?。螅睿?& syn5??
EN2=?。ǎ耄?& k2 & k3 & ?。耄?& syn2 & syn3 & syn4 & ?。螅睿?/P>
#?。耄?& k2 & k3 & ?。耄?& ?。螅睿?& syn3 & syn4 &?。螅睿?/P>
#k1 & ?。耄?& k3 &?。耄?& syn2 &?。螅睿?& syn4 & !syn5
#?。耄?& ?。耄?& k3 & ?。耄?& ?。螅睿?& !syn3 & syn4 & ?。螅睿?/P>
#k1 & k2 & ?。耄?& ?。耄?& syn2 & syn3 &?。螅睿?& ?。螅睿?/P>
#?。耄?& k2 & ?。耄?& ?。耄?& ?。螅睿?& syn3 & ?。螅睿?&! syn5
#k1 & !k2 & !k3 & !k4 & syn2 &!syn3 & !syn4 & !syn5
#!k1 & !k2 & !k3 & !k4 &!syn2 & !syn3 &!syn4 &!syn5);/** Logic Equations **/
EN=EN1&EN2?
A1=!syn1 &!EN?
A0=!syn0 &!EN?
a=!A1&!A0& !EN?
b=!A1&A0& !EN?
c=A1&!A0& !EN?
d=A1&A0&!EN?
圖4 查看波形輸出文件
通過創(chuàng)建仿真測試文件TanShang.SI可進行仿真測試,以產(chǎn)生如圖3的仿真波形,當(dāng)編譯和仿真成功后,即可得到可下載到可編程邏輯器件的JED文件。該仿真測試文件Tanshang.SI如下:
ORDER:syn5,syn4,syn3,syn2,syn1,syn0,k4,k3,k2,k1,OE,EN,A1,A0,a,b,c,d;
VECTORS:
00000000001LHHLLLH
00000100001LHLLLHL
00001000001LLHLHLL
00001100001LLLHLLL
從仿真結(jié)果很明顯地可以看出:撥碼開關(guān)的四位K1,K2,K3,K4分別代表00~0F(十六進制碼)這16組,而每組的四個通道的輸出為a,b,c,d;由于SYN0,SYN1,SYN2,SYN3,SYN4,SYN5可組成00~3F(十六進制碼)共64個通道,從而實現(xiàn)了利用SYN0,SYN1,SYN2,SYN3,SYN4,SYN5分時選通64個通道回波信號的功能。由于EN始終為低電平信號,因此保證了AD8184的選通信號能夠起作用。
4 結(jié)論
利用Advanced Protel PLD99的硬件描述語言CUPL進行PLD設(shè)計,具有設(shè)計簡單、可操作性強的優(yōu)點,在采用可編程邏輯器件進行系統(tǒng)設(shè)計時,由于其硬件描述語言CUPL能夠定義內(nèi)部邏輯和外接管腳的功能,而且在設(shè)計中根本不必考慮邏輯器件內(nèi)部連線和組合邏輯陣列?Interconnect And Combinato-rial Logical?,再加上除了系統(tǒng)行為和功能描述外,所有設(shè)計過程都可以用計算機自動完成,所以,通過可編程邏輯器件?FPGA?等開發(fā)工具,在實驗室就可以設(shè)計出專用的集成電路,從而真正實現(xiàn)電子設(shè)計自動化。由此可見:該方法并為數(shù)字系統(tǒng)的設(shè)計提供了非常方便的手段,靈活地解決了眾多復(fù)雜的工程實踐問題,從而可大大縮短研發(fā)時間。
評論