一位二进制全减器设计

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

实验报告

一位二进制全减器设计

一、实验目的

(1)掌握QuartusII的VHDL原理图设计和文本设计全过程;

(2)熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果。

二、实验内容与要求

(1)设计一个二进制全减器,用分层设计方法,顶层为全减器,底层为半减器和逻辑门组成;

(2)进行波形仿真,并分析仿真波形图;

(3)下载测试全减法器是否正确。

三、设计思路/原理图

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

图1 全减器f_suber电路图

四、实验程序(程序来源:_________________________)

library ieee; --半减器描述

use ieee.std_logic_1164.all;

entity h_suber is --定义半减器h_suber实体

port(a,b:in std_logic;

do,vo:out std_logic);

end entity h_suber;

architecture fs1 of h_suber is

signal abc:std_logic_vector (1 downto 0);

begin

abc <= a&b ;

process (abc)

begin

case abc 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';

when others => null;

end case;

end process;

end architecture fs1;

library ieee; --一位二进制全减器顶层设计描述

use ieee.std_logic_1164.all;

entity f_suber is --定义全减器f_suber实体

port (ain,bin,cin:in std_logic;

v,sub:out std_logic);

end entity f_suber;

architecture fs of f_suber is

component h_suber ---调用半减器声明语句

port (a,b:in std_logic;

do,vo:out std_logic);

end component;

component or2a --调用或逻辑门声明语句

port (m,n:in std_logic;

h:out std_logic);

end component;

signal e,f,g:std_logic; ---定义3个信号作为内部的连接线

begin

u1:h_suber port map(a=>ain,b=>bin,do=>e,vo=>f); ---例化语句

u2:h_suber port map(a=>e,b=>cin,do=>sub,vo=>g);

u3:or2a port map(m=>g,n=>f,h=>v);

end architecture fs;

五、实验步骤

1.利用quartusII建立工程

在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

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

七、硬件测试

使用的芯片是EP1K00QC208-3。ain、bin、cin分别连接引脚53(电平1)、54(电平2)、55(电平3),sub、v分别连接引脚167(LED1)、168(LED2);测试为:电平1、2、3分别为(低、低、低)、(低、低、高)、(低、高、低)、(低、高、高)、(高、低、低)、(高、低、高)、(高、高、高)、(高、高、高)对应的LED1、LED2分别为(灭、灭)、(亮、亮)、(亮、亮)、(灭、亮)、(亮、灭)、(灭、灭)、(灭、灭)、(亮、亮)。

八、实验小结

对全减器的设计是比较简单的,而且在对全减器编译、仿真和下载之前,我已对Quartus9.0进行了多次操作,已经熟练地掌握了利用QuartusII9.0建立工程和创建仿真等;通过此次试验,我可以向复杂的设计迈进,通过试验,一步一步地提高自己的设计能力、创新能力。

九、实验心得/实验体会

通过这个实验,掌握了利用QuartusII建立工程、创建仿真工程和编程下载;在第一次编译时,发现“or2a”没有定义,然后定义一下逻辑或门or2a,保存一下,重新编译通过;在第一次波形仿真后,改变输入波形和end time,保存,重新仿真,仿真后的波形没有变,之后才发现要改动Assignments下的setting-f_suber框中的Simulator Setting;在用原理图输入法设计时,底层用文本输入法创建半减器工程,顶层原理图连接之后,需要再在创建一个原理图工程,工程名是f_suber。

相关文档
最新文档