VHDL三八译码器和多路复用器的仿真.docx
《VHDL三八译码器和多路复用器的仿真.docx》由会员分享,可在线阅读,更多相关《VHDL三八译码器和多路复用器的仿真.docx(10页珍藏版)》请在冰豆网上搜索。
VHDL三八译码器和多路复用器的仿真
数字电路课程设计实验报告
实验名称:
实验二(译码器和多路复用器)
实验日期:
2014年4月21日
小组序号:
5号
实验人员姓名:
谭文(组长)学号:
2012059020014
阿卜杜凯尤木(组员)学号:
2012059020001
邓广源(组员)学号:
2012059020002
杨仕杰(组员)学号:
2012059020016
辅导老师:
周鹰
一:
实验内容
该试验共包含两部分,第一部分为译码器喷水阀控制器设计,第二部分为多路复用器计算机数据总线设计。
实验过程分为两部分第一部分设计指导;第二部分独立设计。
第一部分:
喷水阀控制器设计
自动草坪洒水系统控制水阀的开与关。
自动洒水系统必须支持几个不同的区域,如后院,左边右边院子等。
一次只打开一个区域的阀门开关以保证在喷淋区有足够的水压。
在设计中设计一个支持多达8个区域的喷水系统。
请注意,一个典型的自动喷水系统由一个小微控制器(单片机)控制,它设定一个程序只在一天的特定时间特定时段打开或关闭某个阀,该系统也提供了一个禁用所有阀门的装置。
第二部分:
电脑数据总线设计
在这项任务中,将在数据总线单总线中设计一个4×1多路复用器将控制数据流,并研究其基本性质。
该技术可以实现,例如,部分串行通信与多个外围设备只使用一个微控制器输出引脚。
二、分析与设计
实验一:
通过设计一个三八译码器来实现题目要求(通过原理图和代码编写两种输入方式)
假设一个处理器仅有四个输出引脚来,那它可以(用“使能”开关)控制3x8译码器工作。
图2.自动草坪洒水系统连接
单片机有一个引脚说明系统是否有效(启用)和其他三个引脚表明二进制数的一个阀门被打开。
该系统是一个组合逻辑电路,4个输入:
E(使能端)和A,B,C(有效区域内的的二进制值),和8个输出d7,……,d0(阀控制值)。
实验二:
设计一个多路复用器的简单模型研究基本性质。
(通过原理图和代码编写两种输入方式)
三、实验过程记录
实验一:
38译码器的设计
(1)采用原理图方法进行仿真
1.1由实验开始时的分析可以初步得到3x8译码器的原理图,并在XilinxISE上进行仿真
1.2在初步对仿真电路进行检查后,确认没有问题,进行仿真。
1.3在确定电路没有问题后,进行VHDLTESTBENCH程序编写
这里定义了一个输入激励,从而检测编写的程序是否符合我们的要求
1.4进行仿真,观察仿真结果。
实现题目要求。
(2)采用VHDL代码输入方式,在以后的大型设计中,原理图已经不能满足需求。
所以大都采用编写代码的设计方法.
2.1创建工程,添加VHDLmodule文件,根据设计需求添加端口定义:
代码编写完毕无误后,进行综合,剩余步骤与前面原理图输入方式一样,不再叙述。
实验二:
多路复用器的设计
(1)采用原理图方法进行仿真
1.1设计多路复用器的原理图
1.2综合编译无误后,进行行为仿真。
1.3添加测试脚本,进行仿真。
1.4进行仿真,观察波形
达到设计目的。
(2)采用VHDL代码输入方式,贴出代码如下:
1.1
1.2综合无误,添加测试脚本,进行仿真,与前面原理图输入一样。
四、实验结果讨论
在仿真的过程中,由于采用了VHDL的输入方式,在编写过程中出现了不少语法错误的现象,在通过系统自检错误之后,我们准确的找到了错误的来源,在翻看VHDL语言的相关书籍之后,我们改正了这些错误,有些不明白的细节问题也请教老师或者同学而解决了。
这对于我们刚刚接触VHDL的人来说,算是一个很好的开端,以便我们更深入的了解VHDL。
问题一:
原理图输入和VHDL输入各有什么特点
原理图输入与VHDL输入。
原理图输入不同于VHDL输入方式,不需要了解复杂的语法知识,对于简单的逻辑电路而言,原理图输入显得简单,并且容易检查出错误来;而对于相对复杂的逻辑电路,可能单纯的原理图输入会显得复杂且繁琐,连线的密集也使布线与纠错难度增加,而VHDL不会出现这种情况。
且在较为复杂的工程应用当中,简单的原理图输入已经不能满足实际的需求,就必须通过VHDL输入实现。
总结起来,VHDL共有8种特点
(1)数据类型丰富,既支持预定义数据类型,又支持用户自定义数据类型;VHDL是强类型语言,设计安全性好。
(2)既有一般语言的顺序语句,又表现硬件并行行为的并发语句
(3)支持从系统级到门级电路的描述,同时也支持多层次的混合描述;描述形式可以是结构描述,或数据流描述
(4)既支持自底而上的设计,也支持自顶向下的设计;既支持模块化设计,也支持层次化设计;支持过程与函数
(5)既支持传输延时,也支持惯性延时
(6)VHDL语言的设计实体、包集合和设计库,为设计人员重复利用自己或他人的设计提供了技术手段
(7)VHDL的类属提供了向设计实体传送环境信息的能力
(8)VHDL可以在多种EDA工具环境下运行,通用性及兼容性好
问题二:
仿真信号的输入如何确定才能证明设计的正确与否
在设计之初,对于给定输入的预期输出结果,写出了相应的真值表,在设计完成进行仿真的过程中,可以根据仿真的结果与预期相比较,则可以确定设计的正确性。
在给测试脚本添加激励的时候,激励应该把所有的输入情况都遍历一边,这样才能完整的分析电路的完整性。
问题三:
仿真中有静态冒险吗?
译码输入存在风险吗?
在仿真的时候并没有发现静态冒险,译码器输入存在风险,但从一个数切换到另一个数的时候,冒险就有可能发生。
问题四:
如何在总线设计中体现三态结构
三态电路是一种重要的总线接口电路。
三态,是指它的输出既可以是一般二值逻辑电路的正常的“0”状态和“1”状态,又可以保持特有的高阻抗状态,第三种状态——高阻状态的门电路。
处于高阻抗状态时,其输出相当于断开状态,没有任何逻辑控制功能。
三态电路的输出逻辑状态的控制,是通过一个输入引脚实现的。
当G为低电平输入时,三态电路呈现正常的“0”或“1”的输出;当G为高电平输入时,三态电路给出高阻态输出。
所以,通过设计一个三态门端口,就轻松的在总线上体现了三态结构,用VHDL比较容易的实现了。