|
例說FPGA連載67:AV視頻采集之移位寄存器概述 特權同學,版權所有
在很多涉及迭代運算的應用中,常常需要用到移位寄存器來幫助完成功能的實現。而使用FPGA既有的邏輯資源來實現寄存器雖然也很簡單,若是位寬和深度不大時倒也是個不錯的解決方案,但對于大深度大位寬的應用可就無法應付了。因此,我們更多的會用到FPGA片內的存儲器資源來實現移位寄存器的功能。 使用片內存儲器實現移位寄存器的接口如圖12.11所示,其可配置的參數有:一個位寬為w的移位輸入數據和相同位寬的移位輸出數據,一個輸入時鐘信號(圖中未示意)作為數據移入或者移出的同步信號,可選的時鐘使能輸入信號和異步清除輸入信號(圖中未示意)。還有一個寄存器深度taps,它可以是一組信號,也可以是好多個小信號。
圖12.11 FIFO內部結構示意圖 這個移位寄存器的使用其實很簡單。配置輸入輸出的數據位寬w,移位寄存器的一個taps位寬m,總的taps數量n(相當于數據深度)。這三個參數乘積就是占用的移位寄存器的存儲大小。每個時鐘周期輸入一個移位數據shift_in_data,同時輸出一個數據shift_out_data,而存儲器內部則是每個clk周期移位一次,每個tap的輸出直接移位到下一個tap的輸入。每個tap的最后一個w位寬的數據都能出現在對外接口中供使用。 |