標題:
VHDL程式問題
請問4bit carry look ahead adder 怎麼用VHDL 做出來
最佳解答:
這是教科書最常出的範例,google隨便找也有 關鍵字找 [ 4 bit carry look ahead adder vhdl code ] 就出現一堆: 底下範例是參考 : http://www.openhdl.com/vhdl/647-vhdl-component-4-bit-carry-lookahead-adder.html 還有很多很多很多...慢慢看囉.. LIBRARY ieee;USE ieee.std_logic_1164.all; ENTITY cla_add4 IS PORT ( a : IN STD_LOGIC_VECTOR(3 DOWNTO 0); b : IN STD_LOGIC_VECTOR(3 DOWNTO 0); c_in : IN STD_LOGIC; sum : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); c_out : OUT STD_LOGIC; pg_out : OUT STD_LOGIC; gg_out : OUT STD_LOGIC );END cla_add4; ARCHITECTURE behavioral OF cla_add4 IS SIGNAL P: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL G: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL C: STD_LOGIC_VECTOR(4 DOWNTO 0);BEGIN -- Sum logic sum_prc: PROCESS(a, b, C, c_in) BEGIN sum(0) <= a(0) XOR b(0) XOR c_in; FOR i IN 3 DOWNTO 1 LOOP sum(i) <= a(i) XOR b(i) XOR C(i); END LOOP; END PROCESS; -- Carry-lookahead logic propagate_prc: PROCESS(a, b) BEGIN FOR i IN 3 DOWNTO 0 LOOP P(i) <= a(i) OR b(i); END LOOP; END PROCESS; generate_prc: PROCESS(a, b) BEGIN FOR i IN 3 DOWNTO 0 LOOP G(i) <= a(i) AND b(i); END LOOP; END PROCESS; carry_prc: PROCESS(P, G, C, c_in) BEGIN C(0) <= c_in; FOR i IN 4 DOWNTO 1 LOOP C(i) <= G(i-1) OR (P(i-1) AND C(i-1)); END LOOP; END PROCESS; -- Carry-lookahead output logic c_out <= C(4); pg_out <= P(0) AND P(1) AND P(2) AND P(3); gg_out <= G(3) OR (G(2) AND P(3)) OR (G(1) AND P(3) AND P(2)) OR (G(0) AND P(3) AND P(2) AND P(1)); END behavioral;
其他解答:428DFA428D9FA6F8
VHDL程式問題
- 三重醫院到台北市敦化南路
- 如何從五股到台北火車站!!急急急~~@1@
- 北市士林區重慶北路四段112號
- 如何去復興商工!!-
- 急急急屏科大資訊管理系統測需要多少分!-----@1@
- 台北7-11捷盟市在哪--
- 台灣大哥大601型的優惠時段@1@
- 中華電信月租型行動電話儲值卡還有地方可以買到470儲值500@1@
- 國1數學題目
- 太平市的 臨時 流浪犬 收容所在那-@1@
此文章來自奇摩知識+如有不便請留言告知
發問:請問4bit carry look ahead adder 怎麼用VHDL 做出來
最佳解答:
這是教科書最常出的範例,google隨便找也有 關鍵字找 [ 4 bit carry look ahead adder vhdl code ] 就出現一堆: 底下範例是參考 : http://www.openhdl.com/vhdl/647-vhdl-component-4-bit-carry-lookahead-adder.html 還有很多很多很多...慢慢看囉.. LIBRARY ieee;USE ieee.std_logic_1164.all; ENTITY cla_add4 IS PORT ( a : IN STD_LOGIC_VECTOR(3 DOWNTO 0); b : IN STD_LOGIC_VECTOR(3 DOWNTO 0); c_in : IN STD_LOGIC; sum : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); c_out : OUT STD_LOGIC; pg_out : OUT STD_LOGIC; gg_out : OUT STD_LOGIC );END cla_add4; ARCHITECTURE behavioral OF cla_add4 IS SIGNAL P: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL G: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL C: STD_LOGIC_VECTOR(4 DOWNTO 0);BEGIN -- Sum logic sum_prc: PROCESS(a, b, C, c_in) BEGIN sum(0) <= a(0) XOR b(0) XOR c_in; FOR i IN 3 DOWNTO 1 LOOP sum(i) <= a(i) XOR b(i) XOR C(i); END LOOP; END PROCESS; -- Carry-lookahead logic propagate_prc: PROCESS(a, b) BEGIN FOR i IN 3 DOWNTO 0 LOOP P(i) <= a(i) OR b(i); END LOOP; END PROCESS; generate_prc: PROCESS(a, b) BEGIN FOR i IN 3 DOWNTO 0 LOOP G(i) <= a(i) AND b(i); END LOOP; END PROCESS; carry_prc: PROCESS(P, G, C, c_in) BEGIN C(0) <= c_in; FOR i IN 4 DOWNTO 1 LOOP C(i) <= G(i-1) OR (P(i-1) AND C(i-1)); END LOOP; END PROCESS; -- Carry-lookahead output logic c_out <= C(4); pg_out <= P(0) AND P(1) AND P(2) AND P(3); gg_out <= G(3) OR (G(2) AND P(3)) OR (G(1) AND P(3) AND P(2)) OR (G(0) AND P(3) AND P(2) AND P(1)); END behavioral;
其他解答:428DFA428D9FA6F8
文章標籤
全站熱搜