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