21游戏网
您的当前位置:首页实验一一位二进制全减器设计

实验一一位二进制全减器设计

来源:21游戏网


南昌大学实验报告

学生姓名: 刘志强 学 号: 6100409222 专业班级: 电子091班实验类型:验证 □综合 □设计 ■创新 □ 实验日期: 实验成绩:

实验一 一位二进制全减器设计
一、实验目的
1 掌握QuartusIIVHDL原理图设计和文本设计全过程;
2 熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果。

二、实验内容与要求
1)设计一个二进制全减器,用分层设计方法,顶层为全减器,底层为半减器和逻辑门组成;
2)进行波形仿真,并分析仿真波形图;
3)下载测试全减法器是否正确。

三、设计思路/原理图
一位全减器可以由两个半减器和一个或门连接而成,根据半减器真值表对半减器进行描述,再对或门的VHDL描述,而后根据原理图对全减器的VHDL描述。

1全减器f_suber电路图

四、实验程序(程序来源:教科书本)
libraryieee; --半减器描述
useieee.std_logic_11.all;
entityh_suber is --定义半减器h_suber实体
port(a,b:instd_logic;
do,vo:out std_logic);
endentity h_suber;
architecturefs1 of h_suber is
signalabc:std_logic_vector (1 downto 0);
begin
abc<= a&b ;
process(abc)
begin
caseabc is

when"00" => do<='0';vo<='0';
when"01" => do<='1';vo<='1';
when"10" => do<='1';vo<='0';
when"11" => do<='0';vo<='0';
whenothers => null;
endcase;
endprocess;
endarchitecture fs1;

libraryieee; --一位二进制全减器顶层设计描述
useieee.std_logic_11.all;
entityf_suber is --定义全减器f_suber实体
port(ain,bin,cin:in std_logic;
v,sub:out std_logic);
endentity f_suber;
architecturefs of f_suber is
componenth_suber ---调用半减器声明语句
port(a,b:in std_logic;
do,vo:out std_logic);
endcomponent;
componentor2a --调用或逻辑门声明语句
port(m,n:in std_logic;
h:out std_logic);
endcomponent;
signale,f,g:std_logic; ---定义3个信号作为内部的连接线begin
u1:h_suberport map(a=>ain,b=>bin,do=>e,vo=>f); ---例化语句u2:h_suberport map(a=>e,b=>cin,do=>sub,vo=>g);
u3:or2aport map(m=>g,n=>f,h=>v);
endarchitecture fs;

五、实验步骤
1.利用QuartusII 7.2 建立工程

file中打开【】→【】→ 在【】中选

择存放的目录→【f_suber要与顶层文件中entity f_suber 相同→点击next→点击next→选择芯片→next完成;

再在file 下面点【

】→【

】→ 点击ok→ 编写程序→ 编

译并保存在f_suber 文件中(改动程序后,再保存,再编译)→ 管脚【】→

】→ 而后对芯片设置,即打开device→点【

】→点

】与【

】→选如【

】与

】→选芯片→确定ok

重新编译→点下载,后选【

】硬件有“JTAG

】”和“ASP

】手动添加以扩展名为.pof 的文件【】”两个接口其一(要看硬



件接口),选中【

】” →添加【

】中的驱动程序→

】→点【】开始下载。

注:原理图输入法工程建立与文本输入法建立相似,而且原理图形与以前学习的Mutisim

同,这里不再多说。

2.quartusII创建仿真工程

在已有的工程中,在file 下面点【】→【OK→在任务栏

】中双击,来添加管脚→【】→【OK 然后设置一下

输入引脚波形→保存一下→仿真【

】→必要时还可以设置一下【

中的【 】改时间【】→再重新仿真一下。

六、仿真波形分析

下图为实验所得的波形图:

对实验所得的波形图作如上的标记,可以得到如下仿真信息表:

Value

A

B

C

D

V

a

0

0

0

0

0

b

0

0

1

1

1

c

0

1

0

1

1

d

0

1

1

0

1

e

1

0

0

1

0

f

1

0

1

0

0

g

1

1

0

0

0

h

1

1

1

1

1

差值D的结果为A—B—C的值,与理论值一样借位输出V也与理论值一致;从波形图可以

看出输出波形有一定的延时和毛刺,是因为经过元器件需要时间和冒险现象存在。

七、硬件测试

使用的芯片是EP1K00QC208-3ainbincin分别连接引脚53(电平1)、54(电平2)、

55(电平3),subv分别连接引脚167LED1)、168LED2);测试为:电平123分别

为(低、低、低)、(低、低、高)、(低、高、低)、(低、高、高)、(高、低、低)、(高、低、

高)、(高、高、高)、(高、高、高)对应的LED1LED2分别为(灭、灭)、(亮、亮)、(亮、

亮)、(灭、亮)、(亮、灭)、(灭、灭)、(灭、灭)、(亮、亮)。

八、实验小结
很幸运,我们这届学生遇上了全新的实验设备,可以放心做实验了。首先,老师教我们如何破解QuartusII 7.2,接着就开始设计全减器。

对全减器的设计是比较简单的,而且在对全减器编译、仿真和下载之前,我已对QuartusII 7.2 进行了多次操作,已经熟练地掌握了利用QuartusII 7.2建立工程和创建仿真等;通过此次试验,我可以向复杂的设计迈进,通过试验,一步一步地提高自己的设计能力、创新能力。通过这个实验,掌握了利用QuartusII建立工程、创建仿真工程和编程下载;在第一次编译时,发现“or2a”没有定义,然后定义一下逻辑或门or2a,保存一下,重新编译 time,保存,重新仿真,仿真后的波形没通过;在第一次波形仿真后,改变输入波形和end
有变,之后才发现要改动Assignments下的setting-f_suber框中的SimulatorSetting;在用原理图输入法设计时,底层用文本输入法创建半减器工程,顶层原理图连接之后,需要再在创建一个原理图工程,工程名是f_suber

显示全文