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