專(zhuān)利名稱(chēng):一種基于fpga的龍芯主板自動(dòng)復(fù)位的裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及龍芯主板自動(dòng)復(fù)位,具體來(lái)說(shuō),涉及一種基于FPGA的龍芯主板自動(dòng)復(fù)位的裝置。
背景技術(shù):
由于loongson3A CPU的設(shè)計(jì)的緣故,會(huì)造成CPU的HT總線(xiàn)與RS780E的HT總線(xiàn)在個(gè)別情況下鏈接不上而出現(xiàn)死機(jī)的情況,但是當(dāng)出現(xiàn)這種情況的時(shí)候,復(fù)位一下主板,就又能夠使其鏈接上了。因此為了修復(fù)這種硬件的BUG,目前市場(chǎng)上的用loongson3A CPU與AMD RS780E 北橋設(shè)計(jì)的主板會(huì)采用一種使用看門(mén)狗的方法來(lái)實(shí)現(xiàn)定時(shí)自動(dòng)復(fù)位主板。詳細(xì)的方法如圖 1 這種方法的實(shí)現(xiàn)的關(guān)鍵在于要選擇一塊看門(mén)狗電路,看門(mén)狗電路,又叫watchdog timer,是一個(gè)定時(shí)器電路,一般有一個(gè)輸入,叫喂狗(kicking the dog or service the dog),一個(gè)輸出到MCU的RST端,MCU正常工作的時(shí)候,每隔一端時(shí)間輸出一個(gè)信號(hào)到喂狗端,給WDT清零,如果超過(guò)規(guī)定的時(shí)間不喂狗,(一般在程序跑飛時(shí)),WDT定時(shí)超過(guò),就會(huì)給出一個(gè)復(fù)位信號(hào)到MCU,使MCU復(fù)位.它的功能是防止MCU死機(jī)。對(duì)于圖1的工作原理是這樣的當(dāng)主板一開(kāi)機(jī),看門(mén)狗電路就開(kāi)始工作了,由于看門(mén)狗電路里面有個(gè)定時(shí)器,那么一上電,定時(shí)器就開(kāi)始計(jì)時(shí)了,而龍芯3A CPU需要通過(guò)自己的GPIO管腳,定時(shí)的向看門(mén)狗電路發(fā)出脈沖波形,讓看門(mén)狗電路的計(jì)時(shí)器進(jìn)行清零操作, 而如果CPU與北橋沒(méi)有連接上的話(huà),那么主板死機(jī),PMON也不會(huì)繼續(xù)執(zhí)行,因此就不會(huì)發(fā)出脈沖來(lái)對(duì)看門(mén)狗電路的計(jì)時(shí)器來(lái)進(jìn)行清零操作,而這樣的話(huà),當(dāng)看門(mén)狗計(jì)時(shí)到一定的時(shí)間的時(shí)候,就會(huì)跟復(fù)位電路發(fā)出復(fù)位的命令,使得復(fù)位電路復(fù)位整塊主板。這樣的話(huà)就能夠解決上述所提的龍芯3A CPU的硬件BUG。但是這樣的方法存在可調(diào)性差的問(wèn)題。首先要選擇一塊合適的看門(mén)狗電路就是一個(gè)問(wèn)題,由于看門(mén)狗芯片存在最大計(jì)時(shí)的問(wèn)題,因此在選型上就需要關(guān)注PMON的程序執(zhí)行的快慢。這樣的話(huà),如果PMON的程序改動(dòng)了,就很可能會(huì)造成以前使用的看門(mén)狗就不能用了,因?yàn)橐呀?jīng)超過(guò)了看門(mén)狗的最大計(jì)時(shí)數(shù)。另外看門(mén)狗電路的計(jì)時(shí)器的時(shí)間設(shè)置是需要使用RC來(lái)設(shè)置的,這樣的話(huà),在調(diào)試的時(shí)候也不是很方便。同時(shí)由于需要讓CPU定時(shí)的給看門(mén)狗電路發(fā)出清零信號(hào),這樣的話(huà), 會(huì)占用一些CPU的占用率。
發(fā)明內(nèi)容
為了能夠解決看門(mén)狗電路實(shí)現(xiàn)龍芯3A主板自動(dòng)復(fù)位的可調(diào)性差的問(wèn)題。本發(fā)明采用FPGA的方式來(lái)實(shí)現(xiàn)龍芯主板的自動(dòng)復(fù)位。一種基于FPGA的龍芯主板自動(dòng)復(fù)位的裝置,在龍芯主板上添加了 FPGA芯片與復(fù)位電路,所述FPGA芯片接收龍芯CPU的GPIO管腳的信號(hào),所述FPGA芯片發(fā)送信號(hào)給所述復(fù)位電路,所述復(fù)位電路發(fā)送復(fù)位信號(hào)給龍芯CPU、北橋芯片和南橋芯片。 優(yōu)選的,龍芯主板啟動(dòng)時(shí),在PMON檢查完HT總線(xiàn)是否連接上之后,加載賦值程序
對(duì)GPIO管腳進(jìn)行賦值。 優(yōu)選的,所述賦值程序在HT總線(xiàn)未連接上時(shí),不對(duì)GPIO管腳進(jìn)行操作;在HT總線(xiàn)連接上之后,對(duì)GPIO管腳賦值。優(yōu)選的,所述FPGA在設(shè)定的時(shí)間之后開(kāi)始檢測(cè)GPIO管腳值。
優(yōu)選的,所述GPIO管腳值若為0,則FPGA發(fā)出信號(hào)給復(fù)位電路;所述GPIO管腳值若不為0,則FPGA不發(fā)出信號(hào)。優(yōu)選的,所述復(fù)位電路在接收到FPGA的信號(hào)后,發(fā)出復(fù)位信號(hào)給龍芯CPU,北橋芯片和南橋芯片,進(jìn)行重啟動(dòng)。優(yōu)選的,所述GPIO管腳的初始值為0。優(yōu)選的,所述設(shè)定的時(shí)間是通過(guò)程序在FPGA中設(shè)定。本發(fā)明的有益效果如下1、FPGA調(diào)節(jié)時(shí)間不受限制,相比于看門(mén)狗的方法來(lái)說(shuō),方便性是大大的提高了。2、由于是用FPGA來(lái)實(shí)現(xiàn)自動(dòng)復(fù)位,采用的是檢測(cè)GPIO管腳電平的方法,而對(duì)于龍芯3A CPU的GPIO管腳來(lái)說(shuō),當(dāng)設(shè)置了一個(gè)值以后,如果不對(duì)其再進(jìn)行操作的話(huà),會(huì)一直保持為這個(gè)值。這樣的話(huà)就能夠很好的節(jié)省CPU的利用率,而不像使用看門(mén)狗的方法,CPU還要定時(shí)的發(fā)出看門(mén)狗清零信號(hào)而需要占用CPU的利用率。
圖1是目前龍芯主板的復(fù)位裝置圖2是本發(fā)明龍芯主板的復(fù)位裝置
具體實(shí)施例方式本發(fā)明把目前常用的看門(mén)狗電路換成了 FPGA來(lái)實(shí)現(xiàn),詳細(xì)的工作原理如下本發(fā)明利用龍芯3A CPU的GPIO管腳來(lái)做文章,由于我們知道龍芯3A的GPIO管腳,在不對(duì)其進(jìn)行任何操作的狀態(tài)下它是輸出為“0”的,因此把龍芯3A的GPIO管腳連接到 FPGA上,通過(guò)在PMON上在檢測(cè)完HT是否鏈接上的程序之后,加上把GPIO管腳賦值的程序, 由于FPGA在設(shè)置時(shí)間上的優(yōu)越性,因此FPGA通過(guò)設(shè)置時(shí)間(時(shí)間的設(shè)置需要匹配PMON的執(zhí)行速度)在什么時(shí)候開(kāi)始檢測(cè)這個(gè)GPIO管腳,如果發(fā)現(xiàn)在這時(shí)GPIO管腳的值并沒(méi)有變化,則表明系統(tǒng)死在了 HT的鏈接這一塊,這時(shí)通過(guò)FPGA來(lái)把系統(tǒng)重啟。這樣的話(huà)就避免了人為重啟的情況。而如果發(fā)現(xiàn)這時(shí)的GPIO管腳發(fā)生了變化,則證明PMON已經(jīng)執(zhí)行到這一行的代碼了,也就是說(shuō)HT的鏈接成功了,則FPGA不對(duì)復(fù)位電路發(fā)出復(fù)位信號(hào)。
權(quán)利要求
1.一種基于FPGA的龍芯主板自動(dòng)復(fù)位的裝置,其特征在于在龍芯主板上添加了 FPGA 芯片與復(fù)位電路,所述FPGA芯片接收龍芯CPU的G PIO管腳的信號(hào),所述FPGA芯片發(fā)送信號(hào)給所述復(fù)位電路,所述復(fù)位電路發(fā)送復(fù)位信號(hào)給龍芯CPU、北橋芯片和南橋芯片。
2.如權(quán)利要求1所述的裝置,其特征在于龍芯主板啟動(dòng)時(shí),在PMON檢查完HT總線(xiàn)是否連接上之后,加載賦值程序?qū)PIO管腳進(jìn)行賦值。
3.如權(quán)利要求2所述的裝置,其特征在于所述賦值程序在HT總線(xiàn)未連接上時(shí),不對(duì) GPIO管腳進(jìn)行操作;在HT總線(xiàn)連接上之后,對(duì)GPIO管腳賦值。
4.如權(quán)利要求1所述的裝置,其特征在于所述FPGA在設(shè)定的時(shí)間之后開(kāi)始檢測(cè)GPIO 管腳值。
5.如權(quán)利要求4所述的裝置,其特征在于所述GPIO管腳值若為0,則FPGA發(fā)出信號(hào)給復(fù)位電路;所述GPIO管腳值若不為0,則FPGA不發(fā)出信號(hào)。
6.如權(quán)利要求5所述的裝置,其特征在于所述復(fù)位電路在接收到FPGA的信號(hào)后,發(fā)出復(fù)位信號(hào)給龍芯CPU,北橋芯片和南橋芯片,進(jìn)行重啟動(dòng)。
7.如權(quán)利要求1所述的裝置,其特征在于所述GPIO管腳的初始值為0。
8.如權(quán)利要求4所述的裝置,其特征在于所述設(shè)定的時(shí)間是通過(guò)程序在FPGA中設(shè)定。
全文摘要
本發(fā)明提供了一種基于FPGA的龍芯主板自動(dòng)復(fù)位的裝置,在龍芯主板上添加了FPGA芯片與復(fù)位電路,所述FPGA芯片接收龍芯CPU的GPIO管腳的信號(hào),所述FPGA芯片發(fā)送信號(hào)給所述復(fù)位電路,所述復(fù)位電路發(fā)送復(fù)位信號(hào)給龍芯CPU、北橋芯片和南橋芯片。
文檔編號(hào)G06F1/24GK102270028SQ20111020508
公開(kāi)日2011年12月7日 申請(qǐng)日期2011年7月21日 優(yōu)先權(quán)日2011年7月21日
發(fā)明者劉新春, 姚文浩, 楊曉君, 柳勝杰, 梁發(fā)清, 王暉, 王英, 邵宗有, 鄭臣明, 郝志彬 申請(qǐng)人:曙光信息產(chǎn)業(yè)股份有限公司