PCI總線至UTOPIA接口控制的CPLD設計實現
摘 要: 本文采用Altera的CPLD實現了PCI總線至UTOPIA接口的邏輯轉換控制,為低成本實現ATM終端奠定了基礎。
關鍵詞: CPLD ; PCI總線 ; UTOPIA2總線
引言
EDA技術憑借其高速、方便等特點而被廣泛應用于通信領域。本文采用Altera的CPLD實現了PCI總線至UTOPIA接口的邏輯轉換控制,該設計再配上ATM線路成幀部件即可成為基于個人電腦的ATM終端設備,從而改善因成本較高、市場需求不足等原因而制約ATM網絡終端設備發展的局面。雖然目前有許多專用芯片都可完成PCI接口的控制功能,但從節省成本,提高效率,更緊密地與支持UTOPIA2接口的線路芯片相配合考慮,我們將采用可編程邏輯器件設計這一轉換控制邏輯。
圖1 PCI讀操作時序
圖2 PCI寫操作時序
圖3 系統總體框圖
圖4 PCI讀時序仿真
設計需求
PCI接口要求
PCI總線上的基本傳輸機制是突發分組傳輸,一個突發分組由一個地址周期和一個(或多個)數據周期組成。PCI支持存儲空間和I/O空間的突發傳輸,它所有的數據傳輸基本上都是由三條信號線控制的:FRAME#、IRDY#和TRDY#。
PCI總線的讀時序如圖1所示。當FRAME#信號有效時,讀傳輸開始,在AD[31.. 0]總線上保持有效的地址信號,同時C/BE#[3..0]上包含有效的總線命令。然后主設備停止驅動AD[31..0]總線,置IRDY#為低,表明主設備準備好接收數據。第一個數據節拍產生于第三個時鐘周期。第二個時鐘周期是總線轉換周期,目的是為了避免主設備和從設備因競爭總線發生沖突。當主設備使FRAME#信號無效,表示當前是最后一個數據節拍。在數據節拍里,C/BE#[3..0]總線上為字節允許信號。
DEVSEL#信號和TRDY#信號是由從設備提供的,但必須保證TRDY#信號在DEVSEL#信號之后出現。數據的真正傳輸是在IRDY#和TRDY#信號同時有效的時鐘上升沿進行的,這兩個信號中的一個無效表示插入等待周期,此時不進行數據傳輸。例如在時鐘7處,盡管是最后一個數據周期,但由于IRDY#無效,FRAME#不能變為無效,只有在時鐘8處IRDY#有效后,FRAME#信號才能撤消。
PCI總線上的寫操作與讀操作相類似,如圖2。FRAME#信號有效表示地址周期的開始。主設備在時鐘5處因撤消了IRDY#而插入等待周期,但此時字節使能信號不得延遲發送。從設備在時鐘5、時鐘6和時鐘7插入三個等待周期。AD[31..0]總線在地址周期后沒有像讀操作那樣插入轉換周期,這是因為地址和數據都是由主設備發出的。
圖5 PCI 寫時序仿真
圖6 ADC1仿真(一)
圖7 ADC2時序仿真
PCI總線支持突發式的數據傳輸模式,所以在數據周期有字節使能信號與之對應。信號CBE#[3..0]在數據期表示字節使能。32bit的數據寬度分為4個字節,CBE#[3..0]信號上低電平的位表示對應字節在這個數據期傳送的是有效數據。協議建議,有效字節出現在自然位。
UTOPIA2協議接口要求
UTOPIA2協議定義了一種PHY層和ATM層之間的接口模式。在其level2的補充中允許系統工作頻率為33MHz。這樣就簡化了PCI總線上面ATM層的設計。
UTOPIA2接口分為發送接口和接收接口。在發送接口處,數據流從ATM層流向PHY層;接收接口處,數據流從PHY層流向ATM層,兩個接口都由ATM層控制。發送接口的數據由TXDATA[8..0]傳送,TXSOC有效表示正在發送信元的頭字節,只有TXENB*有效時PHY層才接收數據。
TXFULL*/TXCLAV由PHY層驅動。以字節為單位傳輸時,TXFULL*有效表示PHY在4個寫周期之后將不再接收數據;以信元為單位傳輸時,TXCLAV無效表示在當前信元發送完成之后PHY將不再接收新的信元。接收接口主要由RXDATA[8..0]、RXENB*和RXEMPTY*/RXCLAV組成,它們之間的邏輯關系和發送接口類似。
設計實現
邏輯設計
適配卡的數據傳輸部分的功能是提供PCI接口的數據傳輸控制,同時實現UTOPIA2接口的數據傳輸控制,如圖3所示。
設計實現主要包括三個主要部分:內部數據緩存部分、PCI接口數據控制部分和UTOPIA2接口數據控制部分。發送數據在PCI控制部分的控制下送入數據緩存區,又在UTOPIA2控制模塊的控制下送入ATM成幀器,通過線路輸出;接收數據由ATM成幀器送入數據緩存區,在PCI邏輯控制下讀入主處理機。
兩個FIFO組成系統的第一部分,由它們負責對數據的緩存。其中下行FIFO緩存從PC到ATM網絡的數據,反向數據由上行FIFO緩存。器件選用IDT公司的IDT72T1895。芯片容量128K,數據寬度9bit,最高工作頻率可達225MHz,符合系統要求。這里利用的是其基本的先入先出功能,兩端口采取異步工作模式。
PCI接口邏輯模塊是系統的第二部分。它負責與PCI總線上的控制信號交互,同時分別控制下行FIFO的數據寫入和上行FIFO 的數據讀出。
因為PCI總線定義的數據寬度是32bit,UTOPIA2總線的數據寬度是8bit,所以需要寬度匹配,使PCI送來的32bit寬度數據以8bit寬度串入緩存,反向流動的數據完成相反的變換。這一過程由該模塊中的并/串變換單元完成。并/串變換單元邏輯上由8個74194移位寄存器組成。把32bit寬的PCI數據分為4個字節,每個字節對應位占用一個194,4個字節復用8個194。194的時鐘頻率是總線頻率的4倍,即132MHz,這樣才能保證數據不會丟失。
UTOPIA2接口邏輯模塊是系統的第三部分。它由ADC1和ADC2兩個子單元組成。ADC1實現UTOPIA2接口的發送數據邏輯,同時控制數據從下行FIFO讀出。ADC2實現UTOPIA2接口的接收數據邏輯,并控制數據寫入上行FIFO。
時序驗證
數據傳輸控制的設計環境是Altera公司的MAXPLUSⅡ,器件選用MAX7000E系列的EPM7128ELC84-7。
首先對時序仿真中用到的系統內部信號進行說明:
wen:FIFO寫數據端口使能,低電平允許數據寫入FIFO。
ren:FIFO讀數據端口使能,低電平允許數據讀出FIFO。
pae:低電平表示FIFO空。
paf:低電平表示FIFO滿。
EREN: 所選用的FIFO芯片的輸出信號提示。它與數據是完全同步的。
SHUJU:一組輔助信號,模擬數據的輸出,255是無效值。
count:ADC1內部變量,表示信元已傳送的字節數。
(1)PCI接口數據傳輸部分仿真
圖4是讀操作時序仿真圖。16ns處是地址期,80ns是第一個數據期。144ns處PDC發現irdy*無效,立即使ren置高(使上行FIFO停止輸出)。176ns是最后一個數據期。
PCI總線的寫時序仿真見圖5。與讀時序類似,240ns處是地址期,304ns時是第一個數據期。由于在336ns時下行FIFO滿(paf=0),所以最后一個數據期在400ns時刻出現。
從時序圖可以看到,PCI接口進行數據傳輸時,兩個FIFO是互斥的,不會出現干擾。
(2)UTOPIA2接口時序
圖6是對數據發送部分的仿真。
時鐘45ns處,ADC1發現TXCLAV有效,此時FIFO可讀出,所以置ren為“0”。時鐘75ns處FIFO發現這個變化,開始傳數,ADC1也在這個時候使TXENB*有效。在時鐘285ns處,FIFO通過flag告訴ADC1不能再輸出數據,ADC1立即使ren為“1”,但是數據“7”已經上線路,所以TXENB*會一直保持有效,直到下一個時鐘上升沿(315ns)。
圖7顯示了在UTOPIA2接口,ADC2控制信元接收開始和結束的時序關系。
需要說明的是:從時序圖可以看到,在UTOPIA2接口設計實現時,所有接收數據的時序器件都應該在系統時鐘的下降沿采集數據,比如發送操作中的PHY層設備、接收操作中的上行FIFO。如果它們的時鐘是系統時鐘取反,則可以統一定義在上升沿采集數據。
結語
本文介紹了一個把EDA技術運用到通信領域的一個實例,這個設計利用CPLD實現了PCI控制以及PCI接口至UTOPIA2接口的轉換,為高效、低成本地使PC成為ATM網絡終端設備奠定了基礎。從時序圖看,完全符合設計需求。這種利用EDA技術實現ATM網絡終端設計簡單、成本不高、靈活性強,并且可以很方便地移植到其它可編程器件上,具有較強的實用價值和經濟價值?!?/p>
參考文獻
1 UTOPIA Level2,Version1.0
2 PCI Local Bus Specification Revision2.1
3 PC常用技術大全. SYBEX,Inc. 電子工業出版社
評論