實(shí)驗(yàn)二 8位加法器設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康?/p>
熟悉利用QuartusⅡ的圖形編輯輸入法設(shè)計(jì)簡(jiǎn)單組合電路,掌握層次化設(shè)計(jì)方法,并通過(guò)8位全加器的設(shè)計(jì),進(jìn)一步熟悉利用EDA軟件進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì)的流程。
二、實(shí)驗(yàn)儀器與器材
計(jì)算機(jī)1臺(tái),GW48-PK2S實(shí)驗(yàn)箱1臺(tái),QuartusⅡ6.0 1套。
三、實(shí)驗(yàn)內(nèi)容
1. 基本命題
利用圖形輸入法設(shè)計(jì)一個(gè)一位半加器和全加器,再利用級(jí)聯(lián)方法構(gòu)成8位加法器。
2. 擴(kuò)展命題
利用文本輸入法設(shè)計(jì)4位并行進(jìn)位加法器,再利用層次設(shè)計(jì)方法構(gòu)成8位加法器。通過(guò)時(shí)序仿真,比較兩種加法器的性能。
四、實(shí)驗(yàn)設(shè)計(jì)思路
按照如圖2-1,2-2,2-3設(shè)計(jì)半加器、全加器、串行級(jí)聯(lián)加法器
① 設(shè)計(jì)半加器
圖2-1半加器設(shè)計(jì)圖
② 設(shè)計(jì)全加器
圖2-2全加加器設(shè)計(jì)圖
③ 設(shè)計(jì)串行級(jí)聯(lián)8位加法器
圖2-3串行級(jí)聯(lián)8位加法器設(shè)計(jì)圖
④ 仿真波形圖
對(duì)以上的串行級(jí)聯(lián)加法器進(jìn)行仿真。設(shè)置時(shí)鐘頻率為/1/10ns。每20ns對(duì)a,b輸入口進(jìn)行+2操作。所得結(jié)果見圖2-8。由圖可知延時(shí)大約為14ns。
圖2-4串行級(jí)聯(lián)加法器仿真波形圖
對(duì)以上的串行級(jí)聯(lián)加法器進(jìn)行仿真。設(shè)置時(shí)鐘頻率為/2.0us。每10us對(duì)a,b輸入口進(jìn)行+2操作。所得結(jié)果見圖2-4。由圖可知延時(shí)大約為10us。
五、實(shí)驗(yàn)要求
將實(shí)驗(yàn)原理、設(shè)計(jì)過(guò)程、編譯仿真波形和分析結(jié)果、硬件測(cè)試實(shí)驗(yàn)結(jié)果寫進(jìn)實(shí)驗(yàn)報(bào)告。
六、實(shí)驗(yàn)思考題
(1)與單一設(shè)計(jì)文件比較,實(shí)現(xiàn)層次化設(shè)計(jì)應(yīng)注意哪些問(wèn)題?
答:實(shí)現(xiàn)層次化設(shè)計(jì)需要注意的是:假設(shè)B設(shè)計(jì)中引用A設(shè)計(jì),那么需要將A設(shè)計(jì)的工程文件放在B設(shè)計(jì)的工程文件中,另外,B設(shè)計(jì)的工程必須要以B的實(shí)體名稱對(duì)應(yīng),不然仿真的時(shí)候會(huì)出錯(cuò)。
(2)比較圖形編輯和文本編輯兩種8位二進(jìn)制加法器的性能,分析它們的主要異同點(diǎn)。以下是文本編輯的參考程序。
1) 4位二進(jìn)制數(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仿真波形圖
對(duì)以上的ADDER8B進(jìn)行仿真。設(shè)置時(shí)鐘頻率為/2.0us。每10us對(duì)a,b輸入口進(jìn)行+2操作。所得結(jié)果見圖2-9。由圖可知延時(shí)大約為20us。
2)應(yīng)用ADDER4B設(shè)計(jì)8位二進(jìn)制數(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 -- 例化一個(gè)4位二進(jìn)制加法器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 --例化一個(gè)4位二進(jìn)制加法器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仿真波形圖
對(duì)以上的ADDER8B進(jìn)行仿真。設(shè)置時(shí)鐘頻率為/2.0us。每10us對(duì)a,b輸入口進(jìn)行+2操作。所得結(jié)果見圖2-10。由圖可知延時(shí)大約為20us。
實(shí)驗(yàn)錯(cuò)誤小結(jié):
Quartus中仿真時(shí)出現(xiàn)no simulation input file assignment specify 解決方法
這個(gè)錯(cuò)誤的意思是:仿真文件沒(méi)有被指定,要仿真的話先要建一個(gè)仿真文件:
情況1、file -> new -> 選擇Other file選項(xiàng)卡 -> Vector Waveform File
然后把輸入輸出端口加進(jìn)去,再設(shè)置輸入的信號(hào),保存,就可以仿真了。
情況2、如果你之前已經(jīng)建立過(guò)了,就打開assignments->settings->simulator settings
看里面的有個(gè)文本框 simulation input 里面是否為空,為空的話就要找到你所建立的Vector Waveform File 文件,是以*.VMF結(jié)尾的,如果沒(méi)找到,你又以為你建立了Vector Waveform File ,很可能粗心的你還沒(méi)保存Vector Waveform File ,保存了才會(huì)在project里面找到。