一、實驗目的
熟悉利用QuartusⅡ的圖形編輯輸入法設計簡單組合電路,掌握層次化設計方法,并通過8位全加器的設計,進一步熟悉利用EDA軟件進行數(shù)字系統(tǒng)設計的流程。
二、實驗儀器與器材
計算機1臺,GW48-PK2S實驗箱1臺,QuartusⅡ6.0 1套。
三、實驗內容
1. 基本命題
利用圖形輸入法設計一個一位半加器和全加器,再利用級聯(lián)方法構成8位加法器。
2. 擴展命題
利用文本輸入法設計4位并行進位加法器,再利用層次設計方法構成8位加法器。通過時序仿真,比較兩種加法器的性能。
四、實驗設計思路
按照如圖2-1,2-2,2-3設計半加器、全加器、串行級聯(lián)加法器
① 設計半加器
圖2-1半加器設計圖
② 設計全加器
圖2-2全加加器設計圖
③ 設計串行級聯(lián)8位加法器
圖2-3串行級聯(lián)8位加法器設計圖
④ 仿真波形圖
對以上的串行級聯(lián)加法器進行仿真。設置時鐘頻率為/1/10ns。每20ns對a,b輸入口進行+2操作。所得結果見圖2-8。由圖可知延時大約為14ns。
圖2-4串行級聯(lián)加法器仿真波形圖
對以上的串行級聯(lián)加法器進行仿真。設置時鐘頻率為/2.0us。每10us對a,b輸入口進行+2操作。所得結果見圖2-4。由圖可知延時大約為10us。
五、實驗要求
將實驗原理、設計過程、編譯仿真波形和分析結果、硬件測試實驗結果寫進實驗報告。
六、實驗思考題
(1)與單一設計文件比較,實現(xiàn)層次化設計應注意哪些問題?
答:實現(xiàn)層次化設計需要注意的是:假設B設計中引用A設計,那么需要將A設計的工程文件放在B設計的工程文件中,另外,B設計的工程必須要以B的實體名稱對應,不然仿真的時候會出錯。
(2)比較圖形編輯和文本編輯兩種8位二進制加法器的性能,分析它們的主要異同點。以下是文本編輯的參考程序。
1) 4位二進制數(shù)加法器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位二進制數(shù)加法器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中仿真時出現(xiàn)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里面找到。