两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

Jtag下載方式下fpga邏輯代碼的下載方法

文檔序號:6339127閱讀:524來源:國知局
專利名稱:Jtag下載方式下fpga邏輯代碼的下載方法
技術(shù)領(lǐng)域
本發(fā)明涉及現(xiàn)場可編程門陣列(FPGA,F(xiàn)ield Programmable Gate Array)配置技 術(shù),尤其涉及一種聯(lián)合測試行動組(JTAG,Joint Test Action Group)下載方式下FPGA邏 輯代碼的下載方法。
背景技術(shù)
FPGA是一種電路邏輯器件,同時具有靜態(tài)可重復(fù)編程和在線動態(tài)重構(gòu)特性。這種 電路功能表現(xiàn)為硬件但是卻可以像軟件一樣通過編程的方式來修改,從而大大提高了電子 系統(tǒng)的通用性和設(shè)計靈活性。FPGA的特性使得它在電路系統(tǒng)中廣泛使用,在一塊電路板或 者一個陣列系統(tǒng)中常常集成了幾個甚至數(shù)十個FPGA。在多FPGA處理系統(tǒng)中,常常需要系統(tǒng)利用CPU完成對多片F(xiàn)PGA邏輯代碼的下載。 當(dāng)需要下載多片F(xiàn)PGA時,通常使用兩種方法。一種是采用聯(lián)合測試行動組(JTAG,Joint Test Action Group)菊花鏈結(jié)構(gòu),如圖1所示,將多個FPGA用菊花鏈連接起來串行下載。 該方法的缺點(diǎn)是各個FPGA的下載需要獨(dú)占數(shù)據(jù)鏈路,下載的總時間是下載單個FPGA時間 之和;并且如果菊花鏈中的某一片F(xiàn)PGA損壞,便可能導(dǎo)致整條菊花鏈上的器件加載失??; 此外,從信號質(zhì)量以及信號延時上考慮也限制了菊花鏈所能掛載器件的數(shù)量。另一種方法 是將每個FPGA的JTAG信號并聯(lián)起來進(jìn)行下載,其結(jié)構(gòu)如圖2所示,但這種方法適用于相同 邏輯代碼的FPGA下載,如果要給不同型號的FPGA下載邏輯代碼,則需要占用CPU的其他口 線。而且,CPU只能同時處理一個測試數(shù)據(jù)輸出(TDO)信號,也就是說如果多片F(xiàn)PGA中有 個別FPGA下載失敗,無法直接通過JTAG方式找到有問題的FPGA。在當(dāng)前的復(fù)雜陣列系統(tǒng)如背板系統(tǒng)和層疊板系統(tǒng)中,出現(xiàn)多塊FPGA芯片、多種型 號FPGA、同種型號FPGA不同代碼的例子也越來越多,以上的兩種配置方式均無法滿足新系 統(tǒng)的調(diào)試需求。對于產(chǎn)品的生產(chǎn)和維護(hù)來說,譬如對于一件組裝完成的產(chǎn)品進(jìn)行測試或者升級代 碼版本,拆開產(chǎn)品或者使用調(diào)試用的下載設(shè)備都是廣受工程人員詬病的,因?yàn)檫@樣面臨著 時間風(fēng)險和保密風(fēng)險。因此,目前業(yè)界迫切需要一種更加方便快捷的FPGA下載方式,在時間、成本和靈 活性上取得優(yōu)勢。

