今天去了趟学校,正好遇到一个师兄,看他正在调一个FPAG的板子,我就好奇了下,他在工作单位就是做FPAG项目的,很牛的,嘿嘿
ASK: 你在FPGA上用什么语言编程?
ANS: verilog
ASK: 那verilog编程语言是什么样的呢?跟C语言相似吗?
ANS: 你过来看下我的过程文件,所以我就跑过去了
哦,还真的挺相似,首先编译环境就很相似,然后粗看了下,里面有存在函数,函数声明。其实不能讲函数,应该说模块。
每个模块同样有输入参数,应该是面向对象的编程了,里面也存在if else 等语句
ASK: 你现在这块板子做的是什么?
ANS: 一个转接板,相当于把前端的传感器数据通过这块板输入到上位机,自己做了个数据包传送的格式。
ASK: 那你这里面有哪些模块呢?
ANS: 串口,AD转换,时钟发生器PLL,led显示,按键驱动
ASK: 那你怎么实现这些模块的呀?是不是FPGA上也像单片机集成了这些基本的模块,比如UART
ANS: 不是的,FPAG就像一张白纸,上面没有这些模块,UART是我自己写出来的,不仅串口,AD模块也是我自己写出来的
ASK: AD模块你怎么写?我知道单片机上对于AD的控制都是基于寄存器操作的
ANS: 这就是FPGA的特点之一,你可以自己实现AD模块,相当于自己创造AD的一些寄存器,当然可以简单也可以复杂,类似于有的MCU上
集成的AD模块,通过FPGA可以做出AD的操控功能
ASK: 你这个片子什么来头?
ANS: actel公司的,我板子上的这个片子就要120几块钱
ASK: 这个FPGA成本真高的,一般用在什么领域呢
ANS: 基站类设备啊,军用设备啊,工业级的设备等等
ASK: 那FPGA和单片机比到底有什么优势呢?
ANS:灵活啊,可以并行处理;举个列子吧,市面上的8位 ,16位,32位 MCU,还有DSP,还有ARM等等使用FPGA都可以模拟出来,相当于
你使用FPGA自己做了个IC。再举个简单的例子,你的项目需要很多串口,比如要30路,市面上可没有专门的这种多路UART的IC提供,而使 用FPGA就可以自己灵活的创造串口。(说道这,我流口水了)
ASK:这么强悍啊,那不是可以自己做IC卖了?
ANS: 可以这么说,很多IC公司都是在FPGA上设计模拟芯片的,在确定好后就可以封装成专门的IC芯片出售
很多IC设计公司都招FPGA人才的?(我又感慨,高端技术啊)
后记:真是不问不知道,一问吃惊不小。
有那个时间精力,我一定搞个FPGA开发板玩玩