基于FPGA器件的Sobel算法實現(xiàn)
2.2系統(tǒng)實體設計本文引用地址:http://www.ex-cimer.com/article/192125.htm
依據(jù)上述設計思路,可以設計出如圖4所示的邊緣檢測模塊的頂層實體。其中START為來自外界的檢測啟動信號輸入,用于啟動邊緣檢測;CLK為時鐘信號輸入,是狀態(tài)機的驅(qū)動時鐘;數(shù)據(jù)輸入端口P0~P7分別接收像素窗中相應像素的8位灰度值;POUT為檢測結(jié)果灰度輸出,輸出0表示非邊緣像素,輸出255表示邊緣像素;DIR為方向輸出;FINISH為檢測結(jié)束信號輸出,用于配合其它模塊協(xié)同工作。
2.3系統(tǒng)行為描述
由于設計采用行為建模,因此,系統(tǒng)描述不涉及任何硬件器件以及連接相關,只需在結(jié)構(gòu)體中設置兩個進程來描述狀態(tài)機,并定義相關變量和函數(shù)就可以完成對此系統(tǒng)的描述。
為描述系統(tǒng)行為,首先應定義如下信號:
其中,信號ST表示狀態(tài)機狀態(tài);HF、VF、LF、RF分別用于存儲四個方向濾波值;MAG存儲依據(jù)四個濾波值得出的梯度幅度值。
進程CHANGESTATE可完整描述狀態(tài)圖中各狀態(tài)間的轉(zhuǎn)移關系。此進程由敏感信號CLK進行驅(qū)動,并在時鐘上升沿到來時,可通過判斷當前狀態(tài)以及相關轉(zhuǎn)移條件來確定狀態(tài)機的次狀態(tài)。其完整的代碼如下:
進程STATEBEHAVIOR主要負責處理狀態(tài)機特定狀態(tài)下的行為輸出。此進程由狀態(tài)信號ST作為敏感信號進行驅(qū)動。在空閑態(tài)(ST=IDEL)時,系統(tǒng)初始化相應輸出;而在濾波態(tài)(ST=FILTER)時,系統(tǒng)則調(diào)用四個函數(shù)H_FILTER ()、V_FILTER()、L_FILTER()和R_FILTER()并依照Soble算法進行濾波計算;決斷態(tài)(ST=JUDGE)時,則調(diào)用函數(shù)MAGNITUDE ()和PHASE ()來計算梯度的大小和方向,并通過決斷后輸出處理結(jié)果,同時使檢測結(jié)束信號有效(FINISH='1')。其完整代碼如下:
評論