wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7732|回復: 1
打印 上一主題 下一主題
收起左側

Quartus EDA實驗指導書下載(詳解9個項目)

[復制鏈接]
跳轉到指定樓層
樓主
EDA 實驗指導書
實驗Quartus軟件的使用
[實驗目的]   掌握Quartus軟件的使用。
[實驗內容]   學習Quartus軟件的設計操作步驟。
[實驗原理]Quartus軟件功能介紹。
Quartus軟件功能簡介:
1) 原理圖輸入(Graphic Editor)
    Quartus軟件具有圖形輸入能力,用戶可以方便的使用圖形編輯器輸入電路圖,圖中的元器件可以調用元件庫中元器件,除調用庫中的元件以外,還可以調用該軟件中的符號功能形成的功能塊。
2) 硬件描述語言輸入(Text Editor)
Quartus軟件中有一個集成的文本編輯器,該編輯器支持VHDL,AHDL和Verilog硬件描述語言的輸入,同時還有一個語言模板使輸入程序語言更加方便,該軟件可以對這些程序語言進行編譯并形成可以下載配置數據。
3) 波形編輯器(waveform Editor)
    Quartus9.1版本軟件,在進行邏輯電路的行為仿真時,需要在所設計電路的輸入端加入一定的波形,波形編輯器可以生成和編輯仿真用的波形,使用該編輯器的工具條可以容易方便的生成波形和編輯波形。
4) 編譯與仿真
    Quartus9.1版本軟件,當設計文件被編譯好,并在波形編輯器中將輸入波形編輯完畢后,就可以進行行為仿真了,通過仿真可以檢驗設計的邏輯關系是否準確。Quartus11.0版本軟件沒有仿真功能,需要其它仿真軟件的支持,例如:Modelsim 軟件。
5) 管腳配置
這里需要參考實驗板提供的管腳配置TCL腳本文件。開發板實驗指導手冊中也有介紹。
6) 器件編程下載
    當設計全部完成后,就可以將形成的目標文件下載到實驗板的FPGA芯片中,實際驗證設計的準確性。
[實驗步驟]
可以按照電子版的開發板實驗指導手冊進行學習,熟練掌握Quartus11.0版本軟件的開發流程。注意采用的芯片要改為EP2C8Q208C8
注意事項:請牢記工程未使用到的 IO引腳請設置為三態輸入(As input tri-stated),
一定不能將未使用的引腳設置為輸出(As outputs driving ground), 否則可能會造成核心板主芯片及存儲芯片沖突損壞!或是造成其它意想不到的損壞!
如何設置未使用的引腳為三態?
答:Quartus--菜單 Assignments--Device---Device and Pin Options---Unused
Pins---Reserve all unused pins==改為 As input tri-stated
每個例程下載前都養成習慣,先查下設置對不對,不對的話,改好,要重新編譯一下(別
忘記這步!)如果程序下載進去,數碼管、LED 燈都亂亮了,那肯定是沒設置好,請嚴格遵照上面的修改好,重新編譯!
注意:用繪圖法設計半加器和全加器來學習軟件的操作過程. 半加器電路圖如下所示。
然后生成圖形符號再設計全加器。全加器電路圖如下所示。
[實驗報告]
   不做要求。注意實驗板的電路原理圖要事先看看。
實驗二簡單組合邏輯電路設計
[實驗目的] 1  掌握組合邏輯電路的設計方法。
2 熟悉實驗板上FPGA芯片的管腳配置分配表。            
[實驗內容]
  • 設計一個4-2線優先編碼器
  • 設計一個3-8譯碼器。
[實驗原理]
根據以上組合電路的真值表,利用行為級的編程風格來設計。
[實驗步驟]
啟動Quartus11.0軟件,將編寫的設計文件編譯后再根據實驗板的管腳配置表分配好管腳,最后下載相應的.sof文件測試。注意在選管腳時可以將輸入用撥碼開關代替,輸出可以采用發光二極管代替。
[實驗報告]
要求用VHDL語言編程完成以上8-3線優先編碼器,3-8譯碼器的設計,并且比較圖形輸入法與語言輸入法的優劣。
參考程序如下:
(1)3-8譯碼器
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY YMQ38 IS
        PORT (A : IN STD_LOGIC_VECTOR( 2 DOWNTO 0) ;
             EN : IN STD_LOGIC ;
             Y  : OUT STD_LOGIC_VECTOR( 7 DOWNTO 0)) ;
END YMQ38 ;
ARCHITECTURE  DEC_BEHAVE OF YMQ38 IS
SIGNAL  SEL : STD_LOGIC_VECTOR( 3 DOWNTO 0) ;
BEGIN
     SEL(0) <= EN ;
     SEL(1) <= A(0) ;
     SEL(2) <= A(1) ;
     SEL(3) <= A(2) ;
WITH SEL SELECT
      Y<= "00000001" WHEN "0001",
         "00000010" WHEN "0011",
         "00000100" WHEN "0101",
         "00001000" WHEN "0111",
         "00010000" WHEN "1001",
         "00100000" WHEN "1011",
         "01000000" WHEN "1101",
         "10000000" WHEN "1111",
         "11111111" WHEN OTHERS ;
END DEC_BEHAVE;
(2)4-2線優先編碼器
library ieee;
use ieee.std_logic_1164.all;
entity encode42 is
port(
d: in std_logic_vector(3 downto 0);
a0n,a1n: out std_logic);
end encode42;
architecture behav of encode42 is
signal q : std_logic_vector(1 downto 0);
begin
a0n<=q(0);a1n<=q(1);
process(d)
begin
if d(3)='0' then
    q<="00";
