• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 手機與無線通信 > 設計應用 > Virtex-5FPGA設計Gbps無線通信基站

    Virtex-5FPGA設計Gbps無線通信基站

    作者: 時間:2009-04-02 來源:網絡 收藏

    1、引言

    本文引用地址:http://www.czjhyjcfj.com/article/158127.htm

      隨著集成電路(IC)技術進入深亞微米時代,片上系統SoC(System-on-a-Chip)以其顯著的優勢成為當代IC的熱點。基于軟硬件協同及IP復用技術的片上系統具有功能強大、高集成度和低功耗等優點,可顯著降低系統體積和成本,縮短產品上市的時間。IP核是SoC的一個重要組成部分,已成為目前微電子設計的熱點和主要方向[1]。

      UART 核以其可靠性、傳送距離遠的特點被廣泛應該到通信系統和上。利用傳統的EDA工具通過對RTL代碼仿真、驗證、綜合、布局布線后生成網表,下載到中實現,這樣做成的核主要用于驗證的[2],不適合用來做掩膜。在ASIC/SoC技術日漸成熟的今天,設計商更希望得到能夠做掩膜的IP核,從而便于嵌入到ASIC/SoC設計中。本文描述的UART核采用SYNOPSYS軟件的設計流程,在RTL級上進行優化,解決了綜合優化中碰到的一些常見問題。利用VCS 仿真、編寫測試激勵來驗證,最后用design compile 綜合優化做成的IP核可以滿足此要求,應用到ASIC/SoC設計中將產生巨大的效益。

      2、UART核的功能分析和設計

      2.1 UART 核的傳輸與總體模塊設計

      通常信息是通過數據幀來傳送的,由起始位、8位數據位、停止位組成。起始位為低電平,表示串行數據開始傳輸,停止位為高電平,表示數據傳送結束。

      UART的結構框圖如圖1所示[3],主要有由波特率發生器、發送部分和接收部分等組成。本設計采用全雙工異步通信的方式,通過層次結構化、劃分模塊的方法來實現。

    UART 的結構框圖

    圖1 UART 的結構框圖

      2.2 UART 核的功能設計

      2.2.1 波特率發生器

      波特率是用來實現數據接收和發送的異步,波特率實際上就是分頻器。UART的數據接收和發送是通過對波特率的設置進行實現的,本文采用16分頻[3]。

      2.2.2 接收器模塊設計

      接收器模塊將8 位串行數據并行發出,用loadbuf 信號來裝載八位串行數據。接收8位串行數據之前先要判斷起始位;當起始位到來后經過5個clk16x采樣,使采樣點接近中央位置,這樣數據穩定。然后每過16個時鐘clk16x后,將8位串行數據逐位接收進來。當數據接收完畢,檢查是否到達停止位,若是則表示接收成功,否則出現幀錯誤(framing_err), 并重新檢測等待。當數據接收完畢后,等待數據的并行發出,當中斷信號(rask)有效時發送數據。

      接收數據停止位的判斷采用9位移位寄存器(shift_reg)來實現。開始時將shift_reg全部置1,當16個clk16x到來時候,將串行數據從低位到高位逐位地移入到shift_reg的低位到高位。每接收一位數據后,判斷是否接收完,由于起始位是最先進入shift_reg的,所以當數據全部接收完后。起始位已經進入了shift_reg的最后一位,表示數據接收完,如果在接收到停止位的邏輯是0,則表示產生幀錯誤(framing_err),等待再次檢測直到停止位為1,表示接收完畢。采用狀態機來實現數據起始位、停止位的判斷和串行數據的接收[4]。

      圖2給出了接收模塊的仿真波形。由波形可以看出,當輸入0F0H,并行輸出正確,其中state、reset、clk1x、flag、dout和rbuffer分別是狀態機、復位信號、使異步的時鐘同步、數據發送出去的標志、并行數據輸出和數據緩沖器,而ask、rask和flag是中斷發送控制,其中rask是控制數據發送。

    linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 浮山县| 新建县| 百色市| 什邡市| 读书| 荣成市| 朔州市| 东明县| 永平县| 曲松县| 化州市| 寻甸| 金平| 溧水县| 德格县| 牟定县| 江达县| 美姑县| 大方县| 长海县| 剑川县| 江川县| 河东区| 临泉县| 且末县| 孝义市| 江门市| 福鼎市| 贺兰县| 大兴区| 大邑县| 福贡县| 罗田县| 元阳县| 绥江县| 万山特区| 丘北县| 阜新市| 林州市| 前郭尔| 临汾市|