文章出處

 

一、實驗目的

熟悉利用Quartus的圖形編輯輸入法設計簡單組合電路,掌握層次化設計方法,并通過8位全加器的設計,進一步熟悉利用EDA軟件進行數字系統設計的流程。

二、實驗儀器與器材

計算機1臺,GW48-PK2S實驗箱1臺,Quartus6.0 1

三、實驗內容

1. 基本命題

利用圖形輸入法設計一個一位半加器和全加器,再利用級聯方法構成8位加法器。

2. 擴展命題

利用文本輸入法設計4位并行進位加法器,再利用層次設計方法構成8位加法器。通過時序仿真,比較兩種加法器的性能。

四、實驗設計思路

按照如2-12-22-3設計半加器、全加器、串行級聯加法器

設計半加器

clip_image001[4]

2-1半加器設計圖

設計全加器

clip_image003[4]

2-2全加加器設計圖

 

設計串行級聯8位加法器

clip_image005[4]

2-3串行級聯8位加法器設計圖

仿真波形圖

對以上的串行級聯加法器進行仿真。設置時鐘頻率為/1/10ns。每20nsa,b輸入口進行+2操作。所得結果見2-8由圖可知延時大約為14ns

clip_image007[4]

2-4串行級聯加法器仿真波形圖

對以上的串行級聯加法器進行仿真。設置時鐘頻率為/2.0us。每10usa,b輸入口進行+2操作。所得結果見2-4由圖可知延時大約為10us

五、實驗要求

將實驗原理、設計過程、編譯仿真波形和分析結果、硬件測試實驗結果寫進實驗報告。

六、實驗思考題

1)與單一設計文件比較,實現層次化設計應注意哪些問題?

答:實現層次化設計需要注意的是:假設B設計中引用A設計,那么需要將A設計的工程文件放在B設計的工程文件中,另外,B設計的工程必須要以B的實體名稱對應,不然仿真的時候會出錯。

2)比較圖形編輯和文本編輯兩種8位二進制加法器的性能,分析它們的主要異同點。以下是文本編輯的參考程序。

1 4位二進制數加法器ADDER4BVHDL描述

 

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;

 

 

clip_image009[4]

2-9ADDER4B仿真波形圖

 

對以上的ADDER8B進行仿真。設置時鐘頻率為/2.0us。每10usa,b輸入口進行+2操作。所得結果見2-9由圖可知延時大約為20us

 

2)應用ADDER4B設計8位二進制數加法器ADDER8BVHDL描述

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;

 

 

 

 

clip_image011[4]

2-10ADDER8B仿真波形圖

 

對以上的ADDER8B進行仿真。設置時鐘頻率為/2.0us。每10usa,b輸入口進行+2操作。所得結果見2-10由圖可知延時大約為20us

實驗錯誤小結:

Quartus中仿真時出現no simulation input file assignment specify 解決方法 

 

這個錯誤的意思是:仿真文件沒有被指定,要仿真的話先要建一個仿真文件:
情況1file -> new -> 選擇Other file選項卡
-> Vector Waveform File
然后把輸入輸出端口加進去,再設置輸入的信號,保存,就可以仿真了。

情況2、如果你之前已經建立過了,就打開assignments->settings->simulator settings

看里面的有個文本框 simulation input 里面是否為空,為空的話就要找到你所建立的Vector Waveform File 文件,是以*.VMF結尾的,如果沒找到,你又以為你建立了Vector Waveform File ,很可能粗心的你還沒保存Vector Waveform File ,保存了才會在project里面找到。

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()