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