發(fā)明內(nèi)容
本發(fā)明提供了一種JTAG下載方式下FPGA邏輯代碼的下載方法,用于對2片以上 相同或者不同型號的FPGA下載任意(相同或不同)的邏輯代碼,尤其適用于對多型號多 FPGA下載多套邏輯代碼,能夠有效減少下載時間,從而提高FPGA調(diào)試效率。一種JTAG下載方式下FPGA邏輯代碼的下載方法,包括(1)將CPU的通訊端口連接到CPLD的通訊端口,形成CPU和CPLD的通訊口線;將由CPU端口所模擬的JTAG下載信號中的TMS (測試模式選擇)信號、TCK (測試時鐘輸入)信號、TDO(測試數(shù)據(jù)輸出)信號和TDI (測試數(shù)據(jù)輸入)信號連接到一片 CPLD (Complex Programmable Logic Device,復(fù)雜可編程邏輯器件)中;所述的CPLD的若 干JTAG下載信號端口標(biāo)記為TMS_x,TD0_x, TCK_x和TDI_x,其中,χ為FPGA在該系統(tǒng)中的 編號,分別獨(dú)立連接到編號為χ的FPGA的相應(yīng)JTAG下載信號端口上;所述的CPLD中,根據(jù) 與CPLD相連的各FPGA的編號、類型和邏輯代碼的信息,載入相應(yīng)的CPLD代碼;所述的CPLD 代碼是經(jīng)過嚴(yán)密試驗(yàn)證明了的,在系統(tǒng)設(shè)計的生命周期中無需更改;
(2) CPU通過所述的通訊口線向CPLD寫入寄存器值,CPLD據(jù)此來判斷各FPGA當(dāng)前 是否進(jìn)行邏輯代碼下載對于系統(tǒng)中某個編號為χ的待下載邏輯代碼的FPGA而言,如果其 在被選擇下載之列,CPLD將來自CPU端口的TMS、TCK和TDI信號直接輸出到該FPGA的對 應(yīng)JTAG下載信號端口(TMS_x,TCK_x和TDI_x),將邏輯代碼下載到該FPGA ;否則,CPLD與 該FPGA的對應(yīng)JTAG下載信號端口連接的管腳保持高阻狀態(tài);同時,CPLD對每個TCK周期內(nèi)被選擇進(jìn)行下載的FPGA輸出的TDO信號的輸出電平 進(jìn)行檢測,并設(shè)定參與下載的FPGA總數(shù)M的一半為一致性檢測標(biāo)準(zhǔn),當(dāng)處于相同輸出電平 的TDO信號數(shù)目超過M/2時,認(rèn)為該電平為當(dāng)前TCK周期內(nèi)TDO信號的正確輸出電平,并將 其對應(yīng)的FPGA編號記為正常下載的FPGA編號,然后將該電平輸出到CPU的TDO信號端口, 并記錄不具有正確輸出電平的TDO信號所對應(yīng)的FPGA編號,作為異常下載的FPGA編號;如 果參與下載的FPGA總數(shù)M = 1,則不進(jìn)行上述一致性檢測操作,CPLD將該FPGA輸出的TDO 信號電平輸出到CPU的TDO信號端口 ;(3)下載過程結(jié)束后,CPU通過通訊口線讀取CPLD的寄存器信息,判斷各FPGA下 載是否成功對于正常下載的FPGA編號標(biāo)記的FPGA,認(rèn)為其下載成功,對于異常下載的 FPGA編號標(biāo)記的FPGA,認(rèn)為其下載失??;

