一、實驗目的
熟悉利用QuartusⅡ的圖形編輯輸入法設計簡單組合電路,掌握層次化設計方法,并通過8位全加器的設計,進一步熟悉利用EDA軟件進行數字系統設計的流程。
二、實驗儀器與器材
計算機1臺,GW48-PK2S實驗箱1臺,QuartusⅡ6.0 1套。
三、實驗內容
1. 基本命題
利用圖形輸入法設計一個一位半加器和全加器,再利用級聯方法構成8位加法器。
2. 擴展命題
利用文本輸入法設計4位并行進位加法器,再利用層次設計方法構成8位加法器。通過時序仿真,比較兩種加法器的性能。
四、實驗設計思路
按照如圖2-1,2-2,2-3設計半加器、全加器、串行級聯加法器
① 設計半加器
圖2-1半加器設計圖
② 設計全加器
圖2-2全加加器設計圖
③ 設計串行級聯8位加法器
圖2-3串行級聯8位加法器設計圖
④ 仿真波形圖
對以上的串行級聯加法器進行仿真。設置時鐘頻率為/1/10ns。每20ns對a,b輸入口進行+2操作。所得結果見圖2-8。由圖可知延時大約為14ns。
圖2-4串行級聯加法器仿真波形圖
對以上的串行級聯加法器進行仿真。設置時鐘頻率為/2.0us。每10us對a,b輸入口進行+2操作。所得結果見圖2-4。由圖可知延時大約為10us。
五、實驗要求
將實驗原理、設計過程、編譯仿真波形和分析結果、硬件測試實驗結果寫進實驗報告。
六、實驗思考題
(1)與單一設計文件比較,實現層次化設計應注意哪些問題?
答:實現層次化設計需要注意的是:假設B設計中引用A設計,那么需要將A設計的工程文件放在B設計的工程文件中,另外,B設計的工程必須要以B的實體名稱對應,不然仿真的時候會出錯。
(2)比較圖形編輯和文本編輯兩種8位二進制加法器的性能,分析它們的主要異同點。以下是文本編輯的參考程序。
1) 4位二進制數加法器ADDER4B的VHDL描述
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER4B IS PORT ( CIN4 : IN STD_LOGIC; A4 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); B4 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S4 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT4 : OUT STD_LOGIC); END ADDER4B; ARCHITECTURE behav OF ADDER4B IS SIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL AA,BB : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN AA<='0'&A4; BB<='0'&B4; SINT <= AA + BB + CIN4; S4 <= SINT(3 DOWNTO 0); COUT4 <= SINT(4); END behav;
圖2-9ADDER4B仿真波形圖
對以上的ADDER8B進行仿真。設置時鐘頻率為/2.0us。每10us對a,b輸入口進行+2操作。所得結果見圖2-9。由圖可知延時大約為20us。
2)應用ADDER4B設計8位二進制數加法器ADDER8B的VHDL描述
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER8B IS PORT ( CIN : IN STD_LOGIC; A : IN STD_LOGIC_VECTOR(7 DOWNTO 0); B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT : OUT STD_LOGIC ); END ADDER8B; ARCHITECTURE struc OF ADDER8B IS COMPONENT ADDER4B PORT ( CIN4 : IN STD_LOGIC; A4 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); B4 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S4 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT4 : OUT STD_LOGIC ); END COMPONENT; SIGNAL CARRY_OUT : STD_LOGIC; BEGIN U1 : ADDER4B -- 例化一個4位二進制加法器U1 PORT MAP ( CIN4 => CIN, A4 => A(3 DOWNTO 0), B4 => B(3 DOWNTO 0), S4 => S(3 DOWNTO 0), COUT4 => CARRY_OUT ); U2 : ADDER4B --例化一個4位二進制加法器U2 PORT MAP ( CIN4 => CARRY_OUT, A4 => A(7 DOWNTO 4), B4 => B(7 DOWNTO 4), S4 => S(7 DOWNTO 4),COUT4 => COUT ); END struc;
圖2-10ADDER8B仿真波形圖
對以上的ADDER8B進行仿真。設置時鐘頻率為/2.0us。每10us對a,b輸入口進行+2操作。所得結果見圖2-10。由圖可知延時大約為20us。
實驗錯誤小結:
Quartus中仿真時出現no simulation input file assignment specify 解決方法
這個錯誤的意思是:仿真文件沒有被指定,要仿真的話先要建一個仿真文件:
情況1、file -> new -> 選擇Other file選項卡 -> Vector Waveform File
然后把輸入輸出端口加進去,再設置輸入的信號,保存,就可以仿真了。
情況2、如果你之前已經建立過了,就打開assignments->settings->simulator settings
看里面的有個文本框 simulation input 里面是否為空,為空的話就要找到你所建立的Vector Waveform File 文件,是以*.VMF結尾的,如果沒找到,你又以為你建立了Vector Waveform File ,很可能粗心的你還沒保存Vector Waveform File ,保存了才會在project里面找到。
文章列表