必威电竞|足球世界杯竞猜平台

全加器
來源:互聯網

全加器英語名稱為full-adder,是用門電路實現兩個二進制數相加并求出和的組合線路,稱為一位全加器。一位全加器可以處理低位進位,并輸出本位加法進位。多個一位全加器進行級聯可以得到多位全加器。常用二進制四位全加器74LS283。

應用舉例

真值表

一位全加器的真值表如下圖,其中為被加數,為加數,相鄰低位來的進位數為,輸出本位和為。向相鄰高位進位數為Ci

描述

一位全加器的表達式如下:

第二個表達式也可用一個異或門來代替或門對其中兩個輸入信號進行求和:硬件描述語言Verilog 對一位全加器的三種建模方法:

結構化描述方式

模組 FA_struct (A, B, Cin, Sum, 計數);

input A;

input B;

input Cin;

output Sum;

output Count;

wire S1, T1, T2, T3;

// -- statements -- //

xor x1 (S1, A, B);

xor x2 (Sum, S1, Cin);

and A1 (T3, A, B );

and A2 (T2, B, Cin);

and A3 (T1, A, Cin);

or O1 (計數, T1, T2, T3 );

endmodule

該實例顯示了一個全加器由兩個異或門、三個與門、一個或門構成。S1、T1、T2、T3則是門與門之間的連線。代碼顯示了用純結構的建模方式,其中xor 、and、or 是Verilog HDL 內置的門器件。以 xor x1 (S1, A, B) 該例化語句為例:xor 表明調用一個內置的異或門,器件名稱xor ,代碼實例化名x1(類似原理圖輸入方式)。括號內的S1,A,B 表明該器件引腳的實際連結線(信號)的名稱,其中 A、B是輸入,S1是輸出。

數據流描述方式

`timescale 1ns/100ps

模組 FA_flow(A,B,Cin,Sum,計數);

input A,B,Cin;

output Sum, Count;

wire S1,T1,T2,T3;

assign # 2 S1 = A ^ B;

assign # 2 Sum = S1 ^ Cin;

assign #2 T3 = A & B;

assign #2 T1 = A & Cin;

assign #2 T2 = B & Cin ;

assign #2 Count=T1 | T2 | T3;

endmodule

注意在各assign 語句之間,是并行執行的,即各語句的執行與語句之間的順序無關。如上,當A有個變化時,S1、T3、T1 將同時變化,S1的變化又會造成Sum的變化。

行為描述方式

模組 FA_behav(A, B, Cin, Sum, Cout );

input A,B,Cin;

output Sum,Cout;

reg Sum, Cout;

reg T1,T2,T3;

always@ ( A or B or Cin )

begin

Sum = (A ^ B) ^ Cin ;

T1 = A & Cin;

T2 = B & Cin ;

T3 = A & B;

Cout = (T1| T2) | T3;

end

endmodule

全加器的VHDL描述

library ieee;

use ieee.std_logic_1164.all;

實體 full_add is

port(a,b,c:in std_logic;

sum,計數:out std_logic);

end entity full_add;

建筑 art of full_add is

begin

process(a,b,c) is

begin

if(a='0' and b='0' and c='0') then

sum<='0';count<='0';

elsif(a='1' and b ='0' and c='0') then

sum<='1';計數<='0';

elsif(a='0' and b='1' and c= '0') then

sum<='1';count<='0';

elsif(a='1' and b='1' and c= '0') then

sum<='0';count<='1';

elsif(a='0' and b='0' and c= '1') then

sum<='1';count<='0';

elsif(a='1' and b='0' and c= '1') then

sum<='0';計數<='1';

elsif(a='0' and b='1' and c= '1') then

sum<='0';count<='1';

else

sum<='1';count<='1';

end if;

end process;

end 建筑 art;

參考資料 >

生活家百科家居網