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