Xilinx部分略缩语,ARM与FPGA,MicroBlaze与Neon、Nios2等

一些关于Xilinx中的FPGA和ARM的感悟

以Zynq-7000为例,里面集成了FPGA和ARM处理系统,这两个模块在此板上是分别独立存在的。FPGA对应Vivado以及Vivado HLS进行HDL或者C/C++ to HDL的处理。ARM-A9(A9是ARM核的型号,其实目前比较常见的还有ARM-M4/M9,即ARM的M系列。)对应Vivado SDK(C/C++/近似汇编的C/汇编,其中近似汇编的C和汇编是听同学说的,今年的双创大赛第二题就是与此有关。)进行处理。

另外有可能你听说过Xilinx有一个针对自家的FPGA有一款可以烧到上面的处理器叫做MicroBlaze,然后你也听说过Altera公司也有一款可以烧在FPGA上的核叫Nios2。这两种核都是32位嵌入式RISC处理器。但是另外还有一个东西,叫NEON,这个是Xilinx的Zynq7000板上ARM佩戴的协处理器,这个协处理据说是必须要用汇编写的。之前因为NEON和Nios2的读音有点像,我把这俩搞混了,结果发现这根本没有关系。无奈。

这里涉及一个概念软核处理器和硬核处理器,顺便解释一下。软核处理器指的是用HDL编写的,在FPGA内烧上的处理器,这种处理器是可以通过HDL改写的。而硬核处理器指的是在FPGA内已经特定烧制好的处理器/甚至是与FPGA无关的独立的处理器,是不能用HDL改写的/与HDL无关,只能调用。

其实完全可以把硬核处理器理解成ARM,而软核处理器就是FPGA。在这里,MicroBlaze和Nios2都是软核处理器。ARM和NEON是硬核处理器。你搜一下硬核处理器,就可以直接看到“硬核处理器-ARM”这种网站标签;搜一下软核处理器,就可以看到MicroBlaze 软核处理器这种标签。

另外对于Xilinx的ARM和FPGA,他们还可以协同工作。具体我也没做过LAB,回头请教大神去。


ARM部分常用缩略语

  • PS : processor system 处理系统。对应Xilinx的ARM的调用。
  • PL : Programmable logic 可编程逻辑。直接你就可以想到PLA,PAL,GAL,CPLD,FPGA等与可编程逻辑器件有关的系统。当然在Xilinx中特指他家的FPGA。
    • 很多时候PS和PL不是都调用的,这就是之前说的非协同工作。如果PS和PL都用的话,那就是ARM和FPGA协同工作!
  • APU:Applicable processor unit 应用处理单元。对应ARM核里的核心处理器部分,可以理解为实现应用的处理器单元。可以联想CPU、MPU等等进行理解。

… 未完待续

你可能感兴趣的:(嵌入式杂谈)