使用VHDL合成图像处理需要花费大量时间

时间:2013-10-03 13:14:16

标签: image image-processing vhdl synthesis

我正在使用VHDL进行图像处理项目。它是使用另一个关键图像对一个图像进行加密处理。

我为图片创建了一个TYPE

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

我使用文件读取选项来读取图像。我必须在原始图像和关键图像之间进行exor操作,并且必须进行一些像素加扰。

最初我将图像声明为信号。即使我得到正确的输出,运行该程序使我的系统挂起。所以我将所有图像转换为变量并顺利获得输出而没有任何悬挂问题。

但问题在于综合。现在代码没有得到合成。我删除了文件的读写部分。我运行了一整天的综合。但我仍然没有得到结果。为什么它采取这么多时间以及如何解决这个问题??

1 个答案:

答案 0 :(得分:2)

你正试图合成这头野兽吗?您正在尝试生成256x256x8位= 524k位的图像。这意味着只存储一个图像,您正在使用524k寄存器。对于很多FPGA而言,这比现有的更多!您需要考虑芯片上资源的利用率。

进行图像处理时,需要逐行进行处理。您不能一次存储整个图像,除非您使用的是片外存储器(如DDR存储器)或您仔细使用内部Block RAM存储器。处理图像时,一次读出一行,将其缓冲到FIFO中,然后执行您需要执行的任何操作,并将结果写回DDR存储器或Block RAM。

尝试将整个图像保留在分布式RAM中是一个不错的想法。