《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 一種UWB的MAC緩存設計
一種UWB的MAC緩存設計
來源:微型機與應用2013年第13期
陳 澤,傅忠謙,黃 魯
(中國科學技術大學 電子科學與技術系,安徽 合肥 230027)
摘要: 實現了一個脈沖超寬帶、高速、短距離無線通信組網工程的MAC緩存設計,使用片外SDRAM與MAC芯片電路中優先級最高的FIFO進行數據交互,并在SMIC 0.18 μm CMOS工藝下進行了流片。測試結果證明其在125 MHz下能正常工作。
Abstract:
Key words :

摘  要: 實現了一個脈沖超寬帶、高速、短距離無線通信組網工程的MAC緩存設計,使用片外SDRAM與MAC芯片電路中優先級最高的FIFO進行數據交互,并在SMIC 0.18 μm CMOS工藝下進行了流片。測試結果證明其在125 MHz下能正常工作。
關鍵詞: MAC;緩存;SDRAM控制;FIFO

    超寬帶(UWB)技術在室內短距離無線通信中可支持高達數百兆比特每秒的傳輸速率而同時功耗較低。物理層上層的MAC技術在影響網絡吞吐量方面有非常重要的作用,它為上層提供快速可靠的傳送支持[1]。本文根據脈沖超寬帶(IR-UWB)短距離組網工程的要求,利用SDRAM實現了一個MAC大容量緩存設計并與整個MAC一起完成芯片流片與測試。
1 MAC系統設計
1.1 系統設計

    在IR-UWB通信系統中,PC通過USB控制芯片CY7C68013(下文簡稱68013)與MAC芯片建立數據交互。如圖1所示,MAC處于基帶與PC之間,實現接口轉換、組幀合幀、節點接入、時隙管理等功能。其中FD是MAC與68013之間的16 bit雙向數據總線,txdata是MAC送往基帶的8 bit數據,rxdata為基帶送往MAC的8 bit數據。

    從網絡的應用需求和特點出發,系統設計采用中心控制,數據P2P傳輸作為網絡組織結構,采用幾組可選的固定時隙分配超幀結構作為接入基本規則。將一段時間分為若干個超幀,每一超幀包含500個物理幀,若干個連續的物理幀組成一個時隙[2]。這樣可以分配PNC/DEV節點在一個超幀的不同時隙發送或接收,即在PNC發送時DEV接收,DEV發送時PNC接收。一個物理幀長2 089個時鐘周期[3],時鐘周期為8 ns,一個超幀時長8.356 ms。
1.2 緩存方案確定    
 USB2.0傳輸速率最大為480 Mb/s,對MAC的接口是30 M×16 bit。MAC與基帶部分交互的速率為1 Gb/s(125 M×8 bit)。兩端數據寬度和速率均不同且跨時鐘域。大量的數據跨時鐘域交互需要使用異步FIFO。一種簡單方案如下:僅用兩個FIFO,一個TFIFO用來接收68013的30 MHz頻率16 bit FD輸入,以125 MHz讀出并作16 bit轉8 bit操作,并送往基帶;另一個是RFIFO,接收rxdata經8 bit轉16 bit后的125 MHz輸入數據流,以30 MHz讀出送至68013。
 當本節點在接收時隙下,接收數據流以1 Gb/s(125 MHz的rxdata)灌進RFIFO中時,即使將68013僅用于接收也只能達到480 Mb/s。因高速寫入低速讀出,為了在接收數據時隙內RFIFO不被寫滿,需用超大容量的FIFO。此外,當PC有要發送的數據時,將會被阻塞(因68013僅接收)而進不了MAC中。
 為避免PC發送被阻塞和FIFO深度過大,使用大容量SDRAM作為MAC的緩存。如圖2所示,通過4個FIFO(512×16 bit)與SDRAM交互數據。將SDRAM按地址分成等分的兩片,每片容量32 MB,分別作為發送數據和接收數據的緩沖存儲區。這樣SDRAM等同于兩個巨大的FIFO緩存著發送和接收的數據[4]。與SDRAM交互的FIFO列表如表1所示。

 選用Micron公司的MT48LC32M16A2(8 Meg×16×4 banks)型號SDRAM[5],工作時鐘125 MHz,FIFO與SDRAM數據交互速率為2 Gb/s。如此將大大減小片內FIFO(芯片內部的FIFO是通過雙口SRAM陣列來存儲數據的)的容量,節省大量芯片面積,并且隔離了Tfifoin及Rfifoout寫讀與超幀時隙分配的關系,這樣PC不必等到發送時隙到時才能將數據送入MAC,能應對實際業務中數據突發到達。數據流圖如圖3所示。

 緩存設計由degree、sdram_interface、sdram_infifo及sdram_outfifo 4個模塊構成。degree模塊負責全局邏輯,挑選最高優先級的FIFO進行讀寫操作,同時變更優先級輪循信號,產生命令字(CMD)、外圍FIFO選通信號、SDRAM讀寫標志和SDRAM讀寫地址。sdram_interface通過翻譯命令字(CMD)信號產生外部SDRAM的接口信號及內部FIFO的讀寫請求。sdram_infifo模塊根據FIFO選通信號和讀請求,將相應的infifo數據寫入SDRAM,同時根據優先級輪循信號(infifo_state)產生新的infifo優先級,本模塊例化為圖2中的Tfifoin和Rfifoin。sdram_outfifo模塊根據FIFO選通信號和寫請求,從SDRAM讀出數據至outfifo,同時根據優先級輪循信號(outfifo_state)產生新的outfifo優先級,本模塊例化為圖2中的Tfifoout和Rfifoout。
