日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FPGA(5)--VHDL--10十进制计数器及7段显示译码器

發布時間:2023/12/2 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FPGA(5)--VHDL--10十进制计数器及7段显示译码器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 一、實驗目的
    • 二、實驗內容
    • 三、實驗設計

一、實驗目的

掌握一般性計數器的VHDL設計方法,熟悉程序文本和原理圖結合方法設計電路。掌握CASE語句的基本使用方法。

二、實驗內容

  • 首先用VHDL語言設計10進制計數器,要求電路具有復位端和使能端,仿真驗證其正確性,并將其封裝成一個元件;
  • 用兩個10進制計數器擴展成一個100進制計數器,注意兩個10進制計數器間管腳的連接方式,畫出其原理圖并用QUARTUSⅡ軟件仿真驗證,仿真驗證所設計電路的功能;
  • 首先用CASE語句設計7段顯示譯碼器電路,仿真驗證其正確性,并將其封裝成一個元件;用7段顯示譯碼器將100進制計數器的兩組4位二進制輸出轉換為10進制顯示,畫出其原理圖并用QUARTUSⅡ軟件仿真驗證.

  • 三、實驗設計

    1.首先用VHDL語言設計一個10進制計數器,該計數器具有復位端和使能端,因此需要使用條件語句實現其功能,并且應該是四位的輸入輸出。VHDL代碼如下:

    Library ieee; Use ieee.Std_Logic_1164.All; Use ieee.Std_Logic_Unsigned.All; Entity count10 isport(clk,rst,en,load: in Std_Logic;data: in Std_Logic_Vector (3 downto 0);dout: out Std_Logic_Vector (3 downto 0);cout: out Std_Logic); End Entity count10; Architecture bhv of count10 is beginprocess (clk,rst,en,load)variable q: Std_Logic_Vector (3 downto 0);beginif rst='0' then q:=(others=>'0');elsif clk 'event and clk='1' thenif en='1' thenif (load='0') then q:=data; elseif q<9 then q:=q+1;else q:=(others=>'0');end if;end if;end if;end if;if q="1001" then cout<='1';else cout<='0';end if;dout<=q;End process; End Architecture bhv;

    驗證其正確性,仿真波形圖如下:

    2. 用兩個10進制計數器擴展成一個100進制計數器,注意其引腳的連接方式。

    仿真驗證其正確性,波形圖如下:

    3. 用CASE語句設計7段顯示譯碼器電路,根據不同數字對應顯示不同數碼管的情況,設計正確的對應關系。VHDL代碼如下:

    LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL ; use Ieee.std_logic_unsigned.all; entity led7 isport (indata: in std_logic_vector(3 downto 0);odata: out std_logic_vector(6 downto 0)); end entity led7; architecture bhv of led7 isbeginprocess (indata)begincase (indata) iswhen "0000" => odata<= "0111111" ;when "0001" => odata<= "0001110" ;when "0010" => odata<= "1011011" ;when "0011" => odata<= "1001111" ;when "0100" => odata<= "1100110" ;when "0101" => odata<= "1101101" ;when "0110" => odata<= "1111101" ;when "0111" => odata<= "0000111" ;when "1000" => odata<= "1111111" ;when "1001" => odata<= "1101111" ;when others => null;end case;end process; end architecture bhv;

    將其封裝成一個元件。在VHDL描述頁面,選file→create/update→create symbol files for current file,把編寫的代碼封裝成一個元件。

    用7段顯示譯碼器將100進制計數器的兩組4位二進制輸出轉換為10進制顯示。原理圖如下:

    驗證其正確性,仿真波形如下:

    總結

    以上是生活随笔為你收集整理的FPGA(5)--VHDL--10十进制计数器及7段显示译码器的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。