logo资料库

组合逻辑和时序逻辑电路的设计.doc

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
EDA 实 验 报 告 实验名称:组合逻辑电路的 VHDL 设计和时序逻辑电路的设计 姓名: 学号: 班级:
实验一:组合逻辑电路的 VHDL 设计 一、实验目的。 熟悉 Quartus II 的 VHDL 设计流程全过程,学习简单的组合逻辑电路的设计,多层次 电路的设计仿真和硬件测试。 二、实验设备。 PC 机和 EDA 试验箱。 三、实验内容。 实验内容一:用 VHDL 语言设计 2 选 1 多路选择器。 实验原理: 实验原理图如上所示,2 选 1 多路选择器通过 s 使能端控制信号的选择,低电平的时候 选择输入 a;高电平的时候选择输入 b。 实验内容: 首先利用 quartusII 完成 2 选 1 多路选择器的文本编辑和编译,仿真测试等步骤,给出 时序仿真波形,选择目标器件 EP1C3,建议选实验模式 5,用键 1 控制 s,a,b 分别接 clock0 和 clock2;输出信号 y 接扬声器,通过短路帽选择 clock0 为 256Hz,clock2 为 8Hz,引脚 锁定之后,进行编译,下载 和硬件测试实验,通过键 1 去控制 s,可使扬声器发出不同的 音调。 实验步骤: a、创建工程。新建一个文件夹,输入源程序并进行相关的设置,存盘,将设计文本加入工 程之中,选择仿真器和综合器的类型,目标芯片,工具的设置等。 b、编译。首先进行相关项的选择和设置,选择 FPGA 芯片 EP1C3..选择配置期间的工作方式 等,完成这些相关项的选择和设置之后,开始进行全程编译,如果出现错误那么找到对应的 错误并修改,直到编译成功。 c、时序仿真。打开波形仿真编辑器,设置仿真时间,并存盘,注意不要随意改变文件的名 称,将端口信号的节点加入波形编辑器中,编辑输入波形,启动仿真,观察仿真结果。 d、引脚锁定和下载。根据是要要求分别锁定 a 为引脚 93,b 为引脚 17,y 为引脚 129,存 储好之后再次编译。 e、相关硬件的测试,并检测试验结果。当没有按键按下的时候,扬声器以某一特定的频率 发声(256HZ);当按键 1 按下的时候,扬声器以另外一种特定的频率发声(8HZ)。 实验程序及分析 1、程序设计。 2 选 1 多路选择器的程序如下: ENTITY mux21a IS
PORT(a,b,s: IN BIT; Y:OUT BIT); END ENTITY mux21a ARCHITECTURE one OF mux21a IS BEGIN Y<=a WHEN s=’0’ ELSE b; End ARCHITECTURE 2、程序分析。 该程序首先定义了 3 个输入端口 abs,并选择数据类型为 BIT,一个输出端口信号 y,也是 BIT 类,实现如下功能:当满足条件 s=‘0’,a 端口的信号传输给端口 y,否则将 b 输入的 信号传输给 y。 3、硬件测试,当没有按下键的时候,扬声器以一种特定的频率发声(256HZ),当按下键 1 的时候扬声器以另一种频率发声(8HZ)。 4、波形仿真。 仿真波形如下: 5、波形分析。 由波形可见,当 s 为低电平的时候,输出 y 跟随 a 的变化,而当 s 为高电平的时候,输出 y 跟随 b 的变化。 实验内容二:将上述 2 选 1 多路选择器堪称是一个元件 mux21a 利用元件例化语句描述一个 电路。 实验内容: 首先利用 quartusII 完成 2 选 1 多路选择器的文本输入和编译,仿真测试等步骤,给出时序 仿真波形,然后进行引脚锁定以及硬件下载测试 选择目标器件 EP1C3,建议选择电路模式 5, 用键 1 控制 s0,用键 2 控制 s1,a3,a2,a1 分别接 clock5,clock0,clock2,输出信号 outy 接扬声器,通过短路帽选择 clock0 为 256Hz,clock5 为 1024Hz,clock2 为 8Hz。通过
键 1,键 2,控制 s0,s1,可使扬声器输出不同音调。 实验程序及分析: 1、程序设计. 详细实验过程和上述实验过程相似,完整的实验程序如下: ENTITY mux21a IS PORT (a,b,s:IN BIT; y: OUT BIT); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN y<=a WHEN s='0' ELSE b; END ARCHITECTURE one; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY Vhdl1 IS PORT (a1,a2,a3,s0,s1:IN STD_LOGIC; outy:OUT STD_LOGIC); END ENTITY Vhdl1; ARCHITECTURE BHV OF Vhdl1 IS COMPONENT mux21a PORT (a,b,s:IN STD_LOGIC; y:OUT STD_LOGIC); END COMPONENT; SIGNAL tmp:STD_LOGIC; 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 BHV; 2、程序分析:当 s0=‘0’时,tmp 输出选择输入信号中的 a3,当 s0=‘1’时选择输入信号 a2,当 s1=‘0’时,选择输入信号 tmp,当 s1=‘1’时,选择输入信号 a1. 3、硬件测试:当没有键按下的时候,扬声器以一种特定的频率发声(1024Hz),当只按下键 1 的时候,扬声器改变一种频率发声(256Hz),当只按下键 2 的时候以特定的特定频率发声 (1024Hz),当同时按下键 1 和 2 的时候,扬声器以特定频率发声(8Hz)。 4、仿真波形:
5、波形分析: 由上述仿真波形可见,当 s0、s1 都为低电平的时候,输出 outy 跟随 a1 变化,当只有 s0 为低电平的时候,输出 outy 跟随 a3 变化,当只 s1 为低电平的时候,输出 outy 跟随 a2 变 化,当同时 s0,s1 都为低电平的时候,输出 outy 跟随 a3 变化。 实验二:时序电路的 VHDL 设计 实验内容一:用 VHDL 语言设计 D 边沿触发器 实验内容:首先利用 quartusII 完成 d 边沿触发器的文本编辑输入和编译,仿真测试等步骤, 给出时序仿真波形,然后进行引脚锁定和硬件测试。 实验原理: 实验原理图如上所示。通过 clk 的上升沿来控制 q 的输出,跟随输入信号 d 来改变。 实验程序及分析: 1、程序设计。 完整的程序如下: library ieee;
use ieee.std_logic_1164.all; entity dff1 is port(clk:in std_logic; d:in std_logic; q:out std_logic); end; architecture bhv of dff1 is signal q1:std_logic; begin process(clk,q1) begin if clk'event and clk='1' then q1<=d; end if; end process; q<=q1; end bhv; 2、程序分析:当 d 为‘1’的时候,clk 来一个脉冲,输出 q 就跟随 d 变成‘1’,而当 d 为 ‘0’的时候 clk 来一个脉冲,输出 q 就跟随 d 变成‘0’了。 3、硬件测试:当按下键 1 的时候,键 2 也按下了,那么在键 2 按下的瞬间,灯就开始亮起 来,当键 1 没有按下的时候,按下键 2,此时灯立即跟随按键 2 的按下而熄灭。 4、仿真波形: 5、波形分析:由以上波形图可以看出来,当 d 为高电平的时候,clk 有一个上升沿,输出 q 就跟随 d 变成高电平,而当 d 为低电平的时候 clk 有一个上升沿,输出 q 就跟随 d 变成低电 平了。 实验内容二:用 VHDL 语言设计 D 锁存器。
实验程序及分析: 1、程序设计。 完成的程序如下:library ieee; use ieee.std_logic_1164.all; entity dff1 is port(clk:in std_logic; d:in std_logic; q:out std_logic); end; architecture bhv of dff1 is signal q1:std_logic; begin process(clk,q1) begin if clk='1' then q1<=d; end if; end process; q<=q1; end bhv; 2、程序分析:有以上程序可以知道,当 clk 为高电平的时候,无论 d 怎么变,q 也跟随 d 一起变化;但是当 clk 为低电平的时候,无论 d 怎么变化,q 也不会有任何的变化。起到了 一个锁存的作用。 3、硬件测试:当按下键 2 的时候,无论怎么按键 1 等都会跟随按键的变化而变化,而当键 2 没有按下的时候,无论键 1 怎么按灯都不会亮。 4、仿真波形: 5、
6、波形分析:由以上波形图可见,当 clk 为高电平的时候,无论 d 怎么变,q 也跟随 d 一 起变化为高低电平;但是当 clk 为低电平的时候,无论 d 怎么变化,q 也不会有任何的波动。 6、比较分析实验内容一和实验内容二的仿真和实测结果,说明这两种电路的异同点。 通过实验波形的仿真很容易看出这两个电路的区别和联系。首先,当 d 为高电平的时候,对 于实验内容一,clk 只要有上升沿脉冲到来,q 即由原来的低电平变成高电平,而对于实验 内容二,只有 clk 为高电平的时候,d 的变化才会对输出信号 q 产生影响。其次,在 d 为低 电平的时候,对于实验内容一,只要 clk 来一个上升沿脉冲,q 即变化为低电平,而对于实 验内容二,clk 为低电平的时候,d 的变化不会对输出 q 产生影响。两个电路的相同点即外 部输入输出信号都是 q,d 和时钟信号 clk,电路的外部结构相同。 实验注意事项: 此次实验成功需要注意的地方有:首先,对器件的选择要和实验室的硬件相匹配为 EP1C3,不可以选错;其次,在时序仿真的时候,选择延时时间为 10us; 最后在建工程和仿真波形的时候,要注意文件的名称一定要一致,不然会报错,还有在硬件 测试的时候,一定要将跳线帽插在对应的频率处,才是正确的实验结果。 实验心得体会:通过本次实验对 VHDL 描述语言的语法又更进一步的认识和熟悉,从整体 上把握 VHDL 程序的基本结构和设计特点,为以后编辑大型器件锁定了厚实的基础。懂得 了如何用 VHDL 语言是去控制产生一些简单的组合、时序电路。多路选择器是典型的组合电 路,D 边沿触发器是典型的时序电路,在数电中已经有所了解,通过这次的 VHDL 的实验, 对其又有了进一步的认识,使用 VHDL 语言设计这两个电路,应该要达到一个很熟悉的水平, 以便最终达到应用的目的,通过此次实验,可知主要通过考察 VHDL 语言编译器件的能力, 因此对语言的表述一定要到位。 通过此次实验也对 EDA 实验软
分享到:
收藏