elsif d(2)='0' then
    q<="01";
elsif d(1)='0' then
    q<="10";
elsif d(0)='0' then
    q<="11";
else
    q<="00";
end if;
end process;
end behav;
實驗三簡單時序電路設計
[實驗目的]
1、              掌握D觸發器的邏輯功能。
2、              掌握簡單時序電路的設計方法。
[實驗內容]
  •      設計一個D觸發器
  •      設計一個同步四位加法計數器。
[實驗原理]
1、D觸發器:
正沿觸發的D觸發器的電路符號如下圖所示。它是一個正邊沿觸發的D觸發器,有一個數據輸入端d,一個時鐘輸入端clk和一個數據輸出端q。D觸發器的真值表如下表所示。從表中可以看到,D鎖存器的輸出端只有在正沿脈沖過后,輸入端d的數據才可以傳遞到輸出端q。
表1  D鎖存器真值表
數據輸入端
時鐘輸入端
數據輸出端
D
CLK
Q
0
0
1
1
   2.同步四位加法計數器,要求有使能端控制,enable=1時,開始計數。
[實驗步驟]
啟動Quartus11.0軟件,將編寫的設計文件編譯后再根據實驗板的管腳配置表分配好管腳,最后下載相應的.sof文件測試。注意在選管腳時可以將輸入用撥碼開關代替,輸出可以采用發光二極管代替。
[實驗報告]
要求用VHDL語言編程完成D觸發器和四位加法計數器的設計。
思考題:能否利用移位寄存器實現八位流水燈的設計電路。
參考程序如下:
(1)D觸發器
LIBRARY ieee;
use ieee.std_logic_1164.all;
entity dff1 is
port(clk,d: in std_logic;
     q: out std_logic);
