貴州師範大學學生
實習報告
科目:eda實習
專業: 電氣工程及其自動化
班級: 10電氣
姓名: 李啟應
學號: 101401010202
實驗專案名稱:數字電子鐘的設計
實驗專案性質:普通試驗
所屬課程名稱:vhdl程式設計
一、 實驗目的
1 學習 vhdl語言的一些基本特點。
2 掌握vhdl程式的基本結構。
3掌握vhdl程式設計方法。
4 要能夠用vhdl語言讀懂並編寫eda程式,對eda設計的總體框架能有較好的把握,掌握各模組的呼叫方式。
二、 實驗內容和要求
設計乙個數字時鐘,顯示時(2位),分(2位),秒(2位),具體要求是:具有時分秒計數顯示功能,以24小時迴圈計時;數碼管動態顯示時,分,秒;具有清零功能。
在軟體工具平台上,進行vhdl語言的各模組程式設計輸入、編譯實現和**驗證。
三、 實驗主要儀器裝置和材料
計算機,開發環境max-plusii,zy11eda實驗系統,vhdl語言。
四、 實驗方法、步驟及結果測試
1、 設計思路:
數字鐘的主體是計數器,它記錄並顯示接收到的秒脈衝個數,其中秒和分位60進製計數器,小時為24進製計數器,分別產生3位bcd碼。bcd碼經解碼,驅動後接數碼顯示電路。
根據實驗要求,將設計分為5個主要部分,時功能模組、分功能模組、秒功能模組、掃瞄器功能模組和7段led功能模組。 在時、分、秒模組中,包括復位和預置數,其主要思路如下:
秒鐘的模組:設計乙個60進製的計數器,以clk為其時鐘訊號,每60個clk後產生乙個進製訊號cf給分鐘模組,作為分鐘程序的響應訊號。
秒鐘模組vhdl程式見附錄1:
**波形如下:
封裝如下圖:
分鐘的模組:同理於秒鐘的模組,設計乙個60進製的計數器,以cfm為其時鐘訊號,每60個cfm後產生乙個進製訊號cfm給小時模組,作為小時模組程序的響應訊號。
分鐘模組vhdl程式見附錄二:
**波形如下:
封裝如下圖:
小時的模組:為24進製計數器,在分的進製訊號cfm的激發下計數,從0到23的時候產生乙個訊號cfh,全部清0,重新開始計時。
小時模組vhdl程式見附錄三:
**波形如下:
封裝如下圖:
掃瞄器模組:在掃瞄器內部,有乙個3-8解碼器的片選訊號,當3-8解碼器的片選訊號為000時,片選訊號選中7段led模組中的秒的個位,當3-8解碼器的片選訊號為001時,片選訊號選中7段led模組中的秒的十位,當3-8解碼器的片選訊號為010時,片選訊號選中7段led模組中的分的個位,當3-8解碼器的片選訊號為011時,片選訊號選中7段led模組中的分的十位,當3-8解碼器的片選訊號為100時,片選訊號選中7段led模組中的時的個位,當3-8解碼器的片選訊號為101時,片選訊號選中7段led模組中的時的十位,就這樣動態掃瞄,當輸入的時鐘訊號頻率很高的時候,就形成了我們的時鐘。
掃瞄器模組vhdl程式見附錄四:
**波形如下:
封裝如下圖:
7段led模組:根據動態掃瞄器的片選訊號來依次點亮我們所需的時間。
7段led模組vhdl程式見附錄五:
**波形如下:
封裝如下圖:
綜合以上5大模組,把它們用線連線起來就得到我們的總的電路圖:如下圖所示:
其工作原理為:掃瞄器3-8解碼器的片選訊號根據時分秒的輸入選中7段led模組,然後再由時分秒中產生的3位bcd碼來輸出秒的個位,十位、時的個位,十位、小時的個位,十位。
4.總結:
在實驗這兩周的時間裡,我們做過dc觸發器、dq觸發器、3-8解碼器、二選一電路和四選一電路等,最後綜合做了數字時鐘電路,通過這次實習,我對用vhdl來程式設計有了更深的了解,在要程式設計的時候,我學會了分模組進行,因為一開始的時候設計乙個時鐘系統比較麻煩,沒有分模組之前總是會有差錯,而之後思路就會比較清晰,有明確的方案,在對照書本裡的程式設計規則與語句,就完成了這次的設計,總之就是獲益良多。
附錄1:秒鐘模組vhdl程式
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity second is
port(clk,reset:in std_logic;
cf:out std_logic;
second1_out:out std_logic_vector(3 downto 0);
second10_out:out std_logic_vector(2 downto 0));
end entity second;
architecture one of second is
signal second1n:std_logic_vector(3 downto 0);
signal second10n:std_logic_vector(2 downto 0);
begin
second1_out<=second1n;
second10_out<=second10n;
process(clk,reset)
begin
if(reset='1') then
second1n<="0000";
second10n<="000";
elsif(clk' event and clk='1') then
if(second1n="1001")then
second1n<="0000";
if(second10n="101")then
second10n<="000";
cf<='1';
else second10n<=second10n+1;
end if;
else second1n<=second1n+1;
end if;
end if;
end process;
end architecture one;
附錄二:分鐘模組vhdl程式
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity minute is
port(clk,reset:in std_logic;
cf:out std_logic;
minute1_out:out std_logic_vector(3 downto 0);
minute10_out:out std_logic_vector(2 downto 0));
end entity minute;
architecture one of minute is
signal minute1n:std_logic_vector(3 downto 0);
signal minute10n:std_logic_vector(2 downto 0);
begin
minute1_out<=minute1n;
minute10_out<=minute10n;
process(clk,reset)
begin
if(reset='1') then
minute1n<="0000";
minute10n<="000";
elsif(clk' event and clk='1') then
if(minute1n="1001")then
minute1n<="0000";
if(minute10n="101")then
minute10n<="000";
cf<='1';
else minute10n<=minute10n+1;
end if;
else minute1n<=minute1n+1;
end if;
end if;
end process;
end architecture one;
附錄三:小時模組vhdl程式
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity hour is
port(clk,reset:in std_logic;
hour1_out:out std_logic_vector(3 downto 0);
hour10_out:out std_logic_vector(1 downto 0));
end entity hour;
architecture one of hour is
signal hour1n:std_logic_vector(3 downto 0);
signal hour10n:std_logic_vector(1 downto 0);
begin
hour1_out<=hour1n;
hour10_out<=hour10n;
process(clk,reset)
begin
if(reset='1') then
hour1n<="0000";
hour10n<="00";
elsif(clk' event and clk='1') then
if(hour1n="1001"or(hour1n="0011"and hour10n="0010"))then
hour1n<="0000";
if(hour10n="10")then
hour10n<="00";
else hour10n<=hour10n+1;
end if;
else hour1n<=hour1n+1;
end if;
end if;
end process;
end architecture one;
附錄四:掃瞄器模組vhdl程式
library ieee;
EDA設計報告
實驗一單級放大電路 1 實驗目的 1 掌握放大電路靜態工作點的調整和測試方法 2 掌握放大路動態引數的測試方法 3 觀察靜態工作點的選擇對輸出波形及電壓放大倍數的影響。2.實驗內容 1 設計乙個分壓偏置的單管電壓放大電路,要求訊號源頻率5khz 峰值10mv 負載電阻5.1k 電壓增益大於50。2 ...
EDA實驗報告
張佳興2220131738 電氣工程及其自動化1班 1 verilog語言反應硬體特性舉例 1.module cc clk,en,cout input output,這三個語句用verilog語言定義了乙個邏輯器件,module後邊括號內為埠名稱,每個埠都對應硬體的乙個引腳,引腳的輸入輸出性質都由i...
EDA實驗報告
lcd模組介面電路設計 八行顯示 課程名稱 eda技術 專業班級通訊工程一班 學號 201009110122 姓名於振超 一 實驗目的 1.熟悉quartus ii軟體的使用及設計流程 2.用vhdl編寫 源程式並檢測脈衝的存在 二 實驗器材 pc機一台 紅色颶風二代開發板 usb線一根 usb b...