实验一 组合逻辑电路的VHDL设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
组合逻辑电路的VHDL设计
学院及班级:
学号:
姓名:
完成时间:
(1)实验目的:
熟悉QuartusⅡ的VHDL文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。
(2)实验内容1:用VHDL语言设计2选1多路选择器。
提示:参考例3-1。
要求:首先利用QuartusⅡ完成2选1多路选择器的文本编辑输入和编译、仿真测试等步骤,给出时序仿真波形。选择目标器件EP1C3,建议选实验电路模式5,如附图1所示。用键1(PIO0,引脚号为1)控制s;a和b分别接clock0(引脚号为93)和clock2(引脚号为17);输出信号y接扬声器speaker(引脚号为129)。通过短路帽选择clock0接256Hz信号,clock2接8Hz信号。引脚锁定后进行编译、下载和硬件测试实验,通过键1控制s,可使扬声器输出不同音调。
(3)实验内容2:将此二选一多路选择器看成是一个元件mux21a,利用元件例
化语句描述图2所示电路,并将此文件放在同一目录中。
图2 双2选1多路选择器
要求:首先利用QuartusⅡ完成2选1多路选择器的文本编辑输入和编译、仿真测试等步骤,给出时序仿真波形。然后进行引脚锁定以及硬件下载测试。选择目标器件EP1C3,建议选实验电路模式5(附图1),用键1(PIO0,引脚号为1)控制s0;用键2(PIO1,引脚号为2)控制s1;a3、a2和a1分别接clock5(引脚号为16)、clock0(引脚号为93)和clock2(引脚号为17);输出信号outy仍接扬声器spker(引脚号为129)。通过短路帽选择clock0接256Hz信号,clock5接1024Hz,clock2接8Hz信号。通过选择键1、键2,控制s0、s1,可使扬声器输出不同音调。
(4)程序设计
程序示例1:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
entity mux21a is
port(a,b,s:in std_logic;
y:out std_logic);
end entity mux21a;
architecture one of mux21a is
begin
PROCESS(s,a,b)
BEGIN
CASE S IS
WHEN '0' => y <= a;
WHEN '1' => y <= b;
WHEN OTHERS =>NULL ;
END CASE;
END PROCESS;
end architecture one;
程序示例2:
library ieee;
use ieee.std_logic_1164.all;
entity muxk is
port(a1,a2,a3,s0,s1:in std_logic;
outy: out std_logic);
end entity muxk;
architecture one of muxk is
signal tmp: std_logic;
component mux21a
port(a,b,s: in std_logic;
y:out std_logic);
end component;
begin
u1: mux21a port map(a=>a2,b=>a3,s=>s0,y=>tmp);
u2: mux21a port map(a=>a1,b=>tmp,s=>s1,y=>outy);
end architecture one;
(5)实验过程
打开软件,点击新建建立一个VHDL FILE,将编写好的程序拷进去点击保存根据提示新建一个以实体名为名的工程并选择芯片,程序名也与实体名一致。编译前设置完成后点击START COMPILATION对程序进行编译检错,然后点击新建建立一个VECTOR WAVEFORM FILE,在EDIT下拉菜单里点END TIME设定仿真结束时间,在VIEW\UTILITY WINDOWS下拉菜单里点击NODE FINDER弹出窗口里点击LIST 列出所有端口。分别将端口移到WAVEFORM1.vwf窗口左边name下,然后分别编辑各输入端口的输入信号。然后以实体名保存,点击start simulation进行仿真检错。然后进行引脚锁定和下载:选择ASSIGNMENTS\ASSIGNMENT EDITOR命令,在CATEGORY列表中选择locations;双击To栏的《new》选择电路设计图中的端口,双击location栏的《new》选择外设引脚;储存引脚锁定信息并再编译一次。
选择Toos\Programmer命令,在Mode下拉列表中选择编程模式,并选中下载文件右侧的第一个小方框,单击左上角的Hardware Setup设置编程器。向FPGA 下载SOF文件前要选择打钩“PROGRAM/CONFIGURE”选项。然后单击下载标符START 按钮进行下载。下载完成后按要求进行硬件测试。
(6)仿真波形图
(7)实验分析与总结
1、实验一要注意好内部逻辑与时序,注意端口属性是输入还是输出等,仿真时间
可以适当延长(40-50ns),使观察效果明显,另外,在检验最后的结果是否与要求匹配时,可以按照时序仿真图来观察.
2、实验二的过程中,一度遇到编译报错的问题,后面经检验发现程序的内部架构不完整,顶层文件与子文件的调用关系不明朗,子函数中逻辑缺失,程序不完整,因此在之后的大型程序编写中,要注意先建好程序的内部联系,使逻辑清晰.各种程序调用关系要清楚,不能混淆。