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