Virtex-5FPGA設計Gbps無(wú)線(xiàn)通信基站
1、引言
本文引用地址:http://dyxdggzs.com/article/158127.htm隨著(zhù)集成電路(IC)技術(shù)進(jìn)入深亞微米時(shí)代,片上系統SoC(System-on-a-Chip)以其顯著(zhù)的優(yōu)勢成為當代IC設計的熱點(diǎn)?;谲浻布f(xié)同設計及IP復用技術(shù)的片上系統具有功能強大、高集成度和低功耗等優(yōu)點(diǎn),可顯著(zhù)降低系統體積和成本,縮短產(chǎn)品上市的時(shí)間。IP核是SoC設計的一個(gè)重要組成部分,已成為目前微電子設計的熱點(diǎn)和主要方向[1]。
UART 核以其可靠性、傳送距離遠的特點(diǎn)被廣泛應該到通信系統和嵌入式微處理器上。利用傳統的EDA工具通過(guò)對RTL代碼仿真、驗證、綜合、布局布線(xiàn)后生成網(wǎng)表,下載到FPGA中實(shí)現,這樣做成的核主要用于驗證的[2],不適合用來(lái)做掩膜。在A(yíng)SIC/SoC技術(shù)日漸成熟的今天,設計商更希望得到能夠做掩膜的IP核,從而便于嵌入到ASIC/SoC設計中。本文描述的UART核采用SYNOPSYS軟件的設計流程,在RTL級上進(jìn)行優(yōu)化,解決了綜合優(yōu)化中碰到的一些常見(jiàn)問(wèn)題。利用VCS 仿真、編寫(xiě)測試激勵來(lái)驗證,最后用design compile 綜合優(yōu)化做成的IP核可以滿(mǎn)足此要求,應用到ASIC/SoC設計中將產(chǎn)生巨大的效益。
2、UART核的功能分析和設計
2.1 UART 核的傳輸協(xié)議與總體模塊設計
通常信息是通過(guò)數據幀來(lái)傳送的,由起始位、8位數據位、停止位組成。起始位為低電平,表示串行數據開(kāi)始傳輸,停止位為高電平,表示數據傳送結束。
UART的結構框圖如圖1所示[3],主要有由波特率發(fā)生器、發(fā)送部分和接收部分等組成。本設計采用全雙工異步通信的方式,通過(guò)層次結構化、劃分模塊的方法來(lái)實(shí)現。
圖1 UART 的結構框圖
2.2 UART 核的功能設計
2.2.1 波特率發(fā)生器
波特率是用來(lái)實(shí)現數據接收和發(fā)送的異步,波特率實(shí)際上就是分頻器。UART的數據接收和發(fā)送是通過(guò)對波特率的設置進(jìn)行實(shí)現的,本文采用16分頻[3]。
2.2.2 接收器模塊設計
接收器模塊將8 位串行數據并行發(fā)出,用loadbuf 信號來(lái)裝載八位串行數據。接收8位串行數據之前先要判斷起始位;當起始位到來(lái)后經(jīng)過(guò)5個(gè)clk16x采樣,使采樣點(diǎn)接近中央位置,這樣數據穩定。然后每過(guò)16個(gè)時(shí)鐘clk16x后,將8位串行數據逐位接收進(jìn)來(lái)。當數據接收完畢,檢查是否到達停止位,若是則表示接收成功,否則出現幀錯誤(framing_err), 并重新檢測等待。當數據接收完畢后,等待數據的并行發(fā)出,當中斷信號(rask)有效時(shí)發(fā)送數據。
接收數據停止位的判斷采用9位移位寄存器(shift_reg)來(lái)實(shí)現。開(kāi)始時(shí)將shift_reg全部置1,當16個(gè)clk16x到來(lái)時(shí)候,將串行數據從低位到高位逐位地移入到shift_reg的低位到高位。每接收一位數據后,判斷是否接收完,由于起始位是最先進(jìn)入shift_reg的,所以當數據全部接收完后。起始位已經(jīng)進(jìn)入了shift_reg的最后一位,表示數據接收完,如果在接收到停止位的邏輯是0,則表示產(chǎn)生幀錯誤(framing_err),等待再次檢測直到停止位為1,表示接收完畢。采用狀態(tài)機來(lái)實(shí)現數據起始位、停止位的判斷和串行數據的接收[4]。
圖2給出了接收模塊的仿真波形。由波形可以看出,當輸入0F0H,并行輸出正確,其中state、reset、clk1x、flag、dout和rbuffer分別是狀態(tài)機、復位信號、使異步的時(shí)鐘同步、數據發(fā)送出去的標志、并行數據輸出和數據緩沖器,而ask、rask和flag是中斷發(fā)送控制,其中rask是控制數據發(fā)送。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論