|
FPGA软核实质上是一个高级一点的IP核,他可以利用C语言编程,实现Verilog语言与C语言的联合编程。0 I7 t, A9 @* p! L) Z% b, J& v* v
& V/ F% Q9 J/ f9 N) j' j2 d# w
在玩FPGA之前,玩了几年的单片机,对C语言驱动模块有了一定的依赖,自从开始玩FPGA,Verilog HDL驱动模块有速度快的优势,速度远远快于一般的单片机,还有并行运行的特点。但是单片机C语言却只能按照顺序执行,虽然有中断系统,但实质上还是顺序执行。
& ]; U5 ~; ~! B4 c0 ]- x8 l9 T* ~! Y) [9 _1 J" e+ a+ U1 K* s
FPGA也可以利用C语言编程,那就是软核了,玩了一段时间altera(NIOS)和Xilinx(MicroBlaze)的FPGA,他们的软核大同小异,思想基本是一样的,只是软件的操作上不同,有些程序从单片机移植到FPGA就显得方便多了。特别是有些需要顺序实现的过程C语言实现起来也比较方便,比如液晶,TFT,ADC,DAC等外置模块。" i% V% ?8 R, Q7 p0 F* v4 `9 O# o+ u* }9 n
* a5 c, Z! w2 A- I1 Q2 ]
自定义IP核也通过软核来实现,底层是用Verilog语言实现,定义之后,用户只要通过API调用即可,通信总线可以采用AVALON(ALTERA),AXI(Xilinx),FSL(Xilinx),总线用来传输数据,实现C语言与Verilog语言的通信。7 l. Z& }: z0 J
! P- T0 t- d8 [" K8 V& Z前几天与一个FPGA高级工程师简单聊了几句,原来软核这东西在实际工作岗位中用到的很少,如果是做数字IC岗位,很少有这个需求。从学校其他团队的FPGA大牛口中,他们也很少用到软核,基本都是Verilog,说起这个,心就拔凉拔凉的,就权当自己的兴趣吧,自己最近这段时间,搞了很久软核,接下来要把重点转移到Verilog上面了!!! |
|