自从接触和认识FPGA以后,自由电子科技坚定的选择了FPGA器件作为我们创新和实现自身价值的承载平台,对此,我想从以下几个方面介绍一下。
1. 对FPGA的认识,为什么要选择FPGA
现在的FPGA器件在电子行业中是一颗明星,这是一种正在不断采用新的半导体制造工艺,逻辑容量不断增加,应用领域不断拓展,器件成本不断下降的器件,FPGA厂商激烈的竞争使开发软件和方法不断的进步,是一个正在盘古开天时期的事物。很多人对此的解释是FPGA拥有很大的灵活性,在半导体制造工艺的NRE不断增加、应用需求不断变更、品种要求多而数量要求少的现实情况下,FPGA是一个最佳选择,这正是现在FPGA厂商们宣传时耳目能详的陈词。我们认为,FPGA在电子产业和信息产业上的地位并不是这么简单。
实际上如果通过我们对计算机发展的历史、软件发展历史的认识,可以推断FPGA器件是一方向性的创新,几千年以前我国的祖先们感悟了蕴涵在简单的阴、阳中的事理有了太极,阴阳可以生万物。一百多年前的布尔代数使我们从数学上有了坚实的基础,从机械计算机到电子计算机的演变中,我们得到了冯.诺依曼型的程序存储类的计算机体系,并在当代发展为及至,极大的推动了人类社会的前进。冯.诺依曼计算机体系是在CPU硬件的基础上加上千变万化的软件,软件的灵活性使计算机渗透到各行各业,在20世纪后半页演绎了气势恢弘的发展过程,造就了象比尔.盖茨那样的天才和巨富。但我们要认识到在这个体系中,由一部分人从事低层硬件,CPU架构体系的设计,大部分应用工程师在相对固定的硬件系统上从事开发,这种模式在现在依然拥有无与伦比的活力和现实作用,在这里我提醒一点,在这个体系中,对大部分工程师来说,一半固定,硬件CPU是不可编程的,另一半灵活是可编程的(软件),很自然我们会想联想到如果两个部分都是可编程的那会是怎么一种情况呢?很好,现在有一种器件来了,这就是FPGA,它代表的就是硬件的编程。这两部分都可编程的一个结合点就是 FPGA上的软核,在Altera提供的开发环境中提供的SOPC环境就是如此,你可以象以往一样在生成硬件架构以后进行软件开发。但令人瞩目的是它可以随心所欲的定制外设,外设不再固定,更进一步它还支持增加自定义指令,从而改变CPU,在软件上可以用C2H把原来属于软件运行的指令变换成RTL逻辑来完成,极大的提高了效率,在这里要提醒的是,这样的事物才刚刚开始,是长江源头佗佗河上那不起眼的涓涓溪流,它正在发展,正在完善,从历史的眼光看,我们要有足够的耐心。
以上的文字就象是传教词一样令人心醉,这些还是从比较现实角度看待FPGA这个事物的,在比较长时期的学习和思考过程中,我还领悟到更深一个层次的含义,在说这个之前,容我介绍一种类型的应用,我们知道RAM型FPGA在不上电的时候,是一个半定制的ASIC,拥有基础的逻辑,而不拥有功能性逻辑,所有功能性逻辑是通过上电配置以后完成的,已经有工程师在设计产品的时候使用了这样的方案:把各种不同的电路功能编译成不同的配置文件,根据需要通过外部单片机把合适的应用bit流写入到FPGA内,从而完成根据功能需要变更硬件,这个需求很好理解吧。在软件领域可重构这个词出现的概率是非常多的,软件的发展也是往这个方向前进,c++,java支持下的接口、模板、对象重载等等,再到组件、COM,无一不用可重构这个概念。在FPGA领域,现在绝大部分器件只支持整体配置,也就是整体重构,如果能支持局部电路重构,那么上面我们叙述的应用就能够很自然的实现,而且切换速度会很快,实际上我们需要的是在接口不变的情况下切换速度要非常快,快的让逻辑自身也不知道底层硬件已经重构,就象没有变化一样。为什么我们这么重视电路可重构呢?一个原因是我们在软件发展的里程上看到的,我们可以在接口的支持下以相同的程序支持很大一类的应用。另一个原因我认为:人类信息科技发展的一个必然趋势。为什么这么说呢?需要从我们人本身身上认识开始,我们人类的大脑是亿万年来自然选择的结果,是宇宙中最精致的事物之一,是物质运动的最高形式(这有些象哲学家的说辞了),我们的大脑能形成条件反射,一个多次重复的思考过程,最后就形成的直接的通路,这种变化能让我们以最快的速度去适应和处理信息,我们对计算机的要求不也是这样嘛,可是,我们现在的计算机对多次重复的处理,能形成直接的通路吗?不能,一个计算,再怎么重复和有规律,现在的计算机只要程序不变,它永远重复,这就是人类能有直觉,而计算机不能的一个原因吧。说到这里,基于LUT查找表的FPGA倒是有些这个思想的雏形,对于一些逻辑计算,我们通过EDA软件的计算和优化,把输入和结果直接下载到LUT的RAM中,省略了电路逻辑处理过程,这也算是一个直接通路吧。我们要使计算机的能力越来越强,现在的一个方法是提高频率,这个方法很直接,可是现在材料和工艺在功率问题上的制肘已经使这个方法走到尽头了(热衷于提高频率的Intel不是也放弃了这个方法了嘛),于是新的方法是并行,用多核,Intel和Amd现在都在这个阵地上拼抢,说到并行,实际上fpga是一个很好并行处理平台,只要逻辑资源允许,它内部也可以构建n处理模块,n个软核cpu。这些方法中前一个方法是靠工艺取胜,后一个方法是靠体系取胜,体系取胜是最终的办法。人类大脑中的蛋白运算并没有如此高的频率,神经传导速度也比不上电路和光纤,但它的处理能力、容量和适应能力是惊人的。选择FPGA的一个直接原因是它的并行和灵活,但我认为更重要的应该是它的可重构上,特别是局部单元电路可重构的FPGA更能够做到象人类大脑中信息处理机制一样,也就是信息处理的过程中根据需要能够改变物理联系通道(即底层硬件电路),局部单元可重构的FPGA能带来体系结构上和实现算法上的革_命性创新。这样的FPGA和相应的算**在体系结构上取胜,能够在不远的将来构建软硬件更加协同的应用方案。这种类型的FPGA器件(或以其他名字命名的器件)必然会出现。 |