代码改变世界

ZedBoard学习(3)U盘读写

2012-12-01 08:14 by libing64, 394 阅读, 0 推荐, 收藏, 编辑
摘要:今天在Linux下操作U盘时才发现,以前对Linux的理解太浅了,对ARM Linux的理解有太浅了,因为需要进行数据的存储,最初的想法移植停留在怎么写U盘的驱动,其实Linux里U盘的驱动都已经写好了,那么U盘就更PC上的存储器是一样的,直接进行文件的读写就可以了。写一段简单的读写文件的代码,进行测试,从file1中拷贝内容到file2。#include <stdio.h>int main(int argc, char **argv){ FILE* sourceFile; FILE* destFile; char buf[50]; int numBytes; sourceFile 阅读全文

Zedboard学习(四)硬件协仿真co-simulation

2012-12-01 08:11 by libing64, 471 阅读, 0 推荐, 收藏, 编辑
摘要:之前进行FPGA图像处理,一直在ML605上进行硬件协仿真,拿到ZedBoard之后当然也希望能够继续这么干,进行了很多次的尝试。经过多次尝试在ZedBoard上进行硬件协仿真,多次失败之后,得出一个结论,"xc7z020-1clg484" is not supported for JTAG co-simulation.以下内容是SysGen中进行硬件协仿真时,出错后errorLog中的内容。Java exception occurred:com.xilinx.sysgen.netlist.NetlistInternal: Device "xc7z020-1clg 阅读全文

ZedBoard学习(5)-ZedBoard和System Generator

2012-12-01 08:00 by libing64, 906 阅读, 0 推荐, 收藏, 编辑
摘要:Zynq中包含了一个FPGA内核和两个Cortex-A9内核,尽管功能十分的强大,又非常的时髦,但是本质上讲和之前Xilinx的FPGA 硬核PowerPC没什么区别,无非是PowerPC换成了更加有前景的ARM,因此我很自然的想法是以前在ARM上、在FPGA上做过的东西那个再Zynq上必然也是可以上实现的。 因为之前一直在跟图像处理算法有关的学习,从Matlab到OpenCV、Directshow,从PC到STMF407再到ARM9(Linux),一直都是做跟图像处理有关的,直到开始接触FPGA,才解决了最困扰我的问题--运算速度问题。图像处理需要的高速的运算和大量的资源,刚好FPGA... 阅读全文

基于FPGA的图像处理(六)--Shared Memory

2012-11-30 09:31 by libing64, 827 阅读, 0 推荐, 收藏, 编辑
摘要:在FPGA的设计中,当不同速率的模块之间进行高速的数据传输时,共享存储器是一个很好的解决方案,在一个模块中将数据写入Shared Memory,在另一个模块中将其读出,Shared Memory使用name作为标识,同名的Shared Memory使用的是相同的内存区域。上面的模块将数据写入,下面的模块将数据读出。两个Shared Memory模块分别是名字相同,使用时相同的存储空间,因此能够实现数据共享。上面的Shared Memory模块的配置。下面的Shared Memory模块的配置。Counter模块的配置运行结果:由于两个模块在同一个文件中,因此开始的时间是一致的,所以相位相... 阅读全文

基于FPGA的图像处理(五)--状态机

2012-11-29 22:14 by libing64, 909 阅读, 0 推荐, 收藏, 编辑
摘要:使用FPGA实现各种算法时,状态机是很常用的方法,在SysGen中有两种非常简便的方法构建状态机,一是使用Mcode,以switch-case语句轻松实现,二是使用SysGen自带状态机模块。 状态机假设我们要从01序列中检测出1011序列,则状态机模型如下Next State Matrix:[0 1; 2 1; 0 3; 2 1]Output Matrix :[0 0; 0 0; 0 0; 0 1]一、使用Mcode实现上一篇博客讲解了在Sysgen中Mcode的限制能力,这里直接使用构建模型如下:Singal From Workspace用于产生一个01序列,作为输入信号。gat... 阅读全文

