(4)管脚分配(建议使用16个数据开关(SW1——SW16)观察,对应实验箱:输入P103、P104、P111、P112、P113…P128,输出可用发光二极管P161(D4), P162(D5), P163,P164(D6), P166(D7), P167,P168,P169, P170, P172, P173, P174,P175,P176,P177,P179。)。
(5)后编译,并进行下载。 (6)仿真并记录仿真波形。 (7)观察并记录实验结果。
图2-2 四位全加器
五、用VHDL设计一位半加器,创建缺省模块,再用原件例化方式进行一位全加器的设计,
最后设计为4位全加器。
六 .实验报告
1.总结模块化电路设计的方法。 2.总结quartus Ⅱ进行电路设计的实质。 3.总结用quartus Ⅱ进行电路设计的一般步骤。
实验三 基本组合逻辑电路设计
一 实验目的
1掌握VHDL语言的基本结构及设计的输入方法。 2掌握VHDL语言的组合电路设计方法。 二 几种常用的组合逻辑电路
(一)8-3优先编码器(参考P78例3-32) 实验原理
常用的编码器有:4-2编码器、编码器、16-4编码器,下面我们用一个8-3编码器的设计来介绍编码器的设计方法。
8-3编码器如图3所示,其真值表如表3。
A BDOUT0 编C
D 码DOUT1 E 器F DOUT2 G H EN 图3-1 8-3编码器
表3-1 8-3优先编码器真值表
输入 0 1 1 1 1 1 1 1 1 X X X X X X X X 1 X X X X X X X 0 1 X X X X X X 0 0 1 X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 X X X X 0 1 X X X 0 0 1 X X 0 0 0 0 0 0 1 X 0 1 Z 0 1 0 1 0 1 0 1 输出 Z 0 0 1 1 0 0 1 1 Z 0 0 0 0 1 1 1 1 EN A B C D E F G H DOUT0 DOUT1 DOUT2 实验步骤:
1编程实现设一个8-3优先编码器(可用if…elseif语句或条件信号赋值语句)。 2 将编辑好的电路进行编译和仿真。
3输入信号接实验箱的拨码开关,输出信号接发光二极管。改变拨码开关的状态,观察实验结果。
(二)多路数据选择器
实验原理
在VHDL语言中描述一个8选一的多路选择器的方法有多种,例如:在一个进程中使if-then-else语句;在一个进程中使用case语句;使用with select构造或使用结构VHDL。推
荐进程中使用case语句。但无论使用哪一种描述方法,综合得到的结果是相同的。8选1多路选择器结构图如图3-2所示。(可参考教材P42-44例1-3)
图3-2 8选1多路选择器
实验内容:设计并实现一个8选1多路数据选择器(可用case语句、条件信号赋值语句、选择信号赋值语句)。
实验步骤:
1 编程实现设一个8选1多路数据选择器。 2 将编辑好的电路进行编译和仿真。
3 输入信号接实验箱的拨码开关,输出信号接发光二极管。改变拨码开关的状态,观察实验结果。
(三)七人表决器 实验原理:
使用7 个电平开关作为表决器的7 个输入变量,输入为电平“1”时表示表决者“赞同”,输入为电平“0”时表示表决者“不赞同”。当表决器的7 个输入变量中有不少于4 个输入变量输入“1”,那么表决结果输出逻辑高电平,表示表决“通过”,否则,输出逻辑低电平,表示表决“不通过”。七人表决器的可选设计方案非常多,可以采用使用全加器的组合逻辑。使用VHDL 进行设计的时候,可以选择行为级描述、寄存器级描述,结构描述等方法。当采用行为级描述的时候,采用一个变量记载选举通过的总人数。当这个变量的数值大于等于4 时,表决通过,绿灯亮;否则表决不通过,黄灯亮。因此,设计时,需要检查每一个输入的电平,并且将逻辑高电平的输入数目进行相加,并且进行判断,从而决定表决是否通过。
实验内容
1.使用VHDL 实现上述描述。 2.下载并且验证结果。 三 实验报告:
1.简要说明实验步骤。
2.写出实验用的VHDL源程序。
3.记录仿真结果(波形),说明输出延时情况。
4. 记录可编程器件与拨码开关和发光二极管的连接情况。 5.记录实验结果,并分析其结果的正确性。
实验四 基本时序逻辑电路的VHDL模型
一 、 实验目的
1掌握简单的VHDL程序设计。
2 掌握VHDL语言对基本时序逻辑电路的建模。
二、实验内容
分别设计并实现锁存器、触发器的VHDL模型。 (一) 寄存(锁存)器 1 实验原理
寄存器用于寄存一组二值代码,广泛用于各类数字系统。因为一个触发器能储存1位二值代码,所以用N个触发器组成的寄存器能储存一组N位的二值代码。 2 实验内容:
实现同步锁存器(同步锁存器指复位和加载功能全部与时钟同步,复位端的优先级最高。在数字系统设计时,采用完全同步的锁存器,可以避免时序错误。)
附:一个8位寄存器的VHDL描述。 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY REG IS
PORT(D:IN STD_LOGIC_VECTOR(0 TO 7); CLK:IN STD_LOGIC;
Q:OUT STD_LOGIC_VECTOR(0 TO 7)); END REG;
ARCHITECTURE ART OF REG IS BEGIN
PROCESS(CLK) BEGIN
IF(CLK'EVENT AND CLK=?1?)THEN Q<=D; END IF;
END PROCESS; END ART;
(二)触发器
实验内容: 1、D触发器
1)、带异步置位的D触发器(当时钟信号或置位信号有跳变时激活进程。如果置位信
号有效(高电平),D触发器被置位,输出信号高电平,如果置位信号无效,此时时钟信号出现上升沿,D触发器输出信号变为输入信号);
2)、带异步复位和置位的D触发器(当时钟信号、复位信号或置位信号有跳变时激活进程。如果复位信号有效(高电平),D触发器被复位,输出信号低电平;如果复位信号无效置,而置位信号有效(高电平),D触发器被置位,输出信号高电平,如果复位信号和置位信号都无效,此时时钟信号出现上升沿,D触发器输出信号变为输入信号)。
附:最简单的D触发器,没有复位和职位信号。 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY DCFQ IS
PORT(D,CLK:IN STD_LOGIC; Q:OUT STD_LOGIC); END DCFQ;
ARCHITECTURE ART OF DCFQ IS BEGIN
PROCESS(CLK) BEGIN
IF (CLK'EVENT AND CLK=‘1’)THEN -- 时钟上升沿触发 Q<=D; END IF;
END PROCESS; END ART;
上述触发器为最简单的D触发器,没有复位和职位信号。根据上例写一个
2、JK触发器
从真值表可以看出,PRN=0 时,触发器置数,Q=?1?;CLRN=0 时,触发器清零,Q=?0?;当PRN=CLRN=J=K=?1?时,在CLK 上升沿的时候,触发器翻转。 3)RS触发器 四、实验报告
1、简要说明实验步骤。
2、写出实验用的VHDL源程序。
3、记录仿真结果(波形),说明输出延时情况。 4、记录实验结果,并分析其结果的正确性。
5、说明实验中遇到的问题及解决方法,写出实验心得体会。