如果下載失敗,CPU讀取CPLD寄存器信息中記錄的異常下載的FPGA編號,對這些 FPGA分別重復(fù)步驟(2)的操作,記錄重復(fù)操作步驟中異常下載的FPGA編號,兩次均為異常 下載的FPGA編號所對應(yīng)的FPGA被認(rèn)為是故障FPGA,不能正確下載邏輯編碼;如果下載成功,CPU通過通訊口線向CPLD寫入寄存器值,將所有JTAG下載信號端 口置為高阻態(tài)。優(yōu)選的技術(shù)方案中,連接CPU的通訊端口和CPLD的通訊端口之間的CPU和CPLD 的通訊口線采取I2c,SPI或其他通訊協(xié)議。本發(fā)明中,依靠CPLD的可編程邏輯特性,根據(jù)CPU由通訊口線發(fā)送的配置命令,將 來自CPU的JTAG下載信號端口和相應(yīng)的FPGA的JTAG下載信號端口從邏輯上選通相連,同 時對其他的FPGA的JTAG下載信號端口作高阻處理,從而實(shí)現(xiàn)將邏輯代碼下載到選通的各 FPGA。本發(fā)明中,在邏輯代碼下載之前,由CPU通過通訊口線將當(dāng)前待下載的FPGA的序 號存入CPLD的編程FPGA序號寄存器;在邏輯代碼下載過程中,CPLD選通待下載的FPGA的 TMS、TCK、TDI信號,對TDO信號實(shí)施監(jiān)測與仲裁;在邏輯代碼下載完成之后,若再沒有其它 的操作,CPLD向CPU返回異常FPGA序號寄存器值,同時CPU通過通訊口線向CPLD發(fā)出指 令,關(guān)閉CPU到FPGA的邏輯路徑。這樣,即使CPU因異常狀態(tài)導(dǎo)致復(fù)位,也不會對FPGA的狀 態(tài)有任何影響,待CPU復(fù)位完成后,系統(tǒng)可立即恢復(fù)工作,提高了系統(tǒng)的安全性和可靠性。本發(fā)明中,由于并行下載的FPGA可能有多片,而CPU能夠處理的TDO只有一個,因此,采取CPLD對TDO信號 進(jìn)行監(jiān)測與仲裁,從而檢測下載異常的FPGA并保證其它FPGA的正 常下載;同時,CPU可以獲取各個FPGA的具體下載狀態(tài),進(jìn)而可對指定編號的單個異常FPGA 進(jìn)行進(jìn)一步操作(重新下載和驗(yàn)證邏輯代碼)以確定問題所在。本發(fā)明中,在并行下載的情況下,在大大減少下載所需時間的同時,還提供代碼驗(yàn) 證的功能。本發(fā)明適用于為單板、背板系統(tǒng)和層疊立體結(jié)構(gòu)電路板上多種型號FPGA下載不 同代碼,對于同型號芯片數(shù)量較多的情形尤其有速度優(yōu)勢。本發(fā)明也適用于不同廠家芯片 的混合設(shè)計。綜上所述,本發(fā)明中,通過將JTAG的下載信號端口和各個FPGA的JTAG下載信號 端口通過一片CPLD做選通處理,實(shí)現(xiàn)了邏輯代碼的并行下載,從而明顯減少下載相同邏輯 代碼時所需的時間,提高了 FPGA的下載效率;同時,利用寄存器實(shí)現(xiàn)對CPLD內(nèi)部選通邏輯 的控制,還使本下載方法具有了更高的靈活性和冗余度,并且可以很方便的支持在線仿真 器的掛載。此外,CPLD內(nèi)部對同時下載的所有TDO進(jìn)行檢測與仲裁,還提供了對各FPGA并 行下載過程的監(jiān)測,保證各FPGA下載過程的順利完成。相對于現(xiàn)有技術(shù),本發(fā)明具有以下有益的技術(shù)效果本發(fā)明下載方法,既可以實(shí)現(xiàn)多片F(xiàn)PGA相同邏輯代碼的并行下載,大大減少下載 時間,也可以對指定FPGA下載所指定的邏輯代碼。該方法相比菊花鏈的下載方法具有更快 的下載速度,同時對于簡單并聯(lián)JTAG 口線的下載方法,具有更佳的靈活性。采用本發(fā)明下載方法,即使有部分FPGA下載異常,下載進(jìn)程也不會輕易中止,可 以確保其他FPGA下載成功,因此系統(tǒng)中任何FPGA的損壞都不影響其他FPGA的下載,對于 冗余度較高的系統(tǒng)而言,意味著多數(shù)FPGA下載是成功的,系統(tǒng)仍然可以投入運(yùn)行,這對于 允許一定冗余的系統(tǒng)提高可靠性具有重要意義。本發(fā)明下載方法,連接到各個FPGA的信號都經(jīng)過CPLD的獨(dú)立驅(qū)動,可以保證良好 的信號質(zhì)量,比其他下載方法適合于需要經(jīng)過接插件且具有較長走線的背板系統(tǒng)和層疊板 系統(tǒng)。如果選通指定的單個FPGA,本方法還可以在CPU端口所模擬的JTAG信號上直接掛載 仿真器對任一指定的FPGA進(jìn)行仿真,這樣對于背板系統(tǒng)和層疊板系統(tǒng),無需拆板,可以最 大限度地保持完整狀態(tài),保存故障現(xiàn)場,利于調(diào)試的進(jìn)行。


