我正在使用VHDL进行图像处理项目。它是使用另一个关键图像对一个图像进行加密处理。
我为图片创建了一个TYPE
type image is array (1 to 256,1 to 256) of std_logic_vector(7 downto 0);
我使用文件读取选项来读取图像。我必须在原始图像和关键图像之间进行exor操作,并且必须进行一些像素加扰。
最初我将图像声明为信号。即使我得到正确的输出,运行该程序使我的系统挂起。所以我将所有图像转换为变量并顺利获得输出而没有任何悬挂问题。
但问题在于综合。现在代码没有得到合成。我删除了文件的读写部分。我运行了一整天的综合。但我仍然没有得到结果。为什么它采取这么多时间以及如何解决这个问题??
答案 0 :(得分:2)
进行图像处理时,需要逐行进行处理。您不能一次存储整个图像,除非您使用的是片外存储器(如DDR存储器)或您仔细使用内部Block RAM存储器。处理图像时,一次读出一行,将其缓冲到FIFO中,然后执行您需要执行的任何操作,并将结果写回DDR存储器或Block RAM。
尝试将整个图像保留在分布式RAM中是一个不错的想法。