用VHDL语言描述全减器

北城余情 提交于 2019-12-03 11:56:32

 

                                                                     图一 全减器原理图

 图一是用VHDL语言描述全减器的原理图。全减器依然用到了例化语句。其程序如下:

library ieee;
use ieee.std_logic_1164.all;
entity f_jq is
port(x,y,sub_in:in std_logic;
diffr,sub_out:out std_logic
);
end;
architecture fjq of f_jq is
component BJQ
port(a,b:in std_logic;
d,s:out std_logic
);
end component;
component or2a
port(A,B:in std_logic;
C:out std_logic
);
end component;
signal net1,net2,net3 :std_logic;
begin
u1:BJQ port map(a=>x,b=>y,d=>net1,s=>net2);
u2:BJQ port map(a=>net1,b=>sub_in,d=>diffr,s=>net3);
u3:or2a port map(A=>net3,B=>net2,C=>sub_out);
end architecture fjq;

其中用到例化语句半减器,其程序如下:

library ieee;
use ieee.std_logic_1164.all;
entity BJQ is
port(a,b:in std_logic;
d,s:out std_logic
);
end;
architecture bhv of BJQ is
begin
d<=a xor b;
s<=(not a)and b;
end architecture bhv;

其半减器原理图如图二所示。

 

例化语句或门程序如下:

library ieee;
use ieee.std_logic_1164.all;
entity or2a is
port(
A,B:in std_logic;
C:out std_logic
);
end entity or2a;
architecture one of or2a is
begin
c<=a or b;
end architecture one;

其原理图如图三所示:

 

 对数电知识进行补充:

1、半减器真值表:

 

 有真值表可以知diff和s_out的逻辑表达式。

diff=x xor y;

s_out=(not x)and y;

2、全减器真值表:

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!