新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Verilog HDL的SDX總線與Wishbone總線接口轉(zhuǎn)化的設(shè)計與實現(xiàn)

基于Verilog HDL的SDX總線與Wishbone總線接口轉(zhuǎn)化的設(shè)計與實現(xiàn)

作者: 時間:2017-06-05 來源:網(wǎng)絡(luò) 收藏

隨著微電子設(shè)計技術(shù)與工藝的迅速發(fā)展,數(shù)字集成電路逐步發(fā)展到專用集成電路(ASIC),其中超大規(guī)模、高速、低功耗的新型的出現(xiàn),降低了產(chǎn)品的成本,提高了系統(tǒng)的可靠性。同時,各種電子產(chǎn)品的復(fù)雜度和現(xiàn)代化程度的要求也逐步提高,文中針對機載信息采集系統(tǒng)的可靠性、數(shù)據(jù)管理的高效性以及硬件成本的需求。設(shè)計實現(xiàn)了與的接口轉(zhuǎn)化,完成了數(shù)據(jù)采集功能模塊與協(xié)議之間的數(shù)據(jù)傳輸。

該設(shè)計主要采用硬件描述語言Verilog HDL在可編程邏輯器件上實現(xiàn),由于數(shù)據(jù)采集功能模塊繁多,而可以與任何類型的ROM或RAM相連,因此需在與數(shù)據(jù)采集模塊中嵌入,使得整體設(shè)計簡單、靈活,且數(shù)據(jù)能夠高效、快速的傳輸。

  1 SDX總線協(xié)議

1.1 SDX總線結(jié)構(gòu)

SDX總線屬于非平衡配置的點對點和多點鏈路,站點類型分為主站和從站,其數(shù)據(jù)傳輸方式為非平衡配置的指令/響應(yīng)方式。與國際標(biāo)準化組織ISO制定的開放系統(tǒng)互聯(lián)模型OSI/RM相比,參考模型只分為3層:物理層、數(shù)據(jù)鏈路層和應(yīng)用層,如圖1所示。

圖1 SDX參考模型與OSI/RM的對應(yīng)關(guān)系

本文引用地址:http://2s4d.com/article/201706/349077.htm

  1.2 字格式及其各位場的含義

SDX總線采用面向消息的傳輸控制規(guī)程作為通信協(xié)議,選用曼徹斯特Ⅱ雙相電平編碼,總線最大傳輸速率20 Mbit·s-1,字長為20位??偩€傳輸速率20 Mbit·s-1時,每字占1μs.規(guī)定每次傳輸一個消息的過程應(yīng)包括指令字、數(shù)據(jù)字和狀態(tài)字幾個部分。每種字的字長為20位,有效信息位為16位,每個字的前3位為單字的同步字頭,而最后一位是奇偶校驗位。同步字頭的作用是標(biāo)識每個字的開始,起字同步作用。奇偶校驗采用奇校驗,在發(fā)送端對16位有效位補齊,而在接收端進行奇校,用于檢驗字傳輸中有無錯誤。需要指明的是:無論是何種字類型,各場的數(shù)據(jù)總是高位(MSB)傳輸在先。

(1)指令字結(jié)構(gòu)。
指令字只能由主站發(fā)送,它的內(nèi)容指明主站要與哪個從站對話,規(guī)定了該次數(shù)據(jù)傳輸?shù)牡刂贩较蚝头?wù)類型。其格式如圖2所示。

圖2 數(shù)據(jù)傳輸?shù)牡刂贩较蚝头?wù)類型格式

方向和服務(wù)類型
1~3位:同步字頭(SYN),前1.5位為101,后1.5位為000時標(biāo)識指令字或狀態(tài)字。
4~13位:10 bit遠程模塊地址(RA[9:0]),全0時為廣播地址,其余為各遠程模塊地址。
14位:讀寫控制位R.該位為1時,表明主站要從被尋址的從站中讀取數(shù)據(jù);為0時,表明主站要從被尋址的從站中寫入數(shù)據(jù)。
15~18位:當(dāng)RA[9:0]為非全0時,EP[3:0]有效。需要強調(diào)的是:當(dāng)RA[9:0]為非全0,端點地址為全0時,該地址為從站的系統(tǒng)管理訪問地址。
19位:狀態(tài)字指示位S,當(dāng)該位為0時,表明有效字為指令字;當(dāng)該位為1時,表明有效字為狀態(tài)字。
20位:奇偶校驗位(P),該字的奇偶校驗位,奇校驗有效。

