專利名稱:一種用于fpga配置的prom電路架構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種PROM電路架構(gòu),特別是一種針對(duì)FPGA配置應(yīng)用而優(yōu)化了的PROM電路架構(gòu),屬于集成電路領(lǐng)域。
背景技術(shù):
圖I是一個(gè)現(xiàn)場可編程門陣列(FPGA,Field Programmable Gate Array)的配置接口示意圖。在此處為了方便示意FPGA100器件的配置原理,僅僅將其與配置相關(guān)的接口信號(hào)標(biāo)注了出來,主要包括配置數(shù)據(jù)輸入信號(hào)DIN[7:0]、模式選擇引腳MODE PINS、FPGA配置時(shí)鐘信號(hào)CCLK、配置完成信號(hào)DONE、配置初始化信號(hào)INITn、編程使能信號(hào)PROGRAMn、測(cè)試數(shù)據(jù)輸入信號(hào)TDI、測(cè)試模式選擇信號(hào)TMS、測(cè)試時(shí)鐘信號(hào)TCK和測(cè)試數(shù)據(jù)輸出信號(hào)TD0。
·
針對(duì)FPGA100器件的配置,一般存在邊界掃描模式、串行模式和并行模式三種配置方式。在邊界掃描模式下,F(xiàn)PGA100器件與相應(yīng)的配置存儲(chǔ)器件通過各自邊界掃描電路的TAP接口級(jí)聯(lián)形成串行掃描鏈路,配置數(shù)據(jù)從DIN
端送入FPGA100器件;在串行模式下,數(shù)據(jù)輸入信號(hào)DIN[7:0]的第一位DIN
會(huì)作為FPGA100器件配置所需的串行數(shù)據(jù)輸入端;在并行模式下,數(shù)據(jù)輸入信號(hào)DIN[7:0]會(huì)作為FPGA100器件配置所需的并行數(shù)據(jù)輸入信號(hào)。傳統(tǒng)的FLASH存儲(chǔ)器無法直接應(yīng)用于FPGA100器件的配置,必須通過增加特定功能的外圍電路,以達(dá)到適應(yīng)FPGA100器件不同配置模式需求的目的。在存儲(chǔ)容量上,直接采用大容量的FLASH存儲(chǔ)器不利于減小芯片體積外形,也不利于降低封裝成本,因此設(shè)計(jì)一款可通過級(jí)聯(lián)方式進(jìn)行容量擴(kuò)容的PROM芯片就顯得非常有意義。在應(yīng)用上,現(xiàn)今FPGA100器件大多都支持IEEE 1149. I或者IEEE 1532邊界掃描標(biāo)準(zhǔn),因而有必要將IEEE 1149. I及IEEE 1532邊界掃描標(biāo)準(zhǔn)應(yīng)用于PROM芯片中邊界掃描電路的優(yōu)化設(shè)計(jì)當(dāng)中,以便擁有更靈活的應(yīng)用特性。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是克服現(xiàn)有技術(shù)的不足之處,提供一種針對(duì)FPGA配置應(yīng)用而優(yōu)化了的PROM電路架構(gòu),解決了傳統(tǒng)的FLASH存儲(chǔ)器無法直接滿足FPGA不同配置模式需求的問題,并且克服了單個(gè)PROM芯片存儲(chǔ)容量過小、不利于配置規(guī)模擴(kuò)充的問題。本發(fā)明的技術(shù)解決方案是一種用于FPGA配置的PROM電路架構(gòu),包括FLASH存儲(chǔ)器201、JTAG控制器202、FLASH控制器203、并串轉(zhuǎn)換電路204、時(shí)鐘復(fù)位電路205、上電復(fù)位電路206、晶振207和BIST控制器208 ;時(shí)鐘復(fù)位電路205給JTAG控制器202、FLASH控制器203、并串轉(zhuǎn)換電路204和BIST控制器208提供時(shí)鐘信號(hào)和復(fù)位信號(hào),同時(shí)時(shí)鐘復(fù)位電路205還給晶振207提供使能信號(hào),晶振207給時(shí)鐘復(fù)位電路205提供時(shí)鐘,上電復(fù)位電路206給時(shí)鐘復(fù)位電路205提供上電復(fù)位脈沖;
FLASH存儲(chǔ)器201、JTAG控制器202、并串轉(zhuǎn)換電路204和BIST控制器208均與FLASH控制器203連接并且進(jìn)行數(shù)據(jù)交互,F(xiàn)LASH存儲(chǔ)器201用于存儲(chǔ)FPGA配置數(shù)據(jù),JTAG控制器202通過FLASH控制器203對(duì)存儲(chǔ)在FLASH存儲(chǔ)器201中的FPGA配置數(shù)據(jù)進(jìn)行控制操作,通過FLASH控制器203與并串轉(zhuǎn)換電路204進(jìn)行數(shù)據(jù)交互,由并串轉(zhuǎn)換電路204進(jìn)行數(shù)據(jù)并串轉(zhuǎn)換并輸出給FPGA芯片進(jìn)行配置。所述JTAG控制器202包括TAP狀態(tài)機(jī)301、指令譯碼器302、指令寄存器303、多路選擇器304、幀數(shù)據(jù)寄存器305、幀地址寄存器306、邊界掃描寄存器307、旁路寄存器308、設(shè)備標(biāo)識(shí)寄存器309和用戶編碼寄存器310 ;JTAG控制器202的測(cè)試數(shù)據(jù)輸入信號(hào)同時(shí)連接到指令寄存器303、幀數(shù)據(jù)寄存器305、幀地址寄存器306、邊界掃描寄存器307、旁路寄存器308、設(shè)備標(biāo)識(shí)寄存器309和用戶編碼寄存器310的數(shù)據(jù)輸入端;幀數(shù)據(jù)寄存器305、幀地址寄存器306、邊界掃描寄存器
307、旁路寄存器308、設(shè)備標(biāo)識(shí)寄存器309和用戶編碼寄存器310分別接收指令譯碼器302輸出的寄存器使能信號(hào)用于寄存器數(shù)據(jù)通路選擇,JTAG控制器202通過幀數(shù)據(jù)寄存器305和幀地址寄存器306分別完成與FLASH控制器203之間的數(shù)據(jù)交互和地址交互;幀數(shù)據(jù)寄存器305、幀地址寄存器306、邊界掃描寄存器307、旁路寄存器308、設(shè)備標(biāo)識(shí)寄存器309和用戶編碼寄存器310的數(shù)據(jù)輸出端同時(shí)與多路選擇器304的一個(gè)輸入端相連,多路選擇器304的另一個(gè)輸入端與指令寄存器303的數(shù)據(jù)輸出端相連,多路選擇器304的輸出信號(hào)即為JTAG控制器202的測(cè)試數(shù)據(jù)輸出信號(hào);多路選擇器304的信號(hào)選擇端與TAP狀態(tài)機(jī)301輸出的選擇信號(hào)相連;指令寄存器303還接收TAP狀態(tài)機(jī)301輸出的指令控制信號(hào),同時(shí)指令寄存器303輸出指令數(shù)據(jù)信號(hào)給指令譯碼器302 ;指令譯碼器302接收TAP狀態(tài)機(jī)301輸出的狀態(tài)控制信號(hào),并與FLASH控制器203進(jìn)行控制信號(hào)的交互。所述FLASH控制器203包括寫控制器501、寫接口電路502、讀控制器503、讀接口電路504、擦除控制器505、擦除接口電路506、配置控制器507和緩存508 ;時(shí)鐘復(fù)位電路205提供的工作時(shí)鐘信號(hào)同時(shí)連接到寫控制器501的時(shí)鐘端和擦除控制器505的時(shí)鐘端,時(shí)鐘復(fù)位電路205提供的同步復(fù)位信號(hào)同時(shí)連接到寫控制器501的復(fù)位端、讀控制器503的復(fù)位端和擦除控制器505的復(fù)位端;讀控制器503的時(shí)鐘端與時(shí)鐘復(fù)位電路205提供的JTAG時(shí)鐘信號(hào)相連,配置控制器507的時(shí)鐘端與時(shí)鐘復(fù)位電路205提供的配置時(shí)鐘信號(hào)相連,配置控制器507的復(fù)位端與外部輸入的輸出使能復(fù)位信號(hào)相連;FLASH控制器203與JTAG控制器202或并串轉(zhuǎn)換電路204之間進(jìn)行交互的數(shù)據(jù)和地址均存放在緩存508之中;寫控制器501和讀控制器503均通過緩存508與JTAG控制器202連接,并通過緩存508與JTAG控制器202之間進(jìn)行數(shù)據(jù)交互和地址交互;配置控制器507通過緩存508與并串轉(zhuǎn)換電路204連接,并通過緩存508與并串轉(zhuǎn)換電路204之間進(jìn)行數(shù)據(jù)交互和地址交互;寫控制器501、讀控制器503、擦除控制器505和配置控制器507直接與JTAG控制器202連接進(jìn)行控制信號(hào)的交互,配置控制器507還直接與并串轉(zhuǎn)換電路204連接進(jìn)行控制信號(hào)的交互;寫控制器501、讀控制器503和擦除控制器505分別依次通過寫接口電路502、讀接口電路504和擦除接口電路506與FLASH存儲(chǔ)器201連接并進(jìn)行交互JTAG控制器202通過FLASH控制器203中的配置控制器507將FLASH存儲(chǔ)器201中存儲(chǔ)的FPGA配置數(shù)據(jù)通過緩存508與并串轉(zhuǎn)換電路204進(jìn)行交互。所述寫控制器501的具體工作方式為在時(shí)鐘復(fù)位電路205提供的工作時(shí)鐘信號(hào)和同步復(fù)位信號(hào)的作用下,寫控制器501進(jìn)入狀態(tài)601 ;進(jìn)入狀態(tài)601之后,在所述工作時(shí)鐘信號(hào)和JTAG控制器202的控制信號(hào)的作用下,工作步驟依次為狀態(tài)602、狀態(tài)603、狀態(tài)604和狀態(tài)605 ;進(jìn)入狀態(tài)605之后,若當(dāng)前寫次數(shù)未達(dá)到預(yù)定最大寫入次數(shù)則進(jìn)入狀態(tài)606,否則進(jìn)入狀態(tài)607 ;進(jìn)入狀態(tài)606之后,若完成更新緩存過程,則寫控制器501進(jìn)入狀態(tài)603 ;所述狀態(tài)601為寫入初始化過程;
·
所述狀態(tài)602為取地址及數(shù)據(jù)過程,該狀態(tài)下寫控制器501從緩存508中取出用于所述FLASH存儲(chǔ)器201寫入的數(shù)據(jù)及相關(guān)地址信息;所述狀態(tài)603為開始寫過程,即寫控制器501通過所述寫接口電路502開始向所述FLASH存儲(chǔ)器201寫入數(shù)據(jù)的準(zhǔn)備過程;所述狀態(tài)604為等待過程,即寫控制器501將從緩存508中取出的數(shù)據(jù)通過所述寫接口電路502寫入所述FLASH存儲(chǔ)器201的過程;所述狀態(tài)605為寫計(jì)數(shù)過程,該狀態(tài)下寫控制器501進(jìn)行寫次數(shù)統(tǒng)計(jì),并與預(yù)定最大寫次數(shù)進(jìn)行比較,該最大寫次數(shù)與緩存508的容量相關(guān);所述狀態(tài)606為更新緩存過程,該狀態(tài)下緩存508從所述JTAG控制器202的幀地址寄存器306和幀數(shù)據(jù)寄存器305中更新地址及數(shù)據(jù);所述狀態(tài)607為完成過程,該狀態(tài)標(biāo)識(shí)所述FLASH存儲(chǔ)器201的數(shù)據(jù)寫入過程順利完成。所述讀控制器503的具體工作步驟為在JTAG時(shí)鐘信號(hào)和同步復(fù)位信號(hào)的作用下,讀控制器503進(jìn)入狀態(tài)611 ;進(jìn)入狀態(tài)611之后,在JTAG時(shí)鐘信號(hào)和JTAG控制器202的控制信號(hào)的作用下,工作步驟依次為狀態(tài)612、狀態(tài)613、狀態(tài)614和狀態(tài)615 ;進(jìn)入狀態(tài)615之后,若當(dāng)前讀次數(shù)未達(dá)到預(yù)定最大讀次數(shù)則進(jìn)入狀態(tài)616,否則進(jìn)入狀態(tài)617 ;進(jìn)入狀態(tài)616之后,若完成更新地址過程,則讀控制器503進(jìn)入狀態(tài)613 ; 所述狀態(tài)611為讀初始化過程;所述狀態(tài)612為取地址過程,該狀態(tài)下讀控制器503從所述JTAG控制器202的幀地址寄存器306中取出用于讀出所述FLASH存儲(chǔ)器201中所存儲(chǔ)數(shù)據(jù)的起始地址信息;所述狀態(tài)613為開始讀過程,即讀控制器503通過所述讀接口電路504開始從所述FLASH存儲(chǔ)器201讀出數(shù)據(jù)的準(zhǔn)備過程;所述狀態(tài)614為等待過程,即讀控制器503通過讀接口電路504從所述FLASH存儲(chǔ)器201讀出數(shù)據(jù),并寫入所述幀數(shù)據(jù)寄存器305的過程;所述狀態(tài)615為讀計(jì)數(shù)過程,該狀態(tài)下讀控制器503進(jìn)行讀次數(shù)統(tǒng)計(jì),并與預(yù)定最大讀次數(shù)進(jìn)行比較;所述狀態(tài)616為更新地址過程,該狀態(tài)下讀控制器503從所述JTAG控制器202的幀地址寄存器306中更新地址信息;
所述狀態(tài)617為完成過程,該狀態(tài)標(biāo)識(shí)所述FLASH存儲(chǔ)器201的數(shù)據(jù)讀出過程順利完成。所述擦除控制器505的具體工作步驟為在工作時(shí)鐘信號(hào)和同步復(fù)位信號(hào)的作用下,擦除控制器505進(jìn)入狀態(tài)621 ;進(jìn)入狀態(tài)621之后,在工作時(shí)鐘信號(hào)和JTAG控制器202的控制信號(hào)的作用下,工作步驟依次為狀態(tài)622和狀態(tài)623 ;進(jìn)入狀態(tài)623之后,若擦除未完成則繼續(xù)保持狀態(tài)623,否則進(jìn)入狀態(tài)624 ;所述狀態(tài)621為擦除初始化過程;所述狀態(tài)622為開始擦除過程,即擦除控制器505通過所述擦除接口電路506開始對(duì)所述FLASH存儲(chǔ)器201進(jìn)行擦除的準(zhǔn)備過程;
·
所述狀態(tài)623為等待過程,即擦除控制器505通過所述擦除接口電路506對(duì)所述FLASH存儲(chǔ)器201進(jìn)行擦除的過程;所述狀態(tài)624為完成過程,該狀態(tài)標(biāo)識(shí)所述FLASH存儲(chǔ)器201的數(shù)據(jù)擦除過程順利完成。所述配置控制器507的具體工作步驟為在配置時(shí)鐘信號(hào)和輸出使能復(fù)位信號(hào)的作用下,配置控制器507進(jìn)入狀態(tài)631 ;進(jìn)入狀態(tài)631之后,在配置時(shí)鐘信號(hào)和JTAG控制器202的控制信號(hào)的作用下,工作步驟依次為狀態(tài)632和狀態(tài)633 ;進(jìn)入狀態(tài)633之后,若當(dāng)前與配置相關(guān)的地址計(jì)數(shù)次數(shù)未達(dá)到預(yù)定最大次數(shù)則返回狀態(tài)632,否則進(jìn)入狀態(tài)634 ;所述狀態(tài)631為配置初始化過程;所述狀態(tài)632為發(fā)送地址過程,即配置控制器507通過所述FLASH存儲(chǔ)器201的地址信號(hào)端向所述FLASH存儲(chǔ)器201發(fā)送地址;所述狀態(tài)633為返回?cái)?shù)據(jù)過程,即所述FLASH存儲(chǔ)器201通過數(shù)據(jù)輸出信號(hào)端向配置控制器507輸出數(shù)據(jù),同時(shí)配置控制器507完成與所述并串轉(zhuǎn)換電路204之間控制信號(hào)交互,并通過緩存508完成與所述并串轉(zhuǎn)換電路204之間的數(shù)據(jù)交互和地址交互;該狀態(tài)下配置控制器507進(jìn)行配置地址計(jì)數(shù),并與預(yù)定最大計(jì)數(shù)次數(shù)進(jìn)行比較;所述狀態(tài)634為完成過程,該狀態(tài)標(biāo)識(shí)所述FLASH存儲(chǔ)器201的數(shù)據(jù)配置過程順利完成。所述并串轉(zhuǎn)換電路204的具體工作方式為在配置時(shí)鐘信號(hào)和轉(zhuǎn)換復(fù)位信號(hào)的作用下,并串轉(zhuǎn)換電路204進(jìn)入狀態(tài)701 ;進(jìn)入狀態(tài)701之后,在配置時(shí)鐘信號(hào)和配置控制器507的控制信號(hào)的作用下,進(jìn)入狀態(tài)702 ;進(jìn)入狀態(tài)702之后,若當(dāng)前數(shù)據(jù)轉(zhuǎn)換模式為將N位數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出,則進(jìn)入狀態(tài)703,若當(dāng)前數(shù)據(jù)轉(zhuǎn)換模式為將N位數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出,則進(jìn)入狀態(tài)707 ;進(jìn)入狀態(tài)703之后,在配置時(shí)鐘信號(hào)和配置控制器507的控制信號(hào)的作用下,工作步驟依次為狀態(tài)704和狀態(tài)705 ;進(jìn)入狀態(tài)705之后,若取數(shù)計(jì)數(shù)次數(shù)未達(dá)到預(yù)定最大次數(shù)則返回狀態(tài)703,否則進(jìn)入狀態(tài)706 ;進(jìn)入狀態(tài)707之后,在配置時(shí)鐘信號(hào)和配置控制器507的控制信號(hào)的作用下,工作步驟依次為狀態(tài)708和狀態(tài)709 ;進(jìn)入狀態(tài)709之后,若取數(shù)計(jì)數(shù)次數(shù)未達(dá)到預(yù)定最大次數(shù)則返回狀態(tài)707,否則進(jìn)入狀態(tài)710 ;所述取數(shù)計(jì)數(shù)次數(shù)是指將N位數(shù)據(jù)串行或者并行輸出的計(jì)數(shù)次數(shù),串行輸出的一次計(jì)數(shù)過程是指從N位數(shù)據(jù)中取一位數(shù)據(jù),并行輸出的一次計(jì)數(shù)過程是指從N位數(shù)據(jù)中取八位數(shù)據(jù)#為8的整數(shù)倍所述狀態(tài)701為并串轉(zhuǎn)換電路204初始化過程;所述狀態(tài)702為將位寬為N的數(shù)據(jù)取入并串轉(zhuǎn)換電路204的過程,該數(shù)據(jù)一次并行取入并串轉(zhuǎn)換電路204 ;所述狀態(tài)703為在將N位數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出模式下的數(shù)據(jù)準(zhǔn)備過程;所述狀態(tài)704為在將N位數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出模式下的數(shù)據(jù)移位過程,該狀態(tài)下并串轉(zhuǎn)換電路204進(jìn)行I位數(shù)據(jù)取數(shù)操作,同時(shí)串行輸出所取的數(shù)據(jù);所述狀態(tài)705為取數(shù)計(jì)數(shù)過程,該狀態(tài)下并串轉(zhuǎn)換電路204進(jìn)行取數(shù)次數(shù)統(tǒng)計(jì),并與預(yù)定最大次數(shù)N次進(jìn)行比較;所述狀態(tài)706為在將N位數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出模式下的數(shù)據(jù)轉(zhuǎn)換完成過·程,該狀態(tài)標(biāo)識(shí)并串轉(zhuǎn)換電路204順利將所取位寬為N的數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出;所述狀態(tài)707為在將N位數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出模式下的數(shù)據(jù)準(zhǔn)備過程;所述狀態(tài)708為在將N位數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出模式下的數(shù)據(jù)移位過程,該狀態(tài)下并串轉(zhuǎn)換電路204進(jìn)行8位數(shù)據(jù)取數(shù)操作,同時(shí)并行輸出所取的數(shù)據(jù);所述狀態(tài)708為取數(shù)計(jì)數(shù)過程,該狀態(tài)下并串轉(zhuǎn)換電路204進(jìn)行取數(shù)次數(shù)統(tǒng)計(jì),并于預(yù)定最大次數(shù)進(jìn)行比較,若N為8的整數(shù)倍,則該預(yù)定最大次數(shù)為N/8,若N不為8的整數(shù)倍,則該預(yù)定最大次數(shù)為N/8取整加I ;所述狀態(tài)710為在將N位數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出模式下的數(shù)據(jù)轉(zhuǎn)換完成過程,該狀態(tài)標(biāo)識(shí)并串轉(zhuǎn)換電路204順利將所取位寬為N的數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出。所述BIST控制器208的具體工作步驟為在內(nèi)建自測(cè)試時(shí)鐘信號(hào)和內(nèi)建自測(cè)試復(fù)位信號(hào)的作用下,BIST控制器208進(jìn)入狀態(tài)801 ;進(jìn)入狀態(tài)801之后,在內(nèi)建自測(cè)試時(shí)鐘信號(hào)和FLASH控制器203的控制信號(hào)作用下,工作步驟依次為狀態(tài)802、狀態(tài)803、狀態(tài)804和狀態(tài)805 ;進(jìn)入狀態(tài)805之后,BIST控制器208輸出內(nèi)建自測(cè)試標(biāo)識(shí)信號(hào)并返回狀態(tài)801 ;所述內(nèi)建自測(cè)試標(biāo)識(shí)信號(hào)表示自測(cè)試成功或者不成功;所述狀態(tài)801為BIST控制器208空閑狀態(tài);所述狀態(tài)802為BIST控制器208控制所述FLASH控制器203對(duì)FLASH存儲(chǔ)器201進(jìn)行數(shù)據(jù)擦除的過程;所述狀態(tài)803為BIST控制器208控制所述FLASH控制器203對(duì)FLASH存儲(chǔ)器201進(jìn)行數(shù)據(jù)寫的過程;所述狀態(tài)804為BIST控制器208控制所述FLASH控制器203對(duì)FLASH存儲(chǔ)器201進(jìn)行數(shù)據(jù)讀的過程;所述狀態(tài)805為內(nèi)建自測(cè)試完成過程,該狀態(tài)下BIST控制器208輸出內(nèi)建自測(cè)試標(biāo)識(shí)信號(hào)。本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是(I)與傳統(tǒng)的FLASH存儲(chǔ)器相比,采用本發(fā)明提供的PROM電路架構(gòu)可以滿足FPGA器件在邊界掃描模式、串行模式或者并行模式下的配置需求;(2)采用本發(fā)明提供的PROM電路架構(gòu)可以通過級(jí)聯(lián)的方式進(jìn)行容量擴(kuò)充,克服了單個(gè)PROM芯片存儲(chǔ)容量過小、不利于配置規(guī)模擴(kuò)充的問題;
(3)采用本發(fā)明提供的PROM電路架構(gòu)兼容IEEE 1149. I及IEEE 1532邊界掃描標(biāo)準(zhǔn),極大提升了面向FPGA應(yīng)用的靈活性。
圖I為FPGA器件配置接口示意圖;圖2為本發(fā)明PROM電路架構(gòu)的模塊詳圖;圖3為圖2中JTAG控制器的模塊詳圖;圖4為IEEE 1149. I標(biāo)準(zhǔn)所規(guī)定的TAP狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移圖;圖5為圖2中FLASH控制器的模塊詳圖; 圖6為圖5中寫控制器、讀控制器、擦除控制器和配置控制器的工作狀態(tài)轉(zhuǎn)移圖;圖7為圖2中并串轉(zhuǎn)換電路的工作狀態(tài)轉(zhuǎn)移圖;圖8為圖2中BIST控制器的工作狀態(tài)轉(zhuǎn)移圖;圖9為使用本發(fā)明PROM電路在邊界掃描模式下配置FPGA的電路結(jié)構(gòu)示意圖;圖10為使用本發(fā)明PROM電路在串行模式下配置FPGA的電路結(jié)構(gòu)示意圖;圖11為使用本發(fā)明PROM電路在并行模式下配置FPGA的電路結(jié)構(gòu)示意圖。
具體實(shí)施例方式圖I為FPGA 100器件配置接口示意圖,其與配置相關(guān)的接口信號(hào)主要包括配置數(shù)據(jù)輸入信號(hào)DIN[7:0]、模式選擇引腳MODE PINS、FPGA配置時(shí)鐘信號(hào)CCLK、配置完成信號(hào)DONE、配置初始化信號(hào)INITn、編程使能信號(hào)PROGRAMn、測(cè)試數(shù)據(jù)輸入信號(hào)TDI、測(cè)試模式選擇信號(hào)TMS、測(cè)試時(shí)鐘信號(hào)TCK和測(cè)試數(shù)據(jù)輸出信號(hào)TD0。其中,測(cè)試數(shù)據(jù)輸入信號(hào)TDI、測(cè)試模式選擇信號(hào)TMS、測(cè)試時(shí)鐘信號(hào)TCK和測(cè)試數(shù)據(jù)輸出信號(hào)TDO也是FPGA器件中邊界掃描電路所專用的信號(hào)。圖2為本發(fā)明PROM 200電路架構(gòu)的模塊詳圖,包括FLASH存儲(chǔ)器201、JTAG控制器202、FLASH控制器203、并串轉(zhuǎn)換電路204、時(shí)鐘復(fù)位電路205、上電復(fù)位電路206、晶振207和BIST控制器208。FLASH存儲(chǔ)器201的地址信號(hào)端Addr、片選信號(hào)端CE、數(shù)據(jù)輸入信號(hào)端DIN、輸出使能信號(hào)端OE和寫使能信號(hào)端WE與FLASH控制器203的輸出信號(hào)相連,F(xiàn)LASH存儲(chǔ)器201輸出的READY/BUSY信號(hào)RDYBSY和數(shù)據(jù)輸出信號(hào)DOUT連接到FLASH控制器203的輸入端;JTAG控制器202接收外部輸入的測(cè)試數(shù)據(jù)輸入信號(hào)TDI和測(cè)試模式選擇信號(hào)TMS,以及時(shí)鐘復(fù)位電路205輸出的JTAG時(shí)鐘信號(hào)TTCK和測(cè)試異步復(fù)位信號(hào)TRST,JTAG控制器202還通過寫控制總線2001、讀控制總線2002、擦除控制總線2003、配置控制總線2004、JTAG地址總線2005和JTAG數(shù)據(jù)交換總線2006完成與FLASH控制器203之間的數(shù)據(jù)交換,JTAG控制器202輸出測(cè)試數(shù)據(jù)輸出信號(hào)TDO給外部;FLASH控制器203接收時(shí)鐘復(fù)位電路205輸出的JTAG時(shí)鐘信號(hào)TTCK、配置時(shí)鐘信號(hào)ICCLK、工作時(shí)鐘信號(hào)WCLK和同步復(fù)位信號(hào)RST,并通過輸出控制總線2007、輸出地址總線2008和輸出數(shù)據(jù)交換總線2009完成與并串轉(zhuǎn)換電路204之間的數(shù)據(jù)交換,F(xiàn)LASH控制器203還通過內(nèi)建自測(cè)試控制總線2010完成與BIST控制器208之間的數(shù)據(jù)交換。并串轉(zhuǎn)換電路204分別與BIST控制器208輸出的內(nèi)建自測(cè)試標(biāo)識(shí)信號(hào)bist、第一控制使能信號(hào)CEn、時(shí)鐘復(fù)位電路205輸出的配置時(shí)鐘信號(hào)ICCLK和轉(zhuǎn)換復(fù)位信號(hào)PS_RST相連作為輸入信號(hào),并串轉(zhuǎn)換電路204輸出第一數(shù)據(jù)信號(hào)D
/BIST_D0NE、數(shù)據(jù)信號(hào)D [7:1]、第二控制使能信號(hào)CEO和配置信號(hào)CFn ;上電復(fù)位電路206為時(shí)鐘復(fù)位電路205提供上電復(fù)位脈沖P0R,時(shí)鐘復(fù)位電路205還接收測(cè)試時(shí)鐘信號(hào)TCK、時(shí)鐘信號(hào)CLK、輸出使能復(fù)位信號(hào)OE/RSTn和晶振207輸出的晶振時(shí)鐘信號(hào)0CLK,并輸出內(nèi)建自測(cè)試時(shí)鐘信號(hào)b_elk和內(nèi)建自測(cè)試復(fù)位信號(hào)b_rst給BIST控制器208,同時(shí)輸出晶振使能信號(hào)OEN連接到晶振207的使能端。本發(fā)明采用模塊化設(shè)計(jì),以FLASH存儲(chǔ)器201為核心存儲(chǔ)模塊,通過增加特定功能的電路模塊,使得所設(shè)計(jì)的PROM 200電路適應(yīng)于FPGA 100器件的不同配置模式需求。其中FLASH存儲(chǔ)器201 :用于存儲(chǔ)FPGA 100器件所需的配置數(shù)據(jù),該配置數(shù)據(jù)是通過JTAG控制器202的測(cè)試數(shù)據(jù)輸入信號(hào)TDI寫入的;
·
JTAG控制器202 :用于本發(fā)明PROM 200電路中邊界掃描電路的控制,并根據(jù)FLASH控制器203的工作行為實(shí)現(xiàn)相應(yīng)控制邏輯的譯碼輸出以及地址和數(shù)據(jù)交換JTAG控制器202在設(shè)計(jì)上完全兼容IEEE 1149. I和IEEE 1532邊界掃描標(biāo)準(zhǔn),能夠與同樣兼容IEEE 1149. I或者IEEE 1532邊界掃描標(biāo)準(zhǔn)的FPGA 100器件通過各自邊界掃描電路的TAP接口級(jí)聯(lián)形成串行掃描鏈路;FLASH控制器203 :用于控制FLASH存儲(chǔ)器201的工作行為并與其進(jìn)行地址和數(shù)據(jù)交換,該模塊是其余模塊與FLASH存儲(chǔ)器201之間數(shù)據(jù)交換的中轉(zhuǎn)站;并串轉(zhuǎn)換電路204 :用于將FLASH控制器203通過輸出數(shù)據(jù)交換總線2009送入的位寬為N的數(shù)據(jù)信號(hào)轉(zhuǎn)換為特定位寬的數(shù)據(jù)信號(hào),包括I位寬的第一數(shù)據(jù)信號(hào)D
/BIST_DONE或者8位寬的數(shù)據(jù)信號(hào)D[7:1]和第一數(shù)據(jù)信號(hào)D
/BIST_D0NE ;該模塊還用于接收第一控制使能信號(hào)CEn及輸出第二控制使能信號(hào)CEO和配置信號(hào)CFn,并通過輸出地址總線2008實(shí)現(xiàn)與FLASH控制器203的控制信號(hào)交換;該模塊還可以實(shí)現(xiàn)輸出端口復(fù)用的功能,將BIST控制器208輸出的內(nèi)建自測(cè)試標(biāo)識(shí)信號(hào)bist與D
合并生成第一數(shù)據(jù)信號(hào)D
/BIST_D0NE,當(dāng)PROM 200電路進(jìn)行內(nèi)建自測(cè)試時(shí),第一數(shù)據(jù)信號(hào)D
/BIST_D0NE可用于標(biāo)識(shí)內(nèi)建自測(cè)試成功與否,其余情況下用于數(shù)據(jù)輸出;時(shí)鐘復(fù)位電路205 :用于生成PROM 200電路內(nèi)部模塊工作所需的時(shí)鐘信號(hào)及復(fù)位
信號(hào);上電復(fù)位電路206 :能夠提供一個(gè)短暫的上電復(fù)位脈沖P0R,用于初始化時(shí)鐘復(fù)位電路205 ;晶振207 :接收時(shí)鐘復(fù)位電路205提供的晶振使能信號(hào)0EN,若晶振使能信號(hào)OEN有效則為時(shí)鐘復(fù)位電路205提供晶振時(shí)鐘信號(hào)OCLK ;其中,晶振時(shí)鐘信號(hào)OCLK可以參與生成JTAG時(shí)鐘信號(hào)TTCK、工作時(shí)鐘信號(hào)WCLK或者內(nèi)建自測(cè)試時(shí)鐘信號(hào)b_clk ;BIST控制器208 :通過內(nèi)建自測(cè)試控制總線2010觸發(fā)FLASH控制器203的擦除、寫和讀操作,完成PROM 200電路的功能驗(yàn)證;該內(nèi)建自測(cè)試控制總線2010中包含JTAG控制器202通過其余控制總線引入的內(nèi)建自測(cè)試控制信號(hào)。圖3所示為圖2中JTAG控制器202的模塊詳圖,包括TAP狀態(tài)機(jī)301、指令譯碼器
302、指令寄存器303、多路選擇器304、幀數(shù)據(jù)寄存器305、幀地址寄存器306、邊界掃描寄存器307、旁路寄存器308、設(shè)備標(biāo)識(shí)寄存器309和用戶編碼寄存器310,其中TAP狀態(tài)機(jī)301 :是一個(gè)16狀態(tài)的有效狀態(tài)機(jī),如圖4所示,TAP狀態(tài)機(jī)301與指令寄存器303控制了邊界掃描電路專用測(cè)試存取端口(TCK、TMS、TDI和TD0)的數(shù)據(jù)通路;指令譯碼器302 :用于接收指令寄存器303并行輸出的指令代碼,以及接收PROM200芯片中的一些全局控制信號(hào),從而譯碼輸出邊界掃描電路所需的各種控制信號(hào);指令寄存器303 :指令寄存器限定了 PROM 200芯片操作指令并控制了邊界掃描電路的內(nèi)部數(shù)據(jù)通路,一條指令定義了掃描操作過程中在測(cè)試數(shù)據(jù)輸入信號(hào)TDI和測(cè)試數(shù)據(jù)輸出信號(hào)TDO之間連接的串行數(shù)據(jù)寄存器;幀數(shù)據(jù)寄存器305和幀地址寄存器306 :分別用于存儲(chǔ)面向PROM 200芯片中FLASH存儲(chǔ)器201的數(shù)據(jù)和地址信息;·邊界掃描寄存器307 :由圍繞在芯片核心邏輯周圍的邊界掃描單元組成,能夠完成數(shù)據(jù)移位,數(shù)據(jù)捕獲和數(shù)據(jù)加載等操作;旁路寄存器308 :用于旁路PROM 200芯片,從而在板級(jí)測(cè)試時(shí)縮短測(cè)試數(shù)據(jù)輸入信號(hào)TDI和測(cè)試數(shù)據(jù)輸出信號(hào)TDO之間的掃描路徑,旁路寄存器308的基本結(jié)構(gòu)是一個(gè)觸發(fā)器;設(shè)備標(biāo)識(shí)寄存器309 :常也被稱為IDCODE寄存器,用于存儲(chǔ)PROM 200芯片的ID編碼,通常為32位的數(shù)據(jù)寄存器,可存儲(chǔ)制造廠商信息、版本信息和器件型號(hào)信息等;用戶編碼寄存器310 :用于存儲(chǔ)PROM 200芯片中由用戶定義的器件相關(guān)信息。測(cè)試數(shù)據(jù)輸入信號(hào)TDI同時(shí)連接到指令寄存器303、幀數(shù)據(jù)寄存器305、幀地址寄存器306、邊界掃描寄存器307、旁路寄存器308、設(shè)備標(biāo)識(shí)寄存器309和用戶編碼寄存器310的數(shù)據(jù)輸入端;幀數(shù)據(jù)寄存器305、幀地址寄存器306、邊界掃描寄存器307、旁路寄存器
308、設(shè)備標(biāo)識(shí)寄存器309和用戶編碼寄存器310分別接收指令譯碼器302輸出的寄存器使能信號(hào)3001 3007,用于寄存器數(shù)據(jù)通路選擇,幀數(shù)據(jù)寄存器305還與JTAG數(shù)據(jù)交換總線2006相連,幀地址寄存器306還與JTAG地址總線2005相連;幀數(shù)據(jù)寄存器305、幀地址寄存器306、邊界掃描寄存器307、旁路寄存器308、設(shè)備標(biāo)識(shí)寄存器309和用戶編碼寄存器310的數(shù)據(jù)輸出端同時(shí)與多路選擇器304的一個(gè)輸入端DDATA相連,多路選擇器304的另一個(gè)輸入端IDATA與指令寄存器303的數(shù)據(jù)輸出端相連,多路選擇器304的輸出端與測(cè)試數(shù)據(jù)輸出信號(hào)TDO相連,多路選擇器304的信號(hào)選擇端與TAP狀態(tài)機(jī)301輸出的選擇信號(hào)Select相連;指令寄存器303還接收TAP狀態(tài)機(jī)301輸出的指令控制信號(hào)3009,同時(shí)輸出指令數(shù)據(jù)信號(hào)3008給指令譯碼器302 ;指令譯碼器302接收TAP狀態(tài)機(jī)301輸出的狀態(tài)控制信號(hào)3010,并通過寫控制總線2001、讀控制總線2002、擦除控制總線2003和配置控制總線2004與所述FLASH控制器203相連;TAP狀態(tài)機(jī)301的三個(gè)輸入端分別與測(cè)試模式選擇信號(hào)TMS、JTAG時(shí)鐘信號(hào)TTCK和測(cè)試異步復(fù)位信號(hào)TRST相連。當(dāng)PROM 200電路上電時(shí),上電復(fù)位電路206能夠提供一個(gè)短暫的上電復(fù)位脈沖P0R,用于初始化時(shí)鐘復(fù)位電路205,使得測(cè)試異步復(fù)位信號(hào)TRST變?yōu)榈碗娖?,從而使JTAG控制器202中的TAP狀態(tài)機(jī)301處于圖4所示的TEST LOGIC RESET狀態(tài)。TAP狀態(tài)機(jī)301的功能設(shè)計(jì)完全依據(jù)IEEE 1149. I標(biāo)準(zhǔn)和IEEE 1532邊界掃描標(biāo)準(zhǔn),其輸入的測(cè)試模式選擇信號(hào)TMS和JTAG時(shí)鐘信號(hào)TTCK用于狀態(tài)轉(zhuǎn)換,測(cè)試異步復(fù)位信號(hào)TRST用于異步復(fù)位。測(cè)試數(shù)據(jù)輸入信號(hào)TDI和測(cè)試數(shù)據(jù)輸出信號(hào)TDO之間的數(shù)據(jù)通路選擇由指令譯碼器302輸出的寄存器使能信號(hào)3001 3007和TAP狀態(tài)機(jī)301輸出的選擇信號(hào)Select共同完成,具體表現(xiàn)為在載入指令的過程中,TAP狀態(tài)機(jī)301將指令寄存器303置于測(cè)試數(shù)據(jù)輸入信號(hào)TDI和測(cè)試數(shù)據(jù)輸出信號(hào)TDO之間的數(shù)據(jù)通路中;指令生效后,指令譯碼器302根據(jù)當(dāng)前指令將寄存器使能信號(hào)3001 3007中的一個(gè)信號(hào)置為高電平,從而將相應(yīng)的測(cè)試數(shù)據(jù)寄存器置于測(cè)試數(shù)據(jù)輸入信號(hào)TDI和測(cè)試數(shù)據(jù)輸出信號(hào)TDO之間的數(shù)據(jù)通路中。指令寄存器
303、幀數(shù)據(jù)寄存器305、幀地址寄存器306、邊界掃描寄存器307、旁路寄存器308、設(shè)備標(biāo)識(shí)寄存器309和用戶編碼寄存器310的功能設(shè)計(jì)也完全依據(jù)IEEE 1149. I標(biāo)準(zhǔn)和IEEE 1532邊界掃描標(biāo)準(zhǔn)。JTAG控制器202還通過指令譯碼器302為寫控制總線2001、讀控制總線2002、擦除控制總線2003、配置控制總線2004和內(nèi)建自測(cè)試控制總線2010提供相應(yīng)操作所需的控制信號(hào)。圖5所示為圖2中FLASH控制器203的模塊詳圖,包括寫控制器501、寫接口電路502、讀控制器503、讀接口電路504、擦除控制器505、擦除接口電路506、配置控制器507和緩存508。
工作時(shí)鐘信號(hào)WCLK同時(shí)連接到寫控制器501的時(shí)鐘端和擦除控制器505的時(shí)鐘端,同步復(fù)位信號(hào)RST同時(shí)連接到寫控制器501的復(fù)位端、讀控制器503的復(fù)位端和擦除控制器505的復(fù)位端,讀控制器503的時(shí)鐘端與JTAG時(shí)鐘信號(hào)TTCK相連,配置控制器507的時(shí)鐘端與配置時(shí)鐘信號(hào)ICCLK相連,配置控制器507的復(fù)位端與輸出使能復(fù)位信號(hào)OE/RSTn相連JTAG地址總線2005、JTAG數(shù)據(jù)交換總線2006、輸出地址總線2008和輸出數(shù)據(jù)交換總線2009同時(shí)與緩存508相連。寫控制器501通過寫控制總線2001、JTAG地址總線2005和JTAG數(shù)據(jù)交換總線2006與所述JTAG控制器202相連,同時(shí)通過寫地址總線5001和寫數(shù)據(jù)總線5002與寫接口電路502相連,寫控制器501還輸出寫使能信號(hào)PENA給寫接口電路502,并接收寫接口電路502輸出的寫完成信號(hào)POK ;寫接口電路502接收所述FLASH存儲(chǔ)器201輸出的READY/BUSY信號(hào)RDYBSY,并輸出地址信號(hào)Addr、寫使能信號(hào)WE和數(shù)據(jù)輸入信號(hào)給DIN所述FLASH存儲(chǔ)器201。讀控制器503通過讀控制總線2002、JTAG地址總線2005和JTAG數(shù)據(jù)交換總線2006與所述JTAG控制器202相連,同時(shí)通過讀地址總線5003和讀數(shù)據(jù)總線5004與讀接口電路504相連,讀控制器503還輸出讀使能信號(hào)RENA給讀接口電路504,并接收讀接口電路504輸出的讀完成信號(hào)ROK ;讀接口電路504接收所述FLASH存儲(chǔ)器201輸出的READY/BUSY信號(hào)RDYBSY和數(shù)據(jù)輸出信號(hào)D0UT,并輸出地址信號(hào)Addr和輸出使能信號(hào)OE給所述FLASH存儲(chǔ)器201。擦除控制器505通過擦除控制總線2003與所述JTAG控制器202相連,擦除控制器505還輸出擦除使能信號(hào)EENA給擦除接口電路506,并接收擦除接口電路506輸出的擦除完成信號(hào)EOK ;擦除接口電路506接收所述FLASH存儲(chǔ)器201輸出的READY/BUSY信號(hào)RDYBSY,并輸出地址信號(hào)Addr、寫使能信號(hào)WE和數(shù)據(jù)輸入信號(hào)DIN給所述FLASH存儲(chǔ)器201。配置控制器507通過配置控制總線2004與所述JTAG控制器202相連,同時(shí)通過輸出控制總線2007、輸出地址總線2008和輸出數(shù)據(jù)交換總線2009完成與所述并串轉(zhuǎn)換電路204之間的數(shù)據(jù)交換,配置控制器507還接收第一控制使能信號(hào)CEn、所述FLASH存儲(chǔ)器201輸出的READY/BUSY信號(hào)RDYBSY和數(shù)據(jù)輸出信號(hào)DOUT,并輸出地址信號(hào)Addr給所述FLASH存儲(chǔ)器201。圖6為圖5中寫控制器501、讀控制器503、擦除控制器505和配置控制器507的
工作狀態(tài)轉(zhuǎn)移圖。所述寫控制器501的具體工作步驟為在工作時(shí)鐘信號(hào)WCLK和同步復(fù)位信號(hào)RST的作用下,寫控制器501進(jìn)入狀態(tài)601 ;進(jìn)入狀態(tài)601之后,在工作時(shí)鐘信號(hào)WCLK和寫控制總線2001中控制信號(hào)的作用下,工作步驟依次為狀態(tài)602、狀態(tài)603、狀態(tài)604和狀態(tài)605 ;進(jìn)入狀態(tài)605之后,若當(dāng)前寫次數(shù)未達(dá)到預(yù)定最大寫次數(shù)則進(jìn)入狀態(tài)606,否則進(jìn)入狀態(tài)607 ;進(jìn)入狀態(tài)606之后,若完成更新緩存過程,則寫控制器501進(jìn)入狀態(tài)603 ;
·
所述狀態(tài)601為寫初始化過程;所述狀態(tài)602為取地址及數(shù)據(jù)過程,該狀態(tài)下寫控制器501從緩存508中取出用于所述FLASH存儲(chǔ)器201寫入的數(shù)據(jù)及相關(guān)地址信息;所述狀態(tài)603為開始寫過程,即寫控制器501通過所述寫接口電路502開始向所述FLASH存儲(chǔ)器201寫入數(shù)據(jù)的準(zhǔn)備過程;所述狀態(tài)604為等待過程,即寫控制器501將從緩存508中取出的數(shù)據(jù)通過所述寫接口電路502寫入所述FLASH存儲(chǔ)器201的過程;所述狀態(tài)605為寫計(jì)數(shù)過程,該狀態(tài)下寫控制器501進(jìn)行寫次數(shù)統(tǒng)計(jì),并與預(yù)定最大寫次數(shù)進(jìn)行比較,該最大寫次數(shù)與緩存508的容量相關(guān);所述狀態(tài)606為更新緩存過程,該狀態(tài)下緩存508通過JTAG地址總線2005和JTAG數(shù)據(jù)交換總線2006,從所述JTAG控制器202的幀地址寄存器306和幀數(shù)據(jù)寄存器305中更新地址及數(shù)據(jù);所述狀態(tài)607為完成過程,該狀態(tài)標(biāo)識(shí)所述FLASH存儲(chǔ)器201的數(shù)據(jù)寫入過程順利完成。所述讀控制器503的具體工作步驟為在JTAG時(shí)鐘信號(hào)TTCK和同步復(fù)位信號(hào)RST的作用下,讀控制器503進(jìn)入狀態(tài)611 ;進(jìn)入狀態(tài)611之后,在JTAG時(shí)鐘信號(hào)TTCK和讀控制總線2002中控制信號(hào)的作用下,工作步驟依次為狀態(tài)612、狀態(tài)613、狀態(tài)614和狀態(tài)615 ;進(jìn)入狀態(tài)615之后,若當(dāng)前讀次數(shù)未達(dá)到預(yù)定最大讀次數(shù)則進(jìn)入狀態(tài)616,否則進(jìn)入狀態(tài)617 ;進(jìn)入狀態(tài)616之后,若完成更新地址過程,則讀控制器503進(jìn)入狀態(tài)613 ;所述狀態(tài)611為讀初始化過程;所述狀態(tài)612為取地址過程,該狀態(tài)下讀控制器503通過JTAG地址總線2005從所述JTAG控制器202的幀地址寄存器306中取出用于讀出所述FLASH存儲(chǔ)器201中所存儲(chǔ)數(shù)據(jù)的起始地址信息;所述狀態(tài)613為開始讀過程,即讀控制器503通過所述讀接口電路504開始從所述FLASH存儲(chǔ)器201讀出數(shù)據(jù)的準(zhǔn)備過程;所述狀態(tài)614為等待過程,即讀控制器503通過讀接口電路504從所述FLASH存儲(chǔ)器201讀出數(shù)據(jù),并通過JTAG數(shù)據(jù)交換總線2006寫入所述幀數(shù)據(jù)寄存器305的過程;所述狀態(tài)615為讀計(jì)數(shù)過程,該狀態(tài)下讀控制器503進(jìn)行讀次數(shù)統(tǒng)計(jì),并與預(yù)定最大讀次數(shù)進(jìn)行比較;所述狀態(tài)616為更新地址過程,該狀態(tài)下讀控制器503通過JTAG地址總線2005從所述JTAG控制器202的幀地址寄存器306中更新地址信息;所述狀態(tài)617為完成過程,該狀態(tài)標(biāo)識(shí)所述FLASH存儲(chǔ)器201的數(shù)據(jù)讀出過程順利完成。所述擦除控制器505的具體工作步驟為在工作時(shí)鐘信號(hào)WCLK和同步復(fù)位信號(hào)RST的作用下,擦除控制器505進(jìn)入狀態(tài)621 ;進(jìn)入狀態(tài)621之后,在工作時(shí)鐘信號(hào)WCLK和擦除控制總線2003中控制信號(hào)的作用下,工作步驟依次為狀態(tài)622和狀態(tài)623 ;進(jìn)入狀態(tài)623之后,若擦除未完成則繼續(xù)保持狀態(tài)623,否則進(jìn)入狀態(tài)624 ;
·
所述狀態(tài)621為擦除初始化過程;所述狀態(tài)622為開始擦除過程,即擦除控制器505通過所述擦除接口電路506開始對(duì)所述FLASH存儲(chǔ)器201進(jìn)行擦除的準(zhǔn)備過程;所述狀態(tài)623為等待過程,即擦除控制器505通過所述擦除接口電路506對(duì)所述FLASH存儲(chǔ)器201進(jìn)行擦除的過程;所述狀態(tài)624為完成過程,該狀態(tài)標(biāo)識(shí)所述FLASH存儲(chǔ)器201的數(shù)據(jù)擦除過程順利完成。所述配置控制器507的具體工作步驟為在配置時(shí)鐘信號(hào)ICCLK和輸出使能復(fù)位信號(hào)OE/RSTn的作用下,配置控制器507進(jìn)入狀態(tài)631 ;進(jìn)入狀態(tài)631之后,在配置時(shí)鐘信號(hào)ICCLK和配置控制總線2004中控制信號(hào)的作用下,工作步驟依次為狀態(tài)632和狀態(tài)633 ;進(jìn)入狀態(tài)633之后,若當(dāng)前與配置相關(guān)的地址計(jì)數(shù)次數(shù)未達(dá)到預(yù)定最大次數(shù)則返回狀態(tài)632,否則進(jìn)入狀態(tài)634 ;所述狀態(tài)631為配置初始化過程;所述狀態(tài)632為發(fā)送地址過程,即配置控制器507通過所述FLASH存儲(chǔ)器201的地址信號(hào)端Addr向所述FLASH存儲(chǔ)器201發(fā)送地址;所述狀態(tài)633為返回?cái)?shù)據(jù)過程,即所述FLASH存儲(chǔ)器201通過數(shù)據(jù)輸出信號(hào)端DOUT向配置控制器507輸出數(shù)據(jù),同時(shí)配置控制器507通過輸出控制總線2007、輸出地址總線2008和輸出數(shù)據(jù)交換總線2009完成與所述并串轉(zhuǎn)換電路204之間的數(shù)據(jù)交換;該狀態(tài)下配置控制器507進(jìn)行配置地址計(jì)數(shù),并與預(yù)定最大計(jì)數(shù)次數(shù)進(jìn)行比較;所述狀態(tài)634為完成過程,該狀態(tài)標(biāo)識(shí)所述FLASH存儲(chǔ)器201的數(shù)據(jù)配置過程順利完成。圖7所示為圖2中并串轉(zhuǎn)換電路的工作狀態(tài)轉(zhuǎn)移圖,所述并串轉(zhuǎn)換電路204的具體工作步驟為在配置時(shí)鐘信號(hào)ICCLK和轉(zhuǎn)換復(fù)位信號(hào)PS_RST的作用下,并串轉(zhuǎn)換電路204進(jìn)入狀態(tài)701 ;進(jìn)入狀態(tài)701之后,在配置時(shí)鐘信號(hào)ICCLK和輸出控制總線2007中控制信號(hào)的作用下,進(jìn)入狀態(tài)702 ;進(jìn)入狀態(tài)702之后,若當(dāng)前數(shù)據(jù)轉(zhuǎn)換模式為將N位數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出,則進(jìn)入狀態(tài)703,若當(dāng)前數(shù)據(jù)轉(zhuǎn)換模式為將N位數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出,則進(jìn)入狀態(tài)707 ;進(jìn)入狀態(tài)703之后,在配置時(shí)鐘信號(hào)ICCLK和輸出控制總線2007中控制信號(hào)的作用下,工作步驟依次為狀態(tài)704和狀態(tài)705 ;進(jìn)入狀態(tài)705之后,若取數(shù)計(jì)數(shù)次數(shù)未達(dá)到預(yù)定最大次數(shù)則返回狀態(tài)703,否則進(jìn)入狀態(tài)706 ;進(jìn)入狀態(tài)707之后,在配置時(shí)鐘信號(hào)ICCLK和輸出控制總線2007中控制信號(hào)的作用下,工作步驟依次為狀態(tài)708和狀態(tài)709 ;進(jìn)入狀態(tài)709之后,若取數(shù)計(jì)數(shù)次數(shù)未達(dá)到預(yù)定最大次數(shù)則返回狀態(tài)707,否則進(jìn)入狀態(tài)710 ;所述取數(shù)計(jì)數(shù)次數(shù)是指將N位數(shù)據(jù)串行或者并行輸出的計(jì)數(shù)次數(shù),串行輸出的一次計(jì)數(shù)過程是指從N位數(shù)據(jù)中取一位數(shù)據(jù),并行輸出的一次計(jì)數(shù)過程是指從N位數(shù)據(jù)中取八位數(shù)據(jù);所述狀態(tài)701為并串轉(zhuǎn)換電路204初始化過程;所述狀態(tài)702為將位寬為N的數(shù)據(jù)取入并串轉(zhuǎn)換電路204的過程,N的取值可以在設(shè)計(jì)時(shí)自行定義,一般可以定義為8的整數(shù)倍,如64位、128位等,該數(shù)據(jù)一次并行取入并串轉(zhuǎn)換電路204 ;所述狀態(tài)703為在將N位數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出模式下的數(shù)據(jù)準(zhǔn)備過程;
所述狀態(tài)704為在將N位數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出模式下的數(shù)據(jù)移位過程,該狀態(tài)下并串轉(zhuǎn)換電路204進(jìn)行I位數(shù)據(jù)取數(shù)操作,并通過所述第一數(shù)據(jù)信號(hào)D
/BIST_DONE端串行輸出所取的數(shù)據(jù);所述狀態(tài)705為取數(shù)計(jì)數(shù)過程,該狀態(tài)下并串轉(zhuǎn)換電路204進(jìn)行取數(shù)次數(shù)統(tǒng)計(jì),并與預(yù)定最大次數(shù)N次進(jìn)行比較;所述狀態(tài)706為在將N位數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出模式下的數(shù)據(jù)轉(zhuǎn)換完成過程,該狀態(tài)標(biāo)識(shí)并串轉(zhuǎn)換電路204順利將所取位寬為N的數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出;所述狀態(tài)707為在將N位數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出模式下的數(shù)據(jù)準(zhǔn)備過程;所述狀態(tài)708為在將N位數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出模式下的數(shù)據(jù)移位過程,該狀態(tài)下并串轉(zhuǎn)換電路204同時(shí)進(jìn)行8位數(shù)據(jù)取數(shù)操作,并通過所述第一數(shù)據(jù)信號(hào)端D
/BIST_D0NE及所述數(shù)據(jù)信號(hào)D [7:1]端并行輸出所取的數(shù)據(jù);所述狀態(tài)709為取數(shù)計(jì)數(shù)過程,該狀態(tài)下并串轉(zhuǎn)換電路204進(jìn)行取數(shù)次數(shù)統(tǒng)計(jì),并于預(yù)定最大次數(shù)進(jìn)行比較,若N為8的整數(shù)倍,則該預(yù)定最大次數(shù)為N/8,若N不為8的整數(shù)倍,則該預(yù)定最大次數(shù)為N/8取整加I ;所述狀態(tài)710為在將N位數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出模式下的數(shù)據(jù)轉(zhuǎn)換完成過程,該狀態(tài)標(biāo)識(shí)并串轉(zhuǎn)換電路204順利將所取位寬為N的數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出。圖8所示為圖2中BIST控制器的工作狀態(tài)轉(zhuǎn)移圖,所述BIST控制器208的具體工作步驟為在內(nèi)建自測(cè)試時(shí)鐘信號(hào)b_clk和內(nèi)建自測(cè)試復(fù)位信號(hào)b_rst的作用下,BIST控制器208進(jìn)入狀態(tài)801 ;進(jìn)入狀態(tài)801之后,在內(nèi)建自測(cè)試時(shí)鐘信號(hào)b_clk和內(nèi)建自測(cè)試控制總線2010中控制信號(hào)的作用下,工作步驟依次為狀態(tài)802、狀態(tài)803、狀態(tài)804和狀態(tài)805 ;進(jìn)入狀態(tài)805之后,BIST控制器208輸出內(nèi)建自測(cè)試標(biāo)識(shí)信號(hào)并返回狀態(tài)801 ;所述狀態(tài)801為BIST控制器208空閑狀態(tài);所述狀態(tài)802為BIST控制器208通過內(nèi)建自測(cè)試控制總線2010觸發(fā)所述FLASH控制器203對(duì)FLASH存儲(chǔ)器201進(jìn)行數(shù)據(jù)擦除的過程;所述狀態(tài)803為BIST控制器208通過內(nèi)建自測(cè)試控制總線2010觸發(fā)所述FLASH控制器203對(duì)FLASH存儲(chǔ)器201進(jìn)行數(shù)據(jù)寫入的過程;所述狀態(tài)804為BIST控制器208通過內(nèi)建自測(cè)試控制總線2010觸發(fā)所述FLASH控制器203對(duì)FLASH存儲(chǔ)器201進(jìn)行數(shù)據(jù)讀的過程;所述狀態(tài)805為內(nèi)建自測(cè)試完成過程,該狀態(tài)下BIST控制器208輸出內(nèi)建自測(cè)試標(biāo)識(shí)"[目號(hào)bist?;谝陨显O(shè)計(jì),本發(fā)明所設(shè)計(jì)的用于FPGA 100配置的PROM 200電路可以通過JTAG指令進(jìn)行控制,整個(gè)電路的寫、讀、擦除、配置和內(nèi)建自測(cè)試操作都可以通過JTAG控制器202進(jìn)行初始化,并且FPGA 100器件所需的配置數(shù)據(jù)是儲(chǔ)存在FLASH存儲(chǔ)器201中的。圖9所示為使用本發(fā)明PROM 200電路在邊界掃描模式下配置FPGA的電路結(jié)構(gòu)示意圖,包括主 PROM 200 電路(First PROM) 901、從 PROM 200 電路(Cascaded PROM) 902 和FPGA 100器件,具體連接方式為通過模式選擇引腳MODE PINS將FPGA 100器件配置模式置于邊界掃描模式下,將FPGA 100器件的配置數(shù)據(jù)輸入信號(hào)DIN
、FPGA配置時(shí)鐘信號(hào)CCLK、配置完成信號(hào)·DONE、配置初始化信號(hào)INITn和編程使能信號(hào)PROGRAMn分別與主PROM 200電路(FirstPROM) 901的第一數(shù)據(jù)信號(hào)D
/BI ST_D0NE、時(shí)鐘信號(hào)CLK、第一控制使能信號(hào)CEn、輸出使能復(fù)位信號(hào)OE/RSTn和配置信號(hào)CFn相連,如果需要通過級(jí)聯(lián)的方式進(jìn)行容量擴(kuò)充,則只需將從PROM 200電路(Cascaded PR0M) 902的第一數(shù)據(jù)信號(hào)D
/BIST_D0NE、時(shí)鐘信號(hào)CLK、第一控制使能信號(hào)CEn、輸出使能復(fù)位信號(hào)OE/RSTn和配置信號(hào)CFn分別與主PROM200電路(First PR0M) 901的第一數(shù)據(jù)信號(hào)D
/BIST_D0NE、時(shí)鐘信號(hào)CLK、第二控制使能信號(hào)CE0、輸出使能復(fù)位信號(hào)OE/RSTn和配置信號(hào)CFn相連即可,最后通過主PR0M200電路(First PR0M) 901、從 PROM 200 電路(Cascaded PR0M) 902 和 FPGA 100 器件各自邊界掃描電路的TAP接口將三個(gè)器件級(jí)聯(lián),形成從測(cè)試數(shù)據(jù)輸入信號(hào)TDI到測(cè)試數(shù)據(jù)輸出信號(hào)TDO的串行邊界掃描通路。圖10所示為使用本發(fā)明PROM 200電路在串行模式下配置FPGA的電路結(jié)構(gòu)示意圖,包括主 PROM 200 電路(First PR0M) 1001、從 PROM 200 電路(Cascaded PR0M) 1002 和FPGA 100器件,具體連接方式為通過模式選擇引腳MODE PINS將FPGA 100器件配置模式置于串行模式下,將FPGA100器件的配置數(shù)據(jù)輸入信號(hào)DIN
、FPGA配置時(shí)鐘信號(hào)CCLK、配置完成信號(hào)DONE、配置初始化信號(hào)INITn和編程使能信號(hào)PROGRAMn分別與主PROM 200電路(First PR0M) 1001的第一數(shù)據(jù)信號(hào)D
/BIST_D0NE、時(shí)鐘信號(hào)CLK、第一控制使能信號(hào)CEn、輸出使能復(fù)位信號(hào)OE/RSTn和配置信號(hào)CFn相連,如果需要通過級(jí)聯(lián)的方式進(jìn)行容量擴(kuò)充,則只需將從PROM200電路(Cascaded PR0M) 1002的第一數(shù)據(jù)信號(hào)D
/BIST_D0NE、時(shí)鐘信號(hào)CLK、第一控制使能信號(hào)CEn、輸出使能復(fù)位信號(hào)OE/RSTn和配置信號(hào)CFn分別與主PROM 200電路(FirstPR0M) 1001的第一數(shù)據(jù)信號(hào)D
/BIST_D0NE、時(shí)鐘信號(hào)CLK、第二控制使能信號(hào)CE0、輸出使能復(fù)位信號(hào)OE/RSTn和配置信號(hào)CFn相連即可。圖11所示為使用本發(fā)明PROM 200電路在并行模式下配置FPGA的電路結(jié)構(gòu)示意圖,包括主 PROM 200 電路(First PR0M) 1101、從 PROM 200 電路(Cascaded PR0M) 1102 和FPGA 100器件,具體連接方式為通過模式選擇引腳MODE PINS將FPGA 100器件配置模式置于并行模式下,將FPGA100器件的配置數(shù)據(jù)輸入信號(hào)DIN[7:0]、FPGA配置時(shí)鐘信號(hào)CCLK、配置完成信號(hào)DONE、配置初始化信號(hào)INITn和編程使能信號(hào)PROGRAMn分別與主PROM 200電路(First PR0M) 1101的D[7:0]、時(shí)鐘信號(hào)CLK、第一控制使能信號(hào)CEn、輸出使能復(fù)位信號(hào)OE/RSTn和配置信號(hào)CFn相連,如果需要通過級(jí)聯(lián)的方式進(jìn)行容量擴(kuò)充,則只需將從PROM 200電路(CascadedPROM) 1102的D [7:0]、時(shí)鐘信號(hào)CLK、第一控制使能信號(hào)CEn、輸出使能復(fù)位信號(hào)OE/RSTn和配置信號(hào)CFn分別與主PROM 200電路(First PROM) 1101的D [7:0]、時(shí)鐘信號(hào)CLK、第二控制使能信號(hào)CEO、輸出使能復(fù)位信號(hào)OE/RSTn和配置信號(hào)CFn相連即可?;谝陨显O(shè)計(jì),如果無需進(jìn)行配置數(shù)據(jù)存儲(chǔ)容量擴(kuò)充,則無需選擇從PROM 200電路(Cascaded PR0M)進(jìn)行級(jí)聯(lián);如果需要進(jìn)行配置數(shù)據(jù)存儲(chǔ)容量擴(kuò)充,則只需特別關(guān)注從PROM 200電路(Cascaded PR0M)的第一控制使能信號(hào)CEn和主PROM 200電路(FirstPR0M)的第二控制使能信號(hào)CEO即可?!?br>
權(quán)利要求
1.一種用于FPGA配置的PROM電路架構(gòu),其特征在于包括=FLASH存儲(chǔ)器201、JTAG控制器202、FLASH控制器203、并串轉(zhuǎn)換電路204、時(shí)鐘復(fù)位電路205、上電復(fù)位電路206、晶振207和BIST控制器208 ; 時(shí)鐘復(fù)位電路205給JTAG控制器202、FLASH控制器203、并串轉(zhuǎn)換電路204和BIST控制器208提供時(shí)鐘信號(hào)和復(fù)位信號(hào),同時(shí)時(shí)鐘復(fù)位電路205還給晶振207提供使能信號(hào),晶振207給時(shí)鐘復(fù)位電路205提供時(shí)鐘,上電復(fù)位電路206給時(shí)鐘復(fù)位電路205提供上電復(fù)位脈沖; FLASH存儲(chǔ)器201、JTAG控制器202、并串轉(zhuǎn)換電路204和BIST控制器208均與FLASH控制器203連接并且進(jìn)行數(shù)據(jù)交互,F(xiàn)LASH存儲(chǔ)器201用于存儲(chǔ)FPGA配置數(shù)據(jù),JTAG控制器202通過FLASH控制器203對(duì)存儲(chǔ)在FLASH存儲(chǔ)器201中的FPGA配置數(shù)據(jù)進(jìn)行控制操作,通過FLASH控制器203與并串轉(zhuǎn)換電路204進(jìn)行數(shù)據(jù)交互,由并串轉(zhuǎn)換電路204進(jìn)行數(shù)據(jù)并串轉(zhuǎn)換并輸出給FPGA芯片進(jìn)行配置。
2.根據(jù)權(quán)利要求I所述的一種用于FPGA配置的PROM電路架構(gòu),其特征在于所述JTAG控制器202包括TAP狀態(tài)機(jī)301、指令譯碼器302、指令寄存器303、多路選擇器304、幀數(shù)據(jù)寄存器305、幀地址寄存器306、邊界掃描寄存器307、旁路寄存器308、設(shè)備標(biāo)識(shí)寄存器309和用戶編碼寄存器310 ; JTAG控制器202的測(cè)試數(shù)據(jù)輸入信號(hào)同時(shí)連接到指令寄存器303、幀數(shù)據(jù)寄存器305、幀地址寄存器306、邊界掃描寄存器307、旁路寄存器308、設(shè)備標(biāo)識(shí)寄存器309和用戶編碼寄存器310的數(shù)據(jù)輸入端;幀數(shù)據(jù)寄存器305、幀地址寄存器306、邊界掃描寄存器307、旁路寄存器308、設(shè)備標(biāo)識(shí)寄存器309和用戶編碼寄存器310分別接收指令譯碼器302輸出的寄存器使能信號(hào)用于寄存器數(shù)據(jù)通路選擇, JTAG控制器202通過幀數(shù)據(jù)寄存器305和幀地址寄存器306分別完成與FLASH控制器203之間的數(shù)據(jù)交互和地址交互; 幀數(shù)據(jù)寄存器305、幀地址寄存器306、邊界掃描寄存器307、旁路寄存器308、設(shè)備標(biāo)識(shí)寄存器309和用戶編碼寄存器310的數(shù)據(jù)輸出端同時(shí)與多路選擇器304的一個(gè)輸入端相連,多路選擇器304的另一個(gè)輸入端與指令寄存器303的數(shù)據(jù)輸出端相連,多路選擇器304的輸出信號(hào)即為JTAG控制器202的測(cè)試數(shù)據(jù)輸出信號(hào); 多路選擇器304的信號(hào)選擇端與TAP狀態(tài)機(jī)301輸出的選擇信號(hào)相連;指令寄存器303還接收TAP狀態(tài)機(jī)301輸出的指令控制信號(hào),同時(shí)指令寄存器303輸出指令數(shù)據(jù)信號(hào)給指令譯碼器302 ;指令譯碼器302接收TAP狀態(tài)機(jī)301輸出的狀態(tài)控制信號(hào),并與FLASH控制器203進(jìn)行控制信號(hào)的交互。
3.根據(jù)權(quán)利要求I所述的一種用于FPGA配置的PROM電路架構(gòu),其特征在于所述FLASH控制器203包括寫控制器501、寫接口電路502、讀控制器503、讀接口電路504、擦除控制器505、擦除接口電路506、配置控制器507和緩存508 ; 時(shí)鐘復(fù)位電路205提供的工作時(shí)鐘信號(hào)同時(shí)連接到寫控制器501的時(shí)鐘端和擦除控制器505的時(shí)鐘端,時(shí)鐘復(fù)位電路205提供的同步復(fù)位信號(hào)同時(shí)連接到寫控制器501的復(fù)位端、讀控制器503的復(fù)位端和擦除控制器505的復(fù)位端; 讀控制器503的時(shí)鐘端與時(shí)鐘復(fù)位電路205提供的JTAG時(shí)鐘信號(hào)相連,配置控制器507的時(shí)鐘端與時(shí)鐘復(fù)位電路205提供的配置時(shí)鐘信號(hào)相連,配置控制器507的復(fù)位端與外部輸入的輸出使能復(fù)位信號(hào)相連;FLASH控制器203與JTAG控制器202或并串轉(zhuǎn)換電路204之間進(jìn)行交互的數(shù)據(jù)和地址均存放在緩存508之中; 寫控制器501和讀控制器503均通過緩存508與JTAG控制器202連接,并通過緩存508與JTAG控制器202之間進(jìn)行數(shù)據(jù)交互和地址交互;配置控制器507通過緩存508與并串轉(zhuǎn)換電路204連接,并通過緩存508與并串轉(zhuǎn)換電路204之間進(jìn)行數(shù)據(jù)交互和地址交互;寫控制器501、讀控制器503、擦除控制器505和配置控制器507直接與JTAG控制器202連接進(jìn)行控制信號(hào)的交互,配置控制器507還直接與并串轉(zhuǎn)換電路204連接進(jìn)行控制信號(hào)的交互; 寫控制器501、讀控制器503和擦除控制器505分別依次通過寫接口電路502、讀接口電路504和擦除接口電路506與FLASH存儲(chǔ)器201連接并進(jìn)行交互JTAG控制器202通過FLASH控制器203中的配置控制器507將FLASH存儲(chǔ)器201中存儲(chǔ)的FPGA配置數(shù)據(jù)通過緩存508與并串轉(zhuǎn)換電路204進(jìn)行交互。
4.根據(jù)權(quán)利要求3所述的一種用于FPGA配置的PROM電路架構(gòu),其特征在于所述寫控制器501的具體工作方式為 在時(shí)鐘復(fù)位電路205提供的工作時(shí)鐘信號(hào)和同步復(fù)位信號(hào)的作用下,寫控制器501進(jìn)入狀態(tài)601 ;進(jìn)入狀態(tài)601之后,在所述工作時(shí)鐘信號(hào)和JTAG控制器202的控制信號(hào)的作用下,工作步驟依次為狀態(tài)602、狀態(tài)603、狀態(tài)604和狀態(tài)605 ;進(jìn)入狀態(tài)605之后,若當(dāng)前寫次數(shù)未達(dá)到預(yù)定最大寫入次數(shù)則進(jìn)入狀態(tài)606,否則進(jìn)入狀態(tài)607 ;進(jìn)入狀態(tài)606之后,若完成更新緩存過程,則寫控制器501進(jìn)入狀態(tài)603 ; 所述狀態(tài)601為寫入初始化過程; 所述狀態(tài)602為取地址及數(shù)據(jù)過程,該狀態(tài)下寫控制器501從緩存508中取出用于所述FLASH存儲(chǔ)器201寫入的數(shù)據(jù)及相關(guān)地址信息; 所述狀態(tài)603為開始寫過程,即寫控制器501通過所述寫接口電路502開始向所述FLASH存儲(chǔ)器201寫入數(shù)據(jù)的準(zhǔn)備過程; 所述狀態(tài)604為等待過程,即寫控制器501將從緩存508中取出的數(shù)據(jù)通過所述寫接口電路502寫入所述FLASH存儲(chǔ)器201的過程; 所述狀態(tài)605為寫計(jì)數(shù)過程,該狀態(tài)下寫控制器501進(jìn)行寫次數(shù)統(tǒng)計(jì),并與預(yù)定最大寫次數(shù)進(jìn)行比較,該最大寫次數(shù)與緩存508的容量相關(guān); 所述狀態(tài)606為更新緩存過程,該狀態(tài)下緩存508從所述JTAG控制器202的幀地址寄存器306和幀數(shù)據(jù)寄存器305中更新地址及數(shù)據(jù); 所述狀態(tài)607為完成過程,該狀態(tài)標(biāo)識(shí)所述FLASH存儲(chǔ)器201的數(shù)據(jù)寫入過程順利完成。
5.根據(jù)權(quán)利要求3所述的一種用于FPGA配置的PROM電路架構(gòu),其特征在于所述讀控制器503的具體工作步驟為 在JTAG時(shí)鐘信號(hào)和同步復(fù)位信號(hào)的作用下,讀控制器503進(jìn)入狀態(tài)611 ;進(jìn)入狀態(tài)611之后,在JTAG時(shí)鐘信號(hào)和JTAG控制器202的控制信號(hào)的作用下,工作步驟依次為狀態(tài).612、狀態(tài)613、狀態(tài)614和狀態(tài)615 ;進(jìn)入狀態(tài)615之后,若當(dāng)前讀次數(shù)未達(dá)到預(yù)定最大讀次數(shù)則進(jìn)入狀態(tài)616,否則進(jìn)入狀態(tài)617 ;進(jìn)入狀態(tài)616之后,若完成更新地址過程,則讀控制器503進(jìn)入狀態(tài)613 ;所述狀態(tài)611為讀初始化過程; 所述狀態(tài)612為取地址過程,該狀態(tài)下讀控制器503從所述JTAG控制器202的幀地址寄存器306中取出用于讀出所述FLASH存儲(chǔ)器201中所存儲(chǔ)數(shù)據(jù)的起始地址信息; 所述狀態(tài)613為開始讀過程,即讀控制器503通過所述讀接口電路504開始從所述FLASH存儲(chǔ)器201讀出數(shù)據(jù)的準(zhǔn)備過程; 所述狀態(tài)614為等待過程,即讀控制器503通過讀接口電路504從所述FLASH存儲(chǔ)器201讀出數(shù)據(jù),并寫入所述幀數(shù)據(jù)寄存器305的過程; 所述狀態(tài)615為讀計(jì)數(shù)過程,該狀態(tài)下讀控制器503進(jìn)行讀次數(shù)統(tǒng)計(jì),并與預(yù)定最大讀次數(shù)進(jìn)行比較; 所述狀態(tài)616為更新地址過程,該狀態(tài)下讀控制器503從所述JTAG控制器202的幀地址寄存器306中更新地址信息; 所述狀態(tài)617為完成過程,該狀態(tài)標(biāo)識(shí)所述FLASH存儲(chǔ)器201的數(shù)據(jù)讀出過程順利完成。
6.根據(jù)權(quán)利要求3所述的一種用于FPGA配置的PROM電路架構(gòu),其特征在于所述擦除控制器505的具體工作步驟為 在工作時(shí)鐘信號(hào)和同步復(fù)位信號(hào)的作用下,擦除控制器505進(jìn)入狀態(tài)621 ;進(jìn)入狀態(tài)621之后,在工作時(shí)鐘信號(hào)和JTAG控制器202的控制信號(hào)的作用下,工作步驟依次為狀態(tài)622和狀態(tài)623 ;進(jìn)入狀態(tài)623之后,若擦除未完成則繼續(xù)保持狀態(tài)623,否則進(jìn)入狀態(tài)624 ;所述狀態(tài)621為擦除初始化過程; 所述狀態(tài)622為開始擦除過程,即擦除控制器505通過所述擦除接口電路506開始對(duì)所述FLASH存儲(chǔ)器201進(jìn)行擦除的準(zhǔn)備過程; 所述狀態(tài)623為等待過程,即擦除控制器505通過所述擦除接口電路506對(duì)所述FLASH存儲(chǔ)器201進(jìn)行擦除的過程; 所述狀態(tài)624為完成過程,該狀態(tài)標(biāo)識(shí)所述FLASH存儲(chǔ)器201的數(shù)據(jù)擦除過程順利完成。
7.根據(jù)權(quán)利要求3所述的一種用于FPGA配置的PROM電路架構(gòu),其特征在于所述配置控制器507的具體工作步驟為 在配置時(shí)鐘信號(hào)和輸出使能復(fù)位信號(hào)的作用下,配置控制器507進(jìn)入狀態(tài)631 ;進(jìn)入狀態(tài)631之后,在配置時(shí)鐘信號(hào)和JTAG控制器202的控制信號(hào)的作用下,工作步驟依次為狀態(tài)632和狀態(tài)633 ;進(jìn)入狀態(tài)633之后,若當(dāng)前與配置相關(guān)的地址計(jì)數(shù)次數(shù)未達(dá)到預(yù)定最大次數(shù)則返回狀態(tài)632,否則進(jìn)入狀態(tài)634 ; 所述狀態(tài)631為配置初始化過程; 所述狀態(tài)632為發(fā)送地址過程,即配置控制器507通過所述FLASH存儲(chǔ)器201的地址信號(hào)端向所述FLASH存儲(chǔ)器201發(fā)送地址; 所述狀態(tài)633為返回?cái)?shù)據(jù)過程,即所述FLASH存儲(chǔ)器201通過數(shù)據(jù)輸出信號(hào)端向配置控制器507輸出數(shù)據(jù),同時(shí)配置控制器507完成與所述并串轉(zhuǎn)換電路204之間控制信號(hào)交互,并通過緩存508完成與所述并串轉(zhuǎn)換電路204之間的數(shù)據(jù)交互和地址交互;該狀態(tài)下配置控制器507進(jìn)行配置地址計(jì)數(shù),并與預(yù)定最大計(jì)數(shù)次數(shù)進(jìn)行比較; 所述狀態(tài)634為完成過程,該狀態(tài)標(biāo)識(shí)所述FLASH存儲(chǔ)器201的數(shù)據(jù)配置過程順利完成。
8.根據(jù)權(quán)利要求I所述的一種用于FPGA配置的PROM電路架構(gòu),其特征在于所述并串轉(zhuǎn)換電路204的具體工作方式為 在配置時(shí)鐘信號(hào)和轉(zhuǎn)換復(fù)位信號(hào)的作用下,并串轉(zhuǎn)換電路204進(jìn)入狀態(tài)701 ;進(jìn)入狀態(tài)701之后,在配置時(shí)鐘信號(hào)和配置控制器507的控制信號(hào)的作用下,進(jìn)入狀態(tài)702 ;進(jìn)入狀態(tài)702之后,若當(dāng)前數(shù)據(jù)轉(zhuǎn)換模式為將N位數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出,則進(jìn)入狀態(tài)703,若當(dāng)前數(shù)據(jù)轉(zhuǎn)換模式為將N位數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出,則進(jìn)入狀態(tài)707 ;進(jìn)入狀態(tài)703之后,在配置時(shí)鐘信號(hào)和配置控制器507的控制信號(hào)的作用下,工作步驟依次為狀態(tài)704和狀態(tài)705 ;進(jìn)入狀態(tài)705之后,若取數(shù)計(jì)數(shù)次數(shù)未達(dá)到預(yù)定最大次數(shù)則返回狀態(tài)703,否則進(jìn)入狀態(tài)706 ;進(jìn)入狀態(tài)707之后,在配置時(shí)鐘信號(hào)和配置控制器507的控制信號(hào)的作用下,工作步驟依次為狀態(tài)708和狀態(tài)709 ;進(jìn)入狀態(tài)709之后,若取數(shù)計(jì)數(shù)次數(shù)未達(dá)到預(yù)定最大次數(shù)則返回狀態(tài)707,否則進(jìn)入狀態(tài)710 ;所述取數(shù)計(jì)數(shù)次數(shù)是指將N位數(shù)據(jù)串行或者并行輸出的計(jì)數(shù)次數(shù),串行輸出的一次計(jì)數(shù)過程是指從N位數(shù)據(jù)中取一位數(shù)據(jù),并行輸出的一次計(jì)數(shù)過程是指從N位數(shù)據(jù)中取八位數(shù)據(jù);N為8的整數(shù)倍; 所述狀態(tài)701為并串轉(zhuǎn)換電路204初始化過程; 所述狀態(tài)702為將位寬為N的數(shù)據(jù)取入并串轉(zhuǎn)換電路204的過程,該數(shù)據(jù)一次并行取入并串轉(zhuǎn)換電路204 ; 所述狀態(tài)703為在將N位數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出模式下的數(shù)據(jù)準(zhǔn)備過程; 所述狀態(tài)704為在將N位數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出模式下的數(shù)據(jù)移位過程,該狀態(tài)下并串轉(zhuǎn)換電路204進(jìn)行I位數(shù)據(jù)取數(shù)操作,同時(shí)串行輸出所取的數(shù)據(jù); 所述狀態(tài)705為取數(shù)計(jì)數(shù)過程,該狀態(tài)下并串轉(zhuǎn)換電路204進(jìn)行取數(shù)次數(shù)統(tǒng)計(jì),并與預(yù)定最大次數(shù)N次進(jìn)行比較; 所述狀態(tài)706為在將N位數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出模式下的數(shù)據(jù)轉(zhuǎn)換完成過程,該狀態(tài)標(biāo)識(shí)并串轉(zhuǎn)換電路204順利將所取位寬為N的數(shù)據(jù)轉(zhuǎn)換為I位串行數(shù)據(jù)輸出; 所述狀態(tài)707為在將N位數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出模式下的數(shù)據(jù)準(zhǔn)備過程; 所述狀態(tài)708為在將N位數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出模式下的數(shù)據(jù)移位過程,該狀態(tài)下并串轉(zhuǎn)換電路204進(jìn)行8位數(shù)據(jù)取數(shù)操作,同時(shí)并行輸出所取的數(shù)據(jù); 所述狀態(tài)709為取數(shù)計(jì)數(shù)過程,該狀態(tài)下并串轉(zhuǎn)換電路204進(jìn)行取數(shù)次數(shù)統(tǒng)計(jì),并于預(yù)定最大次數(shù)進(jìn)行比較,若N為8的整數(shù)倍,則該預(yù)定最大次數(shù)為N/8,若N不為8的整數(shù)倍,則該預(yù)定最大次數(shù)為N/8取整加I ; 所述狀態(tài)710為在將N位數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出模式下的數(shù)據(jù)轉(zhuǎn)換完成過程,該狀態(tài)標(biāo)識(shí)并串轉(zhuǎn)換電路204順利將所取位寬為N的數(shù)據(jù)轉(zhuǎn)換為8位并行數(shù)據(jù)輸出。
9.根據(jù)權(quán)利要求I所述的一種用于FPGA配置的PROM電路架構(gòu),其特征在于所述BIST控制器208的具體工作步驟為 在內(nèi)建自測(cè)試時(shí)鐘信號(hào)和內(nèi)建自測(cè)試復(fù)位信號(hào)的作用下,BIST控制器208進(jìn)入狀態(tài)801;進(jìn)入狀態(tài)801之后,在內(nèi)建自測(cè)試時(shí)鐘信號(hào)和FLASH控制器203的控制信號(hào)作用下,工作步驟依次為狀態(tài)802、狀態(tài)803、狀態(tài)804和狀態(tài)805 ;進(jìn)入狀態(tài)805之后,BIST控制器208輸出內(nèi)建自測(cè)試標(biāo)識(shí)信號(hào)并返回狀態(tài)801 ;所述內(nèi)建自測(cè)試標(biāo)識(shí)信號(hào)表示自測(cè)試成功或者不成功;所述狀態(tài)801為BIST控制器208空閑狀態(tài); 所述狀態(tài)802為BIST控制器208控制所述FLASH控制器203對(duì)FLASH存儲(chǔ)器201進(jìn)行數(shù)據(jù)擦除的過程; 所述狀態(tài)803為BIST控制器208控制所述FLASH控制器203對(duì)FLASH存儲(chǔ)器201進(jìn)行數(shù)據(jù)寫的過程; 所述狀態(tài)804為BIST控制器208控制所述FLASH控制器203對(duì)FLASH存儲(chǔ)器201進(jìn)行 數(shù)據(jù)讀的過程; 所述狀態(tài)805為內(nèi)建自測(cè)試完成過程,該狀態(tài)下BIST控制器208輸出內(nèi)建自測(cè)試標(biāo)識(shí)信號(hào)。
全文摘要
本發(fā)明介紹了一種用于FPGA配置的PROM電路架構(gòu),采用模塊化設(shè)計(jì),通過增加特定功能的外圍電路,將FLASH存儲(chǔ)器設(shè)計(jì)為可存儲(chǔ)FPGA配置數(shù)據(jù),并且可適應(yīng)FPGA不同配置模式需求的PROM電路,最終能夠完成邊界掃描模式、串行模式或者并行模式下FPGA的獨(dú)立配置。采用此電路架構(gòu)的PROM可以通過級(jí)聯(lián)的方式進(jìn)行容量擴(kuò)充,并且兼容IEEE 1149.1及IEEE1532邊界掃描標(biāo)準(zhǔn),這極大提升了面向FPGA應(yīng)用的靈活性。
文檔編號(hào)G06F13/16GK102789815SQ20121014817
公開日2012年11月21日 申請(qǐng)日期2012年5月10日 優(yōu)先權(quán)日2012年5月10日
發(fā)明者倪俊達(dá), 劉增榮, 周濤, 孫華波, 張彥龍, 李學(xué)武, 蔣玉東, 郭晨光, 陳煜 , 陳雷 申請(qǐng)人:中國航天科技集團(tuán)公司第九研究院第七七二研究所, 北京時(shí)代民芯科技有限公司