新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的基帶64×64數(shù)據(jù)分配矩陣設(shè)計(jì)方案

基于FPGA的基帶64×64數(shù)據(jù)分配矩陣設(shè)計(jì)方案

作者: 時(shí)間:2013-11-05 來源:網(wǎng)絡(luò) 收藏
-adjust: auto; -webkit-text-stroke-width: 0px">  其數(shù)據(jù)幀主要包括1位起始位,8位數(shù)據(jù)位,1位奇偶校驗(yàn)位,1/2位停止位。

  3.2 內(nèi)部編程

  模塊的主要功能是實(shí)現(xiàn)串口收發(fā)和譯碼,相應(yīng)地在用Verilog HDL實(shí)現(xiàn)時(shí)也分為串口收發(fā)和譯碼2個(gè)電路模塊,經(jīng)綜合后其RTL級視圖如圖3所示。開發(fā)工具采用Altera公司推出的集成EDA 開發(fā)工具Quartus Ⅱ,可以完成Altera公司所有的 /CPLD產(chǎn)品開發(fā)的設(shè)計(jì)輸入、綜合、實(shí)現(xiàn)等環(huán)節(jié)。

  整體RTL級視圖

  3.2.1 串口收發(fā)模塊設(shè)計(jì)

  串口收發(fā)模塊就是圖3中的uart_top模塊,主要負(fù)責(zé)串行數(shù)據(jù)的接收與發(fā)送,并將接收到的數(shù)據(jù)送入下一級。

  該模塊的功能已通過串口調(diào)試工具調(diào)試成功。該模塊由4個(gè)子模塊構(gòu)成,分別為控制接收波特率的speed_rx模塊、控制發(fā)送波特率的speed_tx 模塊、數(shù)據(jù)接收模塊my_uart_rx、數(shù)據(jù)發(fā)送模塊my_uart_tx.

  接收、發(fā)送波特率的控制可以引用同一模塊的發(fā)送來實(shí)現(xiàn)。其模塊化框圖如圖4所示,當(dāng)檢測到輸入信號 bps_start出現(xiàn)一個(gè)上升沿后,則該模塊通過計(jì)數(shù)來實(shí)現(xiàn)分頻,例如時(shí)鐘頻率為25 MHz,波特率為9 600,則計(jì)數(shù)周期的25 000 000/9 600≈2 604,該模塊部分代碼如下:

  波特率產(chǎn)生模塊

  數(shù)據(jù)接收模塊的模塊化框圖如圖5所示,它是通過移位運(yùn)算來接收串行數(shù)據(jù),如檢測到rs232_rx 由高電平變?yōu)榈碗娖絼t開始移位接收數(shù)據(jù),每次接收3 B 的數(shù)據(jù),將第二、第三個(gè)字節(jié)輸入下一級,若檢測到第一個(gè)字節(jié)為10101010(即16進(jìn)制的AA),標(biāo)志信號flag就將維持一個(gè)周期的高電平輸出,否則flag一直維持高電平,那么后級將無法鎖存第二、第三字節(jié)。部分代碼如下:

  數(shù)據(jù)接收模塊

  數(shù)據(jù)發(fā)送模塊是用來返回接收數(shù)據(jù)讓上位機(jī)進(jìn)行糾錯(cuò)的,其模塊化框圖如圖6所示。如檢測到flag變?yōu)楦唠娖綍r(shí),鎖存輸入的兩個(gè)字節(jié)返回給上位機(jī),部分代碼如下:

  數(shù)據(jù)發(fā)送模塊

  3.2.2 譯碼模塊設(shè)計(jì)

  譯碼模塊的模塊化框圖如圖7所示,其功能是對上位機(jī)發(fā)送的輸入輸出端口編號進(jìn)行譯碼,使相應(yīng)的輸入端口和輸出端口連通,如檢測到flag 有效的情況下,rx_data_in為2,rx_data_out為3,則該模塊會(huì)將din[2]通道的輸入信號經(jīng)dout[3]輸出通道輸出。部分代碼如下[10]:

  則該模塊會(huì)將din[2]通道的輸入信號經(jīng)dout[3]輸出通道輸出。部分代碼如下[10]:

  3.2.3 譯碼模塊仿真



關(guān)鍵詞: FPGA 數(shù)據(jù)分配 矩陣設(shè)計(jì)

評論


相關(guān)推薦

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

關(guān)閉