基于CPLD的系統(tǒng)硬件看門狗設(shè)計
圖3為狀態(tài)轉(zhuǎn)移圖。在任意狀態(tài)時如果EN使能信號被禁止,則狀態(tài)機進(jìn)入IDLE狀態(tài)。在圖上不一一標(biāo)出EN的條件轉(zhuǎn)移曲線。系統(tǒng)上電復(fù)位后進(jìn)入WAIT狀態(tài),等待NUM3時間使DSP完成初始化;進(jìn)入IDLE狀態(tài),如使能看門狗功能;進(jìn)入ADDING狀態(tài)累加計時,如果在限定時間NUM1內(nèi)監(jiān)測到喂狗信號,表明程序運行正常,返回IDLE狀態(tài)等待下一次喂狗信號,如果超過NUM1未收到喂狗信號,認(rèn)為程序已經(jīng)跑飛,進(jìn)入EEROR狀態(tài);EEROR狀態(tài)中輸出復(fù)位信號并清零計數(shù)器;進(jìn)入KEEPING狀態(tài),使低電平保持一段時間NUM2,這段時間超過DSP所需的復(fù)位時間即可;進(jìn)入WAIT狀態(tài),復(fù)位后重新等待DSP完成初始化,循環(huán)往復(fù)。
3 基于CPLD的硬件看門狗的仿真與驗證
3.1 功能仿真
使用Modelsim軟件進(jìn)行功能仿真,可以看出EN信號和WDT(喂狗信號)的變化對SYS_RST輸出的影響。編寫測試文件對EN使能、禁止,WDT信號喂狗間隔小于、大于定時器溢出上限,以及不喂狗等情況進(jìn)行仿真。
仿真波形1如圖4所示。EN處于使能狀態(tài),WDT在限定時間內(nèi)有邊沿變化時,對應(yīng)的移位寄存器也發(fā)生變化,使WDT_flag[2]!=WDT_flag[0],喂狗成功,不會輸出復(fù)位信號;存SYS_RST第二個低電平處,對應(yīng)的WDT超過了限定時間沒有變化,故輸出復(fù)位信號。
評論