(2)數(shù)據(jù)字結(jié)構(gòu)。

數(shù)據(jù)字既可以由主站傳送到從站,也可以由從站傳送到主站。數(shù)據(jù)字的格式如圖3所示。

圖3 數(shù)據(jù)字格式

1~3位:前1.5位為101,后1.5位為111時標(biāo)識數(shù)據(jù)字。
4~19位:16 bit長數(shù)據(jù)(DATA[15:0]),高位(MSB)傳輸在先。
20位:奇偶校驗位(P),該字的奇偶校驗位,奇校驗有效。

(3)狀態(tài)字結(jié)構(gòu)。

狀態(tài)字只能由從站發(fā)出,是對主站發(fā)出的有效命令的應(yīng)證性信號,是通信中進行差錯控制和流量控制的重要手段。狀態(tài)字格式如圖4所示。

圖4 狀態(tài)字格式
1~3位:同步字頭(SYN),前1.5位為101,后1.5位為000時標(biāo)識指令字或狀態(tài)字。

4~13位:10 bit從站的地址(RA[9:0])。
14~18位:狀態(tài)代碼,表示響應(yīng)模塊的通信狀態(tài)。
19位:狀態(tài)字識別位(S),當(dāng)有效字為狀態(tài)字時,該位為1.
20位:奇偶校驗位(P),該字的奇偶校驗位,奇校驗有效。

表1 狀態(tài)代碼描述

注釋1,只有滿足下列判據(jù)才認為傳輸中不存在錯誤:(1)字有效,這是指都以有效的同步字頭開始,并且除去同步字頭之外其余的都是有效的雙相碼,有效信息是16位,奇偶校驗位一位,且奇校驗。(2)消息有效,這是指在一次傳輸中,如果存在一個數(shù)據(jù)塊,那么在指令字與數(shù)據(jù)字之間,在數(shù)據(jù)字與數(shù)據(jù)字之間,消息是連續(xù)的,不存在任何斷裂的情況。(3)指令有效,這是指在指令字和數(shù)據(jù)字各場中不存在非法數(shù)據(jù),同時發(fā)出的數(shù)據(jù)塊長度應(yīng)與設(shè)置長度相等。如果以上3個判據(jù)中有任何一個得不到滿足,則消息錯誤位置位。

注釋2,由于廣播消息格式要求禁止從站發(fā)回狀態(tài)字,為了解上一個廣播指令是否已被從站有效接收,可使用專門的命令類型讓某個從站發(fā)回狀態(tài)字,如此位置成1,而且忙位置成0,即說明上一個指令的確是廣播指令,已被該從站有效接收。

  2 Wishbone總線協(xié)議

Wishbone總線是一種內(nèi)部總線協(xié)議。它可以將片內(nèi)的各部分以及IP核等連接在一起,用來標(biāo)準化各個獨立部分的接口,以更加方便地架構(gòu)SOC(Syctem-on-Chip)系統(tǒng)。其特點是結(jié)構(gòu)簡單、靈活,只需要少量的邏輯門即可實現(xiàn),同時完全免費、公開。

Wishbone總線規(guī)范中,使用Master/Slave結(jié)構(gòu)實現(xiàn)靈活的系統(tǒng)設(shè)計,MaSTer/Slave有4種互連方式,分別為點對點、數(shù)據(jù)流、共享總線和交叉互連。且Master和Slave之間使用握手協(xié)議,當(dāng)準備好數(shù)據(jù)傳輸時,Master使STB_O有效,且一直保持到Slave的響應(yīng)信號ACK_O,ERR_O,或RTY_O之一有效。Master在每個時鐘的上升沿對響應(yīng)信號采樣,若該信號有效,則置低STB_O,如圖5所示。

圖5 握手時序

2.1 Wishbone總線基本傳輸周期

