摘要:FPGA的IO可編程,,這給邏輯設計和PCB設計帶來一定的靈活性和獨立性,。在編程器的硬件實現中,FPGA就是充當一個“千手觀音”的角色,為邏輯設計和PCB設計鋪路架橋,,靈活實現各種功能,。
FPGA是一種“半定制”的芯片,,其中一個特性就是IO口可編程,,這個特性對編程器能與各類封裝芯片互連有很大幫助作用。
MCU的管腳功能都是固定的,,與外部接口通常使用IO口或者總線連接,。普通IO口其實本質就是寄存器,這些寄存器都有一個相應的地址,,操作IO口就是操作寄存器,;片內外設相對來說,是一個具有特定功能模塊,,其內部包含多個寄存器控制不同的功能執(zhí)行,,但是這些寄存器也有固定的地址。通過存儲器映射的方式,,把片內外設和CPU連接起來,,組成一個系統。
值得注意的是,,這些片內外設對外接口都是連接固定的管腳,,如果要對這些外設控制完成特定的功能設計,實質上已經隱含了對這些管腳控制了,。比如說,,MUC的IIC接口的SCK和SDA分配在99和100腳,那么所有IIC接口的存儲芯片都必須與這兩個腳連接,,如圖1所示,。
圖1 請排好隊列
各類需要編程的芯片如果要與MCU連接,就必須與之對應的接口連接,,對于復雜腳多的芯片,,這對PCB的布局布線有很大的局限性和挑戰(zhàn)性。
FPGA就以靈活性見長,,可編程IO就是其中的一個重要功能,。可編程IO給PCB的設計帶來靈活性,可以簡化PCB的布局布線,,并且在設計的過程中,,還可以根據走線的走向更改管腳的連接。另外,,在FPGA內部邏輯設計過程中,,可以先把功能模塊設計與管腳分配兩步獨立開來,先完成內部邏輯功能之后,,再根據實際情況分配管腳,。因此,可編程IO給FPGA邏輯設計和PCB設計帶來一定的靈活性和獨立性,,其在這個環(huán)節(jié)中充當一個“千手觀音”的角色,為邏輯設計和PCB設計鋪路架橋,,如圖2所示,。
圖2 可編程IO示意圖
實際FPGA內部并不像圖2那么簡單,這里只是為了形象說明可編程IO可以使內部邏輯和PCB可以相對獨立設計,。對于同類接口,,不必因為PCB改變而更改時序邏輯,只需要更改引腳分配,,大大簡化了PCB的布線難度,。
FPGA被稱為“千手觀音”僅僅是數量多、動作靈活嗎,?他還有更強大的功能,,就是內部邏輯可編程。
在最初的電路設計當中,,FPGA并沒有實際的電路,,只有完成了設計之后才有某種特定的功能電路。這種結構含有以下特性:
1,、在理想情況下,,可以實現多種接口;
2,、可以實現精確的時序,,兼容更多芯片;
3,、資源可重復利用,,在某時間段,只需要一個接口邏輯,,節(jié)省FPGA資源和配置器件的存儲空間,。
相對地,如果用MCU來實現,則有以下缺點:
1,、 如果MCU沒有相應的接口,,將難以實現與含有該接口的存儲芯片通信(可能會用IO模擬);
2,、 即使接口相同,,由于功能基本固定,面對一些特殊的芯片,,將力不從心,;
3、 由于輸出口線的固定,,導致與外部接口的PCB布線無法實現,;
被編程的芯片接口種類較多,比如IIC和SPI,,如果要MCU同時具備這些接口,,口線必定復雜而且速度有限。FPGA無需考慮這個問題,,由于其內部邏輯可由設計者來設計,,那么編程器可根據接口需要來定制對應的邏輯,省時省力,,效率非常高,。
在設計過程中靈活使用FPGA這個“千手觀音”,讓編程器功能更靈活,、更高效,。