條件語(yǔ)句的可綜合性
HDL語(yǔ)言的條件語(yǔ)句與算法語(yǔ)言的條件語(yǔ)句,最大的差異在于:
1.不管條件:當(dāng)前輸入條件沒(méi)有對(duì)應(yīng)的描述,則該條件為不管條件(Don’tCare)。對(duì)應(yīng)不管條件的信號(hào)稱為不管信號(hào)
2.不選條件:多個(gè)條件分支中,未獲得當(dāng)前輸入條件指向的分析,稱為不選條件(Don’tSelect)。對(duì)應(yīng)的信號(hào)稱為不選信號(hào)。
不管不選發(fā)生時(shí),HDL的綜合器,將盡量維持原值,并且得到額外的生成結(jié)構(gòu)。若無(wú)法用生成結(jié)構(gòu)維持原值,則直接報(bào)錯(cuò)。根據(jù)行為語(yǔ)句的開(kāi)節(jié)點(diǎn)ON/閉節(jié)點(diǎn)CN描述;部分條件PC/全部條件FC;以及條件分支的輸出是否具有同名信號(hào)(線與WAND)或不同名信號(hào)(非線與Not_WAND),綜合器將得到不同的處理結(jié)果。
開(kāi)節(jié)點(diǎn)全部條件全部分支非線與描述
此時(shí),全條件描述導(dǎo)致沒(méi)有不管條件和不管信號(hào)。但全部分支非線與(即每一個(gè)條件分支語(yǔ)句輸出不同名信號(hào)),將導(dǎo)致不選信號(hào)。對(duì)于不選條件不選信號(hào),EDA將維持原值。生成結(jié)構(gòu)為鎖存器。
條件譯碼邏輯:
RTL視圖:(QuartusII)
這里的譯碼邏輯為:
一般性的代碼模型分析:
左側(cè)為代碼塊,全條件描述不存在不管條件,全部分支非線與存在不選條件和不選信號(hào),EDA需要為這些不選信號(hào)生成鎖存器,用于維持原值。右側(cè)為其代碼模型:
結(jié)論:開(kāi)節(jié)點(diǎn)全部條件全部輸出非線與的HDL描述,將得到
閉節(jié)點(diǎn)全部條件全部分支非線與描述
綜合分析:
1.閉節(jié)點(diǎn)描述將導(dǎo)致生成寄存器
2.全部條件描述,使得此時(shí)不存在不管條件
3.全部分支輸出非線與,將導(dǎo)致不選條件/不選信號(hào)。這些不選信號(hào)需要維持原值。
4.由于此時(shí)已經(jīng)輸出末端已經(jīng)得到有記憶的寄存器,因此綜合器此時(shí)將使用這些生成寄存器維持原值(不選信號(hào))
例如:
RTL視圖(QuartusII):
這里譯碼邏輯為:
關(guān)于使用寄存器維持原值(不選信號(hào)/不管信號(hào)):
寄存器維持原值需要遵循兩個(gè)互相矛盾的綜合原則:
1.優(yōu)化原則:寄存器使用其使能端維持原值,將導(dǎo)致時(shí)鐘信號(hào)的路由產(chǎn)生邏輯,或者說(shuō)時(shí)鐘信號(hào)被加工,最終導(dǎo)致時(shí)鐘偏斜參數(shù)的惡化,影響系統(tǒng)的最高速度。因此,綜合器將盡量避免寄存器使用使能端。
2.原創(chuàng)原則:綜合器根據(jù)代碼模型分析,和實(shí)際的物理實(shí)現(xiàn),必然需要對(duì)已經(jīng)的描述的代碼進(jìn)行加工和修改,最典型的例子就是生成結(jié)構(gòu)(生成鎖存器,生成寄存器)。但過(guò)多的生成結(jié)構(gòu),將導(dǎo)致最終實(shí)現(xiàn)的電路可能與設(shè)計(jì)者的愿望相悖。因此,綜合器將盡量避免生成結(jié)構(gòu)。
除了使用使能端維持寄存器原值,另一個(gè)產(chǎn)生生成結(jié)構(gòu)的方法則是多路器閉環(huán):
一般性的代碼模型分析:
結(jié)論:閉節(jié)點(diǎn)全部條件全部分支輸出非線與描述,將得到
5.3開(kāi)節(jié)點(diǎn)全部條件全部分支線與描述
綜合分析:
1.全部條件避免了不管條件
2.全部分支線與(所以分支輸出同名信號(hào)),綜合器為了避免短路,將生產(chǎn)多路器。
注意此時(shí)沒(méi)有生成鎖存器。
RTL視圖:
一般性代碼模型分析:
結(jié)論:開(kāi)節(jié)點(diǎn)全部條件全部輸出線與描述,將得到<多路器輸出>結(jié)構(gòu)。
注意這里沒(méi)有鎖存器,雖然有不選信號(hào),但這些不選信號(hào)被多路器屏蔽。
編輯:jq
-
寄存器
+關(guān)注
關(guān)注
31文章
5494瀏覽量
127763 -
HDL
+關(guān)注
關(guān)注
8文章
330瀏覽量
48611 -
鎖存器
+關(guān)注
關(guān)注
8文章
947瀏覽量
43305 -
代碼
+關(guān)注
關(guān)注
30文章
4922瀏覽量
72228
原文標(biāo)題:FPGA學(xué)習(xí):條件語(yǔ)句的可綜合性
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基礎(chǔ)篇3:掌握Python中的條件語(yǔ)句與循環(huán)
合肥綜合性國(guó)家科學(xué)中心能源研究院與宏微科技達(dá)成合作
詳解TIA Portal SCL編程語(yǔ)言中的IF語(yǔ)句

比斯特BT-100V20C100F電池組綜合性能測(cè)試機(jī)的測(cè)試流程

如何綜合性測(cè)試一款電源芯片?——以ASP3605芯片為例
NVIDIA Isaac 是英偉達(dá)推出的綜合性機(jī)器人開(kāi)發(fā)平臺(tái)
比斯特電池組綜合性能測(cè)試機(jī):基于先進(jìn)技術(shù)的性能優(yōu)勢(shì)展現(xiàn)

比斯特BT-100V20C100F 電池組綜合性能測(cè)試機(jī):多領(lǐng)域的鋰電池性能檢測(cè)能手

淺談DFT可測(cè)性設(shè)計(jì)的工作原理

高壓放大器在壓電材料綜合性能測(cè)試中的應(yīng)用

電池組綜合性能測(cè)試機(jī):新能源技術(shù)的重要設(shè)備

深入解析電池組綜合性能測(cè)試機(jī)的工作原理

技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:掌握C語(yǔ)言條件判斷,從if到switch的應(yīng)用

評(píng)論