一、实验目的

熟悉QuartusⅡ的VHDL文本设计过程,学习简单组合逻辑电路的设计、仿真和测试方法。

二、实验内容

1. 基本命题

完成2选1多路选择器的文本编辑输入(mux21a.vhd)和仿真测试等步骤。最后在实验系统上进行硬件测试,验证本项设计的功能。

 

2. 扩展命题

将设计的2选1多路选择器看成是一个元件mux21a,利用元件例化语句设计能够满足图3-1所示仿真波形的逻辑功能的双2选1多路选择器。

图3-1 仿真波形

三、实验仪器与器材

计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套。

四、实验

将实验原理、设计过程、仿真步骤、仿真波形和分析结果、硬件测试实验结果写进实验报告。

21多路选择器设计

实验原理

由数电知识可知,2选1多路选择器由2个数据输入口(IN0,IN1),1个数据选择端(S1),一个输出口(COUTY)构成。本程序通过判断数据选择端(S1)的取值,将对应的数据输入口(IN0或IN1)输出。

② 程序设计

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY mux21a IS

    PORT (   IN0,IN1,S1:in std_logic;

                      COUTY : OUT STD_LOGIC);

END mux21a;

ARCHITECTURE behav OF mux21a IS

BEGIN

       COUTY<=IN0 when S1='' ELSE IN1;

END behav;

③ mux21a仿真波形图

为了使仿真结果更为直观,我们将IN0设为高电平,IN1设为低电平。

图1 mux21a仿真波形图

由图1可知,我们可知当S1处于高电平时,COUNT输出IN1;反之,输出IN0.所以所设计的实验能够满足要求。

21多路选择器

实验原理

本实验中直接利用上题的mux21a。由上题可知,mux21a由2个数据输入口(IN0,IN1),1个数据选择端(S1),一个输出口(COUTY)构成。设有两个mux21a,分别为U1和U2。为了充分利用U1和U2的数据选择端,我们将U1的输出口(COUNT)接到U2的输入口IN0,这样U2通过自身的选择端(S1)就可以选择U1的输出或则自己IN0的输入数据,实现2选1选择器到双2选1多路选择器的扩展。(如图2所示)

图2 双二选一多路选择器

② 程序设计

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY dmux21a IS

    PORT (   IN0,IN1,IN2,S0,S1:in STD_LOGIC;

                      COUTY : OUT STD_LOGIC);

END dmux21a;

ARCHITECTURE BHV OF dmux21a IS

 COMPONENT MUX21A

              PORT(IN0,IN1,S1:IN STD_LOGIC;

                            COUTY :OUT STD_LOGIC);

   END COMPONENT;

SIGNAL tmp : STD_LOGIC;

BEGIN

              u1 : MUX21A PORT MAP(IN0, IN1, S0, tmp);   

              u2 : MUX21A PORT MAP(IN2, tmp, S1, COUTY);

END BHV;

③ dmux21a 仿真波形图

                              图3dmux21a仿真波形图

波形图预测:当S1=0时输出IN2的波形;当S1=1,S0=1,输出IN1的波形;当S1=1,S0=0,输出IN0的波形。

由波形图可知,方针结果与预测结果一致。

 

(2)进行本实验引脚锁定时,建议选择实验模式5(No.5),用键1(PIO0)控制端s0;用键2(PIO1)控制端s1;a3、a2、a1分别接clock5、clock0和clock2;输出信号y接扬声器spkert。通过短路帽选择clock0接256Hz信号,clock5接1024kHz信号,clock2接8kHz信号。最后进行编辑、下载和硬件测试实验(通过选择键1、键2、控制s0、s1,可使扬声器输出不同音调)。

表1-1  dmux21a在GWAC6板上目标芯片EP1C6Q240C8的引脚锁定信息

端口名称

端口符号

GWAC6板输入输出元件

GWAC6板接口

目标器件引脚

备注

控制端s0

s0

键1

PIO0

233

模式No.5

控制端s1

S1

键2

PIO1

234

输入信号3

IN2

clock5

clock5

152

输入信号2

IN1

Clock0

Clock0

153

输入信号1

IN0

Clock2

Clock2

28

扬声器

y

扬声器

SPEAKER

174

如表1所示完成元件dmux21a与实验板引脚的绑定。如图4所示

图4 dmux21a与实验板引脚的绑定

五、实验思考题

比较图形编辑输入与文本编辑输入的主要差别,谈谈例化语句的作用及应用时应注意的问题。

1、比较图形编辑输入与文本编辑输入的主要差别

使用图形编辑法的话,我们需要对逻辑运算与硬件结构对应起来,也就是要懂得将逻辑运算转化成硬件电路,这需要有较为扎实的硬件功底。使用文本编辑输入的话,我们只需要懂得用VHDL表达逻辑运算,而不必关心硬件电路的组成,这可以减轻很多硬件设计方面的功夫(接线,选用元器件等)。

2、例化语句的作用及应用时应注意的问题

1)        例化语句的作用是:引入另一个已经设计好的组件。

2)        应用时应注意的问题:

