計數(shù)器、計數(shù)方法和分頻器的制造方法
【專利摘要】本發(fā)明提供一種計數(shù)器、計數(shù)方法和分頻器,包括第一累加電路、第二累加電路和選擇電路;第一累加電路的兩個輸入端分別輸入計數(shù)步長和選擇電路發(fā)送的基數(shù),用于將計數(shù)步長與基數(shù)相加得到第一相加結(jié)果;第二累加電路的兩個輸入端分別接收第一相加結(jié)果的余數(shù)和進(jìn)制控制數(shù),用于將第一相加結(jié)果的余數(shù)與進(jìn)制控制數(shù)相加得到第二相加結(jié)果;選擇電路分別接收第一相加結(jié)果和第二相加結(jié)果,若第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位中至少有一個為1,將第二相加結(jié)果的余數(shù)作為基數(shù)輸出,若第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為0,將第一相加結(jié)果的余數(shù)作為基數(shù)輸出。本發(fā)明提供的計數(shù)器能夠?qū)θ我膺M(jìn)制數(shù)進(jìn)行計數(shù),且能實現(xiàn)任意步長計數(shù)。
【專利說明】計數(shù)器、計數(shù)方法和分頻器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電路技術(shù),尤其涉及一種計數(shù)器、計數(shù)方法和分頻器。
【背景技術(shù)】
[0002]計數(shù)器是數(shù)字電路中的一種邏輯電路,能夠?qū)γ}沖信號的個數(shù)進(jìn)行計數(shù),以實現(xiàn)測量或控制的功能。一個計數(shù)器自身的計數(shù)步長是固定的,若將多個計數(shù)器按照一定的觸發(fā)方式連接起來,得到的電路結(jié)構(gòu)可實現(xiàn)以多種步長進(jìn)行計數(shù),還可以實現(xiàn)多種進(jìn)制的循環(huán)計數(shù)方式,常用于分頻、定時、產(chǎn)生節(jié)拍脈沖和脈沖序列以及進(jìn)行數(shù)字運(yùn)算等。分頻器是計數(shù)器的一種常見應(yīng)用,能夠?qū)o定的時鐘信號進(jìn)行分頻,并得到所需要的時鐘信號的一種硬件電路,分頻器通常分為整數(shù)分頻器和小數(shù)分頻器。其中,整數(shù)分頻器的輸出時鐘信號頻率與給定時鐘信號頻率的比值(即:分頻比)為整數(shù),小數(shù)分頻器的輸出時鐘信號頻率與給定時鐘信號頻率的比值為小數(shù)。計數(shù)器作為整數(shù)分頻器和小數(shù)分頻器中的重要組成部分,用于提供分頻所需的分頻系數(shù)。
[0003]為了給分頻器提供多種分頻系數(shù),通常采用多個計數(shù)器進(jìn)行不同形式的組合,形成多級結(jié)構(gòu),經(jīng)過分級累加計數(shù)來得到所需的分頻系數(shù),但采用較多的計數(shù)器使得分頻器的電路結(jié)構(gòu)較復(fù)雜,計數(shù)時間較長且靈活度較低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種計數(shù)器、計數(shù)方法和分頻器,用于解決現(xiàn)有的分頻器的電路結(jié)構(gòu)較復(fù)雜的問題,以簡化分頻器的電路結(jié)構(gòu)。
[0005]本發(fā)明實施例提供一種計數(shù)器,包括:第一累加電路、第二累加電路以及選擇電路,所述計數(shù)器的進(jìn)制數(shù)為小于所述第一累加電路的進(jìn)制數(shù)的可變數(shù)值,所述第一累加電路與所述第二累加電路具有相同的進(jìn)制數(shù);其中,
[0006]所述第一累加電路的其中一個輸入端用于輸入計數(shù)步長,另一個輸入端與所述選擇電路的輸出端連接,以接收所述選擇電路發(fā)送的基數(shù);所述第一累加電路用于將所述計數(shù)步長與所述基數(shù)相加,得到第一相加結(jié)果,并按照所述第一累加電路的進(jìn)制數(shù)計算所述第一相加結(jié)果的余數(shù)和所述第一相加結(jié)果的進(jìn)位;
[0007]所述第二累加電路的其中一個輸入端與所述第一累加電路連接,用于接收所述第一相加結(jié)果的余數(shù),所述第二累加電路的另一個輸入端用于輸入進(jìn)制控制數(shù),所述進(jìn)制控制數(shù)為所述第一累加電路的進(jìn)制數(shù)與所述計數(shù)器當(dāng)前的進(jìn)制數(shù)的差;所述第二累加電路用于將所述第一相加結(jié)果的余數(shù)與所述進(jìn)制控制數(shù)相加,得到第二相加結(jié)果以對所述第一相加結(jié)果進(jìn)行補(bǔ)充計算,并按照第二累加電路的進(jìn)制數(shù)計算所述第二相加結(jié)果的余數(shù)和所述第二相加結(jié)果的進(jìn)位;
[0008]所述選擇電路分別與所述第一累加電路和第二累加電路連接,以接收所述第一相加結(jié)果的進(jìn)位、第一相加結(jié)果的余數(shù)、第二相加結(jié)果的進(jìn)位和第二相加結(jié)果的余數(shù);若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位中至少有一個為1,所述選擇電路將所述第二相加結(jié)果的余數(shù)作為所述基數(shù)輸出,若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為O,所述選擇電路將所述第一相加結(jié)果的余數(shù)作為所述基數(shù)輸出。
[0009]如上述的計數(shù)器,所述第一累加電路為加法器;
[0010]所述第一累加電路的加數(shù)輸入端用于輸入所述計數(shù)步長,被加數(shù)輸入端與所述選擇電路的輸出端連接以接收所述基數(shù),余數(shù)輸出端輸出所述第一相加結(jié)果的余數(shù),進(jìn)位輸出端輸出所述第一相加結(jié)果的進(jìn)位。
[0011]如上所述的計數(shù)器,所述第二累加電路為加法器;
[0012]所述第二累加電路的加數(shù)輸入端用于輸入所述進(jìn)位控制數(shù),被加數(shù)輸入端與所述第一累加電路的余數(shù)輸出端連接以接收所述第一相加結(jié)果的余數(shù),余數(shù)輸出端輸出所述第二相加結(jié)果的余數(shù),進(jìn)位輸出端輸出所述第二相加結(jié)果的進(jìn)位。
[0013]如上所述的計數(shù)器,所述選擇電路包括:進(jìn)位選擇電路和余數(shù)選擇電路;
[0014]所述進(jìn)位選擇電路的兩個輸入端分別與所述第一累加電路和第二累加電路連接,接收所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位;若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位中至少有一個為1,所述進(jìn)位選擇電路輸出有效的余數(shù)控制值,若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為0,所述進(jìn)位選擇電路輸出無效的余數(shù)控制值;
[0015]所述余數(shù)選擇電路的控制端與所述進(jìn)位選擇電路的輸出端連接,用于接收所述余數(shù)控制值,所述余數(shù)選擇電路的兩個輸入端分別與所述第一累加電路和第二累加電路連接,接收所述第一相加結(jié)果的余數(shù)和第二相加結(jié)果的余數(shù);若所述余數(shù)控制值有效,則所述余數(shù)選擇電路將所述第二相加結(jié)果的余數(shù)作為所述基數(shù)輸出,若所述余數(shù)控制值無效,則所述余數(shù)選擇電路將所述第一相加結(jié)果的余數(shù)作為所述基數(shù)輸出。
[0016]如上所述的計數(shù)器,所述進(jìn)位選擇電路為或門;
[0017]所述或門的一個輸入端與所述第一累加電路的進(jìn)位輸出端連接,另一個輸入端與所述第二累加電路的進(jìn)位輸出端連接,所述或門的輸出端與所述余數(shù)選擇電路的控制端連接。
[0018]如上所述的計數(shù)器,所述余數(shù)選擇電路為二選一數(shù)據(jù)選擇器;
[0019]所述二選一數(shù)據(jù)選擇器的一個輸入端與所述第一累加電路的余數(shù)輸出端連接,另一個輸入端于所述第二累加電路的余數(shù)輸出端連接,所述二選一數(shù)據(jù)選擇器的控制端與所述進(jìn)位選擇電路的輸出端連接,所述二選一數(shù)據(jù)選擇器的輸出端作為所述余數(shù)選擇電路的輸出端。
[0020]如上所述的計數(shù)器,還包括寄存器;
[0021 ] 所述寄存器設(shè)置在所述選擇電路與所述第一累加電路之間,用于存儲所述基數(shù)。
[0022]本發(fā)明實施例還提供一種計數(shù)方法,包括:
[0023]獲取計數(shù)步長、基數(shù)、預(yù)設(shè)累加進(jìn)制數(shù)、計數(shù)進(jìn)制數(shù)和進(jìn)制控制數(shù);
[0024]將所述計數(shù)步長和基數(shù)相加得到第一相加結(jié)果,并按照所述預(yù)設(shè)累加進(jìn)制數(shù)計算所述第一相加結(jié)果的余數(shù)和所述第一相加結(jié)果的進(jìn)位;
[0025]將所述第一相加結(jié)果的余數(shù)和進(jìn)制控制數(shù)相加得到第二相加結(jié)果,并按照所述預(yù)設(shè)累加進(jìn)制數(shù)計算所述第二相加結(jié)果的余數(shù)和所述第二相加結(jié)果的進(jìn)位;所述進(jìn)制控制數(shù)為所述預(yù)設(shè)累加進(jìn)制數(shù)與所述計數(shù)進(jìn)制數(shù)的差;[0026]若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位中至少有一個為1,將所述第二相加結(jié)果的余數(shù)作為所述基數(shù)進(jìn)行再次計算直到計數(shù)完成;若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為0,將所述第一相加結(jié)果的余數(shù)作為所述基數(shù)進(jìn)行再次計算直到計數(shù)完成。
[0027]如上所述的計數(shù)方法,還包括:
[0028]在計數(shù)完成時,若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位中至少有一個為1,將所述第二相加結(jié)果的余數(shù)作為結(jié)果輸出;若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為0,將所述第一相加結(jié)果的余數(shù)作為結(jié)果輸出。
[0029]本發(fā)明實施例還提供一種分頻器,包括如上所述的計數(shù)器。
[0030]本發(fā)明實施例提供的計數(shù)器和分頻器,通過采用第一累加電路對計數(shù)步長和基數(shù)進(jìn)行相加,采用第二累加電路根據(jù)進(jìn)制控制數(shù)對第一累加電路計算得到的第一相加結(jié)果進(jìn)行補(bǔ)充計算得到第二相加結(jié)果,且采用選擇電路根據(jù)第一相加結(jié)果和第二相加結(jié)果輸出基數(shù)作為計數(shù)器的輸出,其中的計數(shù)步長和進(jìn)制控制數(shù)可以為任意數(shù)值,該計數(shù)器能夠?qū)崿F(xiàn)任意進(jìn)制數(shù)的加法運(yùn)算,且也能夠進(jìn)行任意步長的加法運(yùn)算,應(yīng)用在分頻器中能夠提供多種分頻系數(shù)。且上述技術(shù)方案構(gòu)成的計數(shù)器僅需要兩個累加電路和一個選擇電路就可以實現(xiàn),其電路結(jié)構(gòu)較簡單,應(yīng)用在分頻器中,能夠取代現(xiàn)有技術(shù)中較為復(fù)雜的計數(shù)器結(jié)構(gòu),為分頻器提供多種分頻系數(shù),解決了現(xiàn)有的分頻器的電路結(jié)構(gòu)較復(fù)雜的問題,簡化了分頻器的電路結(jié)構(gòu)。
【專利附圖】
【附圖說明】
[0031]圖1為本發(fā)明實施例一提供的計數(shù)器的結(jié)構(gòu)示意圖一;
[0032]圖2為本發(fā)明實施例一提供的計數(shù)器的結(jié)構(gòu)示意圖二 ;
[0033]圖3為本發(fā)明實施例二提供的計數(shù)方法的流程圖。
【具體實施方式】
[0034]實施例一
[0035]本實施例提供一種計數(shù)器,可用于分頻器中,也可以用于分布式共享存儲處理機(jī)中。本實施例提供的計數(shù)器能夠?qū)崿F(xiàn)對任意進(jìn)制數(shù)進(jìn)行計數(shù),且計數(shù)的步長也可以為任意值,因此該計數(shù)器能夠為分頻器提供任意整數(shù)值,實現(xiàn)以任意分頻系數(shù)進(jìn)行分頻。下面對本實施例提供的計數(shù)器的實現(xiàn)方式進(jìn)行具體說明。
[0036]圖1為本發(fā)明實施例一提供的計數(shù)器的結(jié)構(gòu)示意圖一。如圖1所示,本實施例提供的計數(shù)器可以包括:第一累加電路1、第二累加電路2以及選擇電路3。
[0037]在本實施例中,第一累加電路I和第二累加電路2,具有相同的進(jìn)制數(shù),例如具有相同的進(jìn)制數(shù)2N,即都能夠?qū)位的二進(jìn)制數(shù)進(jìn)行累加運(yùn)算。
[0038]其中,第一累加電路I的其中一個輸入端用于輸入計數(shù)步長R,另一個輸入端與選擇電路3的輸出端連接,以接收選擇電路3發(fā)送的基數(shù),第一累加電路I用于將計數(shù)步長R與基數(shù)相加,得到第一相加結(jié)果,并按照第一累加電路I的進(jìn)制數(shù)2N計算第一相加結(jié)果的余數(shù)和第一相加結(jié)果的進(jìn)位。例如:設(shè)定N為4,則第一累加電路I的進(jìn)制數(shù)24為16。該計數(shù)器的進(jìn)制數(shù)X為小于第一累加電路I的進(jìn)制數(shù)16的可變數(shù)值,若設(shè)定為十進(jìn)制計數(shù)器,則計數(shù)器的進(jìn)制數(shù)X為10。
[0039]第二累加電路2的其中一個輸入端與第一累加電路I連接,用于接收第一相加結(jié)果的余數(shù),第二累加電路2的另一個輸入端用于輸入進(jìn)制控制數(shù),第二累加電路2用于將第一相加結(jié)果的余數(shù)與進(jìn)制控制數(shù)相加,得到第二相加結(jié)果,以對第一相加結(jié)果進(jìn)行補(bǔ)充計算,并按照2N計算第二相加結(jié)果的余數(shù)和第二相加結(jié)果的進(jìn)位。
[0040]上述進(jìn)制控制數(shù)為第一累加電路I的進(jìn)制數(shù)2N與計數(shù)器的當(dāng)前進(jìn)制數(shù)X之間的差值,為2n-X。計數(shù)器的進(jìn)制數(shù)X為小于第一累加電路I的進(jìn)制數(shù)2N的可變數(shù)值,也就是說計數(shù)器的進(jìn)制數(shù)X可以為小于2N的任意數(shù)值,尤其是任意整數(shù),本實施例可將進(jìn)制數(shù)X設(shè)定為在2N與2N_i之間的任意整數(shù)。例如:若N為4,X為10,則進(jìn)制控制數(shù)2n-X為6,若N為4,X為9,則進(jìn)制控制數(shù)2N-X為7。
[0041]選擇電路3分別與第一累加電路I和第二累加電路2連接,以接收第一相加結(jié)果的進(jìn)位、第一相加結(jié)果的余數(shù)、第二相加結(jié)果的進(jìn)位和第二相加結(jié)果的余數(shù)。若第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位中至少有一個為1,選擇電路3將第二相加結(jié)果的余數(shù)作為基數(shù)輸出,若第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為0,選擇電路3將第一相加結(jié)果的余數(shù)作為基數(shù)輸出。
[0042]上述計數(shù)步長R即為計數(shù)器的步長,可由計數(shù)器從外部電路接收,例如操作人員通過鍵盤等輸入設(shè)備提供給計數(shù)器,上述基數(shù)和計數(shù)步長具體均可以為N位的二進(jìn)制數(shù)。第一累加電路I在每一個工作周期執(zhí)行一次相加操作,即將計數(shù)步長R與基數(shù)相加。該第一相加結(jié)果可用余數(shù)和進(jìn)位來表示,該余數(shù)和進(jìn)位則由第一累加電路I的進(jìn)制數(shù)來確定。
[0043]進(jìn)制控制數(shù)2n_X是通過第二累加電路2從外部電路接收的,例如操作人員通過鍵盤等輸入設(shè)備將進(jìn)制控制數(shù)2N-X提供給計數(shù)器,或者還可以設(shè)置其它的電路來發(fā)送進(jìn)制控制數(shù)2n-X。第二累加電路2在每一個工作周期也執(zhí)行一次相加操作,即將從第一累加電路I接收到的第一相加結(jié)果的余數(shù)與進(jìn)制控制數(shù)2N-X相加,得到第二相加結(jié)果,該第二相加結(jié)果也用余數(shù)和進(jìn)位來表示,該余數(shù)和進(jìn)位則由第二累加電路2的進(jìn)制數(shù)來確定,第一累加電路I和第二累加電路2的進(jìn)制數(shù)相等。
[0044]對于上述第一累加電路I,本領(lǐng)域技術(shù)人員可以設(shè)計實現(xiàn)多種電路來實現(xiàn),例如采用比較器、移位器或加法器等結(jié)構(gòu)來實現(xiàn)。本實施例提供一種采用加法器的實現(xiàn)方式,第一累加電路I可以為加法器,可采用現(xiàn)有技術(shù)中常用的半加器,可對N位的二進(jìn)制數(shù)進(jìn)行相加操作。半加器具有兩個輸入端和兩個輸出端,其中兩個輸入端分別為加數(shù)輸入端和被加數(shù)輸入端,對應(yīng)用于輸入加數(shù)和被加數(shù),兩個輸出端分別為余數(shù)輸出端和進(jìn)位輸出端,對應(yīng)用于輸出相加結(jié)果的余數(shù)和進(jìn)位。
[0045]具體的,第一累加電路I的加數(shù)輸入端用于輸入計數(shù)步長R,被加數(shù)輸入端與選擇電路3的輸出端連接以接收基數(shù),余數(shù)輸出端輸出第一相加結(jié)果的余數(shù),進(jìn)位輸出端輸出第一相加結(jié)果的進(jìn)位。
[0046]下面舉例來說明第一相加結(jié)果由余數(shù)和進(jìn)位來表示的方式:假設(shè)設(shè)計該計數(shù)器為10進(jìn)制計數(shù)器(即X=10),計數(shù)步長R的取值范圍可根據(jù)0〈R〈X來確定,即計數(shù)步長R可以為數(shù)字O至10之間的任意整數(shù),假設(shè)計數(shù)步長R為7,第一累加電路I和第二累加電路2可處理的二進(jìn)制數(shù)位數(shù)N為4。
[0047](I)假設(shè)基數(shù)為2,第一相加結(jié)果應(yīng)當(dāng)為2+7=9,由于第一累加電路I計算的二進(jìn)制數(shù)位數(shù)N為4,其最大值為24-1=15,第一相加結(jié)果的余數(shù)和進(jìn)位是相對于24來得到的,則余數(shù)為9,進(jìn)位為O ;
[0048](2)假設(shè)基數(shù)為8,第一相加結(jié)果應(yīng)當(dāng)為8+7=15,則第一相加結(jié)果的余數(shù)為15,進(jìn)位為O ;
[0049](3)假設(shè)基數(shù)為9,第一相加結(jié)果應(yīng)當(dāng)為9+7=16,則第一相加結(jié)果的余數(shù)為0,進(jìn)位為I。
[0050]首先明確第一累加電路I的進(jìn)位計算與計數(shù)器的進(jìn)位計算的區(qū)別,第一累加電路I的進(jìn)位是相對于2N來計算的,也即:滿2N進(jìn)位,而計數(shù)器是X進(jìn)制的計數(shù)器,其進(jìn)位是相對于X來計算的,也即:滿X進(jìn)位。
[0051]對于上述情況(1),對于4位的第一累加電路I而言,第一相加結(jié)果的余數(shù)為9,進(jìn)位為0,對于10進(jìn)制的計數(shù)器而言,其該計數(shù)器的余數(shù)確實為9,進(jìn)位為O ;
[0052]對于上述情況(2),對于4位的第一累加電路I而言,第一相加結(jié)果的余數(shù)為15,進(jìn)位為0,但對于10進(jìn)制的計數(shù)器而言,計數(shù)器的余數(shù)不可能為15,也就是說第一相加結(jié)果的余數(shù)并不能作為計數(shù)器的余數(shù);
[0053]對于上述情況(3),對于4位的第一累加電路I而言,第一相加結(jié)果的余數(shù)為0,進(jìn)位為1,但對于10進(jìn)制的計數(shù)器而言,第一相加結(jié)果的余數(shù)O也并不是計數(shù)器的真實余數(shù)的數(shù)值。
[0054]因此,在第一累加電路I的基礎(chǔ)上,可設(shè)置第二累加電路2,用于對第一計算結(jié)果進(jìn)行補(bǔ)充計算。
[0055]對于第二累加電路2,本領(lǐng)域技術(shù)人員也可以設(shè)計實現(xiàn)多種電路來實現(xiàn),例如采用比較器、移位器或加法器等結(jié)構(gòu)來實現(xiàn)。本實施例提供一種采用加法器的實現(xiàn)方式,第二累加電路2可以為加法器,可采用現(xiàn)有技術(shù)中常用的半加器,第二累加電路2的結(jié)構(gòu)可以與第一累加電路I的結(jié)構(gòu)相同,可對N位的二進(jìn)制數(shù)進(jìn)行相加操作。
[0056]具體的,第二累加電路2的加數(shù)輸入端用于輸入進(jìn)位控制數(shù),該進(jìn)位控制數(shù)可以為2N-X,被加數(shù)輸入端與第一累加電路I的余數(shù)輸出端連接以接收第一相加結(jié)果的余數(shù),余數(shù)輸出端輸出第二相加結(jié)果的余數(shù),進(jìn)位輸出端輸出第二相加結(jié)果的進(jìn)位。
[0057]則對于第一相加結(jié)果的進(jìn)位為O的情況,需要進(jìn)行進(jìn)一步的判斷,判斷第一相加結(jié)果的余數(shù)是否大于進(jìn)制數(shù)X,具體實現(xiàn)方式是設(shè)定進(jìn)制控制數(shù)為24_X,使得第二累加電路2將進(jìn)制控制數(shù)與第一相加結(jié)果的余數(shù)相加,得到第二相加結(jié)果,并判斷第二相加結(jié)果是否有進(jìn)位,若有進(jìn)位,則確定第一相加結(jié)果的余數(shù)確實大于X,則將第二相加結(jié)果的余數(shù)作為整個計數(shù)器的余數(shù)輸出,若無進(jìn)位,則確定第一相加結(jié)果的余數(shù)確實小于X,則將第一相加結(jié)果的余數(shù)作為整個計數(shù)器的余數(shù)輸出。
[0058]具體的,對于上述情況(I ),計算4位二進(jìn)制數(shù)的第一累加電路I輸出第一相加結(jié)果的余數(shù)為9,進(jìn)位為0,進(jìn)制控制數(shù)24-X為6,第二累加電路2將第一相加結(jié)果的余數(shù)和進(jìn)制控制數(shù)相加,得到第二相加結(jié)果為15,則第二相加結(jié)果相對于24計算進(jìn)位方式,第二相加結(jié)果的余數(shù)為15,進(jìn)位為O。則確定第一相加結(jié)果的余數(shù)9可作為10進(jìn)制計數(shù)器的余數(shù)輸出。
[0059]則對于上述情況(2),計算4位二進(jìn)制數(shù)的第一累加電路I輸出第一相加結(jié)果的余數(shù)為15,進(jìn)位為0,進(jìn)制控制數(shù)24-X為6,第二累加電路2將第一相加結(jié)果的余數(shù)和進(jìn)制控制數(shù)相加,得到第二相加結(jié)果為21,則第二相加結(jié)果的余數(shù)為5,進(jìn)位為I。則確定第二相加結(jié)果的余數(shù)5可作為10進(jìn)制計數(shù)器的余數(shù)輸出。
[0060]上述情況(I)和(2)中第一相加結(jié)果的進(jìn)位都是0,對于情況(3),第一相加結(jié)果的進(jìn)位是1,余數(shù)是0,由于第一累加電路I是相對于24進(jìn)行進(jìn)位計算的,則與10進(jìn)制計數(shù)器相比,當(dāng)?shù)谝幌嗉咏Y(jié)果的進(jìn)位為I時,相當(dāng)于第一相加結(jié)果的余數(shù)多減掉24-X,則在第二累加電路2中再加上24-X,即第二累加電路2接收的進(jìn)制控制數(shù)為24-X,將其與第一相加結(jié)果的余數(shù)O相加,得到第二相加結(jié)果為6,進(jìn)位為O。確定第二相加結(jié)果的余數(shù)6可作為10進(jìn)制計數(shù)器的余數(shù)輸出。
[0061]上述三個例子對于本實施例提供的第一累加電路I和第二累加電路2的結(jié)構(gòu)和功能進(jìn)行了具體說明,類似的,第一累加電路I和第二累加電路2也同樣適應(yīng)其它數(shù)值的計數(shù)步長R和進(jìn)位控制數(shù)2N-X。
[0062]上述選擇電路3分別與第一累加電路I和第二累加電路2連接,具體可分別與第一累加電路I的兩個輸出端連接和第二累加電路2的兩個輸出端連接,以接收第一相加結(jié)果的進(jìn)位、第一相加結(jié)果的余數(shù)、第二相加結(jié)果的進(jìn)位和第二相加結(jié)果的余數(shù)。若第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位中至少有一個為1,選擇電路3將第二相加結(jié)果的余數(shù)作為基數(shù)輸出,相當(dāng)于若第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為0,選擇電路3將第一相加結(jié)果的余數(shù)作為基數(shù)輸出。該基數(shù)一方面可提供給第一累加電路I,使得在下一工作周期中,第一累加電路I將該基數(shù)繼續(xù)與計數(shù)步長R相加;另一方面,該基數(shù)可作為計數(shù)器的輸出值,在每一個計算周期將得到的基數(shù)輸出。
[0063]基于上述列舉的三種情況,情況(I)中,第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為0,則選擇電路3可將第一相加結(jié)果的余數(shù)作為基數(shù)輸出。情況(2)中,第二相加結(jié)果的進(jìn)位為1,情況(3)中第一相加結(jié)果的進(jìn)位為1,則對于情況(2)和(3),選擇電路3可將第二相加結(jié)果的余數(shù)作為基數(shù)輸出。
[0064]本領(lǐng)域技術(shù)人員可設(shè)計多種選擇電路3的結(jié)構(gòu),以實現(xiàn)上述功能,本實施例提供一種具體的實現(xiàn)方式,可參照圖2,圖2為本發(fā)明實施例一提供的計數(shù)器的結(jié)構(gòu)示意圖二。選擇電路3可以包括進(jìn)位選擇電路31和余數(shù)選擇電路32。
[0065]其中,進(jìn)位選擇電路31的兩個輸入端分別與第一累加電路I和第二累加電路2連接,接收第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位,若第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位中至少有一個為1,則進(jìn)位選擇電路31輸出有效的余數(shù)控制值,若第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為0,進(jìn)位選擇電路31輸出無效的余數(shù)控制值。
[0066]進(jìn)位選擇電路31可以采用多種實現(xiàn)方式,最簡單的一種結(jié)構(gòu)為或門,該或門的一個輸入端與第一累加電路I的進(jìn)位輸出端連接,以接收第一相加結(jié)果的進(jìn)位,另一個輸入端與第二累加電路2的進(jìn)位輸出端連接,以接收第二相加結(jié)果的進(jìn)位,或門的輸出端與余數(shù)選擇電路32的控制端連接,以發(fā)送余數(shù)控制值。
[0067]或門能實現(xiàn)的功能是當(dāng)?shù)谝幌嗉咏Y(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位中至少有一個為1,則或門輸出1,也即輸出有效的余數(shù)控制值,當(dāng)?shù)谝幌嗉咏Y(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位都為0,則或門輸出0,也即輸出無效的余數(shù)控制值。
[0068]余數(shù)選擇電路32的控制端與進(jìn)位選擇電路31的輸出端連接,用于接收余數(shù)控制值,余數(shù)選擇電路32的兩個輸入端分別與第一累加電路I和第二累加電路2連接,具體分別與第一累加電路I的余數(shù)輸出端連接以接收第一相加結(jié)果的余數(shù),以及與第二累加電路2的余數(shù)輸出端連接以接收第二相加結(jié)果的余數(shù)。若余數(shù)控制值有效,則余數(shù)選擇電路32將第二相加結(jié)果的余數(shù)作為基數(shù)輸出,若余數(shù)控制值無效,則余數(shù)選擇電路32將第一相加結(jié)果的余數(shù)作為基數(shù)輸出。
[0069]余數(shù)選擇電路32可以采用多種實現(xiàn)方式,最簡單的一種結(jié)構(gòu)為二選一數(shù)據(jù)選擇器,該二選一數(shù)據(jù)選擇器的一個輸入端與第一累加電路I的余數(shù)輸出端連接,另一個輸入端于第二累加電路的余數(shù)輸出端連接,二選一數(shù)據(jù)選擇器的控制端與上述或門的輸出端連接,二選一數(shù)據(jù)選擇器的輸出端作為余數(shù)選擇電路32的輸出端。
[0070]二選一數(shù)據(jù)選擇器實現(xiàn)的功能是當(dāng)余數(shù)控制值有效時,將第二相加結(jié)果的余數(shù)作為基數(shù)輸出,當(dāng)余數(shù)控制值無效時,將第一相加結(jié)果的余數(shù)作為基數(shù)輸出。
[0071]本實施例提供的計數(shù)器能夠?qū)崿F(xiàn)任意進(jìn)制數(shù)任意步長的計算,下面舉例來說明該計數(shù)器的工作過程:
[0072]假設(shè)進(jìn)制數(shù)X為10,計數(shù)步長R為7,兩個累加電路需處理的二進(jìn)制數(shù)的位數(shù)N為4,進(jìn)制控制數(shù)2N-X為6,其中,計數(shù)步長R作為計數(shù)步長可由外部電路輸入,進(jìn)制控制數(shù)也由外部電路輸入。
[0073]在計數(shù)器的第一工作周期內(nèi),設(shè)定基數(shù)為0,則第一累加電路I將基數(shù)O和計數(shù)步長7相加,得到第一相加結(jié)果為7,則第一相加結(jié)果的余數(shù)為7,進(jìn)位為O ;第二累加電路2將第一相加結(jié)果的余數(shù)7和進(jìn)制控制數(shù)6相加,得到第二相加結(jié)果為13,則第二相加結(jié)果的余數(shù)為13,進(jìn)位為O ;上述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為0,則或門輸出余數(shù)控制數(shù)為0,二選一數(shù)據(jù)選擇器將第一相加結(jié)果的余數(shù)7作為基數(shù)輸出,并提供給第一累加電路1,參與下一工作周期的計算。
[0074]在計數(shù)器的第二工作周期內(nèi),第一累加電路I將基數(shù)7和計數(shù)步長7相加,得到第一相加結(jié)果為14,則第一相加結(jié)果的余數(shù)為14,進(jìn)位為O ;第二累加電路2將第一相加結(jié)果的余數(shù)14與進(jìn)制控制數(shù)6相加,得到第二相加結(jié)果20,則第二相加結(jié)果的余數(shù)為4,進(jìn)位為I;上述第二相加結(jié)果的進(jìn)位為1,則或門輸出余數(shù)控制數(shù)為I,二選一數(shù)據(jù)選擇器將第二相加結(jié)果的余數(shù)4作為基數(shù)輸出,并提供給第一累加電路I,參與下一工作周期的計算。
[0075]類似的,本實施例提供的計數(shù)器能夠在多個工作周期內(nèi)按照設(shè)定的步長和進(jìn)制數(shù)進(jìn)行計數(shù),表一為計數(shù)器在9個工作周期中的中間數(shù)值。
[0076]表一計數(shù)器在9個工作周期中的中間數(shù)值
[0077]
【權(quán)利要求】
1.一種計數(shù)器,其特征在于,包括:第一累加電路、第二累加電路以及選擇電路,所述計數(shù)器的進(jìn)制數(shù)為小于所述第一累加電路的進(jìn)制數(shù)的可變數(shù)值,所述第一累加電路與所述第二累加電路具有相同的進(jìn)制數(shù);其中, 所述第一累加電路的其中一個輸入端用于輸入計數(shù)步長,另一個輸入端與所述選擇電路的輸出端連接,以接收所述選擇電路發(fā)送的基數(shù);所述第一累加電路用于將所述計數(shù)步長與所述基數(shù)相加,得到第一相加結(jié)果,并按照所述第一累加電路的進(jìn)制數(shù)計算所述第一相加結(jié)果的余數(shù)和所述第一相加結(jié)果的進(jìn)位; 所述第二累加電路的其中一個輸入端與所述第一累加電路連接,用于接收所述第一相加結(jié)果的余數(shù),所述第二累加電路的另一個輸入端用于輸入進(jìn)制控制數(shù),所述進(jìn)制控制數(shù)為所述第一累加電路的進(jìn)制數(shù)與所述計數(shù)器當(dāng)前的進(jìn)制數(shù)的差;所述第二累加電路用于將所述第一相加結(jié)果的余數(shù)與所述進(jìn)制控制數(shù)相加,得到第二相加結(jié)果以對所述第一相加結(jié)果進(jìn)行補(bǔ)充計算,并按照第二累加電路的進(jìn)制數(shù)計算所述第二相加結(jié)果的余數(shù)和所述第二相加結(jié)果的進(jìn)位; 所述選擇電路分別與所述第一累加電路和第二累加電路連接,以接收所述第一相加結(jié)果的進(jìn)位、第一相加結(jié)果的余數(shù)、第二相加結(jié)果的進(jìn)位和第二相加結(jié)果的余數(shù);若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位中至少有一個為1,所述選擇電路將所述第二相加結(jié)果的余數(shù)作為所述基數(shù)輸出,若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為O,所述選擇電路將所述第一相加結(jié)果的余數(shù)作為所述基數(shù)輸出。
2.根據(jù)權(quán)利要求1所述的計數(shù)器,其特征在于,所述第一累加電路為加法器; 所述第一累加電路的加數(shù)輸入端用于輸入所述計數(shù)步長,被加數(shù)輸入端與所述選擇電路的輸出端連接以接收所述基數(shù),余數(shù)輸出端輸出所述第一相加結(jié)果的余數(shù),進(jìn)位輸出端輸出所述第一相加結(jié)果的進(jìn)位。
3.根據(jù)權(quán)利要求2所述的計數(shù)器,其特征`在于,所述第二累加電路為加法器; 所述第二累加電路的加數(shù)輸入端用于輸入所述進(jìn)位控制數(shù),被加數(shù)輸入端與所述第一累加電路的余數(shù)輸出端連接以接收所述第一相加結(jié)果的余數(shù),余數(shù)輸出端輸出所述第二相加結(jié)果的余數(shù),進(jìn)位輸出端輸出所述第二相加結(jié)果的進(jìn)位。
4.根據(jù)權(quán)利要求3所述的計數(shù)器,其特征在于,所述選擇電路包括:進(jìn)位選擇電路和余數(shù)選擇電路; 所述進(jìn)位選擇電路的兩個輸入端分別與所述第一累加電路和第二累加電路連接,接收所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位;若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位中至少有一個為1,所述進(jìn)位選擇電路輸出有效的余數(shù)控制值,若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為O,所述進(jìn)位選擇電路輸出無效的余數(shù)控制值; 所述余數(shù)選擇電路的控制端與所述進(jìn)位選擇電路的輸出端連接,用于接收所述余數(shù)控制值,所述余數(shù)選擇電路的兩個輸入端分別與所述第一累加電路和第二累加電路連接,接收所述第一相加結(jié)果的余數(shù)和第二相加結(jié)果的余數(shù);若所述余數(shù)控制值有效,則所述余數(shù)選擇電路將所述第二相加結(jié)果的余數(shù)作為所述基數(shù)輸出,若所述余數(shù)控制值無效,則所述余數(shù)選擇電路將所述第一相加結(jié)果的余數(shù)作為所述基數(shù)輸出。
5.根據(jù)權(quán)利要求4所述的計數(shù)器,其特征在于,所述進(jìn)位選擇電路為或門; 所述或門的一個輸入端與所述第一累加電路的進(jìn)位輸出端連接,另一個輸入端與所述第二累加電路的進(jìn)位輸出端連接,所述或門的輸出端與所述余數(shù)選擇電路的控制端連接。
6.根據(jù)權(quán)利要求4所述的計數(shù)器,其特征在于,所述余數(shù)選擇電路為二選一數(shù)據(jù)選擇器; 所述二選一數(shù)據(jù)選擇器的一個輸入端與所述第一累加電路的余數(shù)輸出端連接,另一個輸入端于所述第二累加電路的余數(shù)輸出端連接,所述二選一數(shù)據(jù)選擇器的控制端與所述進(jìn)位選擇電路的輸出端連接,所述二選一數(shù)據(jù)選擇器的輸出端作為所述余數(shù)選擇電路的輸出端。
7.根據(jù)權(quán)利要求1-6任一項所述的計數(shù)器,其特征在于,還包括寄存器;所述寄存器設(shè)置在所述選擇電路與所述第一累加電路之間,用于存儲所述基數(shù)。
8.一種計數(shù)方法,其特征在于,包括: 獲取計數(shù)步長、基數(shù)、預(yù)設(shè)累加進(jìn)制數(shù)、計數(shù)進(jìn)制數(shù)和進(jìn)制控制數(shù); 將所述計數(shù)步長和基數(shù)相加得到第一相加結(jié)果,并按照所述預(yù)設(shè)累加進(jìn)制數(shù)計算所述第一相加結(jié)果的余數(shù)和所述第一相加結(jié)果的進(jìn)位; 將所述第一相加結(jié)果的余數(shù)和進(jìn)制控制數(shù)相加得到第二相加結(jié)果,并按照所述預(yù)設(shè)累加進(jìn)制數(shù)計算所述第二相加結(jié)果的余數(shù)和所述第二相加結(jié)果的進(jìn)位;所述進(jìn)制控制數(shù)為所述預(yù)設(shè)累加進(jìn)制數(shù)與所述計數(shù)進(jìn)制數(shù)的差; 若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位中至少有一個為1,將所述第二相加結(jié)果的余數(shù)作為所述基數(shù)進(jìn)行再次計算直到計數(shù)完成;若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為O, 將所述第一相加結(jié)果的余數(shù)作為所述基數(shù)進(jìn)行再次計算直到計數(shù)完成。
9.根據(jù)權(quán)利要求8所述的計數(shù)方法,其特征在于,還包括: 在計數(shù)完成時,若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位中至少有一個為1,將所述第二相加結(jié)果的余數(shù)作為結(jié)果輸出;若所述第一相加結(jié)果的進(jìn)位和第二相加結(jié)果的進(jìn)位均為O,將所述第一相加結(jié)果的余數(shù)作為結(jié)果輸出。
10.一種分頻器,其特征在于,包括如權(quán)利要求1-7任一項所述的計數(shù)器。
【文檔編號】H03K23/00GK103856211SQ201410124410
【公開日】2014年6月11日 申請日期:2014年3月28日 優(yōu)先權(quán)日:2014年3月28日
【發(fā)明者】劉敬輝, 王峰 申請人:龍芯中科技術(shù)有限公司