一.設計目的
熟悉quartus ii
的vhdl
文字設計流程全過程,學習組合電路的設計,**和測試。
二.設計內容
設計一位全加器,給出程式的設計、軟體編譯、**分析、硬體測試及詳細實驗過程。
三.程式設計原理
實驗步驟:
(1) 新建乙個quartusⅱ工程,用以在de2平台上實現所要求的電路。
(2) 建立乙個vhdl
檔案,實現一位全加器電路,完成編譯。
(3) 新建乙個波形檔案,進行**分析,驗證功能。
(4) 參照de2平台的引腳分配表分配引腳,用sw2~sw0作為輸入ain bin cin
,de2平台上的ledr0
輸出sum, ledr1
輸出cout。
(6) 撥動波段開關並觀察led
燈的顯示,以驗證設計的功能是否正確。
原理:
本實驗的原理是利用兩個一位的半加器來組成乙個一位的全加器。在程式設計中,利用元件化的思想來呼叫兩個功能比較簡單的半加器來實現功能稍加複雜的全加器。而一位半加器的設計思想就是利用真值表來進行設計即可。真值表如下: a
bsoco
四.程式流程圖
電路圖:
程式流程圖:由於本程式的邏輯設計比較簡單,這裡就不畫程式流程圖。程式的主要邏輯設計就是根據半加器的真值表進行設計的。
五.源程式
//h_adder.vhdl
library ieee;
use ieee.std_logic_1164.all;
entity h_adder is
port (a,b:in std_logic ;co,so:out std_logic);
end entity h_adder;
architecture fh1 of h_adder is
begin
so<=not(a xor (not b));
co<=a and b;
end architecture fh1;
// or2a.vhdl
library ieee;
use ieee.std_logic_1164.all;
entity or2a is
port (a,b:in std_logic;c:out std_logic );
end entity or2a;
architecture one of or2a is
begin
c<=a or b;
end architecture one;
// adder.vhdl
library ieee;
use ieee.std_logic_1164.all;
entity adder is
port(ain,bin,cin:in std_logic;cout,sum:out std_logic);
end entity adder;
architecture fd1 of adder is
component h_adder
port(a,b:in std_logic;co,so:out std_logic);
end component;
component or2a
port(a,b:in std_logic;c:out std_logic);
end component;
signal d,e,f:std_logic;
begin
u1:h_adder port map(a=>ain,b=>bin,co=>d,so=>e);
u2:h_adder port map(a=>e,b=>cin,co=>f,so=>sum);
u3:or2a port map(a=>d,b=>f,c=>cout);
end architecture fd1;
六.除錯過程
七.遇到的問題及解決方法
1、由於這是第一的實驗,對於實驗的環境很是陌生,導致在剛開始的時候,對整個程式的執行的過程很不熟悉,後來在老師的指導下,才懂得一些入門的知識。
2、在vhdl
程式設計中,實體名要和檔名一樣,否則編譯就會出現錯誤。
3、在建立一般的**波形時,要注意將相應的引腳新增進來,在對各個輸入的引腳進行波形編輯,然後盡量地遍歷所有的情況。
5、總之,經過這次的實驗,了解到了
vhdl
的一般編寫過程,如何進行除錯和分析執行結果。
八.參考文獻
eda技術與
vhdl
(第二版) 潘松 黃繼業 編著
實驗報告二 例2 19 一位全加器
廣工計算機組成原理實驗 實驗二要求 例2 19一位全加器,要做出 波形 提交完整詳細的 元件圖,測試波形,說明文字 學習 掌握quartusii開發平台的基本使用 設計乙個一位全加器,並驗證全加器的功能 乙個一位全加器可以用兩個一位半加器和乙個或門連線而成。而乙個一位半加器可由基本閘電路組成。半加器...
一種定點原碼一位乘法器的設計與實現
摘要 基於計算機組成原理課程實踐環節的建設,以提高學生實踐技能為目的,總結教學經驗,應用數位電路設計方法與技巧,考慮可行性,設計一種定點原碼一位乘法器的實現方案,包含初始化資料,啟動 停止運算,顯示運算過程等功能,用以指導教學實踐。乘法器 定點原碼一位乘法 計算機組成原理 計算機組成與結構 一 引言...
一位原碼的乘法規則 原碼一位乘法的實現演算法
原碼一位乘法的實現演算法 一 用原碼實現乘法運算是十分方便的。原碼表示的兩個數相乘,其乘積的符號為相乘兩數符號的異或值,數值則為兩數絕對值之積。假定 x 原 xsx1 x2 xn y 原 ysy1y2 yn 則 x y 原 x 原 y 原 xs ys x1x2 xn y1 y2 yn 結果是把符號位...