① 要记得将原先已经设计好的原件放在工程底下。对于本体来说是mux21a。

② 要将引入的元件与顶级元件的引脚一一匹配,有需要的话,使用信号(SINGAL)进行消息的传递。

实验三 组合逻辑电路的VHDL设计的更多相关文章

  1. 实验四 时序逻辑电路的VHDL设计

    一.实验目的 熟悉QuartusⅡ的VHDL文本设计过程,学习简单时序逻辑电路的设计.仿真和测试方法. 二.实验 1. 基本命题 用VHDL文本设计触发器,触发器的类型可任选一种.给出程序设计.仿真分 ...

  2. 实验五 含有控制信号的计数器VHDL设计

    一.实验目的 学习计数器的设计.仿真和硬件测试,进一步熟悉VHDL设计技术. 二.实验仪器与器材 计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套. 三.实验 1. 基本命题 在 ...

  3. 【VHDL】组合逻辑电路和时序逻辑电路的区别

    简单的说,组合电路,没有时钟:时序电路,有时钟. ↓ 也就是说,组合逻辑电路没有记忆功能,而时序电路具有记忆功能. ↓ 在VHDL语言中,不完整条件语句对他们二者的影响分别是什么?组合逻辑中可能生成锁 ...

  4. 20145206《Java程序设计》实验三实验报告

    20145206<Java程序设计>实验三实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运 ...

  5. Verilog-FPGA硬件电路设计之一——if语句优先级(always块中的阻塞赋值生成的组合逻辑电路是按照顺利执行的)

    出处:http://bbs.ednchina.com/BLOG_ARTICLE_3013262.HTM 综合软件:Quartus II 一.有优先级的if语句 if..else if.. else i ...

  6. FPGA学习笔记(五)—— 组合逻辑电路功能的描述

    设计方法:    分析真值表规律        两种描述方式: 方式1:用assign描述,用阻塞赋值= 方式2:用always@(*)描述,用非阻塞赋值<=      选择功能的三种描述方式: ...

  7. 2017-2018-2 20155228 《网络对抗技术》 实验三:MAL_免杀原理与实践

    2017-2018-2 20155228 <网络对抗技术> 实验三:MAL_免杀原理与实践 实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasi ...

  8. 20155324 《Java程序设计》实验三 敏捷开发与XP实践

    20155324 <Java程序设计>实验三 敏捷开发与XP实践 实验内容 XP基础 1.XP核心实践 2.相关工具 实验步骤 敏捷开发与XP 1.敏捷开发(Agile Developme ...

  9. 2017-2018-2 20165306 实验三《敏捷开发与XP实践》实验报告

    实验三<敏捷开发与XP实践>实验报告 实验报告封面 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一) 敏捷开发与XP实践-1 实验要求: 参考 代码规范 安装alibaba 插 ...

随机推荐

  1. 64 位 Ubuntu 下 android adb 不可用解决方法

    解决方案: 安装ia32-libs 在终端执行 sudo apt-get install ia32-libs 其间会提示所依赖的某些包不存在,直接 sudo apt-get 安装即可.

  2. asp.net TreeView控件绑定数据库显示信息

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  3. ADB理解

    在做手机测试时候,经常用到的命令就是adb.如adb shell,adb devices,adb logcat等等 那么什么是adb,怎么用呢? 一.adb adb的全称为Android Debug ...

  4. (转)SqlBulkCopy批量复制数据

    在.Net1.1中无论是对于批量插入整个DataTable中的所有数据到数据库中,还是进行不同数据源之间的迁移,都不是很方便.而 在.Net2.0中,SQLClient命名空间下增加了几个新类帮助我们 ...

  5. select与poll函数介绍

    select与poll函数介绍 在所有依从POSIX的平台上,select函数使我们可以执行I/O多路转接.传向select的参数告诉内核: 1)我们所关心的描述符 2)对于每个描述符我们所关心的状态 ...

  6. Daily Scrum 12.4

    今日完成任务: 对数据库完成了整理,以下是整理的内容: # 表 改动 原因 1 Answer 保留credit列,作为投票数 建议改名为vote,同意?   2 Answer qid.uid设置为外码 ...

  7. c# 框架学习(nop )总结-------删除功能

    删除直接使用(框架中以封装好的) 控制中写就可以啦 public ActionResult Delete(int id) { //权限位置(若需要的话)var individual = _indivi ...

  8. ios调用第三方程序打开文件,以及第三方调用自己的APP打开文件

    1.自己的APP调用第三方打开文件 主要是使用  UIDocumentInteractionController  类   并实现 UIDocumentInteractionControllerDel ...

  9. CityEngine中动态水的实现

    地址:http://pan.baidu.com/share/link?shareid=3871210059&uk=3492170216 密码:am5b 在今年Esri全球用户大会和Esri中国 ...

  10. 【转】python fabric实现远程操作和部署

    fabric title是开发,但是同时要干开发测试还有运维的活……为毛 task*3 不是 salary * 3 (o(╯□╰)o) 近期接手越来越多的东西,发布和运维的工作相当机械,加上频率还蛮高 ...