当前位置:文档之家› 采用VHDL层次化文件设计一个一位全减器

采用VHDL层次化文件设计一个一位全减器

采用VHDL层次化文件设计一个一位全减器
一、实训目的
1.巩固编译、仿真VHDL文件的方法。

2.掌握在Quatrus Ⅱ中使用自定义库和程序包的方法。

二、实训器材
计算机与Quartus Ⅱ工具软件。

三、实训指导
(一)实训原理
一位全减器的真值表如表3-1所示:
表3-1 一位全减器的真值表
(二)实训步骤
1.设计输入VHDL文件
(1)设计输入底层文件my_package.vhd。

(2)设计输入顶层文件fullsub_work.vhd。

以fullsub_work为工程文件夹,fullsub_work.vhd为顶层文件新建的一个工程项目,把my_package.vhd文件添加到工程中。

执行Project→Add/Remove Files in Project…把my_package.vhd文件添加到工程下。

VHDL代码如下:
my_package.vhd文件代码如下:
PACKAGE my_package IS
PROCEDURE halfsub (SIGNAL a,b:IN BIT; SIGNAL s,c:OUT BIT);
PROCEDURE orgate (SIGNAL a1,b1:IN BIT; SIGNAL o1:OUT BIT);
END my_package;
PACKAGE BODY my_package IS
PROCEDURE halfsub (SIGNAL a,b:IN BIT; SIGNAL s,c:OUT BIT) IS
BEGIN
s<=a XOR b AFTER 10 ns;
c<=(NOT a) AND b AFTER 10 ns;
END PROCEDURE halfsub;
PROCEDURE orgate (SIGNAL a1,b1:IN BIT; SIGNAL o1:OUT BIT) IS
BEGIN
o1<=a1 OR b1;
END PROCEDURE orgate;
END my_package;
fullsub_work.vhd文件代码如下:
USE WORK.my_package.ALL;
ENTITY fullsub_work IS
PORT(i1,i2,c_in:IN BIT;
fs,c_out:OUT BIT);
END fullsub_work;
ARCHITECTURE a OF fullsub_work IS
SIGNAL temp_s,temp_c1,temp_c2:BIT;
BEGIN
U0:halfsub(i1,i2,temp_s,temp_c1);
U1:halfsub(temp_s,c_in,fs,temp_c2);
U2:orgate(temp_c1,temp_c2,c_out);
END a;
2.编译顶层设计文件
把my_package.vhd文件放入fullsub_work文件夹中,直接编译顶层文件同时也就编译底层模块文件。

若有错误,则加以纠正,直到通过为止。

3.仿真顶层设计文件
最后,仿真顶层文件,若发现功能错误,应检查其原因,并加以纠正。

一位全减器的仿真图如图3-1所示:
图3-1 一位全减器仿真波形图。

相关主题