回顾:
通过对AG32开发板的学习和使用,才厘清了AG32与常规FPGA的认识。
AG32一款基于国产异构双核(RISC-V+FPGA)处理器,也就是说它是一款复合处理器,由MCU和Cpld混合构成,而且MCU、 cpld 及外部引脚,这三者是相互独立的。
在MCU使用 IO时,是在VE里来关联到外部引脚 Pin_xx;
在cpld 使用 IO时,也是在 VE里来关联到外部引脚 pin_xx;
此外,MCU的某一路信号和 cpld 的某一路信号,也可以在VE里使之相互关联起来;
所以,VE是一个相互关联的重要桥梁。
因此,在使用MCU时,除了使用VE建立映射关系外,其开发过程在vscode开发环境下与常规的MCU开发基本无异,只是通常会进行2次烧录,在不改变映射关系时,甚至只需进行一次烧录。
若是使用cpld 进行开发,则需要用VE建立映射关系外,通过软件提供的开发模板来手工编写程序,并使用quartus进行工程转换,任何在通过supra编译统一回到vscode开发环境进行烧录。
在AG32下对MCU的使用是直接利用RISC-V核,使用cpld是利用FPGA核。而对常规的FPGA开发,在使用到MCU功能时则是利用一个嵌入的MCU软核,来完成类似的功能。
这就是AG32与FPGA上的一个主要的区别,一个是采用2和硬核,一个是在FPGA的基础上构建了一个软核。MCU的特点在于使用的通用型,其外部的引脚通常是不可改变的,在外部接线时会受到一度的制约;而FPGA则在于使用的灵活型和快速性,是靠编程来改变内部硬件的连接,从而化简外部接线的复杂度。