一、 流水線設(shè)計

  將原本一個時鐘周期完成的較大的組合邏輯通過合理的切割后分由多個時鐘周期完成。該部分邏輯運行的時鐘頻率會有明顯對的提升,提高系統(tǒng)的性能用面積換速度

  一個流水線設(shè)計需要4個步驟完成一個數(shù)據(jù)的處理過程,那么從有數(shù)據(jù)輸入的第一個時鐘周期開始,直到第4個時鐘周期處理完第一個數(shù)據(jù),但在以后的每一個時鐘周期都會有處理完成的數(shù)據(jù)輸出,流水線設(shè)計在開始處理時需要一定的處理時間,但以后就會不斷的輸出數(shù)據(jù),從而大大提高處理速度。(面積換速度)如果不采用流水線設(shè)計,那么處理一個數(shù)據(jù)就需要4個時鐘周期,而采用流水線設(shè)計則能夠提高將近4倍的處理速度,用一個復雜的算術(shù)式子舉例,這是官方給的RGB888 to YCbCr的算法公式,我們可以直接把算法移植到FPGA上,但是我們都知道FPGA無法進行浮點運算,所以我們采取將整個式子右端先都擴大256倍,然后再右移8位,這樣就得到了FPGA擅長的乘法運算和加法運算了。

photoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設(shè)計培訓,網(wǎng)站建設(shè)培訓 

  這個計算式子看起來是十分簡單的,但是要是直接用Verilog直接寫出來,那么只能說,這個人的代碼寫的一塌糊涂,所以這里就引出FPGA中流水線的設(shè)計思想。在這里我們選擇加3級流水線,就第一個Y分量而言,先計算括號中得乘法運算,消耗一個時鐘,然后將括號中的數(shù)據(jù)求和,消耗一個時鐘,這里為了計算方便,將128也擴大256倍,放到括號中,最終結(jié)果除以256就行了也就是右移8位,在FPGA中我們只需要舍棄低8位取高8位就行。具體代碼如下

photoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設(shè)計培訓,網(wǎng)站建設(shè)培訓 流水線

photoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設(shè)計培訓,網(wǎng)站建設(shè)培訓

  RGB轉(zhuǎn)YCbCr算法的仿真過程,從圖中可以看出,加了流水線后的運算過程,每一級運算相差一個時鐘,然而每一級都在進行新的運算,我們加了3級流水線,這樣運算速度可以提升3倍。

二、  跨時鐘域處理

有三種方法

  1. 打兩拍

  2. 異步雙口RAM

  3. 格雷碼轉(zhuǎn)換

1. 打兩拍方法

  在進行uart串口通信的學習的過程中,遇到一個不理解的問題,在接收模塊中,小梅哥采取的設(shè)計方式是接收進行一步同步化處理,那么為什么要進行同步化處理呢?串口通信的設(shè)計,接收的波特率一般是發(fā)送波特率的16倍,單bit傳輸,我的理解是,在發(fā)

網(wǎng)友評論