如果你对这个话题知之甚少,那么很难正确地提出问题。
首先,目标:我想使用
FPGA技术来执行实时图像处理。
到目前为止,我使用CPLD来驱动图像传感器,现在我希望转向将采用图像处理它们的FPGA。
我想全面了解在学习过程中我将面临哪些问题,以及我应该记住哪些要点,以免在此过程中遇到麻烦。
到目前为止,我提出了一些问题,但请包括我错过的其他重点。
我希望通过理由/解释得到更长的答案,因为这样的一般性问题可能对许多
论坛用户有用。
1.软件:ISE WEBPack是否足以设计一个中等复杂度的图像处理器(中等复杂度听起来很模糊,所以请根据您的经验评估它,我评价为边缘检测,圆检测),或者我需要与Vivado一起使用?
有什么权衡/限制?
图像处理脚本首先不是用VHDL编写的,那么是否有工具可以使脚本进行VHDL转换?
是否有预先编写的图像处理实体,可以像
matlab中使用的服务函数一样使用(例如mean.vhdl,st_devia
tion.vhdl)?
2. FPGA:我意识到可以尝试拟合,直到找到适合架构设计的足够大的芯片。
但是,哪些FPGA系列最适合图像处理?
同样,对于“中等复杂性”图像处理,该系列中的起始器件尺寸是多少?
我应该在尺寸,内部块,其他参数方面寻找什么特征?
我应该如何评估内部RAM,DSP片和其他未知的内部块,这对于图像处理至关重要?
3.配置内存:截至目前,我决定使用Xilinx配置内存,但一些第三方供应商也提供FPGA配置内存。
有哪些权衡,哪种更适合哪些意见?
4.外部存储器:我已经了解到DRAM与接口和访问数据相比更复杂,而不是SRAM。
然而,当需要高容量存储器时,DRAM更快并且获胜。
假如我在1024x1024 12位灰度图像上执行处理,那么内存的选择是什么(中间操作中使用的内存保留大小,类型:DRAM,SRAM,其他类型,其他建议)?
5.编程电缆:我目前使用HS2 Digilent编程电缆编程CoolRunner。
我知道它可以编程大多数Xlilnx设备,所以我想知道我应该远离哪些设备(配置内存,fpga),除非我想获得Xlinx编程电缆。
6.
开发板:到目前为止,我还没有计划使用开发板。
很明显,我可以更快地启动原型设计,因为一切都已准备好插入,但是,我认为我不打算使用的其他外围设备只会增加主板的价格。
我估计用几乎任何平均尺寸的FPGA和它的外围设备制作我自己的
电路板将花费我大约500-600美元,而不是花费数千美元的开发板。
有谁可以争论,并建议一个好的开发。
董事会价格合理吗?
再说一次,我不知道什么是“合理的”价格,所以请根据您的经验给它评分,比较的例子会很棒。
7.我的项目更具体:首先,我计划使用ISEWebPack和带有XCF04S配置的Spartan6XC6SLX9 FPGA。
记忆。
这种FPGA的选择基于这样一个事实,即这是家族中最大的器件,我可以将自己焊接在
PCB上,尽管它是按尺寸分类的系列中最小的器件之一。
那么,正如在问题2中那样,你认为它是否足够大(在内部门,块,单元等方面)来执行前面提到的“中等复杂度”图像处理?
或者我应该考虑更大的最小容量设备?
关于我应该从什么开始的任何其他建议?
以上来自于谷歌翻译
以下为原文
It's difficult to ask a question properly, if you do not know much about the topic. First, the target: I want to use FPGA technology to perform realtime image processing. So far, I worked with CPLD to drive image sensor, and now I wish to move to FPGAs that will take upon the images to process them. I would like to get a big picture of what issues I will be facing during the learning process and which major points should I keep in mind not get into a trouble later in the process. I came up with a few questions thus far, but please include other important points that I missed. I would appreciate longer answer with justifications/explanations, since such general questions could be usefull for many forum users.
1.
Software: Is ISE WEBPack suffisient enough to design a medium complexity image processor (medium complexity sounds vague, so please, rate it based on your experience, I rate it as edge detection, circle detection), or I need to go with Vivado? What are the tradeoffs/limitations? The image processing script would be first written not in VHDL, so are there tools to faciliate script to VHDL conversion? Are there prewritten entities for image processing that could be used just like service functions are used in MatLab (such as mean.vhdl, st_deviation.vhdl)?
2.
FPGA: I realize that fitting could be tried untill you find a sufficiently big chip to fit the architecture design. However, which FPGA families are best for image processing? Again, for the "medium comlexity" image processing, what are the starting device sizes within the family? What characteristics I should look for in terms of size, internal blocks, other parameters? How should I evaluate internal RAM, DSP slices, and other unknown to me internal blocks that are essential for image processing?
3.
Config Memory: As of right now, I decided to go with Xilinx config memory, though some third party vendors also offer FPGA configuration memory. What are the tradeoffs, which would be more suitable in which consitions?
4.
External Memory: I've learned that DRAM is more complicated to interface and access the data, as opposed to SRAM. However, DRAM is faster and wins when high capacity memory is needed. Say if I was performing processing on 1024x1024 12bit grayscale images, what would be the parctial choice of memory (size with reserve for memory used in intermediate operations, types: DRAM, SRAM, other types, other suggestions)?
5.
Programming Cables: I currently use HS2 Digilent programming cable to program CoolRunner. I know it can program most of Xlilnx devices, so I wish to know which devices (config. memory, fpga) I should stay away from, unless I want to get a Xlinx programming cable.
6.
Development boards: So far, I am not planning on using a developnment board. It is obvious that I would have a faster start up on prototyping since everything is ready to be plugged, however, I thought that the additional peripherals that I do not plan on using would just increase the price of the board. I estimated that making my own board with almost any average size FPGA and its peripherals would cost me about $500-$600, as opposed to development boards that cost thousands of dollars. Could anyone argue on that and suggest a good dev. board with reasonable price? Again, I do not know what's "reasonable" price, so please rate it based on your experience, examples for camparison would be great.
7.
More specific to my project: To start with, I plan on using ISEWebPack and Spartan6 XC6SLX9 FPGA with XCF04S config. memory. The choice of this FPGA is based on the fact that this is the biggest device in the family that I can solder myself on the PCB, although it is one of the smallest in the family by size. So, as in question 2, do you think it would be enough size (in terms of internal gates, blocks, cells, etc.) to performe earlier mentioned "medium complexity" image processing? Or should I be thinking about larger minimum capacity device? Any other suggestions on what should I start with?