介紹
UART 是一種舊的串行通信機(jī)制,但仍在很多平臺中使用。它在 HDL 語言中的實(shí)現(xiàn)并不棘手,可以被視為本科生的作業(yè)。在這里,我將通過這個例子來展示在 HLS 中實(shí)現(xiàn)它是多么容易和有趣。
因此,從概念上講,這是一個微不足道的項目;然而,它對于對 HLS 感興趣的人來說是有啟發(fā)性的。
現(xiàn)在項目定義: 下圖顯示了項目的簡單結(jié)構(gòu)。
我們在 FPGA 中的設(shè)計UART發(fā)送,每當(dāng)按下按鈕時就會將其發(fā)送到計算機(jī)上的串口調(diào)試助手。
FPGA 板上的八個滑動開關(guān)用于輸入數(shù)據(jù)字節(jié)(例如字母或符號的 ASCII 代碼)。此外,UP 按鈕用作發(fā)送控制鍵。
設(shè)計很簡單,程序本身能接受開發(fā)板上撥碼開關(guān)的數(shù)據(jù),然后添加一個“0”起始位和一個“1”停止位,最后以9600 bit/s的波特率發(fā)送出去。
首先需要根據(jù)開發(fā)板上的時鐘(本例是100MHz),進(jìn)行分頻,生成串口發(fā)送所需的時鐘。
booldelay(longlongintn){ staticbooldummy=0; for(longlongintj=0;j
生成速率時鐘后,簡單的狀態(tài)機(jī)可以將數(shù)據(jù)發(fā)送出去。
voiduart_data_transfer(bool&uart_tx,ap_uint<8>data,boolbaud_rate_clock,boolstart){ staticboolsend_bit=1; staticboolstart_state=0; staticbooltransfer=0; staticunsignedintcount=0; staticintstate=0; ap_uint<10>d=((bool)0b1,(ap_int<8>)data,(bool)0b0); if(start==1&&start_state==0){ transfer=1; start_state=1; count=0; } if(start==0&&start_state==1){ start_state=0; } if(baud_rate_clock==1&&state==0&&transfer==1){ send_bit=d[count++]; if(count==10){ transfer=0; } state=1; } if(baud_rate_clock==0&&state==1){ state=0; } uart_tx=send_bit; }
將這些代碼綜合到 RTL 模塊后,我們可以創(chuàng)建 Vivado 項目并生成 FPGA 比特流,并驗證。
總結(jié)
很簡單的一個實(shí)例,大家可以自行和HDL實(shí)現(xiàn)的方式進(jìn)行對比。
審核編輯:劉清
-
FPGA
+關(guān)注
關(guān)注
1630文章
21796瀏覽量
605996 -
uart
+關(guān)注
關(guān)注
22文章
1243瀏覽量
101768 -
HDL語言
+關(guān)注
關(guān)注
0文章
47瀏覽量
8956 -
HLS
+關(guān)注
關(guān)注
1文章
130瀏覽量
24208 -
串口調(diào)試助手
+關(guān)注
關(guān)注
3文章
29瀏覽量
6831
原文標(biāo)題:用 HLS 實(shí)現(xiàn) UART
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
探索Vivado HLS設(shè)計流,Vivado HLS高層次綜合設(shè)計
如何用HLS實(shí)現(xiàn)UART
![如<b class='flag-5'>何用</b><b class='flag-5'>HLS</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>UART</b>](https://file1.elecfans.com/web2/M00/B1/28/wKgZomVau0uAf9SSAAATdzWjCTE134.png)
新手求助,HLS實(shí)現(xiàn)opencv算法加速的IP在vivado的使用
如何用c語言去實(shí)現(xiàn)秒表的計數(shù)功能呢
Vivado HLS設(shè)計流的相關(guān)資料分享
如何去實(shí)現(xiàn)Stm32 Uart用DMA的方式接收數(shù)據(jù)呢
IO模擬UART實(shí)現(xiàn)
TI配置Hercules ARM安全MCU SCI和LIN 模塊如何用于UART通信
使用HLS封裝的縮放IP來實(shí)現(xiàn)視頻圖像縮放功能
FPGA——HLS簡介
HLS協(xié)議實(shí)現(xiàn)
調(diào)用HLS的FFT庫實(shí)現(xiàn)N點(diǎn)FFT(hls:fft)
![調(diào)用<b class='flag-5'>HLS</b>的FFT庫<b class='flag-5'>實(shí)現(xiàn)</b>N點(diǎn)FFT(<b class='flag-5'>hls</b>:fft)](https://file1.elecfans.com/web2/M00/8C/2E/wKgaomSnZeOAETzoAAAJPCX23Ig879.png)
調(diào)用HLS的FFT庫實(shí)現(xiàn)N點(diǎn)FFT
![調(diào)用<b class='flag-5'>HLS</b>的FFT庫<b class='flag-5'>實(shí)現(xiàn)</b>N點(diǎn)FFT](https://file1.elecfans.com/web2/M00/8C/70/wKgZomSsuW2ARqJjAAAJPCX23Ig517.png)
評論