2 主模塊實現
2.1 68013接口模塊

 與68013交互的FIFO有Rfifoout及Tfifoin。通過固件將68013配置成slave FIFO模式[6](內部一個發送FIFO,一個接收FIFO),MAC與68013通過讀寫FIFO完成數據交互。68013固件的設計決定了每次讀寫都是以256個16 bit寬的數據為粒度進行操作。68013提供的滿標志FLAGB(低有效,由FIFOADDR選中的FIFO有不少于256字的數據)、空標志FLAGC(低有效,由FIFOADDR選中的FIFO數據不足256字)至MAC。68013接口模塊狀態機如圖4所示。

 通過MAC中的狀態機,在init態根據內外FIFO的標志決定下一狀態。在usb2mac態,若68013有一個粒度的數據要發送(FLAGB為低)且MAC已準備好接收(Tfifoin非滿且已寫數據字數小于257,T_FIFO_fulln有效),則狀態跳入usb2macwr進行256字的突發寫;在mac2usb態,若68013能接收一個粒度的數據(FLAB為高)且MAC已準備好發送(Rfifoout滿或可讀數據大于255字時,R_FIFO_emptyn有效),則狀態跳入mac2usbrd態進行256字的突發讀。一次突發讀或突發寫完成后,狀態跳入idle對flag_usbrd取反并變更FIFOADDR,等待10個周期確保FIFOADDR對應的FIFO空、滿標志(FLAGC、 FLAGB)穩定建立后再跳入init態進行下一次輪詢。
2.2 degree模塊
 本設計將SDRAM配置成BL=8(8 bit突發讀寫長度),CL=3(CAS Latency為3個時鐘周期,即在讀命令發出后3個時鐘周期,DQ端才出現讀出的數據)。degree模塊狀態機如圖5所示。

 上電后進入init態進行初始化,根據init_cnt計數器值給出對應的初始化命令。完成初始化后跳入nop態,以last_rdwr為標志判斷跳轉wr或rd態,并對last_rdwr取反,以此做到SDRAM讀寫狀態的輪詢。在讀寫狀態下連續16次突發讀寫(BL=8),并根據SDRAM時序要求給出對應的命令。讀寫完成后跳入precharge狀態進行預充電以關閉活動的行,結束后進入nop態。刷新計數器在不停地計數,當達到700(小于刷新間隔)時給出刷新標志refresh_flag,nop態檢測到此標志,立即跳入刷新狀態發送自動刷新命令來刷新SDRAM。
 寫入SDRAM和從SDRAM讀出操作均有兩個FIFO(見圖2、圖3)。判斷兩FIFO的優先級,選取高優先級FIFO進行讀寫。以infifo為例,在wr態若高優先級FIFO的優先級(max_infifo_degree)大于零,則選中該FIFO進入寫狀態write。選中FIFO后,給出優先級輪詢信號infifo_state:選中Tfifoin后給出00,選中Rfifoin后給出01。
 FIFO新的優先級為:若FIFO數據不夠一次突發寫或SDRAM對應存儲區已滿,則優先級置零;若index與infifo_state的和為11,則優先級置01;若index與infifo_state的和不為11,則優先級為兩者之和。
 如表2所示,當兩FIFO都有數據要傳送時,會選中高優先級的FIFO。選擇Rfifoin后,Tfifoin新優先級為10(大于Rfifoin的01),故下次會選擇Tfifoin;選擇Tfifoin后,Rfifoin新的優先級將高于Tfifoin,故下次會選擇Rfifoin。outfifo的優先級輪詢同理。

