專利名稱:對(duì)多個(gè)可編程邏輯器件進(jìn)行在線加載的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子設(shè)備領(lǐng)域,尤其涉及一種對(duì)多個(gè)可編程邏輯器件(PLD,Programmable Logic Device)進(jìn)行在線加載裝置和方法。
背景技術(shù):
PLD廣泛應(yīng)用于電子設(shè)備中??梢酝ㄟ^(guò)JTAG(聯(lián)合測(cè)試行動(dòng)小組,Joint Test Action Group)對(duì)其進(jìn)行在線加載,或者其他途徑進(jìn)行在線加載。一般采用CPU(Central Processing Unit)或者控制芯片的IO腳產(chǎn)生波形的方法實(shí)現(xiàn)在線加載,每個(gè)PLD至少需要4個(gè)腳。如果有n個(gè)PLD需要同一個(gè)CPU加載,那么CPU至少需要提供4×n個(gè)IO管腳或者通過(guò)管腳的復(fù)用來(lái)給多個(gè)PLD進(jìn)行加載。
如果PLD數(shù)量很多,則該方法幾乎不可行。
本發(fā)明的方法,不需要使用CPU的額外IO管腳,且可以避免通過(guò)管腳復(fù)用帶來(lái)的互斥問(wèn)題。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的在于提供一種不需要消耗CPU額外IO管腳可以對(duì)多個(gè)PLD進(jìn)行在線加載的方法。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種對(duì)多個(gè)可編程邏輯器件進(jìn)行在線加載的裝置,該加載裝置包括一個(gè)控制器,多個(gè)可被加載的可編程邏輯器件,以及一個(gè)擴(kuò)展寄存器組,所述寄存器組連接在控制器和多個(gè)可編程邏輯器件之間。
根據(jù)本發(fā)明的另一個(gè)方面,提供了一種可編程邏輯器件在線加載裝置中的在線加載方法,所述的在線加載裝置包括一個(gè)控制器,多個(gè)可被加載的可編程邏輯器件,以及一個(gè)擴(kuò)展寄存器組,所述寄存器組連接在控制器和多個(gè)可編程邏輯器件之間,所述的方法包括步驟(1)控制器根據(jù)加載文件,向相應(yīng)擴(kuò)展寄存器組中的寄存器寫(xiě)入相應(yīng)數(shù)據(jù);(2)寄存器輸出信號(hào)控制可編程邏輯器件的相應(yīng)管腳變高變低產(chǎn)生所需波形,完成加載。
本發(fā)明的基本構(gòu)思在于,通過(guò)CPU對(duì)外部寄存器的操作,使PLD的相應(yīng)管腳產(chǎn)生相應(yīng)波形完成加載。
在本發(fā)明中,沒(méi)有額外占用CPU的IO管腳,且不受PLD數(shù)量的限制,同時(shí)由于軟件控制產(chǎn)生波形,因而靈活性大大提高。
圖1是根據(jù)本發(fā)明一種實(shí)施方式的加載裝置的原理圖;以及圖2是根據(jù)本發(fā)明的一種實(shí)施方式的加載過(guò)程的波形圖。
具體實(shí)施例方式
圖1是根據(jù)本發(fā)明一種實(shí)施方式的加載裝置的原理圖。如圖1所示,在一個(gè)電子設(shè)備中包括一個(gè)控制器CPU,一個(gè)擴(kuò)展寄存器組CPLD(復(fù)雜可編程邏輯器件,Complex Programmable Logic Device),以及8個(gè)PLD(圖中以XILINX公司的FPGA舉例)。顯然該電子設(shè)備還包括其它器件或裝置,但由于它們與本發(fā)明無(wú)關(guān),所以略去。如圖1所示,CPU通過(guò)地址、數(shù)據(jù)、控制總線與擴(kuò)展寄存器組連接,寄存器的輸入輸出與對(duì)應(yīng)FPGA的相應(yīng)管腳連接。其中CPU通過(guò)地址總線、數(shù)據(jù)總線、片選、讀寫(xiě)等常規(guī)接口完成對(duì)擴(kuò)展寄存器組CPLD的寄存器的訪問(wèn);擴(kuò)展寄存器組CPLD將CPU寫(xiě)入的內(nèi)容通過(guò)本發(fā)明的方法送到擴(kuò)展寄存器組CPLD的IO管腳上,這些輸出管腳連到FPGA的加載管腳。在本優(yōu)選實(shí)施方式中,用復(fù)雜可編程器件CPLD來(lái)實(shí)現(xiàn)可擴(kuò)展寄存器組,并且FPGA使用PS(Passive Serial)模式加載,復(fù)雜可編程器件的輸出IO連到FPGA的時(shí)鐘管腳CCLK、數(shù)據(jù)輸入管腳DIN、編程設(shè)定管腳/PROG;FPGA的DONE管腳接到擴(kuò)展寄存器組的輸入IO上。如果以包括4個(gè)寄存器的擴(kuò)展寄存器組為例,可以將寄存器分配如下
其中地址表示寄存器的地址,類型表示對(duì)寄存器讀寫(xiě)類型的設(shè)定,位表示每個(gè)寄存器的各個(gè)位,名稱體現(xiàn)了與相應(yīng)FPGA的管腳的連接方式,描述部分對(duì)管腳的功能進(jìn)行了說(shuō)明。
圖2是根據(jù)本發(fā)明的一種實(shí)施方式的加載過(guò)程的波形圖。下面舉例描述用圖1所示的裝置對(duì)FPGA進(jìn)行加載的過(guò)程。
假設(shè)對(duì)第x片(x取值1到8)FPGA進(jìn)行加載。
1通過(guò)CPU一個(gè)存儲(chǔ)裝置(未示出)中讀入第x片F(xiàn)PGA的bit文件;2通過(guò)CPU向0x03寄存器的第(x-1)位寫(xiě)入0并且隨后寫(xiě)入1,形成/program時(shí)序,表示要清除FPGA;3通過(guò)判斷0x00寄存器的第(x-1)位變成0來(lái)判斷出清除已經(jīng)完成;(1)從bit文件的串行數(shù)據(jù)流中讀入一個(gè)bit;(2)通過(guò)CPU向0x01寄存器的第(x-1)位寫(xiě)入0,形成時(shí)鐘信號(hào)CCLK的下降沿;(3)通過(guò)CPU向0x02寄存器的第(x-1)位寫(xiě)入所讀入的bit,時(shí)序波形如DIN所示;(4)再向0x01寄存器的第(x-1)位寫(xiě)入1產(chǎn)生CCLK時(shí)鐘上沿;(5)重復(fù)(1)-(4),直到文件全部讀完;4讀取0x00寄存器的第(x-1)位,看是否變成1;若為1則加載成功。
以上針對(duì)附圖1和2描述了本發(fā)明的一種優(yōu)選實(shí)施方式。在本發(fā)明的另一個(gè)優(yōu)選實(shí)施方式中,還可以對(duì)多個(gè)PLD并行寫(xiě)入,從而大大提高寫(xiě)入效率。并行寫(xiě)入的方法包括如下步驟(以同時(shí)寫(xiě)入兩片舉例說(shuō)明)假設(shè)要對(duì)第x,y片F(xiàn)PGA進(jìn)行加載。
1通過(guò)CPU一個(gè)存儲(chǔ)裝置(未示出)中分別讀入第x,y片F(xiàn)PGA的xbit和ybit文件;2通過(guò)CPU向0x03寄存器的第(x-1),(y-1)位寫(xiě)入0并且隨后寫(xiě)入1,形成/program時(shí)序,表示要清除FPGA;3通過(guò)判斷0x00寄存器的第(x-1),(y-1)位都已經(jīng)變成0來(lái)判斷出清除已經(jīng)完成;(1)分別從xbit文件和ybit文件的串行數(shù)據(jù)流中讀入一個(gè)xbit和一個(gè)ybit;(2)判斷xbit文件和ybit文件中的任一個(gè)是否已經(jīng)結(jié)束,如果結(jié)束,則設(shè)相應(yīng)標(biāo)志位ENDX或ENDY為1。
(3)通過(guò)CPU分別向0x01寄存器的第(x-1)位和第(y-1)位寫(xiě)入0+ENDX和0+ENDY,形成時(shí)鐘信號(hào)CCLK的下降沿;(4)通過(guò)CPU向0x02寄存器的第(x-1)位和第(y-1)位寫(xiě)入所讀入的xbit和ybit,時(shí)序波形分別如DIN所示;(5)再向0x01寄存器的第(x-1)位和第(y-1)位分別寫(xiě)入1+ENDX和1+ENDY產(chǎn)生CCLK時(shí)鐘上沿;(6)重復(fù)(1)-(5),直到兩個(gè)文件全部讀完;4讀取0x00寄存器的第(x-1)位和第(y-1)位,看是否變成1;若為1則表示相應(yīng)PLD加載成功。
本領(lǐng)域的普通技術(shù)人員顯然可以對(duì)具體的實(shí)施細(xì)節(jié)進(jìn)行改變來(lái)進(jìn)行并行加載。
根據(jù)本發(fā)明的進(jìn)一步教導(dǎo),還可以通過(guò)將同一個(gè)寄存器的不同位與相同PLD的不同寫(xiě)入相關(guān)管腳連接來(lái)降低對(duì)CPU的地址占用。例如,如果只需要對(duì)兩個(gè)PLD進(jìn)行寫(xiě)入,那么用圖1的裝置將會(huì)占用4個(gè)CPU的地址,而且對(duì)寄存器的浪費(fèi)也大。根據(jù)一個(gè)優(yōu)選實(shí)施方式的教導(dǎo),可以只采用兩個(gè)寄存器,其連接方式可以如下
用以上連接方式,也完全可以完成對(duì)兩片的寫(xiě)入。至于如何在這種連接方式下產(chǎn)生適當(dāng)?shù)膶?xiě)入時(shí)序,對(duì)本領(lǐng)域的普通技術(shù)人員應(yīng)該是顯而易見(jiàn)的,這里不再詳細(xì)描述。并且對(duì)于各管腳的分配,本領(lǐng)域的普通技術(shù)人員也可以很容易進(jìn)行改變。
權(quán)利要求
1.對(duì)多個(gè)可編程邏輯器件進(jìn)行在線加載的裝置,包括一個(gè)控制器,多個(gè)可被加載的可編程邏輯器件,其特征在于還包括一個(gè)擴(kuò)展寄存器組,所述寄存器組連接在控制器和多個(gè)可編程邏輯器件之間。
2.如權(quán)利要求1所述的裝置,其特征在于所述的寄存器組中的寄存器被分成兩類,一類是只讀,另一類可讀寫(xiě),并且將只讀寄存器中的位與可編程邏輯器件的表示加載完成的信號(hào)輸出端相連,其可讀寫(xiě)寄存器中的位與可編程邏輯器件中的其它與加載有關(guān)的信號(hào)端相連。
3.如權(quán)利要求1所述的裝置,其特征在于所述的寄存器組包括4個(gè)寄存器,第一個(gè)寄存器的各位分別與可編程邏輯器件的時(shí)鐘端相連,第二寄存器的各位分別與可編程邏輯器件的表示加載完成的信號(hào)端相連,第三個(gè)寄存器的各位分別與可編程邏輯器件的數(shù)據(jù)輸入端相連,第四個(gè)寄存器的各位分別與可編程邏輯器件的加載控制端相連。
4.如權(quán)利要求1或2所述的裝置,其特征在于所述的寄存器組包括2個(gè)寄存器,所述可編程邏輯器件的個(gè)數(shù)是兩個(gè),其中第一個(gè)寄存器中有兩位分別與可編程邏輯器件的時(shí)鐘端相連,有兩位分別與可編程邏輯器件的數(shù)據(jù)輸入端相連,有兩位分別與可編程邏輯器件的加載控制端相連,第二寄存器中有兩位分別與可編程邏輯器件的表示加載完成的信號(hào)端相連。
5.一種可編程邏輯器件在線加載裝置中的在線加載方法,所述的在線加載裝置包括一個(gè)控制器,多個(gè)可被加載的可編程邏輯器件,以及一個(gè)擴(kuò)展寄存器組,所述寄存器組連接在控制器和多個(gè)可編程邏輯器件之間,所述的方法包括步驟控制器根據(jù)加載文件,向相應(yīng)擴(kuò)展寄存器組中的寄存器寫(xiě)入相應(yīng)數(shù)據(jù);寄存器輸出信號(hào)控制可編程邏輯器件的相應(yīng)管腳變高變低產(chǎn)生所需波形,完成加載。
6.如權(quán)利要求5所述的方法,其特征在于所述的方法進(jìn)一步包括步驟1)用控制器讀入某個(gè)可編程邏輯器件的bit文件;2)通過(guò)控制器向寄存器組中與該可編程器件的清除信號(hào)對(duì)應(yīng)的位進(jìn)行預(yù)定形式的寫(xiě)入,形成可編程邏輯器件的清除信號(hào);3)讀取寄存器組中與該可編程器件的清除完成信號(hào)對(duì)應(yīng)的位的值并根據(jù)該值判斷出清除已經(jīng)完成;i.從所述bit文件的串行數(shù)據(jù)流中讀入一個(gè)bit;ii.控制器向寄存器組中與可編程邏輯器件的時(shí)鐘信號(hào)對(duì)應(yīng)的位寫(xiě)入第一值,形成時(shí)鐘信號(hào)CCLK的第一沿;iii.控制器向寄存器組中與該可編程邏輯器件的數(shù)據(jù)輸入端對(duì)應(yīng)的位寫(xiě)入所讀入的bit;iv.控制器向寄存器組中與該可編程寄存器的時(shí)鐘信號(hào)對(duì)應(yīng)的位寫(xiě)入第二值產(chǎn)生時(shí)鐘信號(hào)的第二沿;v.重復(fù)(i)-(iv),直到文件全部讀完;4)讀取寄存器組中與該可編程寄存器的表示加載完成的位的值,看是否變成表示加載完成的值;若是,則加載成功。
7.如權(quán)利要求5所述的方法,其特征在于所述的方法進(jìn)一步包括步驟1)用控制器讀入多個(gè)可編程邏輯器件的bit文件;2)通過(guò)控制器向寄存器組中分別與所述多個(gè)可編程器件的清除信號(hào)對(duì)應(yīng)的位進(jìn)行預(yù)定形式的寫(xiě)入,分別形成所述多個(gè)可編程邏輯器件的清除信號(hào);3)讀取寄存器組中分別與所述多個(gè)可編程邏輯器件的清除完成信號(hào)對(duì)應(yīng)的位的值并根據(jù)這些值判斷出所述多個(gè)可編程邏輯清除已經(jīng)完成;i.從所述多個(gè)bit文件的串行數(shù)據(jù)流中各讀入一個(gè)bit;ii.控制器向寄存器組中與所述多個(gè)可編程邏輯器件的時(shí)鐘信號(hào)對(duì)應(yīng)的位寫(xiě)入第一值,形成時(shí)鐘信號(hào)CCLK的第一沿;iii.控制器向寄存器組中與所述多個(gè)可編程邏輯器件的數(shù)據(jù)輸入端對(duì)應(yīng)的位分別寫(xiě)入所讀入的bit;iv.控制器分別向寄存器組中與所述多個(gè)可編程寄存器的時(shí)鐘信號(hào)對(duì)應(yīng)的位寫(xiě)入第二值產(chǎn)生時(shí)鐘信號(hào)的第二沿;v.重復(fù)(i)-(iv),直到文件全部讀完,在這期間先讀完的文件則先退出寫(xiě)入;讀取寄存器組中與所述多個(gè)可編程寄存器的表示加載完成的位的值,看是否變成表示加載完成的值;若是,則表示相應(yīng)的可編程邏輯器件加載成功。
全文摘要
本發(fā)明公開(kāi)了一種通過(guò)擴(kuò)展IO的方法來(lái)對(duì)多個(gè)PLD進(jìn)行在線加載的方法和裝置,對(duì)一個(gè)PLD也適用。該在線加載的裝置包括一個(gè)控制器,多個(gè)可被加載的可編程邏輯器件,以及一個(gè)擴(kuò)展寄存器組,所述寄存器組連接在控制器和多個(gè)可編程邏輯器件之間。這種裝置可以避免對(duì)CPU管腳的額外需求,同時(shí)由于寄存器可以保持?jǐn)?shù)據(jù)因此可以避免管腳復(fù)用帶來(lái)的軟件互斥問(wèn)題。該方法簡(jiǎn)單靈活,可以降低系統(tǒng)復(fù)雜度提供穩(wěn)定性。
文檔編號(hào)G06F13/00GK1514377SQ0314259
公開(kāi)日2004年7月21日 申請(qǐng)日期2003年6月13日 優(yōu)先權(quán)日2003年6月13日
發(fā)明者魏昊, 魏 昊 申請(qǐng)人:Ut斯達(dá)康(中國(guó))有限公司