标题:
菜鸟级别零基础学转FPGA
[打印本页]
作者:
yuchengze
时间:
2017-2-22 14:49
标题:
菜鸟级别零基础学转FPGA
结构级、寄存器传输级、门级、物理版图级。使用
HDL
的好处在于我们已经设计好了一个寄存器传输级的电路,那么用
HDL
描述以后转化为文本的形式,剩下 的向更低层次的转换就可以让
EDA
工具去做了,这就大大的降低了工作量。这就是可综合的概念,也就是说在对这一抽象层次上硬件单元进行描述可以被
EDA
工 具理解并转化为底层的门级电路或其他结构的电路。
在
FPGA
设计中,就是在将这以抽象层级的意见描述成
HDL
语言,就可以通过
FPGA
开发软件转化为问题
1
中所述的
FPGA
内部逻辑功能实现形式。
HDL
也可以描述更高的抽象层级如算法级或者是体系结构级,但目前受限于
EDA
软件的发展,
EDA
软件还无法理 解这么高的抽象层次,所以
HDL
描述这样抽象层级是无法被转化为较低的抽象层级的,这也就是所谓的不可综合。所以在阅读或编写
HDL
语言,尤其是可综合的
HDL
,不应该看到的是语 言本身,而是要看到语言背后所对应的硬件电路结构。
如果看到的
HDL
始终是一条条的代码,那么这种人永远摆脱不了菜鸟的宿命。假如哪一天看到的代码不再是 一行行的代码而是一块一块的硬件模块,那么恭喜脱离了菜鸟的级别,进入不那么菜的鸟级别。
3
、
FPGA
本身不算什么, 一切皆在
FPGA
之外这一点恐怕也是很多学
FPGA
的菜鸟最难理解的地方。
FPGA
是给谁用的?很多学校解释为给学微
电子
专业或者集成电路设计专业的学生 用的,其实这不过是很多学校受资金限制,卖不起专业的集成电路设计工具而用
FPGA
工具替代而已。其实
FPGA
是给设计电子系统的工程师使用的。这些工程 师通常是使用已有的芯片搭配在一起完成一个电子设备,如基站、机顶盒、视频监控设备等。当现有芯片无法满足系统的需求时,就需要用
FPGA
来快速的定义一 个能用的芯片。
前面说了,
FPGA
里面无法就是一些“真值表”、触发器、各种连线以及一些硬件资源,电子系统工程师使用
FPGA
进行设计时无非就是考虑如 何将这些以后资源组合起来实现一定的逻辑功能而已,而不必像
IC
设计工程师那样一直要关注到最后芯片是不是能够被制造出来。本质上和利用现有芯片组合成不 同的电子系统没有区别,只是需要关注更底层的资源而已。要想把
FPGA
用起来还是简单的,因为无非就是那些资源,在理解了前面两点再搞个实验板,跑跑实 验,做点简单的东西是可以的。而真正要把
FPGA
用好,那光懂点
FPGA
知识就远远不够了。因为最终要让
FPGA
里面的资源如何组合,实现何种功能才能满 足系统的需要,那就需要懂得更多更广泛的知识。
目前
FPGA
的应用主要是三个方向:第一个方向,也是传统方向主要用于
通信
设备的高速接口电路设计,这一方 向主要是用
FPGA
处理高速接口的协议,并完成高速的数据收发和交换。这类应用通常要求采用具备高速收发接口的
FPGA
,同时要求设计者懂得高速接口电路设计和高速数字电路板级设计,具备
EMC/EMI
设计知识,以及较好的模拟电路基础,需要解决在高速收发过程中 产生的信号完整性问题。
FPGA
最初以及到目前最广的应用就是在通信领域,一方面通信领域需要高速的通信协议处理方式,另一方面通信协议随时在修改,非常 不适合做成专门的芯片。因此能够灵活改变功能的
FPGA
就成为首选。到目前为止
FPGA
的一半以上的应用也是在通信行业。
第二个方向,可以称为数字信号处理方向或者数学计算方向,因为很大程度上这一方向已经大大超出了信号处理的范畴。例如早就在
2006
年就听说老美将
FPGA
用于金融数据分析,后来又见到 有将
FPGA
用于医学数据分析的案例。在这一方向要求
FPGA
设计者有一定的数学功底,能够理解并改进较为复杂的数学算法,并利用
FPGA
内部的各种资源 使之能够变为实际的运算电路。
目前真正投入实用的还是在通信领域的无线信号处理、信道编解码以及图像信号处理等领域,其它领域的研究正在开展中,之所以没
有大量实用的主要原因还是因为学金融的、学医学的不了解这玩意。不过最近发现欧美有很多电子工程、计算机类的博士转入到金融行业,开展金融信号处理,相信
随着转入的人增加,
FPGA
在其它领域的数学计算功能会更好的发挥出来,而我也有意做一些这些方面的研究。不过国内学金融的、学医的恐怕连数学都很少用 到,就不用说用
FPGA
来帮助他们完成数学
_
运算了,这个问题只有再议了。
第三个方向就是所谓的
SOPC
方向,其实严格意义上来说这个已经在
FPGA
设计 的范畴之内,只不过是利用
FPGA
这个平台搭建的一个
嵌入式
系统的底层硬件环境,然后设计者主要是在上面进行嵌入式软件开发而已。设计对于
FPGA
本身的 设计时相当少的。但如果涉及到需要在
FPGA
做专门的算法加速,实际上需要用到第二个方向的知识,而如果需要设计专用的接口电路则需要用到第一个方向的知 识。
就目前
SOPC
方向发展其实远不如第一和第二个方向,其主要原因是因为
SOPC
以
FPGA
为主,或者是在
FPGA
内部的资源实现一个“软”的处理器, 或者是在
FPGA
内部嵌入一个处理器核。但大多数的嵌入式设计却是以软件为核心,以现有的硬件发展情况来看,多数情况下的接口都已经标准化,并不需要那么 大的
FPGA
逻辑资源去设计太过复杂的接口。而且就目前看来
SOPC
相关的开发工具还非常的不完善,以
ARM
为代表的各类嵌入式处理器开发工具却早已深入 人心,大多数以
ARM
为核心的
SOC
芯片提供了大多数标准的接口,大量成系列的
单片机
/
嵌入式处理器提供了相关行业所需要的硬件加速电路,需要专门定制硬 件场合确实很少。
通常是在一些特种行业才会在这方面有非常迫切的需求。即使目前
Xilinx
将
ARM
的硬核加入到
FPGA
里面,相信目前的情况不会有太大 改观,不要忘了很多老掉牙的
8
位单片机还在嵌入式领域混呢,嵌入式主要不是靠硬件的差异而更多的是靠软件的差异来体现价值的。我曾经看好的是
cypress
的
Psoc
这一想法。和
SOPC
系列不同,
Psoc
的思想史载
SOC
芯片里面去嵌入那么一小块
FPGA
,那这样其实可以满足嵌入式的那些微 小的硬件接口差异,比如某个运用需要
4
个
USB
,而通常的处理器不会提供那么多,就可以用这么一块
FPGA
来提供多的
USB
接口。而另一种运用需要
6
个
UART
,也可以用同样的方法完成。
对于嵌入式设计公司来说他们只需要备货一种芯片,就可以满足这些设计中各种微小的差异变化。其主要的差异化仍然是通过
软件来完成。但目前
cypress
过于封闭,如果其采用
ARM
作为处理器内核,借助其完整的工具链。同时开放
IP
合作,让大量的第三方为它提供
IP
设计, 其实是很有希望的。但目前
cypress
的日子怕不太好过,
Psoc
的思想也不知道何时能够发光。
4
、 数字逻辑知识是根本。无论是
FPGA
的哪个方向,都离不开数字逻辑知识的支撑。
FPGA
说白了是一种实现数字逻辑的方式而已。如果连最基本的数字逻辑的知 识都有问题,学习
FPGA
的愿望只是空中楼阁而已。而这,恰恰是很多菜鸟最不愿意去面对的问题。数字逻辑是任何电子电气类专业的专业基础知识,也是必须要 学好的一门课。很多人无非是学习了,考个试,完了。
如果不能将数字逻辑知识烂熟于心,养成良好的设计习惯,学
FPGA
到最后仍然是雾里看花水中望月,始终 是一场空的。
以上四条只是我目前总结菜鸟们在学习
FPGA
时所最容易跑偏的地方,
FPGA
的学习其实就像学习围棋一样,学会如何在棋盘上落子很容易,成为 一位高手却是难上加难。
寥寥数语
希望对家有所帮助。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0