Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

匿名使用者
匿名使用者 發問時間: 電腦與網際網路軟體 · 1 0 年前

急~請幫我把MAX+plus II的4位元加法器改成八位元

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

--USE work.add_v.all;

ENTITY add4_v IS

PORT( A,B :IN STD_LOGIC_VECTOR(3 DOWNTo 0);

S :OUT STD_LOGIC_VECTOR(3 DOWNTo 0);

Cout,LED :OUT STD_LOGIC

);

END add4_v;

ARCHITECTURE a OF add4_v IS

COMPONENT hadd_v IS

PORT ( A,B : IN STD_LOGIC; S,C : OUT STD_LOGIC );

END COMPONENT;

COMPONENT fadd_v IS

PORT ( A,B,Ci : IN STD_LOGIC; S,Co : OUT STD_LOGIC );

END COMPONENT ;

SIGNAL N1,N2,N3 : STD_LOGIC;

BEGIN

LED <='1';

h0: hadd_v

PORT MAP( a=>A(0),b=>B(0),S=>S(0),C=>N1);

f1:fadd_v

PORT MAP( a=>A(1),b=>B(1),ci=>N1,s =>S(1),Co=>N2);

f2:fadd_v

PORT MAP( a=>A(2),b=>B(2),ci=>N2,s =>S(2),Co=>N3);

f3:fadd_v

PORT MAP( a=>A(3),b=>B(3), ci=>N3,s =>S(3),Co=>cout );

END a ;

請幫我改成8位元加法器

1 個解答

評分
  • 1 0 年前
    最佳解答

    LIBRARY IEEE;

    USE IEEE.STD_LOGIC_1164.ALL;

    --USE work.add_v.all;

    ENTITY add4_v IS -- "add4_v"可以改"add8_v"

    PORT( A,B :IN STD_LOGIC_VECTOR(7 DOWNTo 0); -- a,b 改成8位元

    S :OUT STD_LOGIC_VECTOR(7 DOWNTo 0); -- s 改成8位元

    Cout,LED :OUT STD_LOGIC

    );

    END add4_v; --如果上面有改, 這裡一樣改 "add8_v"

    ARCHITECTURE a OF add4_v IS --如果上面有改, 這裡一樣改 "add8_v"

    COMPONENT hadd_v IS

    PORT ( A,B : IN STD_LOGIC; S,C : OUT STD_LOGIC );

    END COMPONENT;

    COMPONENT fadd_v IS

    PORT ( A,B,Ci : IN STD_LOGIC; S,Co : OUT STD_LOGIC );

    END COMPONENT ;

    SIGNAL N1,N2,N3,N4,N5,N6,N7 : STD_LOGIC; --加上其他4個訊號

    BEGIN

    LED <='1';

    h0: hadd_v

    PORT MAP( a=>A(0),b=>B(0),S=>S(0),C=>N1);

    f1:fadd_v

    PORT MAP( a=>A(1),b=>B(1),ci=>N1,s =>S(1),Co=>N2);

    f2:fadd_v

    PORT MAP( a=>A(2),b=>B(2),ci=>N2,s =>S(2),Co=>N3);

    f3:fadd_v

    PORT MAP( a=>A(3),b=>B(3),ci=>N3,s =>S(3),Co=>N4);

    --加上其他4位元

    f4: fadd_v

    PORT MAP( a=>A(4),b=>B(4),ci=>N3,s =>S(4),Co=>N5);

    f5:fadd_v

    PORT MAP( a=>A(5),b=>B(5),ci=>N1,s =>S(5),Co=>N6);

    f6:fadd_v

    PORT MAP( a=>A(6),b=>B(6),ci=>N2,s =>S(6),Co=>N7);

    f7:fadd_v

    PORT MAP( a=>A(7),b=>B(7), ci=>N3,s =>S(7),Co=>cout );

    END a ;

    --我不知道你fadd_v的結構, 不過參考你的前4位元, 應該是這樣

    --"LED"好像沒有用

    參考資料:
還有問題?馬上發問,尋求解答。