基于FPGA的图像处理(四)--Matlab Language supported by Mcode

2012-11-28 21:49 by libing64, 835 阅读, 0 推荐, 收藏, 编辑
摘要:在进行FPGA图像处理时,如果使用System Generator构建模型,有时有些算法不能实现时可以考虑Mcode来实现,但是其实在SysGen中Mcode是很弱的,因此需要了解它的能力有多大,才能更好的操作。The MCode block supports the following MATLAB language constructs:• Assignment statements• Simple and compound if/else/elseif end statements• switch statements• Arithmetic expressions involvi... 阅读全文

基于FPGA的图像处理(三)--图像融合

2012-11-03 19:22 by libing64, 1987 阅读, 1 推荐, 收藏, 编辑
摘要:System Generator安装之后可以在Simulink中调用相应的模块进行视觉算法的搭建,我两台电脑上分别是ISE12.3+matlab2010a, ISE10.1+Matlab2010a。需要注意的是ISE和Matlab之间是有型号匹配的。 首先要打开FPGA,打开Simulink,新建一个Model。 在Xilinx Blockset中拖取需要的模块,搭建图像处理的算法。本程序是一个图像融合算法,读入两幅图像,相加,截取低8位,输出。 其中System generator模块是每一个model中都必须的,在System Generator可以进行... 阅读全文

基于FPGA的图像处理(二)--System Generator入门

2012-11-03 17:49 by libing64, 1420 阅读, 0 推荐, 收藏, 编辑
摘要:System generator 安装之后会在Simulin模块库中添加一些Xilinx FPGA专用的模块库,包括Basic Element,Communication,Control Logic,DataTypes,DSP,Math,Memory,Shared Momory,Tool等模块库,只有使用这里的模块才能进行FPGA算法的仿真以及进行综合等等。 使用这些模块就可以简单的选一些模块,连一些线就能自动生成你需要的HDL代码,将开发人员从底层枯燥的代码编写中解脱出来,将更多的精力放在算法上,非常完美的体现了工具为人服务的理念。 最新的ISE14.2即Vavido已经能... 阅读全文

基于FPGA的图像处理(一)--System Generator介绍

2012-11-03 17:21 by libing64, 2339 阅读, 0 推荐, 收藏, 编辑
摘要:计算机视觉系统通常需要进行大量的信息处理才能够得到所需要的信息。目前主要有CPU、GPU、ASIC、DSP、FPGA等计算平台。常用的计算机视觉系统通过通用计算机进行视觉信息处理,但是,由于CPU的计算能力有限,对于一些计算复杂度很高的视觉算法,其处理速度常常难以满足系统的实时性需要。GPU具有高度的并行计算能力,可以较好地解决计算速度的问题,然而,基于GPU的计算机视觉系统存在着功耗较高、体积较大的缺点,难以满足依靠自身所带电池供电并长时间工作的服务机器人等应用系统的需要。利用专用集成电路ASIC实现视觉处理算法,可以解决视觉系统性能和体积、功耗之间的矛盾,是高性能嵌入式视觉系统的一... 阅读全文

图像处理基本算法 形状特征

2012-02-24 23:08 by libing64, 3256 阅读, 0 推荐, 收藏, 编辑
摘要:形状特征 (一)特点:各种基于形状特征的检索方法都可以比较有效地利用图像中感兴趣的目标来进行检索,但它们也有一些共同的问题,包括:①目前基于形状的检索方法还缺乏比较完善的数学模型;②如果目标有变形时检索结果往往不太可靠;③许多形状特征仅描述了目标局部的性质,要全面描述目标常对计算时间和存储量有较高的要求;④许多形状特征所反映的目标形状信息与人的直观感觉不完全一致,或者说,特征空间的相似性与人视觉系统感受到的相似性有差别。另外,从 2-D 图像中表现的 3-D 物体实际上只是物体在空间某一平面的投影,从 2-D 图像中反映出来的形状常不是 3-D 物体真实的形状,由于视点的变化,可能会产生各种失 阅读全文