圖1為現(xiàn)有技術(shù)采用菊花鏈結(jié)構(gòu)在JTAG下載方式下載FPGA邏輯代碼的示意圖。圖2為現(xiàn)有技術(shù)采用并聯(lián)結(jié)構(gòu)在JTAG下載方式下載FPGA邏輯代碼的示意圖。圖3為實(shí)施本發(fā)明的下載方法在JTAG下載方式下載FPGA邏輯代碼的示意圖。
具體實(shí)施例方式下面結(jié)合實(shí)施例和附圖來詳細(xì)說明本發(fā)明,但本發(fā)明并不僅限于此。以下將以含有η片F(xiàn)PGA的系統(tǒng)為例來詳細(xì)說明本發(fā)明的下載方法,其中,F(xiàn)PGA以 選用Xilinx公司的FPGA芯片為例。如圖3所示,一種JTAG下載方式FPGA邏輯代碼的下載方法,包括(1)將CPU的通訊端口連接到CPLD的通訊端口,形成CPU和CPLD的通訊口線,采 用I2C總線協(xié)議;
將由CPU端口所模擬的JTAG下載信號中的TMS (測試模式選擇)信號、TCK (測試時鐘輸入)信號、TDO(測試數(shù)據(jù)輸出)信號和TDI (測試數(shù)據(jù)輸入)信號連接到一塊 CPLD (Complex Programmable Logic Device,復(fù)雜可編程邏輯器件)中;其中,CPLD的若干JTAG下載信號端口標(biāo)記為TMS_x,TD0_x, TCK_x和TDI_x,其中, χ為FPGA在該系統(tǒng)中的編號,選自1 η中的自然數(shù),分別獨(dú)立連接到編號為χ的FPGA的 相應(yīng)JTAG下載信號端口上,這樣FPGA相互之間的下載過程是獨(dú)立的,不會相互影響。對于 相同的邏輯代碼,把相應(yīng)的各FPGA上的JTAG下載信號端口和CPU的的JTAG下載信號端口 相連,將邏輯代碼并行下載到各個FPGA。CPLD中,根據(jù)與CPLD相連的各FPGA的編號、類型和邏輯代碼的信息,載入相應(yīng)的 CPLD代碼;所述的CPLD代碼是經(jīng)過嚴(yán)密試驗(yàn)證明了的,在系統(tǒng)設(shè)計的生命周期中無需更改。CPU通過通用輸入輸出端口(GPIO)模擬JTAG下載時序進(jìn)行操作。CPU的信號端 口連接到 CPLD 上,對應(yīng)為 TMS_in,TCK_in, TDI_in, TD0_in。(2) CPU通過所述的通訊口線向CPLD寫入寄存器值,CPLD據(jù)此來判斷各FPGA當(dāng)前 是否進(jìn)行邏輯代碼下載對于系統(tǒng)中某個編號為χ的待下載邏輯代碼的FPGA而言,如果其 在被選擇下載之列,CPLD將來自CPU端口的TMS、TCK和TDI信號直接輸出到該FPGA的對 應(yīng)JTAG下載信號端口(TMS_x,TCK_x和TDI_x),將邏輯代碼下載到該FPGA ;否則,CPLD與 該FPGA的對應(yīng)JTAG下載信號端口連接的管腳保持高阻狀態(tài);同時,CPLD對每個TCK周期內(nèi)被選擇進(jìn)行下載的FPGA輸出的TDO信號的輸出電平 進(jìn)行檢測,并設(shè)定參與下載的FPGA總數(shù)M的一半為一致性檢測標(biāo)準(zhǔn),當(dāng)處于相同輸出電平 的TDO信號數(shù)目超過M/2時,認(rèn)為該電平為當(dāng)前TCK周期內(nèi)TDO信號的正確輸出電平,并將 其對應(yīng)的FPGA編號記為正常下載的FPGA編號,然后將該電平輸出到CPU的TDO信號端口, 并記錄不具有正確輸出電平的TDO信號所對應(yīng)的FPGA編號,作為異常下載的FPGA編號;如 果參與下載的FPGA中,超過一半的FPGA下載功能出現(xiàn)異常、導(dǎo)致這些FPGA輸出的TDO信號 不正確,此時CPLD由于仍然以具有相同輸出電平的數(shù)目超過M/2的TDO信號電平作為參考 電平并輸出到CPU,該電平可能與當(dāng)前TCK周期內(nèi)TDO信號的正確輸出信號電平不一致,此 時CPU將檢測到TDO信號異常并立即終止下載過程,給出此次下載完全失敗的報警信息;如果參與下載的FPGA總數(shù)M = 1,則不進(jìn)行上述一致性檢測操作,CPLD將該FPGA 輸出的TDO信號電平輸出到CPU的TDO信號端口 ;(3)下載過程結(jié)束后,CPU通過通訊口線讀取CPLD的寄存器信息,判斷各FPGA下 載是否成功對于正常下載的FPGA編號標(biāo)記的FPGA,認(rèn)為其下載成功,對于異常下載的 FPGA編號標(biāo)記的FPGA,認(rèn)為其下載失敗;如果下載失敗,CPU讀取CPLD寄存器信息中記錄的異常下載的FPGA編號,對這些 FPGA分別重復(fù)步驟(2)的操作,記錄重復(fù)操作步驟中異常下載的FPGA編號,兩次均為異常 下載的FPGA編號所對應(yīng)的FPGA被認(rèn)為是故障FPGA,不能正確下載邏輯編碼;如果下載成功,CPU通過通訊口線向CPLD寫入寄存器值,將所有JTAG下載信號端 口置為高阻態(tài)。
權(quán)利要求
1.一種JTAG下載方式下FPGA邏輯代碼的下載方法,其特征在于,包括(1)將CPU的通訊端口連接到CPLD的通訊端口,形成CPU和CPLD的通訊口線;將由CPU端口所模擬的JTAG下載信號中的TMS信號、TCK信號、TDO信號和TDI信號連 接到一塊CPLD中;所述的CPLD的若干JTAG下載信號端口標(biāo)記為TMS_x,TD0_x, TCK_x和 TDI_x,其中,χ為FPGA在該系統(tǒng)中的編號,分別獨(dú)立連接到編號為χ的FPGA的相應(yīng)JTAG 下載信號端口上;所述的CPLD中,根據(jù)與CPLD相連的各FPGA的編號、類型和邏輯代碼的信 息,載入相應(yīng)的CPLD代碼;(2)CPU通過所述的通訊口線向CPLD寫入寄存器值,CPLD據(jù)此來判斷各FPGA當(dāng)前是否 進(jìn)行邏輯代碼下載對于系統(tǒng)中某個待下載邏輯代碼的FPGA而言,如果其在被選擇下載之 列,CPLD將來自CPU端口的TMS、TCK和TDI信號直接輸出到該FPGA的對應(yīng)JTAG下載信號 端口,將邏輯代碼下載到該FPGA ;否則,CPLD與該FPGA的對應(yīng)JTAG下載信號端口連接的管 腳保持高阻狀態(tài);同時,CPLD對每個TCK周期內(nèi)被選擇進(jìn)行下載的FPGA輸出的TDO信號的輸出電平進(jìn) 行檢測,并設(shè)定參與下載的FPGA總數(shù)M的一半為一致性檢測標(biāo)準(zhǔn),當(dāng)處于相同輸出電平的 TDO信號數(shù)目超過M/2時,認(rèn)為該電平為當(dāng)前TCK周期內(nèi)TDO信號的正確輸出電平,并將其 對應(yīng)的FPGA編號記為正常下載的FPGA編號,然后將該電平輸出到CPU的TDO信號端口,并 記錄不具有正確輸出電平的TDO信號所對應(yīng)的FPGA編號,作為異常下載的FPGA編號;如果 參與下載的FPGA總數(shù)M = 1,則不進(jìn)行上述一致性檢測操作,CPLD將該FPGA輸出的TDO信 號電平輸出到CPU的TDO信號端口 ;(3)下載過程結(jié)束后,CPU通過通訊口線讀取CPLD的寄存器信息,判斷各FPGA下載是 否成功對于正常下載的FPGA編號標(biāo)記的FPGA,認(rèn)為其下載成功,對于異常下載的FPGA編 號標(biāo)記的FPGA,認(rèn)為其下載失敗;如果下載失敗,CPU讀取CPLD寄存器信息中記錄的異常下載的FPGA編號,對這些FPGA 分別重復(fù)步驟(2)的操作,記錄重復(fù)操作步驟中異常下載的FPGA編號,兩次均為異常下載 的FPGA編號所對應(yīng)的FPGA被認(rèn)為是故障FPGA,不能正確下載;如果下載成功,CPU通過通訊口線向CPLD寫入寄存器值,將所有JTAG下載信號端口置 為高阻態(tài)。
2.如權(quán)利要求1所述的JTAG下載方式下FPGA邏輯代碼的下載方法,其特征在于,所述 的通訊口線采取GPIO、I2C總線協(xié)議或SPI總線協(xié)議。
全文摘要
本發(fā)明公開了一種JTAG下載方式下FPGA邏輯代碼的下載方法,在支持相同F(xiàn)PGA邏輯代碼高速并行下載的同時,允許對同型號的FPGA配置不同的代碼,同時提供對各FPGA并行下載過程的監(jiān)測。其中,所述下載方法包括將由CPU端口所模擬的JTAG下載信號中的TMS、TCK、TDO和TDI信號輸入到CPLD,從CPLD引出獨(dú)立的JTAG下載信號到各個FPGA,將邏輯代碼下載到FPGA。通過對各TDO信號的監(jiān)測與仲裁,使得系統(tǒng)具有了更高的自我診斷功能和冗余度。
文檔編號G06F13/38GK102043747SQ201010594949
公開日2011年5月4日 申請日期2010年12月17日 優(yōu)先權(quán)日2010年12月17日
發(fā)明者歐進(jìn)利, 蔣榮欣, 陳耀武 申請人:浙江大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
龙岩市| 白银市| 台江县| 安溪县| 乡宁县| 翼城县| 石首市| 鄱阳县| 进贤县| 林芝县| 营口市| 东光县| 桦川县| 雷州市| 长兴县| 梨树县| 常熟市| 彰化县| 东乌珠穆沁旗| 麻城市| 苏尼特右旗| 峨边| 道孚县| 隆化县| 光泽县| 盐城市| 革吉县| 芮城县| 潼南县| 本溪市| 蕲春县| 崇信县| 灵寿县| 松桃| 石台县| 桃江县| 英山县| 华池县| 嘉禾县| 宁国市| 天津市|