在HDL的循環(huán)語(yǔ)句中,在指定的循環(huán)過(guò)程中,其代碼塊(循環(huán)體)輸出同名信號(hào),則構(gòu)成順序-循環(huán)(SAS-LOOP),其代碼塊(循環(huán)體)輸出不同名信號(hào),則構(gòu)成并發(fā)-循環(huán)(CAS-LOOP)。
包括循環(huán)語(yǔ)句(含循環(huán)體)組成的代碼塊,EDA稱為循環(huán)框架(Loop Frame)。
在這里,HDL循環(huán)語(yǔ)句與算法語(yǔ)言的循環(huán)語(yǔ)句的差異:
1.HDL的循環(huán)變量i是以常量進(jìn)入循環(huán)體。算法語(yǔ)言則是以變量進(jìn)入循環(huán)體。
2.HDL的循環(huán)體并不被循環(huán)執(zhí)行,而是被重復(fù)描述(多次重復(fù)綜合),從而實(shí)現(xiàn)建模的效率。算法語(yǔ)言的循環(huán)體則一定是被循環(huán)執(zhí)行。
循環(huán)語(yǔ)句可綜合性的“數(shù)學(xué)歸納法”
數(shù)學(xué)歸納法常用于證明數(shù)學(xué)序列,它的要點(diǎn)是:
1.首先證明序列的基數(shù)成立
2.假設(shè)序列為N時(shí)成立
3.證明序列的N+1成立
HDL的循環(huán)語(yǔ)句是否可綜合,可以借用這個(gè)方法:
1.首先將循環(huán)語(yǔ)句的循環(huán)次數(shù)修改為一個(gè)很小的基數(shù)。由于在很小的基數(shù)時(shí),其電路一定可以用結(jié)構(gòu)化方法直接描述(不使用循環(huán)語(yǔ)句)
2.將基數(shù)加1,仍然可以是結(jié)構(gòu)化描述,并加以驗(yàn)證
3.將基數(shù)修改為L(zhǎng)PM參數(shù)可定制,使用循環(huán)語(yǔ)句描述,并加以驗(yàn)證
4.修改LPM定制參數(shù),將其加1,觀察其綜合結(jié)果(驗(yàn)證)
通過(guò)以上步驟,可以證明所編寫的HDL循環(huán)語(yǔ)句是可綜合的,并且具有很高的綜合效率。
循環(huán)語(yǔ)句設(shè)計(jì)例子:具有64個(gè)輸入端口的8位異或電路:
使用“數(shù)學(xué)歸納法”為其使用循環(huán)語(yǔ)句建模和驗(yàn)證:
1.將基數(shù)(端口數(shù))設(shè)定為4,得到:
RTL視圖(驗(yàn)證過(guò)程):
2.將基數(shù)加1,這里將端口數(shù)修改為8,得到:
RTL視圖(驗(yàn)證過(guò)程):
修改為端口數(shù)可定制的LPM模型
其RTL視圖:
現(xiàn)在將LPM的基數(shù)+1(修改端口指數(shù)PortNum_Power為4)
其RTL視圖:
以上就是循環(huán)語(yǔ)句構(gòu)成二叉樹(shù)異或門的過(guò)程,為了得到最終結(jié)果(64端口),將端口指數(shù)PortNum_Power=6,得到:
這里由于端口數(shù)過(guò)多,EDA的自動(dòng)繪圖需要中間過(guò)程,故首層僅展示如上部分。
循環(huán)語(yǔ)句可綜合性的設(shè)計(jì)例子二:同步計(jì)數(shù)器的結(jié)構(gòu)化設(shè)計(jì)
1.頂層框圖
2.代碼和代碼模型分析
其RTL視圖:
以上視圖中,當(dāng)rst_n=0時(shí),多路器指向常數(shù)0;當(dāng)rst_n=1時(shí),多路器指向加法器的輸出;注意加法器是寄存器的輸出q與1相加。
根據(jù)代碼模型和RTL視圖,可以得到等效節(jié)點(diǎn)模型:
若將復(fù)位信號(hào)的條件語(yǔ)句描述屏蔽,則得到RTL視圖更接近節(jié)點(diǎn)等效:
3.計(jì)數(shù)器的數(shù)學(xué)模型
在RTL視圖中,計(jì)數(shù)器有限自動(dòng)機(jī)的加法器執(zhí)行q+1(的描述),其真實(shí)的電路是得到優(yōu)化和簡(jiǎn)化的一個(gè)數(shù)學(xué)模型:
若Q序列表示為:
在時(shí)鐘離散時(shí)刻,Q的變化為:
觀察表格,能夠發(fā)現(xiàn)Q的每一個(gè)比特位翻轉(zhuǎn)的規(guī)律:
()
(, )
(, )
……
(, )
將觸發(fā)翻轉(zhuǎn)的條件(前級(jí)全部為1)采用級(jí)聯(lián)以減少面積:
(,)
(, )
(, )
……
(, )
式中:
…….
注意位翻轉(zhuǎn)的一般表達(dá)式:(, )
其真值表為:
其SOP為:
代入序列中,得到:
……
根據(jù)數(shù)學(xué)模型得到的代碼模型為:
編輯:jq
-
eda
+關(guān)注
關(guān)注
71文章
2788瀏覽量
173878 -
HDL
+關(guān)注
關(guān)注
8文章
328瀏覽量
47470 -
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59953 -
代碼
+關(guān)注
關(guān)注
30文章
4828瀏覽量
69059 -
LPM
+關(guān)注
關(guān)注
0文章
11瀏覽量
9981
原文標(biāo)題:FPGA學(xué)習(xí):循環(huán)語(yǔ)句的可綜合性
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論