2013-10-03 185 views
0

我正在使用VHDL進行圖像處理中的一個項目。它是使用另一個關鍵圖像對一個圖像進行加密的過程。圖像處理非VHDL綜合需要花費很多時間

我創建了圖像的類型

type image is array (1 to 256,1 to 256) of std_logic_vector(7 downto 0); 

我使用的文件讀取選項來讀取image.i不得不perofrm原始圖像和關鍵圖像之間的EXOR運算,有的爭先恐後像素的有做完了。

最初我將圖像聲明爲信號。即使我獲得了正確的輸出,運行該程序也會讓我的系統掛起。因此,我將所有圖像轉換爲變量並順利獲得輸出,沒有任何懸而未決的問題。

但問題出在綜合。現在的代碼沒有合成。我刪除了文件的讀寫部分。我運行了一整天的綜合。但我仍然沒有得到結果。爲什麼它是需要這麼多時間以及如何解決這個問題?

回答

2

您是否試圖合成這個野獸?您正在嘗試生成256x256x8位= 524k位的圖像。這意味着只需存儲一張使用524k寄存器的圖像。對於很多FPGA而言,這比它們的可用性要多得多!你需要考慮你的芯片資源的利用率。

進行圖像處理時,需要逐行進行處理。除非您正在使用DDR存儲器之類的片外存儲器,或者您小心使用內部Block RAM存儲器,否則無法一次存儲整個映像。處理圖像時,一次讀出一行,將其緩存到FIFO中,然後執行任何需要執行的操作,然後將結果寫回到DDR存儲器或塊RAM。

試圖保留整個圖像在分佈式RAM是一個壞主意。

+0

如果我正在使用信號而不是變量呢?是否會出現同樣的問題? – MSD

+1

變量與信號無關。這些工具仍在嘗試合成512k的分佈式RAM。以下是關於差異的一篇文章:http://stackoverflow.com/questions/15485749/vhdl-variable-vs-signal – Russell

相關問題