3 芯片測試
    本設計在SMIC 0.18 μm CMOS工藝下流片,工作頻率為125 MHz。測試使用Agilent 16804A邏輯分析儀。測試子板背面的插針扣到FPGA母板的插槽上,通過FPGA將txdata數據流自環給rxdata來驗證接收通道。從PC連續發送0x0100、0x0302……0xFDFC、0xFFFE再到0x0100的循環數據,使用邏輯分析儀抓取txdata、SDRAM數據和接收到的FD數據。邏輯分析儀波形如圖6~圖9所示。

 

 

 對比圖6與圖7發現,寫入SDRAM數據和從對應地址讀出數據一致,說明SDRAM正常工作。
由圖8可知,txdata數據為0x00、0x01……0xFE、0xFF再到0x00的循環,證明發送通道正常工作。由圖9可知,自環回來的FD接收數據與PC發送的數據相同,為0x0100、0x0302……0xFDFC、0xFFFE再到0x0100的循環。將邏輯分析儀抓取的大量數據導入Matlab進行分析,未發現錯數據、丟數據現象。
    比起使用芯片內的SRAM陣列,利用SDRAM構建大容量緩存的方法具有成本低、容量大的特點。選取優先級最高的FIFO與片外SDRAM進行數據交互,并動態更新FIFO的優先級。設計經流片和芯片測試,證明異步FIFO工作正常,各時鐘域數據流正常,無錯數據、丟數據現象。
參考文獻
[1] 徐升.超寬帶高速無線個域網的MAC協議研究[D].合肥:中國科學技術大學,2010.
[2] 徐明霞.基于參數解析的Ad Hoc網絡時隙同步方法[J].浙江大學學報(工學版),2005,39(6):901-905.
[3] Yin Huarui. Monobit digital receivers: design, performance, and application to impulse radio[J]. IEEE Transactions on Communications, 2010,58(6):1695-1704.
[4] 黃叢,孟升衛,付平.基于SDRAM的海量FIFO設計[J].儀器儀表學報,2009,30(6):349-352.
[5] Micron Technology Inc. Micron synchronous DRAM 512 MB rev.D[Z]. 2000.
[6] Cypress Semiconductor Corporation. CY7C68013 EZ-USB FX2 USB microcontroller high-speed USB peripheral controller[Z]. 2002.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 欧美老熟| 亚洲一区二区三区在线观看蜜桃 | 亚洲成人福利在线观看 | 亚洲国产成人久久综合区 | 免费国产人做人视频在线观看 | 羞羞视频免费网站 | 日韩在线a视频免费播放 | 国产一线大片免费观看 | 日本欧美人xxxxx在线观看 | 国产欧美在线观看视频 | 成人免费在线播放 | 成年女人毛片免费观看不卡 | 色黄大片女爽一次 | 黄在线免费 | 波多野结衣福利 | 天堂在线www网亚洲 天堂网在线网站成人午夜网站 | 成人精品视频在线观看 | 1024你懂的国产在线播放 | 国产一区二区三区欧美精品 | 成人看片黄a免费 | 一级在线 | 欧洲 | 国产日产亚洲系列首页 | 伊人在综合 | 在线免费观看黄视频 | 一级黄色大片 | 欧美精品在线免费 | 亚洲男女视频 | 成人高清在线观看 | 免费一级毛片在线播放视频 | 国产一级大片免费看 | 日韩一区二区三区精品 | 国产精品不卡在线观看 | 亚洲精品国产综合一线久久 | 一区二区三区免费在线观看 | 天天综合射 | 美女视频网站黄 | 乱肉大合集小说 | 免费的一极毛片在线播放 | 91亚洲免费视频 | 欧美成人禁片在线www | 午夜免费 |