fpga入門學習心得筆記

2021-10-01 07:03:54 字數 1019 閱讀 2759

今天開始寫一些關於fpga的學習心得,前面的基本語法已經掌握,總結一些**的實現方法。

關於uart的收發

1.使用兩個計數器

一:計數以產生序列機的基本計數單位

二:每當第乙個基本計數器計數一輪,這個計數器加一。

第乙個計數器是為了控制波特率,可以通過設定引數,實現乙個波特率可變的模組。

第二個計數器每次加一,使用狀態機進行一次資料的收發。

2.在接受端,僅在乙個點進行接受資料,可能會發生資料被衝擊訊號之類產生干擾,因此需要對每一位的資料進行取樣。

根據取樣的次數,產生乙個計數器,cnt_max與將要取樣的次數相關,在每次第二個計數器加一的時候,採集收到的資料值。將所有收到的資料值進行判斷。

分頻器的使用

預設時鐘頻率為50m 週期為20ns

always@ (posedge clk or rst_n)

if(rst_n)

cnt<=0;

else if(cnt==1)

cnt<=0;

else

cnt 預設時鐘週期為20ns,cnt在每個下降沿加1,加2次就是40ns

always@ (posedge clk or rst_n)

if(rst_n)

sclk<=0;

else if(cnt==1)

sclk<=~sclk;

每40ns反轉一次,週期為80ns,頻率為12.5m

如每個下降沿反轉,就是2分頻,兩個下降沿反轉是4分頻,4個下降沿反轉是8分頻。

但是由於分頻時鐘不穩定,所以盡量不要使用

一般寫為:(dac接收為例)

always@(posedge clk)

if()第乙個計數器滿一輪

case(lsm_cnt)

0:begin din<=data[15];sclk<=1;cs<=0;end

1:sclk<=0;

2:begin din<=data[14];sclk<=1;end

3:sclk<=1;

以此類推

FPGA學習心得 01

例 多 少位的什 麼進製數 4 d 8 4位 的十進位制 數8 例 多少位的什麼進製數 rightarrow 4 d8 4位的十進位制數8 例 多少位的 什麼進製 數 4 d8 4 位的十進 制數8 如果將 一撇讀作漢字 的 的的,verilog的數字表示語法符合口頭語言的習慣。verilog作為硬...

FPGA學習心得分享(二)

掌握一門程式語言的最好方法是漸進式刷題 verilog語法原則要注意乙個reg最好只在乙個always塊裡進行賦值操作 if else或case等條件選擇語句需要完備的條件,防止綜合出不必要的latch 關於 default和else的必要性 組合邏輯的case最好要有default,因為如果cas...

Spring入門學習 心得

可以通過如下途徑入門spring 1 看 spring 開發指南 夏昕v0.8預覽版 2 看 輕量級 j2ee 企業應用實戰 struts spring hibernate 整合開發 李剛所著 3 看 spring framework開發參考手冊 4 還可以看看spring 學習的中文論壇 http...