正式踏入FPGA学习。

在此之前一直在硬件工程师,光学工程师,软件应用工程师,视觉工程师之间兜兜转转,一直不知道自己最后到底想做一个什么样的东西,也没有确定自己选择哪一个平台好像没有特别适合和特别喜欢的,在这个软件技术迭代这么快的时代里,反正学习都赶不上技术更新的速度,所以干脆从底层硬件做起吧。考虑到相机是我以后无论如何都要去做的一个模块而fpga又是十分适合做数字图像处理,所以就从cmos和fpga做起来吧。第一阶段打结实显示驱动和cmos驱动。

fpga优缺点分析:

fpga在很多人看来,是一个异类。说它是硬件,却需要编写RTL代码、综合和下载;说它是软件,还需要专门的fpga芯片,综合出来的也是门电路,还会涉及到时序、信号完整性的问题。但是,不管怎么说,fpga在很多领域扮演非常重要的角色。图像处理就是很重要的一个环节。这个时候,有些同学可能就会有疑问,fpga的时钟频率没有比cpu高,为什么可以做到高效率又省电呢?我想可能有这么几个原因。

1、数据并发处理

    大家都知道cpu是一个数据、一个数据处理的。但是对于fpga来说, 它可以一个时钟内,并发处理多个数据,而且这个数据同时可以做很多个运算,比如乘加、比较等等,只要没有clock vilation,这一点相信很多朋友都知道。

 

2、流水线技术

    fpga里面处理数据,很多时候需要很多算法一起参与运行,这个时候就需要用到流水线机制。fpga里面的数据都是按行计算的。所以,每一个像素在输出前,可能经历好几个算法,比如灰化、算子、二值化、膨胀、腐蚀等多个运算。这个时候,流水线技术就派上了用场。前一行数据处理算子的时候,后一行数据可以处理灰化,整个过程是并行的,彼此之间没有打扰。

 

3、边接收边处理

   这一点是最容易被忽略的。传统的软件操作都是数据都准备好了,才能开始处理。而fpga,可以一边从sensor接收数据,一边处理,这部分其实效率非常高。利用数据传输的空隙就可以处理数据,这部分节省的时间非常多,外部传输数据是很浪费时间的。

 

4、fpga和cpu流水线作业

    cpu和fpga擅长的领域不同,fpga擅长简单重复的算法,cpu擅长复杂的算法。因此一幅图片,可以让fpga处理上半部分,cpu处理下半部分,这样也是一个小的流水线,增加图片的处理速度,节约时间。

 

5、缓存

    fpga里面有一些缓存空间,比如可以保存若干行图像数据,这个可以在处理一些算子的时候使用,也可以帮助提高效率。

 

    上面说的都是fpga的优点,其实fpga也有一些缺点的,

 

1、学习成本高(在我看来是优势,毕竟门槛高肯学的人才会相对较少)

    fpga需要了解数字电路、vivado或者quartus软件很多知识,软件工作者无法享受到fpga带来的好处,这一点影响了fpga的推广。虽然现在学hls的人很多,但是很多人并不会使用。

 

2、价格

    相比较stm32或者其他arm soc,fpga的价格还是略高些,特别是xilinx里面的mpsoc系列,那个价格基本是arm的好几倍。

 

3、难度

    和软件不同,只要有一点c语言基础就可以做,但要做好fpga需要坐很长时间冷板凳的。不管是test bench、system verilog,或者在线的chip scope调试,这些都不是短时间能够解决的。

 

4、市场供给人少

    一个不争的事实时,相比较大量的java工程师,c、c++工程师要少很多。相比较c工程师、嵌入式工程师,fpga的工程师就更少了。要从不多的fpga工程师里面,找到优秀的、合格的候选者,更是难上加难了。

 

    当然,对于特定的算法加速场景,用fpga还是比较适合的。不需要很高的速率,只要选择好了策略,用好传输时间、并发机制和流水线方法,fpga常常会达到很不错的使用效果。有兴趣的同学可以试一试。

 

FPGA开发环境:

1. VisualSVN Server

Visualsvnserver允许您轻松地在Windows平台上安装和管理功能齐全的Subversion服务器。由于它的健

壮性、无与伦比的可用性和独特的企业级特

性VisualSVNServer对小企业和企业用户都很有用。

VisualSVNServer集成了Subversion和Apache简化了手工配置Subversion的繁琐步骤。VisualSVN

Server是免费的,而VisualSVN是收费的。VisualSVN是SVN的客户端和VisualStudio集成在一起

VisualSvnServer是SVN的服务器端,包括 Subversion Apache和用户及权限管理。

 

2.modelsim HDL语言仿真软件

Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一

的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码目录台无关,便于保护IP核,个性化的图形界面和

TA接口,为用户加快调错提供强有力的手段,是 FPGA/ASIC设计的首选仿真软件。

 

3.QuartusI

QuartusII是Altera公司推出的综合性

CPLD/FPGA开发软件,软件支持原理图、

VHDL、VerilogHDL以及AHDL(AlteraHardware

支持Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设

计输入到硬件配置的完整PLD设计流程

 

4.TortoiseSVN

TortoiseSVN是Subversion版本控制系统的一个

免费开源客户端,可以超越时间的管理文件和目

录。文件保存在中央版本库,除了能记住文件和目

录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修目录这就是为什么许多人将Subversion和版本控告 TA统看作一种“时间机器”。

 

开发板选择:

黑金XILINX FPGA开发板AX309学习板SPARTAN6 XC6SLX9学生板

裸板➕烧录器➕an9767

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值