<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子百科>半導體技術>基礎知識>

什么是一位全加器,其原理是什么?

2010年03月08日 17:13 www.qd573.com 作者:佚名 用戶評論(0

什么是一位全加器,其原理是什么

 加器是能夠計算低位進位的二進制加法電路

一位全加器由2個半加器組成,其電路原理如圖4-2所示


  一位全加器(FA)的邏輯表達式為:
  S=A⊕B⊕Cin
  Co=AB+BCin+ACin
  其中A,B為要相加的數,Cin為進位輸入;S為和,Co是進位輸出;
  如果要實現多位加法可以進行級聯,就是串起來使用;比如32位+32位,就需要32個全加器;這種級聯就是串行結構速度慢,如果要并行快速相加可以用超前進位加法,
  超前進位加法前查閱相關資料;
  如果將全加器的輸入置換成A和B的組合函數Xi和Y(S0…S3控制),然后再將X,Y和進位數通過全加器進行全加,就是ALU的邏輯結構結構。
  即 X=f(A,B)
  Y=f(A,B)
  不同的控制參數可以得到不同的組合函數,因而能夠實現多種算術運算和邏輯運算。
?

表2-1一位全加器的真值表

ADD1 0 0 1 1 0 0 1 1
ADD2
0 1 0 1 0 1 0 1
CARRY_OUT
0 0 0 0 1 1 1 1
SUM< 0 1 1 0 1 0 ?? 0 1

一、???????? 實驗目的

1.?????? 熟悉QUARTUSII軟件的使用;

2.?????? 熟悉實驗箱的使用;

3.?????? 掌握利用層次結構描述法設計電路。

二、???????? 實驗原理及說明

數字電路知識可知,一位全加器可由兩個一位半加器與一個或門構成,其原理圖如圖1所示。該設計利用層次結構描述法,首先設計半加器電路,將其打包為半加器模塊;然后在頂層調用半加器模塊組成全加器電路;最后將全加器電路編譯下載到實驗箱,其中a,b,cin信號可采用實驗箱上鍵1、鍵2和鍵3進行輸入,s,co信號采用D1與D2發光二極管來顯示。

圖1.1 全加器原理圖

三、???????? 實驗步驟

1.??? 建立full_adder的工程(project)

在QUARTUSII軟件下創建一工程,工程名為full_adder,芯片名為EP 1C3T144,選擇FPGA目標器件,根據DE2的平臺情況,選擇cyclone II系列的EP2C35F672C6,注意工程路徑不要放到安裝路徑;

2.??? 設計half_adder的VHDL模塊

新建VHDL語言文件,輸入如下半加器VHDL語言源程序,并存盤為half_adder.vhd;

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity half_adder is

?????? ??? port( a : in STD_LOGIC;

????????????? ?? ?b : in STD_LOGIC;

????????????? ? ??s : out STD_LOGIC;

????????????? ?? co : out STD_LOGIC );

end half_adder;

architecture half_adder of half_adder is

signal c,d:std_logic;

begin

?????? c<=a or b;

?????? d<=a nand b;

?????? co<=not d;

?????? s<=c and d;

end half_adder;

?

3.????? 驗證half_adder.vhd的正確與否,進行仿真

一般先進行功能仿真,再進行時序仿真。為了仿真,首先編輯測試文件。本次實驗由于系統簡單,采用對輸入信號進行輸入波形編輯的方法得到激勵文件

?

4.????? 進行功能仿真

(1)設置仿真器進行功能仿真:

????????? Assignments—>setting,選擇simulation setting,在simulation mode中選擇functional

????????? 在對話框中的simulation input中選擇half_adder.vwf,指定激勵文件

????????? 由Processing—>generat functional simulation netlist得到功能仿真的網表文件

????????? 由Processing—>start simulation得到功能仿真波形

(2)設置仿真器進行時序仿真:

????????? 改變仿真器的設置,Assignments—>setting

????????? 選擇仿真器設置,更改仿真模式,選擇timing

????????? 由Processing—>start Compilation對設計進行編譯

????????? 由Processing—>start simulation得到時序仿真波形

5.????? 封裝

6.????? 編輯全加器的原理圖

由file->new,打開原理圖文件,并存盤為full_adder.bdf

在原理圖中調用半加器與或門模塊,按照圖1.1所示連接電路,完成后另保存full_adder。

7.????? 對設計進行全編譯,如出現錯誤請按照錯誤提示進行修改。

?????? 由Processing->Start Compilation對設計進行全編譯。

????? 編輯波形文件對全加器模塊進行功能仿真和時序仿真。

8.????? 鎖定引腳,下載

實驗采用模式5,鎖定引腳對照表如下

?????????????????????

信號

鍵1

鍵2

鍵3

D1

D2

引腳號

1

2

3

11

32

?

執行ASSIGNMENT-PINS,設置完成后,執行下載。

下載:采用JATG方式進行下載,通過鍵1、鍵2與鍵3的輸入,觀察D1,D2的亮滅驗證全加器的邏輯功能。(此時,電腦與下載線都要連接到實驗箱上,且每次連線都必須先關掉電源)

?

四、???????? 思考題

1.為什么在實驗步驟3中,將半加器保存為half_adder,可否保存為full_adder?

答:不能保存為full_adder,因為VHDL語言中,要求程序名與實體名一致,否則會出現錯誤;而且這個程序是生成半加器模塊的程序,統一命名對模塊理解也容易得多。

2.對電路進行功能仿真與時序仿真時,發現二者有什么樣的區別?

?? 答:功能仿真就是將綜合后的VHDL網表文件再送到VHDL仿真器中所進行仿真。這時的仿真僅對VHDL描述的邏輯功能進行測試模擬,以了解其實現的功能是否滿足原設計的要求,仿真過程不涉及具體器件特性,如延時特性。時序仿真就是將布線器/適配器所產生的VHDL網表文件送到VHDL仿真器中所進行的仿真。該仿真已將器件特性考慮進去了,因此可以得到精確的時序仿真結果。

3.為什么要進行引腳鎖定?

?? 答:進行引腳鎖定,是為了對硬件進行檢測,就是FPGA/CPLD直接應用與系統設計中,將下載文件下載到芯片后,對系統的設計進行的功能檢測的過程。

4.采用層次結構法描述電路有什么樣的優點?

? 答:可以大大降低設計成本,縮短設計周期;極大地簡化設計文檔的管理;提高大規模系統電子設計的自動化程度;設計者擁有完全的自主權,再無受制于人之虞;良好的可移植與可測試性,為系統開發提供可靠的保證;能將所有設計環節納入統一的自頂向下的設計方案中;在系統板設計結束后仍可利用計算機對硬件系統進行完整的測試。?

非常好我支持^.^

(86) 57.3%

不好我反對

(64) 42.7%

( 發表人:admin )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
      <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
      <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
      <acronym id="s8ci2"></acronym>
      <acronym id="s8ci2"><center id="s8ci2"></center></acronym>