衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

采用VHDL語言實現多功能可變模計數器設計并進行仿真驗證

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-04-26 08:27 ? 次閱讀

引 言

隨著電子技術、計算機技術和EDA技術的不斷發展,利用FPGACPLD進行數字系統的開發已被廣泛應用于通信、航天、醫療電子工業控制等領域。與傳統電路設計方法相比,FPGA/CPLD具有功能強大,開發周期短,投資少,便于追蹤市場變化及時修改產品設計,以及開發工具智能化等特點。近年來,FPGA/CPLD發展迅速,隨著集成電路制造工藝的不斷進步,高性價比的FPGA/CPLD器件推陳出新,使FPGA/CPLD成為當今硬件設計的重要途徑。在FPGA/CPLD的應用設計開發中,VHDL語言作為一種主流的硬件描述語言,具有很強的電路描述和建模能力,能從多個層次對數字系統進行建模和描述,從而大大簡化了硬件設計任務,提高了設計效率和可靠性,并在語言易讀性和層次化、結構化設計方面。表現出了強大的生命力和應用潛力。

采用VHDL語言實現多功能可變模計數器設計并進行仿真驗證

QuartusⅡ是Altera公司在21世紀初推出的FPGA/CPLD集成開發環境,是Altera公司前一代FPGA/CPLD集成開發環境Max+PlusⅡ的更新換代產品,其界面友好,使用便捷,功能強大,為設計者提供了一種與結構無關的設計環境,使設計者能方便地進行設計輸入、快速處理和器件編程

計數器是數字系統中使用最多的時序電路之一,不僅能用于對時鐘脈沖計數,還可以用于分頻、定時、產生節拍脈沖和脈沖序列以及進行數字運算等。可變模計數器由于計數容量可以根據需要進行變化,為其廣泛使用創造了便利。這里在QuartusⅡ開發環境下,用VHDL語言設計了一種具有清零、置數、使能控制、可逆計數和可變模功能的計數器。

1 基本可變模計數器設計

可變模計數器是指計數/模值可根據需要進行變化的計數器。電路符號圖1所示,clk為時鐘脈沖輸入端,clr為清零端,m為模值輸入端,q為計數輸出端。

基本可變模計數器的VHDL代碼如下所示:

采用VHDL語言實現多功能可變模計數器設計并進行仿真驗證

采用VHDL語言實現多功能可變模計數器設計并進行仿真驗證

說明:上述代碼設計采用了常用的if語句結構,即“if條件句then順序語句elsif條件句then順序語句else順序語句end if”結構,實現模值小于99的可變模計數。

從上述的代碼可以看出,基本的可變模計數器的功能單一。仿真驗證則表明在進行模值變換時,基本的可變模計數器存在一些功能上的缺陷:計數器若是由較小的模值變化為較大的模值時,能正常的進行變模計數;但當其由較大的模值變化為較小的模值,則可能出現計數失控,如圖2所示,圖中顯示了當模值由12變換為7時,即發生了計數失控。失控的原因是大于當模值由12變換為7時,計數輸出為q為11,大于當前模值7的計數最大值6,由此產生了計數失控。

采用VHDL語言實現多功能可變模計數器設計并進行仿真驗證

2 改進的多功能可變模計數器

為了克服上述基本可變模計數器的缺陷,并增加更多的控制功能,在此設計了一種改進的多功能可變模計數器,具有清零、置數、使能控制、可逆計數和可變模功能。其電路符號如圖3所示,clk為時鐘脈沖輸入端,m為模值輸入端,clr為清零控制端,s為置數控制端,d為置數輸入端,en為使能控制端,updn為計數方向控制端,q為計數輸出端,co為進位輸出端。

采用VHDL語言實現多功能可變模計數器設計并進行仿真驗證

這里所設計的多功能可變模計數器的VHDL代碼如下所示:

采用VHDL語言實現多功能可變模計數器設計并進行仿真驗證

采用VHDL語言實現多功能可變模計數器設計并進行仿真驗證

LIBRARY IEEE;

值得注意的是,這里所設計的多功能可變模計數器具有如下特點:

(1)該設計的多功能可變模計數器具有多個功能控制端。因此各個控制端的優先權順序就成為設計的關鍵,經過理論分析和仿真調試,最終確認的優先權順序為:clr(清零)→clk(時鐘觸發)→s(置數)→en(使能)→updn(計數方向)。這個優先權順序可以有效地保證各個功能的完整實現,以及技術器的穩定運行。