end dff1;
architecture dff1_behave of dff1 is
begin
  process(clk)
     begin
      if (clk'event and clk='1') then
      q<=d;
      end if;
  end process;
end dff1_behave;
(2)同步四位加法計數器
LIBRARY ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity count4 is
port(clk,en: in std_logic;
     qa,qb,qc,qd: out std_logic);
end count4;
architecture behave of count4 is
signal count_6: std_logic_vector(3 downto 0);
signal clk2:std_logic;
begin
process(clk)  --分頻模塊  
variable count11:integer range 0 to 2500000;
begin
if clk'event and clk='1' then
    if count11=2500000 then
    count11:=0;
    clk2<=not clk2;
    else
    count11:=count11+1;
    end if;
end if;
end process;
process(clk2)
    begin
      if (clk2'event and clk2='1') then
           if(en='1') then   
             count_6<=count_6+'1';
            end if;
      end if;
   end process;
qa<=count_6(0);
   qb<=count_6(1);
   qc<=count_6(2);
   qd<=count_6(3);
end behave;
(3) 設計參考程序:流水燈的控制電路。
LIBRARY IEEE;                     
USE IEEE.STD_LOGIC_1164.ALL; --這3個程序包足發應付大部分的VHDL程序設計
USE IEEE.STD_LOGIC_Arith.ALL;
USE IEEE.STD_LOGIC_Unsigned.ALL;
USE IEEE.NUMERIC_STD.ALL;
ENTITY ledwater IS
PORT(clk: IN              STD_LOGIC;
led: OUT STD_LOGIC_VECTOR(8 DOWNTO 1));
END;
ARCHITECTURE one OF ledwater IS
signal              led_r:              std_logic_vector(9 downto 1);
signal clk2:std_logic;
BEGIN
led<=led_r(8 DOWNTO 1);
process(clk)  --分頻模塊  
variable count11:integer range 0 to 2500000;
begin
if clk'event and clk='1' then
    if count11=2500000 then
    count11:=0;
    clk2<=not clk2;
    else
    count11:=count11+1;
    end if;
end if;
end process;
PROCESS(clk2)
BEGIN
              IF RISING_EDGE(clk2) THEN
                            led_r<=led_r(8 DOWNTO 1) & '0';
                            IF led_r="000000000" THEN--循環完畢嗎?
                                          led_r<="111111111";--是,則重新賦初值
                            END IF;            
              END IF;
END PROCESS;
END;
實驗四LED顯示譯碼電路的設計
[實驗目的]
  • 掌握LED顯示譯碼電路的設計。
  • 熟悉用數碼管實現十六進制計數的動態顯示原理。
[實驗內容]
  • 編寫能夠同時在八個數碼管輪換顯示0F十六進制數的電路。
  • 編寫能夠用動態掃描方式顯示數字:12345678的電路
[實驗原理]
用數碼管除了可以顯示0~9的阿拉伯數字外,還可以顯示一些英語字母。在實驗電路板的原理圖上要分析出數碼管是共陰極接法還是共陽極接法。
[實驗步驟]
啟動Quartus11.0軟件,將編寫的設計文件編譯后再根據實驗板的管腳配置表分配好管腳,最后下載相應的.sof文件測試。
[實驗報告]
要求用VHDL語言編程完成以上LED顯示譯碼器與動態掃描電路的設計。
思考題:如何實現一個N(偶數)分頻器的設計。
(1)0~F計數顯示電路。
LIBRARY              IEEE;
USE              IEEE.STD_LOGIC_1164.ALL;
USE              IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY sled              IS
PORT(clk:IN               STD_LOGIC;
              dig:              OUT              STD_LOGIC_VECTOR(7              DOWNTO 0);            
              seg:              OUT              STD_LOGIC_VECTOR(7              DOWNTO 0));              --七段譯碼輸出
END;
ARCHITECTURE ONE OF sled IS
signal seg_r:STD_LOGIC_VECTOR(7 DOWNTO 0);              --定義數碼管輸出寄存器
signal count_4: std_logic_vector(3 downto 0);
signal clk2:STD_LOGIC;
BEGIN
seg<=seg_r;                                                                      --輸出數碼管譯碼結果
dig<="00000000";
process(clk)     --分頻器
variable count11:integer range 0 to 25000000;
begin
if clk'event and clk='1' then
    if count11=25000000 then
    count11:=0;
    clk2<=not clk2;
    else
    count11:=count11+1;
    end if;
end if;
end process;
process(clk2)
begin
   if (clk2'event and clk2='1') then
        count_4<=count_4+'1';
   end if;
end process;
PROCESS(count_4)                                                                      --七段譯碼
BEGIN
              CASE count_4 IS
                            WHEN               X"0"=>              seg_r<=X"c0";--顯示0
                            WHEN              X"1"=>              seg_r<=X"f9";--顯示1
                            WHEN              X"2"=>              seg_r<=X"a4";--顯示2
                            WHEN              X"3"=>              seg_r<=X"b0";--顯示3
                            WHEN              X"4"=>              seg_r<=X"99";--顯示4
                            WHEN              X"5"=>              seg_r<=X"92";--顯示5
                            WHEN              X"6"=>              seg_r<=X"82";--顯示6
                            WHEN              X"7"=>              seg_r<=X"f8";--顯示7
                            WHEN              X"8"=>              seg_r<=X"80";--顯示8
                            WHEN              X"9"=>              seg_r<=X"90";--顯示9
                            WHEN              X"a"=>              seg_r<=X"88";--顯示a
                            WHEN              X"b"=>              seg_r<=X"83";--顯示b
                            WHEN              X"c"=>              seg_r<=X"c6";--顯示c
                            WHEN              X"d"=>              seg_r<=X"a1";--顯示d
                            WHEN              X"e"=>              seg_r<=X"86";--顯示e            
                            WHEN              X"f"=>              seg_r<=X"8e";--顯示f                                                      
                            WHEN              OTHERS=> seg_r<=X"FF";            
              END CASE;
END PROCESS;
END;
(2)動態掃描顯示數字:12345678電路設計。
library ieee;                     
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity dled is
port(
clk:in              std_logic;
dig:out              std_logic_vector(7               downto 0);                            --數碼管選擇輸出引腳
seg:out std_logic_vector(7               downto 0) );              --數碼管段輸出引腳
end entity;
architecture one of dled is
constant d:              std_logic_vector(31 downto 0):= x"12345678";
signal               seg_r:                            std_logic_vector(7 downto 0);              --定義數碼管輸出寄存器
signal  dig_r:                            std_logic_vector(7 downto 0);              --定義數碼管選擇輸出寄存器
signal              disp_dat:              std_logic_vector(3 downto 0);                            --定義顯示數據寄存器
signal              count:              std_logic_vector(2 downto 0);                            --定義計數寄存器
signal clk_1k: std_logic;
begin
dig<=dig_r;
seg<=seg_r;
process(clk)   
variable count11:integer range 0 to 25000;
begin
if clk'event and clk='1' then
    if count11=25000 then
    count11:=0;
    clk_1k<=not clk_1k;
    else
    count11:=count11+1;
    end if;
end if;
end process;
process(clk_1k)
begin
              if              rising_edge(clk_1k) then
                            count<=count+1;                           
              end if;
end process;
PROCESS(clk_1k)
BEGIN
              IF              rising_edge(clk_1k) THEN
                            CASE count IS
                            WHEN "000"=>              disp_dat<=d(31 DOWNTO 28);              --第一個數碼管
                            WHEN "001"=>              disp_dat<=d(27 DOWNTO 24);              --第二個數碼管
                            WHEN "010"=>              disp_dat<=d(23 DOWNTO 20);              --第三個數碼管
                            WHEN "011"=>              disp_dat<=d(19 DOWNTO 16);              --第四個數碼管
                            WHEN "100"=>              disp_dat<=d(15 DOWNTO 12);              --第五個數碼管
                            WHEN "101"=>              disp_dat<=d(11 DOWNTO 8);              --第六個數碼管
                            WHEN "110"=>              disp_dat<=d(7 DOWNTO 4);              --第七個數碼管
                            WHEN "111"=>              disp_dat<=d(3 DOWNTO 0);              --第八個數碼管
                            END CASE;
                            CASE count IS                                                                      --選擇數碼管顯示位
                            WHEN "000"=>              dig_r<="01111111";                            --選擇第一個數碼管顯示
                            WHEN "001"=>              dig_r<="10111111";                            --選擇第二個數碼管顯示
                            WHEN "010"=>              dig_r<="11011111";                            --選擇第三個數碼管顯示
                            WHEN "011"=>              dig_r<="11101111";                            --選擇第四個數碼管顯示
                            WHEN "100"=>              dig_r<="11110111";                            --選擇第五個數碼管顯示
                            WHEN "101"=>              dig_r<="11111011";                            --選擇第六個數碼管顯示
                            WHEN "110"=>              dig_r<="11111101";                            --選擇第七個數碼管顯示
                            WHEN "111"=>              dig_r<="11111110";                            --選擇第八個數碼管顯示
                            END CASE;
              END IF;
END PROCESS;
PROCESS(disp_dat)
BEGIN
              CASE disp_dat IS
                            WHEN               X"0"=>              seg_r<=X"c0";--顯示0
                            WHEN              X"1"=>              seg_r<=X"f9";--顯示1
                            WHEN              X"2"=>              seg_r<=X"a4";--顯示2
                            WHEN              X"3"=>              seg_r<=X"b0";--顯示3
                            WHEN              X"4"=>              seg_r<=X"99";--顯示4
                            WHEN              X"5"=>              seg_r<=X"92";--顯示5
                            WHEN              X"6"=>              seg_r<=X"82";--顯示6
                            WHEN              X"7"=>              seg_r<=X"f8";--顯示7
                            WHEN              X"8"=>              seg_r<=X"80";--顯示8
                            WHEN              X"9"=>              seg_r<=X"90";--顯示9
                            WHEN              X"a"=>              seg_r<=X"88";--顯示a
                            WHEN              X"b"=>              seg_r<=X"83";--顯示b
                            WHEN              X"c"=>              seg_r<=X"c6";--顯示c
                            WHEN              X"d"=>              seg_r<=X"a1";--顯示d
                            WHEN              X"e"=>              seg_r<=X"86";--顯示e
                            WHEN              X"f"=>              seg_r<=X"8e";--顯示f
              END CASE;
END PROCESS;
END;
實驗五數字鐘設計
[實驗目的]
    1. 掌握多位計數器相連的設計方法。
2. 掌握十進制、六十進制、二十四進制計數器的設計方法。
3. 掌握喇叭的驅動方法。。
4. 掌握層次化設計方法。
[實驗內容]
1. 具有時、分、秒計數顯示功能,以24小時循環計時。
2. 具有清零,調節小時、分鐘的功能。
3. 具有整點報時功能,整點報時的同時LED燈花樣顯示。
[實驗原理]
在同一塊FPGA芯片集成了如下電路模塊:
1. 時鐘計數:秒——60進制BCD碼計數;分——60進制BCD碼計數;時——24進制BCD碼計數;同時整個計數器有清零,調分,調時功能。在整點時間能提供報時信號。
2. 有驅動8位七段共陰極掃描數碼管的片選驅動信號輸出和七段字行譯碼輸出。
3. 喇叭在整點時有報時驅動信號產生。
4. LED燈根據設計在整點時有花樣顯示信號產生。
[實驗步驟]
1、啟動Quartus11.0軟件,將編寫的設計文件編譯后再根據實驗板的管腳配置表分配好管腳,最后下載相應的.sof文件測試
實驗現象:當程序下載完畢后數碼管從00時00分00秒開始計時,通過按鍵K1可以調節時鐘的分鐘顯示,通過按鍵K2可以調節時鐘的小時顯示。當時鐘走到整點時,喇叭開始鳴叫1分鐘,發光二極管LED1~LED3循環閃爍。
[實驗報告]
1. 畫出整個數字鐘電路的結構框圖。
2. 用VHDL語言完成頂層圖形文件中各個子模塊的設計。如果設計中的某些模塊在以前
的實驗中使用過,該模塊可以不要再寫,例如LED顯示譯碼器。
                           
                           
實驗六頻率計設計
[實驗目的]
1、掌握多位計數器相連的設計方法。
2、掌握頻率計的工作原理。
3、掌握EDA技術的層次化設計方法。
[實驗內容]
設計一個頻率計,其測頻范圍為1HZ<f<50MHz.。
[實驗原理]
本實驗所設計的頻率計由三個模塊組成:測頻控制信號發生器TESTCTL、8個有時鐘使能的十進制計數器CNT10和一個32位鎖存器REG32B。以下分別敘述頻率計各個邏輯模塊的功能與設計方法。
測頻控制信號發生器的設計要求:頻率測量的基本原理是計算每秒鐘內待測信號的脈沖個數。這就要求TESTCTL的計數使能信號TSTEN能產生一個1秒脈寬的周期信號,并對頻率計的每一計數器CNT10的ENA使能端進行同步控制。當TSTEN為高電平時,允許計數;為低電平時停止計數,并保持其所計的脈沖個數。在停止計數期間,首先需要一個鎖存信號LOAD的上跳沿將計數器在前1秒鐘的計數值鎖存進32位鎖存器REG32B中,并由外部的7段譯碼器譯出,并穩定顯示。設置鎖存器的好處是,顯示的數據穩定,不會由于周期性的清零信號而不斷閃爍。鎖存信號之后,必須有一個清零信號CLR_CNT對計數器進行清零,為下1秒鐘的計數操作作準備。測頻控制信號發生器的工作時序如下圖所示。為了產生這個時序圖,需首先建立一個由D觸發器構成的二分頻器,在每次時鐘CLK上升沿到來時其值翻轉。

其中控制信號時鐘CLK的頻率取1HZ,那么信號TSTEN的脈寬恰好為1S,可以用作計數閘門信號。然后根據測頻的時序要求,可得出信號LOAD和CLR_CNT的邏輯描述。由上圖可見,在計數完成后,即計數使能信號TSTEN在1S的高電平后,利用其反相值的上跳沿產生一個鎖存信號LOAD,0.5S后,CLR_CNT產生一個清零信號上跳沿。高質量的測頻控制信號發生器的設計十分重要,設計中要對其進行仔細的實時防真,防止可能產生的毛刺。
寄存器REG32B設計要求:若已有32位BCD碼存在于此模塊的輸入口,在信號LOAD的上升沿后即被鎖存到寄存器REG32B的內部,并由REG32B的輸出端輸出,然后由實驗板上的7段譯碼器譯成能在數碼管上顯示輸出的相應數值。
計數器CNT10設計要求:此十進制計數器的特殊之處是,有一時鐘使能輸入端ENA,用于鎖定計數值。當高電平時計數允許,低電平時禁止計數。
[實驗步驟]
1. 啟動Quartus11.0軟件,將編寫的設計文件編譯后再根據實驗板的管腳配置表分配好管腳,最后下載相應的.sof文件測試。
2. 注意要測量的信號源可以采用多個分頻器實現。做實驗時可以選擇分頻器的一個輸出信號進行測試。
[實驗報告]
1、畫出設計的頂層文件原理圖。
2、對照頻率計波形圖分析電路工作原理。
3、寫出各功能模塊的VHDL語言源程序,并且給出相應的注釋。如果設計中的某些模塊
在以前的實驗中使用過,該模塊可以不要再寫,例如LED顯示譯碼器,LED位選掃描產生電路。
實驗七  樂曲演奏電路設計
[實驗目的]
1. 了解樂曲演奏電路的原理。
2. 掌握利用可編程邏輯器件實現樂曲演奏的設計方法。
[實驗內容]
用VHDL語言設計一個“梁!睒非葑嚯娐。
[實驗原理]
與利用微處理器(CPU或MCU)來實現樂曲演奏相比,以純硬件完成樂曲演奏電路的邏輯要復雜得多,如果不借助于功能強大的EDA工具和硬件描述語言,僅憑傳統的數字邏輯技術,即使最簡單的演奏電路也難以實現。
本實驗設計項目作為“梁祝”樂曲演奏電路的實現,其工作原理是這樣的:我們知道,組成樂曲的每個音符的發音頻率值及其持續的時間是樂曲能連續演奏所需的兩個基本要素,問題是如何來獲取這兩個要素所對應的數值以及通過純硬件的手段來利用這些數值實現所希望樂曲的演奏效果。
    本實驗設計由四個模塊組成,其每一個模塊的功能如下所述。模塊一為一個數控分頻器SPEAKERA,其CLK端輸入一具有較高頻率(本實驗為1MHz)的信號,通過SPEAKERA分頻后由SPKOUT輸出。由于直接從數控分頻器中出來的輸出信號是脈寬極窄的脈沖式信號,為了有利于驅動喇叭,需另加一個D觸發器以均衡其占空比,但這時的頻率將是原來的1/2。SPEAKERA對CLK輸入信號的分頻比由11位預置數TONE[10..0]決定。SPKOUT的輸出頻率將決定每一音符的音調,這樣分頻計數器的預置值TONE[10..0]與SPKOUT的輸出頻率就有了對應關系。例如在TONETABA模塊中若取TONE[10..0]=1036,將發音符為“3”音的信號頻率。
    模塊二TONETABA是確定樂曲的速度以及每個音符的節拍數。TONETABA的功能首先是為SPEAKERA提供決定所發音符的分頻預置數,而此數在SPEAKERA輸入口停留的時間即為此音符的節拍值。模塊TONETABA是樂曲簡譜碼對應的分頻預置數查表電路,其中設置了“梁!睒非恳舴鶎姆诸l預置數,共13個,每一音符的停留時間由音樂節拍和音調發生器模塊NOTETABS的CLK的輸入頻率決定,在此為4Hz。這13個值的輸出由對應于TONETABA的4位輸入值Index[3..0]確定,而Index[3..0]最多有16種可選值。輸向TONETABA中的值ToneIndex[3..0]的輸出值與持續的時間由模塊NOTETABS決定。
    模塊三NOTETABS為音調發生器,在NOTETABS中設置了一個8位二進制計數器(計數最大值為138),這個計數器的計數頻率選為4Hz,即每一計數值的停留時間為0.25S,恰為當全音符設為1S時,四四拍的4分音符的持續時間。例如,NOTETABS在以下的VHDL邏輯描述中,“梁祝”樂曲的第一個音符為“3”,此音在邏輯中停留了4個時鐘節拍,即為1S時間,相應地所對應的“3”音符分頻預置值為1036在SPEAKERA的輸入端停留了1S。隨著NOTETABS中的計數器按4Hz的時鐘頻率作加法計數時,“梁!睒非烷_始連續自然地演奏起來了。
模塊四fengping是個分頻器,實現將50MHZ的時鐘生成1MHZ和4HZ的時鐘。
下表為簡譜中音名與頻率的關系:
音名
頻率(HZ)
音名
頻率(HZ)
音名
頻率(HZ)
    低音1
261.63
中音1
523.25
高音1
1046.50
低音2
293.67
中音2
587.33
高音2
1174.66
低音3
329.63
中音3
659.25
高音3
1381.51
低音4
349.23
中音4
698.46
高音4
1396.92
低音5
391.99
中音5
783.99
高音5
1567.98
低音6
440
中音6
880
高音6
1760
低音7
439.88
中音7
987.76
高音7
1975.52
[實驗步驟]
啟動Quartus11.0軟件,將編寫的設計文件編譯后再根據實驗板的管腳配置表分配好管腳,最后下載相應的.sof文件測試,下載完畢后就開始連續演奏“梁!睒非,
[實驗報告]
1、畫出設計的頂層設計原理圖。
2、寫出原理圖中各功能模塊的VHDL語言源程序并加上注釋。模塊三NOTETABS音調發生
器的“梁祝”樂曲音符可以壓縮寫三行即可。
思考題:如何設計一個簡易電子琴控制器。
實驗八搶答器設計
[實驗目的]
1. 熟悉四路搶答器的工作原理。
2. 了解原理圖、VHDL語言層次化設計方法。
[實驗內容]
設計一個四人搶答器電路。
[實驗原理]
(1) 設計制作一個可容納四組參賽者的數字智力搶答器,每組設置一個搶答按鈕供搶答者使用。
(2) 電路具有第一搶答信號的鑒別和鎖存功能。
(3) 設置計分電路。
(4) 設置犯規電路。
一般說來,多路智力競賽搶答器的的組成框圖為:
圖1  多路智力競賽搶答器的的組成框圖
其工作過程是:接通電源下載完畢后,節目主持人將開關置于清除位置,搶答器處于禁止工作狀態,編號顯示器數碼管熄滅,當節目主持人宣布搶答開始并將開關置于開始位置,搶答器處于工作狀態,當選手按鍵搶答時,優先編碼器立即分辨出搶答器的編號,并由鎖存器鎖存,然后由編碼顯示電路顯示編號,同時,控制電路對輸入編碼進行封鎖,避免其他選手再次進行搶答。當選手將問題回答完畢,主持人操作控制開關,對選手進行加分,再使系統恢復到禁止工作狀態,以便進行下一輪的搶答。
[實驗步驟]
啟動Quartus11.0軟件,將編寫的設計文件編譯后再根據實驗板的管腳配置表分配好管腳,最后下載相應的.sof文件測試。
[實驗報告]
畫出本實驗電路的原理圖和并給出相應模塊的VHDL語言源程序。如果設計中的某些模塊
在以前的實驗中使用過,該模塊可以不要再寫,例如LED顯示譯碼器,LED位選掃描產生電路等。
實驗九交通燈控制器設計課程設計:題目可自選
[設計目的]
掌握VHDL語言的層次化設計方法,自己設計簡單的交通燈控制器電路。
[設計內容]
1、能顯示十字路口東西、南北兩個方向的紅、黃、綠燈的指示狀態。
2、用兩組紅、黃、綠三色燈作為兩個方向的紅、黃、綠燈。能實現正常的倒計時功能以及用兩組數碼管作為東西和南北方向的倒計時顯示。
3、用VHDL語言設計符合上述功能要求的交通燈控制器,并用層次化設計方法設計該電路。
[實驗原理]
以下給出了本設計的一個演示實例:首先必須了解交通路燈的燃滅規律。本實例需要用到實驗箱上交通燈模塊中的發光二極管,即紅、黃、綠各三個。依人們的交通常規,“紅燈停,綠燈行,黃燈提醒”。其交通燈的燃滅規律為:初始態是兩個路口的紅燈全亮,之后,東西路口的綠燈亮,南北路口的紅燈亮,東西方向通車,延時一段時間后,東西路口綠燈開始閃爍,一段時間后綠燈滅,黃燈開始閃爍。閃爍若干次后,東西路口紅燈亮,同時南北路口的綠燈亮,南北方向開始通車,延時一段時間后,南北路口的綠燈開始閃爍,一段時間后綠燈滅,黃燈開始閃爍。閃爍若干次后,再切換到東西路口方向,重復上述過程。該控制器可以采用有限狀態機來實現。
[實例演示步驟]
1. 啟動Quartus11.0軟件,將編寫的設計文件編譯后再根據實驗板的管腳配置表分配好管腳,最后下載相應的.sof文件測試。
實驗現象:程序下載完畢后,首先東西方向通行,當數碼管倒計時計到還剩5秒時綠燈開始閃爍,當計到1秒時黃燈開始閃爍,0秒過后轉向南北方向通行。其現象與東西向一致,
15秒后又轉向東西向通行。以后都重復上述過程。
[設計報告]
1、課程設計題目可以自由選取,按照課程設計的規范要求進行設計報告的撰寫。
2、書寫設計報告時應結構合理,層次分明,在分析時注意語言的流暢。
3、要給出完整的設計過程和設計源碼,并且要在實驗箱上進行實物驗證。

新版EDA實驗指導書.docx

341.28 KB, 下載次數: 53, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:525407 發表于 2019-5-7 22:59 | 只看該作者
太給力了,我們正在學!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
国产一区二区黄色| 久久精品www| 国产乱码精品一区二区三区不卡| 亚洲精品视频二区| 午夜精品久久久久久久久| 久久国产精品第一页| 日韩极品在线| 爱啪啪综合导航| 日韩写真福利视频在线| 国产一级免费| 国产免费福利视频| 亚洲色图综合区| 国产免费a级片| 成人黄色av片| 午夜欧美一区二区三区免费观看| 国产成人精彩在线视频九色| 国产亚洲一区二区在线| 91精品综合久久久久久久久久久 | 亚洲免费一级片| 精品无码一区二区三区蜜臀| 玖玖爱视频在线| 国产一二三四五| 粉嫩av四季av绯色av第一区| 久久久久久久久91| 亚洲精品中文字幕有码专区| 欧美写真视频网站| 亚洲女人****多毛耸耸8| 国产成人综合亚洲91猫咪| 亚洲激情黄色| 羞羞答答成人影院www| 国产劲爆久久| 97久久中文字幕| 少妇视频一区| 青草av在线| 国产黄在线看| 色网视频在线| 免费av网页| 成人免费观看www在线| 91视频福利| 亚州欧美精品suv| 无码国产精品一区二区色情男同| 亚洲综合精品国产一区二区三区| 国产一级视频在线观看| 国产jizz18女人高潮| 中文字幕在线观看网址| 五月天丁香社区| 99999精品| 国产视频1区2区3区| 91av在线免费播放| 国产青青在线视频| 18禁网站免费无遮挡无码中文| 亚洲精品视频一区二区三区| 精品一区二区三区日本| 不卡视频一区二区| 91福利视频导航| 3d精品h动漫啪啪一区二区| 国产精品一区专区欧美日韩| 国产mv久久久| 国产精品99久久久久久久久久久久| 欧美精品videossex性护士| 中文字幕欧美国内| 中文字幕日韩在线播放| 中文字幕欧美日韩在线| 日韩中文字在线| 欧美精品尤物在线观看| 国产精品一在线观看| 精品大片一区二区| 国产精品主播在线观看| 精品久久对白| 精品在线91| 91综合久久| 国色天香一区二区| 亚洲全部视频| 日本va欧美va欧美va精品| 美女在线一区二区| 国产精品一区2区| 99久久综合狠狠综合久久| 成人av在线影院| 久久久噜噜噜久噜久久综合| 国产精品麻豆视频| 艳妇臀荡乳欲伦亚洲一区| 亚洲18色成人| 欧美日韩一区二区三区高清| 欧美一二三区在线观看| 日韩高清a**址| 一区二区三区四区视频| 欧美另类在线播放| 国产成人精品久久二区二区| 成人xxxxx| 色婷婷av一区| 欧美在线你懂的| 精品久久国产字幕高潮| 中文字幕久久久av一区| 97在线观看视频| 亚洲影院在线看| 亚洲精品国产精品久久| 蜜臀av无码一区二区三区| www.日日操| 91精品国产高清91久久久久久 | 国产亚洲欧美日韩在线一区| 亚洲人亚洲人成电影网站色| 色综合天天狠狠| 亚洲成**性毛茸茸| 欧美老少配视频| 国产中文日韩欧美| 视频一区二区三区免费观看| 女人天堂av手机在线| 黑森林av导航| 欧美片一区二区| 99视频国产精品免费观看a| 欧美日韩**字幕一区| www.99色| av在线影院| 3d动漫一区二区三区在线观看| 精品国产精品国产偷麻豆| 99在线精品免费视频九九视 | 久久久久影视| 欧美日韩三级| 成人视屏免费看| 亚洲国产欧美日韩另类综合| 亚洲变态欧美另类捆绑| 欧美日韩第一视频| 国产一区在线免费| 免费在线激情视频| caopeng视频| 特级西西444www高清大视频| 亚洲国产成人影院播放| 一级网站免费观看| 极品av在线| 欧美禁忌电影| 精品一区二区在线播放| 亚洲一二三四久久| 亚洲欧美日韩精品久久奇米色影视 | 97精品人妻一区二区三区在线| 天堂tv亚洲tv日本tv欧美人tv| 成人黄18免费网站| 欧美亚洲系列| 台湾佬综合网| 精品一区二区免费| 精品久久久久久| 色七七影院综合| 国产伦精品一区二区三区视频黑人| 免费在线观看视频a| 精品少妇人妻一区二区黑料社区| 超碰在线免费97| freee性欧美| 黄网站免费在线观看| 国产调教精品| 国产一区二区三区免费观看| 色偷偷久久人人79超碰人人澡| 色妞欧美日韩在线| 久久亚裔精品欧美| 国产大尺度视频| 99久久久国产精品无码免费| 在线免费观看av电影| av伦理在线| 你懂的国产精品| 中文字幕一区免费在线观看 | 一个人看的免费视频色| 精品3atv在线视频| 亚洲精品在线二区| 亚洲一区二三区| 超碰精品一区二区三区乱码| 色综合影院在线观看| 色婷婷免费视频| 国产91免费在线观看| 中国黄色在线视频| 国产在线播放精品| 成人综合激情网| 欧美tickling网站挠脚心| 亚洲一区二区三区乱码aⅴ| 最新中文字幕免费视频| 在线能看的av| 福利视频网站| 日韩精品一区二区三区中文字幕| 理论片日本一区| 91精品国产综合久久小美女| 91人成网站www| 日本特黄在线观看| 亚洲精品成人电影| 黄色的视频在线免费观看| 国产精品手机在线播放| 国产欧美一区二区精品仙草咪| 亚洲美女av在线| 日本中文不卡| 日韩在线中文字幕视频| 潘金莲激情呻吟欲求不满视频| 日本精品一区二区三区视频| 国产成人无码一区二区在线观看 | 日韩精品卡一| 国产精品扒开腿做爽爽爽软件| 亚洲乱码中文字幕综合| 欧美激情中文网| 国产v亚洲v天堂无码久久久| 一级片在线观看视频| 在线观看中文字幕| 成人免费在线播放| 日韩一区在线看| 日韩欧美高清在线观看| 国产精品国产自产拍高清av王其 | 2024最新电影免费在线观看| 天天操综合网| 亚洲福利一区二区三区| 4388成人网| www.日日操| 99热这里只有精品5| 川上优的av在线一区二区| 第一会所亚洲原创| 亚洲丝袜自拍清纯另类| 午夜精品www| 日本在线一二三区| 亚洲欧洲激情在线乱码蜜桃| 中文在线观看免费| 日韩国产在线一| 亚洲第一福利网| 精品综合免费视频观看| 国产99久久久国产精品成人免费| 黑人一区二区| 99国产精品久久久久久久久久 | 精品va天堂亚洲国产| 欧美大片在线看| 东北少妇不带套对白| 国产又大又黑又粗免费视频| 999这里只有精品| 国产成人精品久久| 青娱乐国产91| аⅴ天堂中文在线网| 一本久久精品| www.8ⅹ8ⅹ羞羞漫画在线看| 久久婷婷影院| 日韩高清免费在线| 精品国产一区二区三区无码| 国产一区二区在线播放视频| 免费av网站在线观看| 久久久久欧美精品| 亚洲国产成人在线视频| 国产 日韩 欧美在线| 亚洲大尺度视频| 中文一区一区三区高中清不卡免费| 极品少妇xxxx精品少妇偷拍 | 成人eeuss影院在线观看| 自拍自偷一区二区三区| 日韩美脚连裤袜丝袜在线| 亚洲精品视频一区二区| 国产成人+综合亚洲+天堂| 久久丫精品忘忧草西安产品| 上原亚衣加勒比在线播放| 成人羞羞网站入口| 色综合一个色综合亚洲| 蜜桃麻豆91| 欧美激情一区二区三区免费观看 | 欧美成人免费在线视频| 欧美精品色视频| 夜夜狂射影院| 久久视频在线| 日韩美女在线视频| 免费黄色日本网站| 国产精品免费视频一区一| 杨幂一区二区三区免费看视频| 欧洲一区二区三区在线| 国产激情片在线观看| 亚洲女人天堂a在线播放| 都市激情亚洲欧美| 欧美精品乱码久久久久久按摩| 日韩精品一区二区三区四| 2012中文字幕在线视频| 丝袜在线视频| 久久综合狠狠综合久久综合88| 国产精品 欧美在线| 久久久久久久久久91| 欧美69xxx| 国产欧美一区二区三区鸳鸯浴 | 亚洲精品第一页| 国产资源中文字幕| 国产一级电影网| 日韩国产欧美三级| 久久久久久久久亚洲| 国产小视频你懂的| 国产高清一区二区三区视频| 91蜜桃视频在线| 韩国精品久久久999| 在线观看天堂av| 欧美日韩欧美| 国产精品美女久久久久久2018| 韩国精品一区二区三区六区色诱| 91免费视频播放| 精品视频在线观看网站| 欧美日韩成人综合天天影院| 玩弄japan白嫩少妇hd| **三级三级97片毛片| 日韩和欧美一区二区| 国产精品 欧美在线| 欧美黄色一级大片| 国产亚洲高清一区| 日韩午夜激情av| 亚洲国产午夜精品| 在线观看黄色| 久久精品亚洲精品国产欧美kt∨ | 久久精品国产亚洲blacked| 欧美成人官网二区| 国产精品99精品无码视亚| 你懂的视频在线免费| 国产婷婷色一区二区三区四区 | 中文在线免费观看| 欧美激情三级| 亚洲精品在线观| 伊人网伊人影院| 在线播放蜜桃麻豆| 无码av免费一区二区三区试看| www.av中文字幕| 国产真实伦在线观看| 成人黄页毛片网站| 欧美日韩最好看的视频| 久久久久亚洲精品一区二区三区| 亚洲精品影院在线观看| 国产精品自拍视频| 成 人 免费 黄 色| 婷婷综合久久| 热re91久久精品国99热蜜臀| 在线观看中文字幕码| 国产欧美日韩一区二区三区四区| 日韩中文字幕在线精品| 久久午夜无码鲁丝片| 天天综合91| 亚洲区一区二区| 青青草原在线免费观看| 日韩电影精品| 亚洲女人天堂网| 久久久精品人妻一区二区三区四| 欧美高清你懂的| 日韩电影中文字幕| 久久久久香蕉视频| 激情小说一区| 欧美超级乱淫片喷水| 国产亚洲欧美日韩高清| 亚洲精品推荐| 午夜精品久久久久久99热| 国产免费叼嘿网站免费| 欧美日韩精品一本二本三本 | 九九视频免费在线观看| 国产精品久久久久久久久久久久久久久| 精品粉嫩超白一线天av| 日韩亚洲欧美中文字幕| 人人九九精品视频| 久久精品视频在线播放| 无码人妻精品一区二区三区蜜桃91| 你微笑时很美电视剧整集高清不卡| 午夜免费日韩视频| 免费观看黄一级视频| 久久福利毛片| 成人黄动漫网站免费| 亚洲精品自拍区在线观看| 日韩1区2区3区| 亚洲精品一区二| 天堂影视av| 亚洲一区日韩精品中文字幕| 99国产精品免费视频| 九九热线视频只有这里最精品| 国产视频精品免费播放| 亚洲天堂视频网站| 91www在线| 精品国产伦一区二区三区免费| 久久久久国产精品夜夜夜夜夜| 日韩在线你懂的| 国产成人精品在线播放| 亚洲欧美日韩成人网| 成人国产精品免费观看动漫| 国产亚洲欧美在线视频| 成人黄视频在线观看| 精品国产第一区二区三区观看体验| 国产真实乱人偷精品视频| 色爱综合网欧美| 91在线短视频| jizz亚洲大全| 夜夜嗨av一区二区三区| 六月婷婷七月丁香| 久久久久久久久久久久久久久久久久久久| 88xx成人精品| 7799国产精品久久久久99| 国产调教视频一区| 伦伦影院午夜理论片| 性感美女一区二区在线观看| 九九精品在线视频| 中文字幕无乱码| 久久久精品2019中文字幕之3| 一级做a爱视频| 精品欧美视频| 国产精品美女免费看| 黄色毛片在线| 亚洲国产欧美日韩另类综合| 国产又黄又粗视频| 欧美美女在线| 国产一区在线免费| 中出在线观看| 日韩欧美国产一区二区三区| 中文在线免费观看| 精品一区二区三区免费播放| 鲁一鲁一鲁一鲁一澡| 亚洲天堂资源| 国内免费精品永久在线视频|