2017-03-24 29 views
0

2つの半加算器とORゲートを使用する単純な全加算器を作成しました。 VHDLコードはISEによる全加算器の合成

library ieee; 
use ieee.std_logic_1164.all; 

entity ha is 
    port(x: in std_logic; 
     y: in std_logic; 
     s: out std_logic; 
     c: out std_logic); 
end; 
architecture x of ha is 
begin 
    s <= x xor y; 
    c <= x and y; 
end; 

library ieee; 
use ieee.std_logic_1164.all; 

entity fa is 
    port(a: in std_logic; b: in std_logic; cin: in std_logic; 
     sum: out std_logic; cout: out std_logic); 
end; 
architecture y of fa is 
    component ha port(x: in std_logic; y: in std_logic; 
        s: out std_logic; c: out std_logic); 
    end component; 
    signal im1, im2, im3: std_logic; 
begin 
    ha1: ha port map(x=>a, y=>b, s=>im1, c=>im2); 
    ha2: ha port map(x=>im1, y=>cin, s=>sum, c=>im3); 
    cout <= im3 or im2; 
end; 

シンセサイザの出力は、しかし、2つのXORゲートがある示した非常に単純です。半加算器のORゲートなどはどこにありますか?

========================================================================= 
*      Advanced HDL Synthesis       * 
========================================================================= 
Advanced HDL Synthesis Report 

Macro Statistics 
# Xors             : 2 
1-bit xor2           : 2 

========================================================================= 

また、FAのRTL回路図は正しいですが、半加算器のRTL回路図は奇妙です! yポートは存在せず、データ[1:0]があります。どういう意味ですか?

FA:

enter image description here

HA:

enter image description here

答えて

1

私は定期的にマクロ統計のオフVivadoシンセサイザー休暇のものを見てきました。すべてのロジックが実際にLUTにマップされるため、マクロレポートはFPGAデザインにとって意味がありません。この場合、あなたの基本やゲートがマクロと見なされないように見えますが、XORは(論理シンボルの代わりに回路図内のボックスで示されているように)表示されます。

半加算回路図では、2つのシングルビット入力ポートを2ビットバスに結合しています。 andゲートの前の三角形は、そのバス上のタップで、2つのビットのうちの1つを取り出します。同じことを表現するもう一つの方法です。

+0

三角形は私が考えるバッファです。まだ回路図は奇妙です。入力ポートxは、2つの信号data [0]とdata [1]と考えられる。私はなぜそれがxとyを入れていないのだろうか – mahmood

+0

いいえ、彼らはバッファではありません。三角形はバッファのスケマティックシンボルとして頻繁に使用されることを理解しています。この場合、彼らはバスタップです。シンセサイザーはいつも名前を変えます。読むのは苦労しますが、明らかに良い結果が得られます。 – QuantumRipple

関連する問題