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