FPGA是一种“半定制”的芯片,个中一个特性便是IO口可编程,这个特性对编程器能与各种封装芯片互连有很大帮助浸染。
MCU的管脚功能都是固定的,与外部接口常日利用IO口或者总线连接。普通IO口实在实质便是寄存器,这些寄存器都有一个相应的地址,操作IO口便是操作寄存器;片内外设相对来说,是一个具有特定功能模块,其内部包含多个寄存器掌握不同的功能实行,但是这些寄存器也有固定的地址。通过存储器映射的办法,把片内外设和CPU连接起来,组成一个别系。
值得把稳的是,这些片内外设对外接口都是连接固定的管脚,如果要对这些外设掌握完成特定的功能设计,本色上已经隐含了对这些管脚掌握了。比如说,MUC的IIC接口的SCK和SDA分配在99和100脚,那么所有IIC接口的存储芯片都必须与这两个脚连接,如图1所示。

图1 请排好行列步队
各种须要编程的芯片如果要与MCU连接,就必须与之对应的接口连接,对付繁芜脚多的芯片,这对PCB的布局布线有很大的局限性和寻衅性。
FPGA就以灵巧性见长,可编程IO便是个中的一个主要功能。可编程IO给PCB的设计带来灵巧性,可以简化PCB的布局布线,并且在设计的过程中,还可以根据走线的走向变动管脚的连接。其余,在FPGA内部逻辑设计过程中,可以先把功能模块设计与管脚分配两步独立开来,先完成内部逻辑功能之后,再根据实际情形分配管脚。因此,可编程IO给FPGA逻辑设计和PCB设计带来一定的灵巧性和独立性,其在这个环节中充当一个“千手不雅观音”的角色,为逻辑设计和PCB设计铺路架桥,如图2所示。
图2 可编程IO示意图
实际FPGA内部并不像图2那么大略,这里只是为了形象解释可编程IO可以使内部逻辑和PCB可以相对独立设计。对付同类接口,不必由于PCB改变而变动时序逻辑,只须要变动引脚分配,大大简化了PCB的布线难度。
FPGA被称为“千手不雅观音”仅仅是数量多、动作灵巧吗?他还有更强大的功能,便是内部逻辑可编程。
在初的电路设计当中,FPGA并没有实际的电路,只有完成了设计之后才有某种特定的功能电路。这种构造含有以下特性:
1、在空想情形下,可以实现多种接口;
2、可以实现的时序,兼容更多芯片;
3、资源可重复利用,在某韶光段,只须要一个接口逻辑,节省FPGA资源和配置器件的存储空间。
相对地,如果用MCU来实现,则有以下缺陷:
1、 如果MCU没有相应的接口,将难以实现与含有该接口的存储芯片通信(可能会用IO仿照);
2、 纵然接口相同,由于功能基本固定,面对一些分外的芯片,将力不从心;
3、 由于输出口线的固定,导致与外部接口的PCB布线无法实现;
被编程的芯片接口种类较多,比如IIC和SPI,如果要MCU同时具备这些接口,口线必定繁芜而且速率有限。FPGA无需考虑这个问题,由于其内部逻辑可由设计者来设计,那么编程器可根据接口须要来定制对应的逻辑,省时省力,效率非常高。
在设计过程中灵巧利用FPGA这个“千手不雅观音”,让编程器功能更灵巧、更高效。