(2)為了防止出現計數失控,大多數計數器采用給計數器增加一個復位控制端的辦法,當發現計數輸出q發生了計數失控時,通過復位控制端將計數器復位來排除計數失控。這種方法雖然有效,但是每次出現計數失控都要手動控制復位,給實際使用帶來了不便。該設計的多功能可變模計數器中,將當前的計數輸出q與當前的計數最大值m_temp進行比較,如果q比m_temp大,則強制將m_temp賦給q,這樣就可以自動避免計數失控,不必再增加手動的復位控制端。

3 仿真結果分析

該多功能可變模計數器在QuartusⅡ開發環境下進行了仿真驗證,功能仿真波形如圖4所示,時序仿真波形如圖5所示。

采用VHDL語言實現多功能可變模計數器設計并進行仿真驗證

仿真結果分析如下:

(1)clk為時鐘信號,由時鐘信號的上升沿觸發計數;

(2)m為模值輸入端,當其變化時,計數容量相應發生變化;

(3)clr為清零控制端,當其為高電平時清零;

(4)s為置數控制端,當其為高電平時將置數輸入端d的數據加載到輸出端q;

(5)en為使能控制端,當其為高電平時正常計數,當其為低電平時暫停計數;

(6)updn為計數方向控制端,當其為高電平時計數器加法計數,當其為低電平時計數器減法計數。

4 結 語

這里所設計的多功能可變模計數器在QuartusⅡ開發環境下進行了仿真驗證后,下載到湖北眾友科技實業股份有限公司的ZY11EDA13BE實驗箱中進行了硬件驗證。該實驗箱使用ACEX1K系列EP1K30QC208芯片作為核心芯片.實驗證明設計正確,功能完整,運行穩定。另外,該設計的多功能可變模計數器可根據需要將模值的最大值由99進一步擴展,獲得更高的計數模值。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21798

    瀏覽量

    606067
  • cpld
    +關注

    關注

    32

    文章

    1257

    瀏覽量

    169637
  • vhdl
    +關注

    關注

    30

    文章

    817

    瀏覽量

    128346
