实验一:一位二进制全减器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌大学实验报告
学生姓名:刘志强学号: 6100409222 专业班级:电子091班
实验类型:验证□综合□设计■创新□实验日期:实验成绩:
实验一一位二进制全减器设计
一、实验目的
(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. 利用Quartus II 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-3。ain、bin、cin分别连接引脚53(电平1)、54(电平2)、55(电平3),sub、v分别连接引脚167(LED1)、168(LED2);测试为:电平1、2、3分别为(低、低、低)、(低、低、高)、(低、高、低)、(低、高、高)、(高、低、低)、(高、低、高)、(高、高、高)、(高、高、高)对应的LED1、LED2分别为(灭、灭)、(亮、亮)、(亮、亮)、(灭、亮)、(亮、灭)、(灭、灭)、(灭、灭)、(亮、亮)。