1、实验目标

通过本实验,掌握使用VHDL硬件描述语言设计一个1位二进制全加器,做出仿真波形。

注意:
创建项目、文件的具体操作细节可参考以下文章:
Quartus Prime Lite Edition 使用教程(创建项目与仿真)

2、创建 Project

f_adder 项目创建成功。

3、创建 VHDL 文件

全加器由两个半加器和一个或门连接而成,

所以就需要先设计好半加器和或门,然后全加器来调用半加器和或门就可以了。

①创建半加器 h_adder.vhd 文件

写入如下代码:

LIBRARY  IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY h_adder IS
  PORT ( a, b  : IN STD_LOGIC;
        co, so : OUT STD_LOGIC);
END ENTITY  h_adder;

ARCHITECTURE fh1 OF h_adder IS
BEGIN
  so <= NOT(a XOR (NOT b)) ;   co <= a AND b ;
END ARCHITECTURE fh1;

②创建或门 or2a.vhd 文件

写入如下代码:

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 ;

③创建全加器 f_adder.vhd 文件

写入如下代码:

LIBRARY  IEEE;
 USE IEEE.STD_LOGIC_1164.ALL;
 
 ENTITY f_adder IS
   PORT (ain, bin,  cin : IN STD_LOGIC;
              cout, sum : OUT STD_LOGIC);
 END ENTITY f_adder;
 
 ARCHITECTURE fd1 OF f_adder IS
   COMPONENT h_adder
     PORT (  a, b : IN STD_LOGIC;
           co, so : OUT STD_LOGIC);
   END COMPONENT;
   COMPONENT or2a
      PORT (a, b : IN STD_LOGIC;
               c : OUT STD_LOGIC);
   END COMPONENT;

SIGNAL d, e, f : STD_LOGIC;
  BEGIN
   u1 : h_adder PORT MAP(a=>ain, b=>bin, co=>d, so=>e);
   u2 : h_adder PORT MAP(a=>e, b=>cin, co=>f, so=>sum);
   u3 : or2a    PORT MAP(a=>d, b=>f, c=>cout);
 END ARCHITECTURE fd1;

④编译

编译成功。

4、查看 RTL 图

如下:

查看完成。

5、仿真

写入测试数据如下:

仿真结果:

符合设计要求,仿真成功。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