FPGA教学:应用与研究并重
时间:07-29 11:41 阅读:888次
*温馨提示:点击图片可以放大观看高清大图
简介:FPGA教学:应用与研究并重—— —访新加坡国立大学电气与计算机工程系助理教授哈亚军博士
竞赛重在学生参与
问:您对“第三届开源硬件及嵌入式大赛”的哪些作品印象较深?答:一个就是浙大的“基于FPGA的M2M异构虚拟化系统”设计,还有
太原理工大学的“AVS编码FPGA实现”。
问:此次竞赛是否公平?答:这种评选方式不是
特别学术性的,有点是大家喜好的程度的海选。从最后的结果来看,理论性的分值相对占得低了一些。
问: 贵校(
新加坡国立大学)为什么有兴趣来中国参加这次比赛?
答:这种设计比赛对于培养学生的全面能力是很好的。很多学生在做硬件的时候会发现,我怎么做这个硬件的软件模拟(simulation)没问题,为什么放到硬件板上去,它就不工作了呢?通常是因为模拟仿真时,测试向量用得很少——如果在真正的硬件环境里面去工作的话,有很多不同的向量;也有可能硬件的实际环境在测试的时候没考虑进去,或者只测了一部分,还有更多的情况没有测。同样地,对学生培养也是如此。在学校里很多学生表现得很好,成绩很高,但毕业后,可能不见得是发展最好的。因为学校里的考试,只是测试学生的某一些方面。
那么怎样去避免这类情况发生?参与
这种比赛,应该说对学生全面培养能力是非常好的。
如果学生经过这样一些测试,然后去公司工作,会很快上手,他不会说等到你的经理来给你说,你要做这个,要做那个,要怎么样,他会非常主动。如果他选择学校去念博士,同样也会受益。实际上,我们招收博士生,那他的学科成绩只是一个参考,更多的会参考看看他有没有其他业余课外的成绩,比如说他是否参加了类似这样的活动。
问:本科生、研究生都能做这个FPGA的项目,博士生为何还要研究FPGA?因为现在FPGA平台容易掌握,所有学生都能同样完成一个电子设计?
答:本科生、研究生和博士生的区别大了。
从FPGA研究来说,可以主要看出三个方面,一方面就是FPGA的结构。现在我们大部分的同学老师,实际上没有接触这个方面,基本上就是直接拿Xilinx或Altera的FPGA来用。第二方面,一旦你的
FPGA的结构有了改变,那么原来的这些软件也就不能再用了,你必须要开发相应的软件来配合改变。所以,研究的第二部分主要就是在EDA算法软件的开发。第三方面,才是
FPGA对一些特定应用的解决方案。大部分的学生老师目前主要还是用已经商用的
FPGA、以及现成的算法、开发工具,来开发一些应用。所以目前来说,应该还没有到研究的地步。但是真正要做FPGA的研究的话,就应该是把注意力放在第一、二方面。
问
:关于基础研究,既然Xilinx等公司已经把FPGA芯片做好了,我们为何还会怎么改变他的结构呢?
答:研究和工业是两个不同的方面。从学校的角度来说,假设我做研究,我不会去拿Xilinx的芯片来做我的研究,我会怎么做呢?我会开发一个软件,他会描述这个FPGA硬件,可以这么说,就是相当于一个虚拟Model(模型),就是你有一个软件,我来描述这个FPGA的结构是什么样的。如此,你就可以随意描述你的FPGA结构是什么样的,就是我并没有把它做出来,但是我是用软件模型来描述FPGA应该是什么样,这是第一步。第二步,对这个模型,我要开发我的算法软件,我会把我的一些应用
map上去,那么我通过这些实验来看,我原来这个map FPGA,我能够获得的性能、面积和功耗。当我改进我的结构和算法以后,我把同样的应用安到新结构上去,它是不是达到了我原来设想的要优化的指标,并做出bench mark,这就是做结构方面的研究。所以通常来说,
FPGA的结构和算法是两个互相紧密相关的。
如何学习FPGA
问
:您认为目前市面上的FPGA开发版、教材和书籍是否足够?
答:应该说数量是非常多的,但是从质量上可能还要提高。例如很多教材可能更加注重是一些比较低端的题材,就是简单的应用,可能从基本的
FPGA工作原理,以及它到底在这个结构或者算法方面有些什么最新的发展,存在的问题以及目前国际上大概是个什么样的情况。但在研究方面的介绍相对会少。
问:但是研究FPGA有什么用呢?因为我们觉得赛灵思、Altera已经做了FPGA了,我们有必要再发展自己的FPGA产业吗?
答:中国也是有尝试的。我所知道的就是复旦大学微电子系等。(笔者注:北京雅格罗技公司做国产FPGA。)
问
:市面上已经有很多现成的FPGA,为什么还要再进行基础研究呢?
答:因为研究和产业本来就是两回事,你如果要是能把你的研究跟你的产业结合起来那就更好了。但是不是说你不发展这个产业就不需要做这方面的研究。从长远来说,
芯片的制造成本越来越高,未来更多的应用会慢慢地转移到FPGA平台上,那么人们是不是愿意把这么大一块饼全部让Xilinx、Altera做?这要看国家战略上怎么考虑。FPGA教学
问:目前FPGA教学还有哪些问题呢?
答:对于学校来说,整个教材体系相对比较稳定。你要做一个比较大的教材改变,通常需要学校下一个比较大的决心的。所以FPGA推广到教学的阻力主要在这个方面。你如果要是下定决心做一些改变,第二步,就是你怎么把
FPGA跟原有的这些教材体系能够很好地结合。因为FPGA的发展非常快。例如,原来FPGA里面是纯逻辑,跟原来的数字教学很容易结合;但是现在FPGA里面又把处理器加进来,就变成一个很大的系统,整个的教学的难度和范围大大地增加了,所以很难把它放到同一门课里面,一次就把它全部讲完。这时就需要一个比较系统的规划——可能在一门课里面只用它的一部分,另外一门课里面用另外一部分,然后都把同一类FPGA做一个共同的平台,在不同课里面我侧重某一个点,可能在高年级一门课再把它们集成。这样的一种方法,可把难度分散。同时又有完整综合的机会。
问:您的意思是工程师用XilinxZynq的难度挺大?
答:要看他是什么样的背景,因为现在这个Zynq它上面就是说它的平台的话呢,实际上之前就有了,就是他从这个抽象层次来说,它就是一个软件硬件的一个可以编程的平台。只是说现在我们把它从原来的这个MicroBlaze或者PowerPC转成ARM核,从这个角度来说,它并不是一个完全大的改变,只是说里面换了处理器核。对某些工程师来说,可能它更简单了,因为如果他之前就是在ARM平台上面工作的,现在反而对他来说简单。他的难度主要是,要看这个工程师之前的背景是什么,他如果是硬件工程师,他可能又要熟悉这个A
RM部分,如果他以前是软件工程师,他可能就会感觉难度小一点。总的来说,因为现在这个平台太大,要求一个工程师有硬件、软件方面的能力都很强,基本上现在还是很困难的。现在目前业界的大部分工程师他们都只有一个方面的经历。
问
:Xilinx还做了一些收发器,是不是难度也增大了?
答:之前,Xilinx的FPGA里没有很多收发器。现在芯片容量加大了,那么Xilinx当然为了使用者的方便,会把更多更多的IP 核加进来。之前是存储器块,后来处理器、DSP等都有了,现在加了收发器、ADC。现在可能唯一少的一个就是RF这部分。如果RF加了,这个芯片就是很完整的一个终端。
问:Xilinx的FPGA和Altera有什么区别?或者对于FPGA教学,应该是两个都教,还是学一个就可以了?
答:它的关系好像VHDL跟Verilog的关系。
从技术上来说,VHDL能做的,Verilog也能做。但是他们主要是一个非技术的划分。像VHDL的主要引擎是欧洲公司里用得多,Verilog在美国公司里面用得较多。但是现在慢慢的话,这个界限也越来越模糊了。因为总的来说,如果要是一个大的系统的话,通常你会要用很多的IP核。对于IP核,有的公司是Verilog,有的是VHDL,这没关系,反正现在他们可以混在一起用。那么两家FPGA公司也一样,赛灵思能做的东西,
Altera基本上也能做,反之亦然。所以慢慢地从技术上来说,两家主要是拼市场、拼支持。或者看谁更用功。如果谁把这个新的用户抓住了,他就抓住了一个可持续性的市场。因为一家公司一旦决定用你的产品,除非出现了非常大的问题,一般来说这家公司不会轻易的转换平台。
比如有一个功能对整个系统影响非常大,你的竞争对手有了,你还没有,这个Gap会比较大,那时候别家就会入选。一旦被他抢过去以后就很难回来了。因为工业界的产品的发展不像研究,很少会做一个崭新的产品。工业界的产品一般都有一定的延续性,是一步一步地上去,任何一个突变,对他来说都有风险,所以他会避免。
照片 本刊采访哈教授,左为“电子产品世界”网站总监王炜,右为笔者