基于CPLD的雙口模塊設(shè)計
摘要:文章介紹了設(shè)計Multibus雙口模塊的方法。通過采用CPLD技術(shù)來實現(xiàn)模塊內(nèi)部邏輯,簡化了模塊的邏輯電路設(shè)計,提高了整個模塊的穩(wěn)定性和可靠性。達(dá)到了優(yōu)化傳統(tǒng)Multibus總線模塊采用邏輯門電路和觸發(fā)器來實現(xiàn)內(nèi)部邏輯的目的。
關(guān)鍵詞:Multibus總線;復(fù)雜可編程邏輯器件;雙口RAM
0 引言
Multibus總線自1974年INTEL公司推出以來,以其自身支持集中式并行多處理、可靠性、抗干擾能力強(qiáng)等特點被廣泛應(yīng)用于工業(yè)控制領(lǐng)域和國防建設(shè)領(lǐng)域。但隨著電子計算機(jī)技術(shù)的飛速發(fā)展,電子器件自身工藝、信號完整性等各方面不斷提高,早期設(shè)計的Multibus總線模塊通過邏輯門電路和觸發(fā)器來實現(xiàn)內(nèi)部邏輯的方法顯然已經(jīng)不能滿足要求。隨著EDA技術(shù)的廣泛應(yīng)用,CPLD技術(shù)己成為現(xiàn)代數(shù)字系統(tǒng)設(shè)計的主要手段,CPLD的時鐘延遲可達(dá)到ns級,結(jié)合其并行工作方式,在超高速、實時測控方面有非常廣闊的應(yīng)用前景。并且CPLD具有高集成度、高可靠性,幾乎可將整個設(shè)計系統(tǒng)下載于同一芯片中,實現(xiàn)所謂片上系統(tǒng),從而大大縮小其體積。CPLD目前正朝著更高速、更高集成度、更強(qiáng)功能和更靈活的方向發(fā)展。采用CPLD來實現(xiàn)Multibus系統(tǒng)模塊的設(shè)計,不但節(jié)省電路開發(fā)費用,而且能提高設(shè)計效率,同時還能有效實現(xiàn)電路的數(shù)字化與微型化。
1 雙口存儲器的概念
雙口,既可以通過Multibus總線訪問的存儲器,又可以通過局部總線訪問的存儲器。雙口RAM為硬件雙口芯片,有兩組獨立的數(shù)據(jù)線、地址線和控制線。一組總線與主模塊的局部數(shù)據(jù)、地址總線相連,另一組總線與Multibus數(shù)據(jù)、地址總線相連。主模塊可以像讀寫局部RAM一樣訪問雙口RAM,多總線上其他主設(shè)備也可通過該主模塊的總線接口對雙口RAM進(jìn)行讀寫。兩條數(shù)據(jù)總線也可以同時對某一存儲單元進(jìn)行訪問。雙口模塊功能框圖如圖1所示。
Multibus總線系統(tǒng)容易構(gòu)成多機(jī)系統(tǒng),連于總線上的各個模塊之間可以進(jìn)行數(shù)據(jù)傳輸。在Multibus總線系統(tǒng)中,有著嚴(yán)格的時序要求,在控制信號啟動之前50ns,地址必須形成。
設(shè)計時要結(jié)合考慮模塊在現(xiàn)有系統(tǒng)中工作時,整個系統(tǒng)的時序,以及主從模塊交換數(shù)據(jù)時,競爭總線時沖突等問題。
在多處理器系統(tǒng)中,為提高系統(tǒng)的吞吐率,避免因多個微處理器和存儲器、I/O接口共用一組系統(tǒng)總線頻繁存取時,造成系統(tǒng)“阻塞”,建立局部總線。局部總線有兩個基本組件,一個是基板,一個是擴(kuò)充模塊?;迨侵钢骺卦O(shè)備,擴(kuò)充模塊的作用主要是給基板提供專用功能。通過局部總線可以完成很大一部分存儲器讀/寫操作和輸入/輸出操作。這樣,只有在訪問公共存儲器和公共輸入/輸出接口時,采用系統(tǒng)總線。于是,避免了“堵塞”現(xiàn)象,而且還提供了各個子系統(tǒng)并行工作的條件。
而兩路總線在一個系統(tǒng)中同時工作時,主模塊對擴(kuò)充模塊可以從Multibus總線和局部總線兩路訪問,到底哪路總線訪問擴(kuò)充設(shè)備,這就是我們需要考慮的兩路總線的優(yōu)先裁決問題。
早期的模塊中通過GAL器件編碼、和多個觸發(fā)器多總線仲裁電路。而應(yīng)用中,對存儲器的雙口訪問存在競爭現(xiàn)象。那么怎么來解決雙口競爭問題呢?首先我們采用硬件雙口芯片RAM,它有兩組獨立的數(shù)據(jù)線、地址線和控制線。一組總線與主模塊的局部數(shù)據(jù)、地址總線相連,另一組總線與Multibus數(shù)據(jù)、地址總線相連,再就是采用CPLD技術(shù)實現(xiàn)內(nèi)部邏輯,主模塊可以像讀寫局部RAM一樣訪問雙口RAM,多總線上其他主設(shè)備也可通過該主模塊的總線接口對雙口RAM進(jìn)行讀寫。兩條數(shù)據(jù)總線也可以同時對某一存儲單元進(jìn)行訪問,而不產(chǎn)生競爭現(xiàn)象。
2 設(shè)計實現(xiàn)
內(nèi)部時序及邏輯控制電路主要由CPLD器件編程實現(xiàn)。采用的CPLD芯片為ALTERA公司的EPM7256SRI208-10芯片,其最高運行頻率為227.3 MHz。采用MAX+PLUSII 10.0軟件工具開發(fā)。設(shè)計完成板內(nèi)地址總線、數(shù)據(jù)總線的控制信號;雙口RAM的讀寫訪問、片選信號、邏輯延遲應(yīng)答信號等。設(shè)計輸入完成后,進(jìn)行整體的編譯和邏輯仿真,然后進(jìn)行轉(zhuǎn)換、延時仿真生成配置文件,最后下載至CPLD器件,完成結(jié)構(gòu)功能配置,實現(xiàn)其硬件功能。其中CLK時鐘端口采用了常時鐘信號/CCLK。/CCU是一個10MHz時鐘,在應(yīng)答生成邏輯上使用。
雙口存儲器可以通過Multibus總線和局部總線兩路總線訪問。由于采用硬件雙口芯片,避免了兩路總線同時在系統(tǒng)中工作時的競爭沖突問題。還可以在不同的用戶環(huán)境中,只需更改跨接線的配置就可以滿足,不需再重新編碼,更改芯片配置。
在本設(shè)計中采用的雙口存儲器芯片為RAMIDT7027S25PF,是IDT公司研制的32k×16位的雙口靜態(tài)RAM。計算機(jī)主模塊可以通過Local bus接口或Multibus接口對雙口RAM進(jìn)行讀寫。兩組數(shù)據(jù)總線也可以同時對某一存儲單元進(jìn)行訪問,而不產(chǎn)生競爭現(xiàn)象。設(shè)計實現(xiàn)如圖2所示。
在雙口RAM的兩套控制線中,各有一個BUSY引腳。當(dāng)兩端的CPU對雙口RAM的不同地址單元存取時,BUSYL=H、BUSYR=H,可正常存儲;當(dāng)兩端的CPU對雙口RAM同一地址單元存取時,哪個端口的存取請求信號出現(xiàn)在后,則其對應(yīng)的BUSY=L,禁止其存取數(shù)據(jù);在無法判定兩個端口存取請求信號出現(xiàn)的先后順序時,控制線BUSYL、BUSYR只有一個為低電平。這樣,就能夠保證對應(yīng)于BUSY=H的端口能進(jìn)行正常存取,對應(yīng)于BUSY=L的端口不能存取,從而避免了兩個CPU同時競爭地址資源而引發(fā)錯誤的可能。具體邏輯和電狀態(tài)關(guān)系見表1。
3 需注意解決的問題
(1)輸入、輸出匹配問題。Multibus總線上所有信號都是低電平為現(xiàn)役的。器件輸入輸出電平在特定電壓范圍內(nèi)為邏輯0或為邏輯1。
(2)測試需充分。必須用測試臺對它的功能做到充分準(zhǔn)確的測試。對該存儲模塊的容量和數(shù)位在單地址和連續(xù)地址下實現(xiàn)讀、寫功能。能正確實現(xiàn)對32k×16為存儲單元寫入任何數(shù),完成數(shù)據(jù)正確性檢查,進(jìn)行可靠性連續(xù)考核試驗。運行于多機(jī)環(huán)境中,通過兩路總線隨時訪問任何單元,讀寫準(zhǔn)確無誤。
(3)時序問題。采用雙口RAM來設(shè)計存儲器模塊時,會產(chǎn)生邏輯控制,讀、寫邏輯上的差異。因此在設(shè)計時應(yīng)該嚴(yán)格控制模塊的時序關(guān)系。
(4)配置可選。根據(jù)應(yīng)用環(huán)境的不同,可靈活更改相應(yīng)的配置。在本模塊設(shè)計中就是通過配置跨接線來達(dá)到不同用戶的需求。通過修改跨接線,即可調(diào)整存儲器的地址空間,也可以根據(jù)需要來選擇開放或關(guān)閉雙口存儲器,可根據(jù)多總線主設(shè)備的性能調(diào)整存儲器的訪問延遲時間。
4 結(jié)束語
經(jīng)過實際測試,本模塊通過采用硬件雙口芯片及CPLD技術(shù)控制內(nèi)部時序關(guān)系,解決了存儲器訪問競爭問題,通過可選跨接線配置,解決了多用戶使用環(huán)境問題。提高了整個應(yīng)用系統(tǒng)的可靠性。
評論