用结构描述的VHDL方法实现半加器

使用行为描述的方法实现半加器是非常简单的,可是你尝试过用行为描述实现半加器嘛?我们的数字逻辑盛建伦老师就布置了这样的一个实验,代码如下:

[codesyntax lang=”vhdl”]

-- 底层实体 And_Gate
library ieee;
use ieee.std_logic_1164.all;
entity and_gate is
port(op1,op2:in std_logic;
     and_result:out std_logic);
end and_gate;
architecture behave of and_gate is
begin
  and_result<=op1 and op2;
end behave;

-- 底层实体 Or_Gate
library ieee;
use ieee.std_logic_1164.all;
entity xor_gate is
port(op1,op2:in std_logic;
     xor_result:out std_logic);
end xor_gate;
architecture behave of xor_gate is
begin
  xor_result<=op1 xor op2;
end behave;

-- 顶层设计实体 h_adder
library ieee;
use ieee.std_logic_1164.all;
entity h_adder is
port(a1,a2:in std_logic;
     s,c:out std_logic);
end h_adder;
architecture struct of h_adder is
signal b1,b2:std_logic;
component and_gate
  port(op1,op2:in std_logic;
       and_result:out std_logic);
end component;
component xor_gate
  port(op1,op2:in std_logic;
       xor_result:out std_logic);
end component;
begin
  G1:and_gate port map
	(op1=>a1,
	 op2=>a2,
	 and_result=>c);
  G2:xor_gate port map
	(op1=>a1,
	 op2=>a2,
	 xor_result=>s);
end struct;

[/codesyntax]

Quartus II 8.1 (32-Bit) 编译仿真通过。

《用结构描述的VHDL方法实现半加器》有6个想法

  1. 我们来说是过去时了,老盛很和蔼的一个人,分了专业就惨了,没一个像老盛那么敬业的。都是垃圾

    1. @雨碎江南, 用行为描述非常简单 可是我们的老师非要用结构描述。我也不想弄这么麻烦哇!

      1. @Kaisir.Wang,
        呃…物理实现:不好画图,我语言描述.
        输入:A,B两条线.分别让A和B过一个OR(记为OutOR),一个AND(记为OutAND1).其中OutAND1的输出即为进位输出.然后把OutAND1输出到一个NOT上(NOT的输出记为OutNOT),然后把OutNOT和OutOR接到一个AND上(记为OutAND2)OutAND2即为加和输出,你会发现这个电路其实就是XOR加了一条线.

发表评论

电子邮件地址不会被公开。 必填项已用*标注