新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于可編程器件的任意進制計數器的設計方法

        基于可編程器件的任意進制計數器的設計方法

        作者: 時間:2009-12-08 來源:網絡 收藏

        1 引言
        目前計數器設計主要有軟件、硬件電路搭建和EDA技術編程實現等多種方式。其中,EDA技術編程實現方式由于具有軟件的靈活性和接近硬件電路計數器的最高計數頻率而應用廣泛。但對于位寬8 bit以上,模式較復雜的計數器采用EDA技術編程、調試卻非常繁瑣。Altera公司考慮到工程上的具體應用,增加MAX+plus II設計軟件的靈活性,設置LPM(Librarv of Parameterized Moclules)元件庫供設計人員使用。該庫包含一些常用功能模塊所生成的元件,其元件引腳和參數由用戶直接指定,可適應不同設計需要(如利用LPM元件庫中的lpm_counter元件設計任意)。使用LPM元件庫優點如下:(1)LPM設計的電路與結構無關;(2)設計人員利用LPM設計時,不用擔心芯片利用率和效率等問題,無需自行設計基本的標準邏輯單元來構造某種功能,直到設計結束,設計人員都無需考慮其最終結構,設計輸入和模擬仿真獨立于物理結構。作為EDIF(電子設計交換格式)標準的一部分,LPM得到EDA界的廣泛支持。

        本文引用地址:http://www.104case.com/article/191860.htm


        2 lpm_counter元件介紹
        lpm_counter是LPM元件庫的可調參數計數器元件,其最大計數位寬為32 bit,最小計數時鐘周期達8 ns(125 MHz,使用EPM7032LC44-6實現);實現加、減或可逆計數;同步或異步清零/置數功能可選;通過參數設置,實現任意進制、輸出位寬不超過32 bit的加、減或可逆同步/異步計數器。
        2.1 引腳及功能描述
        1pm_counter元件的引腳端中,只有時鐘端是必選的,需要外界提供計數信號;其他引腳端都為可選,當這些引腳端未選中時,其值為缺省值,引腳在計數器圖形符號中不顯示。
        各引腳端功能描述如下:
        data[]:數據輸入總線端,輸入信號位寬由LPM_WIDTH決定,用于異步或同步置數。
        clock:時鐘端,上升沿觸發。
        clk_en:時鐘信號輸入允許端;缺省值為“1”(允許)。
        cnt_en:計數允許端,缺省值為“1”(允許)。在同步置數、同步輸入設置或同步清零時為“0”(禁止)。
        updown:計數方向控制端,缺省值為“l”(加計數)。若選擇“LPM_DIRECTION”參數,則該引腳端禁止使用。
        cin:低位進位端,若省略,其缺省值為“0”。
        aclr:異步清零端,缺省值為“0”(禁止)。如果同時輸入異步清零和異步輸入設置信號,則異步清零信號有效,屏蔽異步輸入設置信號。
        aset:異步輸入設置端,缺省值為“0”(禁止)。當aset端輸入“1”時,q[]輸出全“1”或為“LPM_AVALUE”指定值。
        aload:異步置數端,缺省值為“O”(禁止)。若選用“異步置數”端,必須連接“data[]”端。該aload端可置入計數初始值。
        sclr:同步清零端,缺省值為“O”(禁止)。如果同時輸入同步清零和同步輸入設置信號,則同步清零信號有效,屏蔽同步輸入設置信號。
        sset:同步輸入設置端,缺省值為“0”(禁止)。當sset端輸入“1”時,q[]輸出全“l”或為“LPM_SVALUE”指定值。
        sload:同步置數端,缺省值為“O”(禁止)。若選用“同步置數”端,必須連接“dat[]”端。該sload端可置入計數初始值。
        q[]:計數值輸出端,輸出位寬由“LPM_WIDTH”決定。
        eq[15..0]:輸出端,計數器模值必須小于16。當計數值為c時,則輸出端eq[c]為1(高電平)。例如:當計數值c=0時,則輸出端eq[0]=l;當計數值c=1時,則輸出端eq[1]=1;……。
        cout:進位端。
        2.2 參數及功能
        lpm_counter元件參數中LPM_WIDTH參數是必選項.其他參數為可選項。各參數的功能說明如下:
        LPM_WIDTH(計數位寬):該參數最大取值為32。它決定計數器置數端(data[])和輸出端(q[])的位寬;決定LPM_MODULUS的最大取值(2 LPM_WIDTH)。若LPM_MODULUS參數取值大于2 LPM_WIDTH,則計數器不能正常工作。
        LPM_DIRECTION(計數方向):有“UP”,“DOWN”和“UNUSED”3種取值。如果使用LPM_DIRECTION參數,則updown端不連接,其參數默認值為“UP”。
        LPM_MODULUS(計數模數):該參數決定計數器的進制:如果該參數不設置,則其缺省值為二進制,且其最大計數值為2 LPM_WIDTH;如果aload(或sload、asel、sset)所置數值比LPM_MODULUS參數大,則計數值出錯。
        LPM_AVALUE(異步計數初值):如果aset=1,則該計數初值被加載。如果該指定值比LPM_MODULUS大,則計數器輸出值出錯。
        LPM_SVALUE(同步計數初值):如果sset=1,則該計數初值被加載。如果該指定值比LPM_MODULUS大,則計數器輸出值出錯。


        3 設計實例
        某型帶峰谷費率設置的數字電能表要安裝一實時鐘模塊,實現日、時、分、秒等計時功能,實現不同時段用戶所耗電能以不同費率計費。圖l為該電能表計時模塊原理框圖。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 张北县| 禄丰县| 台前县| 安徽省| 阿勒泰市| 遂川县| 东丽区| 岗巴县| 库伦旗| 邵阳县| 都匀市| 观塘区| 九龙城区| 乌审旗| 呼和浩特市| 南溪县| 合山市| 阳西县| 临泉县| 嘉善县| 饶河县| 延吉市| 肃宁县| 宜良县| 普格县| 门头沟区| 洛隆县| 灵璧县| 赤城县| 珠海市| 白城市| 简阳市| 三河市| 奉节县| 前郭尔| 塔河县| 高淳县| 茌平县| 高唐县| 资源县| 韶关市|