EDA實驗報告.參考分享
時間:2020-09-10 12:19:46 來源:勤學考試網 本文已影響 人
EDA實驗報告
實驗一 :QUARTUS II 軟件使用及
組合電路設計仿真
實驗目的 :
學習 QUARTUS II 軟件的使用 , 掌握軟件工程的建立 ,VHDL 源
文件的設計與波形仿真等基本內容。
實驗內容 :
1. 四選一多路選擇器的設計
基本功能及原理 :
選擇器常用于信號的切換 , 四選一選擇器常用于信號的切換 , 四
選一選擇器可以用于 4 路信號的切換。四選一選擇器有四個輸入端
a,b,c,d, 兩個信號選擇端 s(0) 與 s(1) 及一個信號輸出端 y。當 s 輸
入不同的選擇信號時 , 就可以使 a,b,c,d 中某一個相應的輸入信號與
輸出 y 端接通。邏輯符號如下 :
程序設計 :
EDA實驗報告
軟件編譯 :
在編輯器中輸入并保存了以上四選一選擇器的 VHDL源程序后就
可以對它進行編譯了 , 編譯的最終目的就是為了生成可以進行仿真、
定時分析及下載到可編程器件的相關文件。
仿真分析 :
仿真結果如下圖所示
分析 :
由仿真圖可以得到以下結論 :
EDA實驗報告
當 s=0(00) 時 y=a; 當 s=1(01) 時 y=b; 當 s=2(10) 時 y=c; 當 s=3(11)
時 y=d。符合我們最開始設想的功能設計 , 這說明源程序正確。
2. 七段譯碼器程序設計
基本功能及原理 :
七段譯碼器就是用來顯示數字的 ,7 段數碼就是純組合電路 , 通常的小規模專用 IC, 如 74 或 4000 系列的器件只能作十進制 BCD碼譯碼 ,
然而數字系統中的數據處理與運算都就是 2 進制的 , 所以輸出表達都
就是 16 進制的 , 為了滿足 16 進制數的譯碼顯示 , 最方便的方法就就是利用 VHDL譯碼程序在 FPGA或 CPLD中實現。本項實驗很容易實現這一目的。輸出信號的 7 位分別接到數碼管的 7 個段 , 本實驗中用的數碼管為共陽極的 , 接有低電平的段發亮。
數碼管的圖形如下
七段譯碼器的邏輯符號 :
程序設計 :
EDA實驗報告
軟件編譯 :
在編輯器中輸入并保存了以上七段譯碼器的 VHDL源程序后就可
以對它進行編譯了 , 編譯的最終目的就是為了生成可以進行仿真、定
時分析及下載到可編程器件的相關文件
。
仿真分析 :
仿真結果如下圖所示 :
EDA實驗報告
分析 :
由仿真的結果可以得到以下結論 :
a=0(0000)時 led7=1000000 此時數碼管顯示 0;
a=1(0001)時 led7=1111001 此時數碼管顯示 1;
a=2(0010)時 led7=0100100 此時數碼管顯示 2;
a=3(0011)時 led7=0110000 此時數碼管顯示 3;
a=4(0100)時 led7=0011001 此時數碼管顯示 4;
a=5(0101)時 led7=0010010 此時數碼管顯示 5;
a=6(0110)時 led7=0000010 此時數碼管顯示 6;
a=7(0111)時 led7=1111000 此時數碼管顯示 7;
a=8(1000)時 led7=0000000 此時數碼管顯示 8;
a=9(1001)時 led7=0010000 此時數碼管顯示 9;
a=10(1010)時 led7=0001000 此時數碼管顯示 A;
a=11(1011)時 led7=0000011 此時數碼管顯示 B;
a=12(1100)時 led7=1000110 此時數碼管顯示 C;
EDA實驗報告
a=13(1101)時 led7=0100001 此時數碼管顯示 D;
a=14(1110)時 led7=0000110 此時數碼管顯示 E;
a=15(1111)時 led7=0001110 此時數碼管顯示 F;
這完全符合我們最開始的功能設計 ,所以可以說明源 VHDL 程序就是正確的。
實驗心得 :
通過這次實驗 ,我基本掌握了 QUARTUS II 軟件的使用 , 也掌握了軟件工程的建立 ,VHDL源文件的設計與波形仿真等基本內容。在實驗中 , 我發現 EDA這門課十分有趣 , 從一個器件的功能設計到程序設計, 再到編譯成功 , 最后得到仿真的結果 , 這其中的每一步都需要認真分析 , 一遍又一遍的編譯 , 修改。當然 , 中間出現過錯誤 , 但我依然不放棄, 一點一點的修改 , 驗證 , 最終終于出現了正確的仿真結果 , 雖然有一些毛刺 , 但就是總的來說 , 不影響整體的結果。
實驗二 : 計數器設計與顯示
實驗目的 :
(1) 熟悉利用 QUARTUS II 中的原理圖輸入法設計組合電路 ,
掌握層次化的設計方法 ;
(2) 學習計數器設計 , 多層次設計方法與總線數據輸入方式的仿真 , 并進行電路板下載演示驗證。
實驗內容 :
完成計數器設計基本功能及原理 :
EDA實驗報告
本實驗要設計一個含有異步清零與計數使能的 4 位二進制加減
可控計數器 , 即有一個清零端與使能端 , 當清零端為 1 時異步清零 , 即
所有輸出值都為 0, 當使能端為 0 時, 計數器停止工作 , 當使能端為 1
, 正常工作 , 由時鐘控制。另外 , 還應該有一個控制端 , 當控制端為 0
, 進行減法運算 , 當控制端為 1 時, 進行加法運算。輸出端有輸出值與進位端 , 當進行加法運算時 , 輸出值遞增 , 當減法運算時 , 輸出值遞減, 同時進位端進行相應的變化。
4 位二進制加減計數器的邏輯符號 :
程序設計 :
EDA實驗報告
軟件編譯 :
在編輯器中輸入并保存了以上 4 位二進制加減計數器的 VHDL源程序
后就可以對它進行編譯了 , 編譯的最終目的就是為了生成可以進行仿
EDA實驗報告
真、定時分析及下載到可編程器件的相關文件。仿真分析 :
仿真結果如下 :
分析 :
由仿真圖可以得到以下結論 :
當 enable端為 0 時,所有數值都為 0,當 enable端為 1 時,計數器正常工作;當 reset 端為 1 時,異步清零 ,所有輸出數值為 0,當 reset 端為 0 時,
正常工作 ;當 updown 端為 0 時,進行減法運算 ,當 updown 為 1 時,進行加法運算 ;另外,當程序進行減法運算時 ,出現借位時 ,co 為 1,其余為 0,
當進行加法運算時 ,出現進位時 ,co 為 1,其余為 0。圖中所有的功能與我們設計的完全一樣 ,所以說明源程序正確。
2.50M 分頻器的設計
基本功能及原理 :
50M分頻器的作用主要就是控制后面的數碼管顯示的快慢。即一個
模為 50M的計數器 , 由時鐘控制 , 分頻器所有的端口基本與上述 4 位二
EDA實驗報告
進制加減計數器的端口一樣 , 原理也基本相同。分頻器的進位端 (co)
用來控制加減計數器的時鐘 , 將兩個器件連接起來。
50M分頻器的邏輯符號如下 :
程序設計 :
軟件編譯 :
在編輯器中輸入并保存了以上 50M分頻器的 VHDL源程序后就可以對
EDA實驗報告
它進行編譯了 , 編譯的最終目的就是為了生成可以進行仿真、定時分析及下載到可編程器件的相關文件。
仿真分析 :
結果如下 :
上圖為仿真圖的一部分 ,由于整個圖太大 ,所以顯示一部分即可 ,其余部分如圖以上圖規律一直遞增 ,直到 50M 為止 ,然后再重復 ,如此循環 。
上圖就是部分輸出的顯示 , 由于整個圖太大 , 所以只顯示部分 , 其余部分如圖遞增。
分析 :
由仿真圖可以瞧出 , 當 reset 為 0,enable 為 1 時( 因為本實驗中計數器的模值太大 , 為了盡可能多的觀察出圖形 , 可讓 reset 一直為
0,enable 一直為 1, 即一直正常工作 ), 輸出值由 0 一直遞增到 50M,構
EDA實驗報告
成一個加法計數器 , 與我們設計的功能一致。
3. 七段譯碼器程序設計
基本功能及原理 :
七段譯碼器就是用來顯示數字的 ,7 段數碼就是純組合電路 , 通常
的小規模專用 IC, 如 74 或 4000 系列的器件只能作十進制 BCD碼譯碼 ,
然而數字系統中的數據處理與運算都就是 2 進制的 , 所以輸出表達都
就是 16 進制的 , 為了滿足 16 進制數的譯碼顯示 , 最方便的方法就就是
利用 VHDL譯碼程序在 FPGA或 CPLD中實現。本項實驗很容易實現這
一目的。輸出信號的 7 位分別接到數碼管的 7 個段 , 本實驗中用的數
碼管為共陽極的 , 接有低電平的段發亮。
七段譯碼器的邏輯符號 :
程序設計 :
EDA實驗報告
軟件編譯 :
在編輯器中輸入并保存了以上七段譯碼器的 VHDL源程序后就可以對
它進行編譯了 , 編譯的最終目的就是為了生成可以進行仿真、定時分
析及下載到可編程器件的相關文件。
仿真分析 :
仿真結果如下圖所示 :
EDA實驗報告
分析 : 具體分析與實驗一中七段
譯碼器的分析相同 , 在此不再贅述。
計數器與譯碼器連接電路的頂層文件原理圖 :
原理圖連接好之后就可以進行引腳的鎖定 ,然后將整個程序下載到已經安裝好的電路板上 ,即可進行仿真演示。
實驗心得 :
經過本次試驗 , 我學到了很多。首先 , 我加強了對 QUARTUS II軟件的掌握 ; 其次 , 我掌握了電路圖的頂層文件原理圖的連接 , 學會了如何把自己設計的程序正確的轉化為器件 , 然后正確的連接起來 , 形成一個
EDA實驗報告
整體的功能器件 ; 最后 , 我學會了如何安裝以及如何正確的把完整的
程序下載到電路板上 , 并進行演示驗證。
實驗三 :大作業設計
(循環彩燈控制器 )
實驗目的 :
綜合應用數字電路的各種設計方法 , 完成一個較為復雜的電路
設計。
實驗內容 :
流水燈 ( 循環彩燈 ) 的設計設計任務 :
設計一個循環彩燈控制器 , 該控制器可控制 10 個發光二極管循環點亮 , 間隔點亮或者閃爍等花型。
要求至少三種以上花型 , 并用按鍵控制花型之間的轉換 , 用數碼管顯示花型的序號。
基本原理 :
該控制器由兩部分組成 , 一部分就是一個 50M 的分頻器 , 其主要用來控制花色變化的快慢 ; 另一部分就是一個彩燈控制器 , 該彩燈控制器可由兩個開關控制花型的序號 ,10 個輸出分別控制 10 個發光二極管的亮暗 , 當輸出為 1 時, 該發光二極管亮 , 輸出為 0 時, 該二極管滅。
EDA實驗報告
將分頻器的 co 端用來控制彩燈控制器的時鐘 , 將兩個器件連接起來。
1. 分頻器的設計
50M分頻器與實驗二中的分頻器一樣 , 這里不再贅述。
2、彩燈控制器的設計
基本原理 :
該彩燈控制器由時鐘控制 ,reset 異步清零 ,enable 當做使能端 , 由兩
個開關 do(0-1) 來控制選擇不同的花型 ,10 個輸出端 lig(0-9) 來控制
10 個 LED燈的亮滅。因為用了兩個開關來控制花型 , 所以一共有 4 種
花色。
彩燈控制器的邏輯符號 :
程序設計 :
EDA實驗報告
EDA實驗報告
EDA實驗報告
3.七段譯碼器的設計
七段譯碼器就是用來顯示不同花型的序號的 ,其設計與實驗一中的設計一樣 ,這里不再贅述。
循環彩燈控制器的原理圖 :
仿真波形如下 :
第一種花型 :
EDA實驗報告
第二種花型 :
第三種花型 :
第四種花型 :
仿真分析 :
EDA實驗報告
將以上仿真波形圖與源程序對比 ,我們可以瞧到 ,仿真出來的波形與我
們設計的功能一致 ,這說明源 VHDL 程序就是正確的。
實驗心得 :
本次試驗就是在沒有老師指導的情況下自己完成的 ,我在參考了
網上的程序的情況下 ,最終成功的設計并正確的演示出了循環彩燈的
不同花型。通過本次試驗 ,我真正的體會到了 DEA 這門課的樂趣 ,也發
現它對我們的學習與生活帶來很大的方便。