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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

采用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 一位全减器仿真波形图

相关文档
最新文档