一位二进制全减器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。