Wishbone總線支持完整的普通數(shù)據(jù)傳輸協(xié)議,包括單個讀寫周期、塊讀寫周期等。數(shù)據(jù)總線寬度為8~64位,地址總線寬度最高可達64位。Wishbone數(shù)據(jù)總線和地址總線分離,在傳輸上,保持一個地址、一個數(shù)據(jù)的傳輸結(jié)構(gòu)。以下為Wishbone總線單次讀、寫時序圖。圖6為單次讀周期時序,圖7為單次寫周期時序。

圖6 單次讀周期時序

圖7 單次寫周期時序

3 系統(tǒng)設(shè)計與實現(xiàn)

系統(tǒng)所有控制邏輯均在Altera的CycloneⅢ系列(EP3C40F)上實現(xiàn)。FPGA的信號線只有系統(tǒng)時鐘、串行輸入數(shù)據(jù),由于SDX總線中傳輸數(shù)據(jù)為曼徹斯特碼型,因此需將曼徹斯特碼解碼為BCD碼同時將串行輸入數(shù)據(jù)轉(zhuǎn)化為并行數(shù)據(jù),將轉(zhuǎn)化后標(biāo)準的16位并行BCD碼輸入SDX模塊對SDX協(xié)議響應(yīng),將需要數(shù)據(jù)讀、寫的消息響應(yīng)同時產(chǎn)生數(shù)據(jù)讀、寫以及地址信號并發(fā)起Wishbone總線操作,實現(xiàn)在Wishbone總線上高效的數(shù)據(jù)傳輸。Wishbone總線主要使用點對點的互聯(lián)方式,將Wishbone總線中Master模塊中的輸出信號直接連接到Slave模塊,其優(yōu)點是多個數(shù)據(jù)可以并行處理,從而提高系統(tǒng)的整體數(shù)據(jù)處理能力。系統(tǒng)的整體設(shè)計框圖如圖8所示。

圖8 系統(tǒng)的整體設(shè)計框圖

  4 仿真結(jié)果分析

為驗證設(shè)計系統(tǒng)的性能,使用Modelsim6.2仿真軟件對系統(tǒng)功能進行了仿真測試。

圖9為Wishbone總線寫操作,且為單字寫傳輸,在時鐘上升沿,Master將DAT_O、ADR_O信號放到數(shù)據(jù)、地址總線上,將CYC_O、STB_O、WE_O置高表示寫傳輸開始,在下一個時鐘沿到達之前,Slave檢測到Master發(fā)起的操作,將ACK_O、ERR_O、RTY_O之一置高并傳輸?shù)組aster中,若Master檢測到ACK_I為高時,在下一個時鐘的上升沿將CYC_O、STB_O置低表示操作完成,若ERR_I為高,則表示該操作錯誤,取消此操作,進行下一步操作,若RTY_I表示Slave總線忙,則重試。

圖9 Wishbone寫操作仿真圖

圖10為Wishbone總線讀操作,且為單字讀傳輸,在時鐘上升沿,Master將ADR_O信號放到地址總線上,WE_O保持為低,同時將CYC_O、STB_O置高表示讀傳輸開始,在下一時鐘沿到達之前,Slave檢測到Master發(fā)起的操作,將ACK_O、ERR_O、RTY_O之一置高并傳輸?shù)組aster中,同時將適當(dāng)?shù)臄?shù)據(jù)傳輸?shù)組aster的DAT_I中,若Master檢測到ACK_I為高時,在下一個時鐘的上升沿將CYC_O、STB_O置低表示該次讀操作完成,若ERR_I為高,則表示該操作錯誤,則取消此操作,進行下一操作,若RTY_I表示Slave總線忙,則重試。

圖10 Wishbone讀操作時序圖

  5 結(jié)束語

討論了基于FPGA的SDX總線與Wishbone總線的接口轉(zhuǎn)換,并介紹了不同總線的接口標(biāo)準與時序,通過在Modelsim下的仿真,Quartus中綜合,可下載到FPGA中進行調(diào)試,實現(xiàn)了系統(tǒng)的整體性能,從而保證了系統(tǒng)快速、高效的傳輸。



關(guān)鍵詞: SDX總線 Wishbone總線 FPGA

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