FPGA的学习方向
目前我只是在做一些数据采集方面的东西,其实写的很少的,也只有SPI,IIC,245,以及调试sram等,然后就是一些简单的控制逻辑。然后发觉调试FPGA程序比写用的时间还要多的 。
请问大家该如何深入学习FPGA呢?
如果做FPGA算法的话,需要学习matlab和simulink吗?
从Xilinx开始吧。我是觉得资料最全
我也希望高手能指点一二
?/大家不可以说一下吗?
这个主要看你的兴趣和希望从事的行业,在我看一般分两大类:一是逻辑类,就是你现在做的,虽然看似简单,单实现起来变化无穷,技巧很多;另一类是算法类,主要是通信、图像处理等,原理复杂,单实现相对简单。
受益匪浅 谢谢
补充一个方向,FPGA还可以做高速接口,比如Gbit Ethernet, SRIO, CPRI, G-PON, E-PON等等。现在10G/100G这种高速通讯接口都是FPGA的用武之地。需要学习很多SERDES通讯方面的东西,还要看很多不同接口的标准协议。而且还要了解PCB板高速走线电气特性神马之类的。 无论无线还是有线都需要这个。
恩,好的,谢谢啊,我在仔细考虑一下
恩,谢谢你了,这两天我在看10G以太网的东西,呵呵,
FPGA得速度能达到10GB吗?不会吧?
我是用FPGA做视频处理的,经常用到Matlab
肯定达不到的,看看协议,呵呵,就知道这个10G讲的是怎么一回事了,还有比如10B/8B等等
可以的,xilinx现在最新的GTH,就使他们最高端的那种高速串行的serdes已经可以达到28Gbps了,你感兴趣可以去他们官网看下,7系列的FPGA。
10G的带宽如果serdes只能到1.25G或者2.5G,5G之类的,那就只好多用几根了。
算法,比如FFT算法,也是用matlab实现的吗? 我现在有个问题是,是不是很多算法都在matlab中实现,然后移植到FPGA中呢?
不一定是,其实更多的是用C/C++实现的。然后移植到FPGA。
这样的话,是不是用systemC会比较多呢?
我们一般是用Matlab去验证算法的,感觉用Matlab非常适合做图像处理。
OK,谢谢了,呵呵,看来还是要学matlab啊,我原先以为FPGA基本上不需要matlab呢
fpga深入学习的话,有很多资料的阿,多看看。
matlab挺好的
找个项目做,实际的入手,比什么都快
呵呵,一直在做项目呢,但是大部分时间是在调试时序的,比如200M以上的程序,我觉得调试占用了2/3的时间,调试调试着就烦了呢,感觉调试学不到太多的东西呢
呵呵,关键是不知道看啥? 不知道方向怎么走啊?
时序分析是FPGA必备的,经验当然是越丰富越好啊。时序调多了,你要总结,以后的code该怎么写,才能写出一个好的时序。这个就是你的经验积累。其实看一个人写出来的code怎么样,就知道这个人的水平怎么样了,好的Designer的code,你拿到之后,无论综合,P&R,以及阅读,都是非常舒服惬意的。相反,你拿到一个比较ugly的代码,阅读起来不爽也就算了。如果综合布局布线出来一堆的问题,那就是坑爹的。这个人肯定是比较水的。
基本功是必要的,锤炼出一个好的code style,是你以后想在这条路上走得更稳更长远所必备的。与其多花时间学别的东西,我觉得你还不如把已有的东西在细节上磨练得更深一点。
另外,做了这么久FPGA\ASIC,无论通信\图像,我觉得,你如果对自己以后的定位在数字逻辑设计上的话,那么MATLAB也好,C\C++也好,这个你只需要能看懂就可以了,逻辑设计的人不会去写这些算法代码的,不是说你水平不够,而是好的公司里面这个是有分工的,不会让你去做这些的。当然,如果你定位是做算法,那么另当别论。
而且,个人认为,你接触的设计时钟已经到200M左右了,是个很不错的项目体验。做过了相对比较高的时钟设计,你才会的时序有更深刻的体验。这些东西,面试的人都会问你的,你做过的项目,逻辑代码上跑到的最高时钟是多少,不是接口的。一问就清楚你的背景了。
反正你自己掂量掂量吧,逻辑设计是个很细心的工作,是需要扣细节的。细节上积累的越多,对你的成长越有利。
方向的话,如果你定位算法,以后可以走算法这条路,先做实现写代码,有经验了就带项目组,或者进专家组负责算法文档。如果你是想做接口,那你需要了解的就不止FPGA,有机会的话多学习更多的接口协议,了解各个项目的板级互联结构,那最后就去做系统架构,也是专家组级别的。(这个说的是大系统,不是ASIC的系统,ASIC的系统我还不了解)。
个人愚见,希望能帮到你
呵呵,受益匪浅啊,谢谢你了 。
他们好像是几十个个IO口加起来的速度吧 但就一个IO应该没有吧
不是,高端的serdes,一个link,两对差分线。10Gbps的速度,用GTX就可以达到;GTH速度更高可以到28Gbps。当然,这个功耗肯定也很high的。 你百度下就知道了。
强烈顶23楼,项目经验很重要。要积累一定的代码量。
那只是LVDS接口可以达到20G以上吧? 如果到了FPGA内部还是要进行并行操作的啊? 那么还是受限制于FPGA的速度的吧,尤其是FIFO的速度?
受益匪浅
恩,对的。这些高速,说的都是接口,是serdes/transeiver。
