【文章】時(shí)序邏輯影響計(jì)數(shù)器精度
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 時(shí)序邏輯影響計(jì)數(shù)器精度
本文為明德?lián)P原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處!
?文將討論時(shí)序邏輯對(duì)明德?lián)P設(shè)計(jì)的計(jì)數(shù)器的計(jì)數(shù)精度的影響。由于FPGA是時(shí)序邏輯,只在時(shí)序上升沿時(shí)才統(tǒng)計(jì)一次,這意味著統(tǒng)計(jì)的精度只能是以“時(shí)鐘周期”為單位,即:存在小于一個(gè)時(shí)鐘周期信號(hào)無(wú)法采樣的情況。因?yàn)槊鞯聯(lián)P計(jì)數(shù)器是在時(shí)鐘上升沿時(shí)判斷計(jì)數(shù)器是否加一,所以計(jì)數(shù)器的計(jì)數(shù)精度也是以“時(shí)鐘周期”為單位。
?我們可以用一個(gè)例子來(lái)看一下計(jì)數(shù)器計(jì)數(shù)0時(shí)的一種誤差情況,假設(shè)有一個(gè)隨機(jī)的輸入din_vld,初值等于1,然后在一個(gè)任意時(shí)刻變?yōu)??,F(xiàn)在要計(jì)算din_vld變?yōu)?的前30個(gè)時(shí)鐘周期長(zhǎng)度。計(jì)數(shù)器代碼如下圖:

計(jì)數(shù)器cnt在時(shí)鐘上升沿的時(shí)刻檢測(cè)到din_vld==0時(shí)cnt加一,所以cnt計(jì)算出來(lái)的是din_vld==0時(shí)cnt=0~29的30個(gè)時(shí)鐘周期。
下圖為使用仿真軟件得出該代碼的波形,當(dāng)din_vld不在時(shí)鐘上升沿的時(shí)刻變?yōu)?,則cnt==0時(shí),din_vld==0的長(zhǎng)度并不夠1個(gè)時(shí)鐘周期。因?yàn)闀r(shí)序邏輯影響計(jì)數(shù)器的精度是以“時(shí)鐘周期”為單位,所以并不影響計(jì)數(shù)器的計(jì)數(shù)。最終計(jì)算出來(lái)din_vld==0的前30個(gè)周期的長(zhǎng)度,會(huì)產(chǎn)生長(zhǎng)度為一個(gè)時(shí)鐘內(nèi)的誤差。