收藏 人收藏

    評論

    相關推薦

    M的十進制加/減可逆計數器設計、仿真與實驗

    電路進行仿真;掌握可逆計數器電路的安裝及調試方法。設計具有手控和自動方式實現M的十進制加/減可逆計數
    發表于 09-16 15:06

    在QuartusⅡ開發環境下怎么用VHDL語言設計可變功能計數器

    在QuartusⅡ開發環境下,用VHDL語言設計了一種具有清零、置數、使能控制、可逆計數可變功能
    發表于 04-30 06:44

    如何用VHDL語言設計的多功能可變計數器

    如何用VHDL語言設計一種具有清零、置數、使能控制、可逆計數可變功能
    發表于 05-06 10:06

    各種功能計數器實例(VHDL源代碼)

    各種功能計數器實例(VHDL源代碼):
    發表于 05-27 10:19 ?54次下載
    各種<b class='flag-5'>功能</b>的<b class='flag-5'>計數器</b>實例(<b class='flag-5'>VHDL</b>源代碼)

    基于Multisim的計數器設計仿真

    計數器是常用的時序邏輯電路器件,文中介紹了以四位同步二進制集成計數器74LS161和異步二-五-十計數器74LS290為主要芯片,設計實現
    發表于 07-26 11:38 ?134次下載
    基于Multisim的<b class='flag-5'>計數器</b>設計<b class='flag-5'>仿真</b>

    基于Proteus的任意進制計數器設計與仿真

    提出一種基于Proteus 軟件的任意進制計數器的設計。以74LS163 集成計數器為基礎,用置數法設計了兩種48 進制計數器采用Proteus 軟件對
    發表于 07-29 18:53 ?0次下載

    基于74LS160的N進制計數器仿真設計

    計的電路進行仿真實驗。仿真結果表明設計的計數器實現所要求的N進制技術功能。最終得出
    發表于 12-21 17:08 ?6.9w次閱讀
    基于74LS160的N進制<b class='flag-5'>計數器</b><b class='flag-5'>仿真</b>設計

    采用VHDL言實現基于Petri網的并行控制設計并進行仿真驗證

    Petri網是離散事件系統建模的重要工具,本文使用硬件描述語言VHDL實現了基于Petri網的并行控制。文中通過一個液位控制系統實例具體介紹了這一方法,并通過
    的頭像 發表于 04-22 08:10 ?1998次閱讀
    <b class='flag-5'>采用</b><b class='flag-5'>VHDL</b>預<b class='flag-5'>言實現</b>基于Petri網的并行控制<b class='flag-5'>器</b>設計<b class='flag-5'>并進行</b><b class='flag-5'>仿真</b><b class='flag-5'>驗證</b>

    如何使用FPGA進行多功能實驗板的設計與實現

    設計和實現了一個以Altera FPGA的Cyclone器件EP1C6Q240C8為核心的多功能實驗板。它分為核心板和擴展板, 用戶可以結合QuartusII集成開發環境, 使用VHDL語言
    發表于 11-16 16:48 ?8次下載
    如何使用FPGA<b class='flag-5'>進行</b><b class='flag-5'>多功能</b>實驗板的設計與<b class='flag-5'>實現</b>

    如何使用VHDL語言編程進行多功能數字鐘的設計

    應用VHDL語言編程,進行多功能數字鐘的設計,并在MAX PLUSⅡ環境下通過了編譯、仿真、調試。
    發表于 06-11 08:00 ?0次下載
    如何使用<b class='flag-5'>VHDL</b><b class='flag-5'>語言</b>編程<b class='flag-5'>進行</b><b class='flag-5'>多功能</b>數字鐘的設計

    使用C語言實現脈沖計數器實驗的資料詳細說明

    本文檔的主要內容詳細介紹的是使用C語言實現脈沖計數器實驗的資料詳細說明。
    發表于 06-19 17:40 ?20次下載
    使用C<b class='flag-5'>語言實現</b>脈沖<b class='flag-5'>計數器</b>實驗的資料詳細說明

    基于VHDL硬件描述語言實現CPSK調制的程序及仿真

    本文檔的主要內容詳細介紹的是基于VHDL硬件描述語言實現CPSK調制的程序及仿真
    發表于 01-19 14:34 ?11次下載
    基于<b class='flag-5'>VHDL</b>硬件描述<b class='flag-5'>語言實現</b>CPSK調制的程序及<b class='flag-5'>仿真</b>

    使用VHDL硬件描述語言實現基帶信號的MFSK調制的程序與仿真

    本文檔的主要內容詳細介紹的是使用VHDL硬件描述語言實現基帶信號的MFSK調制的程序與仿真
    發表于 01-19 14:34 ?4次下載
    使用<b class='flag-5'>VHDL</b>硬件描述<b class='flag-5'>語言實現</b>基帶信號的MFSK調制的程序與<b class='flag-5'>仿真</b>

    使用VHDL硬件描述語言實現基帶碼發生的程序設計與仿真

    本文檔的主要內容詳細介紹的是使用VHDL硬件描述語言實現基帶碼發生的程序設計與仿真免費下載。
    發表于 01-20 13:44 ?16次下載
    使用<b class='flag-5'>VHDL</b>硬件描述<b class='flag-5'>語言實現</b>基帶碼發生<b class='flag-5'>器</b>的程序設計與<b class='flag-5'>仿真</b>

    基于VHDL語言實現遠程防盜報警設計

    電子發燒友網站提供《基于VHDL語言實現遠程防盜報警設計.pdf》資料免費下載
    發表于 11-08 14:33 ?0次下載
    基于<b class='flag-5'>VHDL</b><b class='flag-5'>語言實現</b>遠程防盜報警設計
    大发888官网 df888ylcxz46 | 玩百家乐输了| 什么叫百家乐的玩法技巧和规则| 至尊百家乐2012| 海燕百家乐论| 儋州市| 博九百家乐官网的玩法技巧和规则 | 金臂百家乐开户送彩金| 免费百家乐追号| 玉溪市| 做生意用的 风水上最好的尺寸有 做生意门朝向什么方向 | 威尼斯人娱乐怎么样| 高密市| 博联百家乐游戏| 大发888游戏平台888| 富易堂百家乐官网娱乐城| 百家乐视频二人麻将| 大连娱网棋牌大厅| 百家乐官网平台送彩金| 榆次百家乐的玩法技巧和规则 | 威尼斯人娱乐城送彩金| 百家乐官网必胜下注法| 百家乐一代龙虎机| 香港六合彩挂牌| 康莱德百家乐官网的玩法技巧和规则 | 白金会娱乐场怎么样| 葡京百家乐官网的玩法技巧和规则 | 粤港澳百家乐官网娱乐网| 网上百家乐怎么赌能赢钱| 东港市| 塑料百家乐筹码| 仁寿县| 新思维百家乐投注法| 田林县| 赌博百家乐秘笈| 葡京百家乐官网玩法| 百家乐分析软件骗人| 南靖县| 百家乐双龙| 大玩家百家乐官网现金网| 百家乐透明牌靴|