安全行為和非安全行為
由于條件語(yǔ)句的描述在很多情況下,導(dǎo)致生成鎖存器。這些鎖存器將上游的毛刺傳輸至下游,并且鎖存器的使能信號(hào)(源自組合電路)也帶有毛刺,引起的冒險(xiǎn)競(jìng)爭(zhēng),導(dǎo)致下游邏輯出現(xiàn)錯(cuò)誤的捕獲,這種現(xiàn)象稱為非安全行為。
一旦非安全行為發(fā)生錯(cuò)誤,典型的特征是:前仿正確,后仿不正確,下板不正確,而且很難以找到問(wèn)題所在。
因此,現(xiàn)代EDA,要求寫安全行為的HDL,一旦出現(xiàn)非安全行為,大多數(shù)工具直接給出警告。又由于非安全行為的根源在鎖存器,因此,“消滅鎖存器”為EDA綜合編譯和時(shí)序收斂過(guò)程一個(gè)必然步驟。也就是說(shuō),一旦生鎖,將給出警告。
安全行為的編碼原則:
1.開節(jié)點(diǎn)輸出的信號(hào),必須滿足:“全條件”+“全線與”
2.閉節(jié)點(diǎn)輸出的信號(hào),這些信號(hào)中的條件譯碼信號(hào),必須寫“全條件”+“全線與
安全行為編碼例子:摩爾流水燈
設(shè)計(jì)需求
開發(fā)板的4個(gè)led燈,輪流點(diǎn)亮
每一個(gè)燈亮200ms,然后熄滅50ms
任何時(shí)候,按下start_n,流水燈開始運(yùn)行
任何時(shí)候,按下stop_n,流水燈停止運(yùn)行,全部熄滅
二段摩爾狀態(tài)機(jī)
工作時(shí)鐘clk頻率為100KHz(10us)
頂層框圖
頂層架構(gòu)
ET:使能信號(hào)觸發(fā)器,在start_n為真時(shí)觸發(fā)ena為真,在stop_n為真時(shí)觸發(fā)ena為假。復(fù)位rst_n為真觸發(fā)ena為假。
CNT:cnt_en為假,cnt清零;cnt_en為真,cnt加一計(jì)數(shù)
TS:shift_rst_n為真,給出temp的初始值4’b1110;shift_en為真,temp左移一次
引用TPS:
狀態(tài)轉(zhuǎn)移圖(非安全行為)
狀態(tài)轉(zhuǎn)移圖(安全行為)
編輯:jq
-
led燈
+關(guān)注
關(guān)注
22文章
1592瀏覽量
107752 -
eda
+關(guān)注
關(guān)注
71文章
2685瀏覽量
172735 -
編碼
+關(guān)注
關(guān)注
6文章
933瀏覽量
54731 -
鎖存器
+關(guān)注
關(guān)注
8文章
904瀏覽量
41421
原文標(biāo)題:FPGA學(xué)習(xí):全行為和非安全行為
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論