四选一多路选择器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四选一选择器的VHDL程序实现及仿真

一、四选一选择器的基本功能描述

选择器常用于信号的切换,四选一选择器常用于信号的切换,四选一选择器可以用于4路信号的切换。四选一选择器有四个输入端input(0)~ input(3),两个信号选择端a和b及一个信号输出端y。当a、b输入不同的选择信号时,就可以使input(0)~ input(3)中某一个相应的输入信号与输出y端接通。例如,当a=b=“0”时,input (0)就与y接通。

四选一电路的逻辑功能真值表如下图所示:

我们可以根据上面的逻辑真值表,设计四选一电路系统的VHDL 源程序,并进行程序的编译和仿真。

二、编写VHDL源程序

下面为四选一选择器的VHDL源程序:

四选一选择器VHDL源程序如下:

LIBRARY IEEE; ***库的调用***

USE IEEE.STD_LOGIC_1164.ALL; ***库的调用***

ENTITY mux4 IS ***实体定义*** PORT (input:IN STD_LOGIC_VECTOR(3 DOWNTO 0); ***输入管脚的定义***

a,b:IN STD_LOGIC; ***输入管脚的定义***

y:OUT STD_LOGIC ); ***输出管脚的定义***

END mux4;

ARCHITECTURE rtl OF mux4 IS ***结构的定义***

SIGNAL sel:STD_LOGIC_VECTOR (1 DOWNTO 0); ***信号定义***

BEGIN

sel<=b&a;

PROCESS (input,sel) ***进程的定义***

BEGIN

IF(sel="00") THEN

y<=input(0);

ELSIF(sel<="01") THEN

y<=input(1);

ELSIF(sel<="10") THEN

y<=input(2);

ELSE

y<=input(3);

END IF;

END PROCESS;

END rtl;

三、文本文件的编译及仿真全过程

在编辑器中输入并保存了以上四选一选择器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件,如*.cnf,*.rpt,*.snf,*.pof 等。

具体编译过程如下:

1、输入完以上全加器的源程序后,进入File/Project子菜单,选择Name 项,在工程名(Project name)对话框中输入mux4.vhd,按OK按钮;再在相同的子菜单中选择Set Project to Current File项;

2、进入MAX+plus Ⅱ菜单,在出现的子菜单中选择Compiler选项,

将弹出编译对话框;

3、确定源程序的版本:点击主菜单Interfaces选项,在下级子菜单中选择VHDL Netlist Reader Settings项,弹出对应的对话框,在该对话框中选择所编VHDL源程序对应的版本号,按OK按钮;

4、完成以上步骤后,按编译对话框中的Start按钮,编译器即可启动。

第一次运行时弹出了错误对话框,后经调试发现是软件本身没有安装完全,导致库文件缺失。这个问题解决后,又安装了注册文件qiilicense.dat,最后经几次更改之后程序编译通过。

在源程序经修改后没有错误之后,编译就顺利通过了,显示编译成功对话框。这样整个编译过程就结束了。

为了验证所编VHDL程序的功能是否满足设计要求,下面对编译通过的程序进行仿真。仿真主要有三个步骤:生成仿真波形文件、仿真和定时分析。

1、生成仿真波形文件

a、设置当前工程文件名:本程序当前仿真的工程文件名为

mux4.vhd;

b、进入MAX+plus Ⅱ菜单,在出现的子菜单中选择Waveform Editor选项,将弹出波形编辑窗口。点击File/Save菜单,在弹出的对话框中输入波形文件名为mux4.scf,按OK按钮;

c、确定信号持续时间:点击File/End Time选项,在弹出的对话框中输入信号持续时间为1μs,按OK按钮;

d、信号波形编辑:四选一选择器的输入信号有a、b、input(0)

~ input(3),输出信号有y 。确定四个输入信号的波形;因为输出信号是要仿真的量,所以信号的初始值设置为高阻态(即Z)。设置后的信号波形如下图所示:

2、仿真

仿真波形文件生成以后就可以对输出量进行仿真了。

a、进入MAX+plus Ⅱ菜单,在出现的子菜单中选择Simulator 选项,将弹出仿真对话框,在End Time框中设置仿真结束时间,仿真结束时间应小于或等于波形编辑持续时间,本系统中也设置为1μs;

b、点击Start按钮,仿真即开始,仿真结束后会弹出一个对话框,显示仿真成功信息,再点击Open SCF按钮就可以显示仿真结果。

本系统的最后仿真结果如下图所示:

从y输出信号和对应的输入input(0)~ input(3)接通的仿真结果中我们可以看出该结果与系统所要实现的功能表完全吻合,这说明所编写的VHDL源程序正确。

3、定时分析

仿真结果从波形上来看,很难给出定量的信号延迟关系,这时可以用定时分析来直观地进行显示。

进入MAX+plus Ⅱ菜单,在出现的子菜单中选择Timing Analyzer选项,将弹出定时分析对话框,点击Start按钮,定时分析器即被启动。定时分析结束后会弹出一个结束提示框,点击“确定”按钮即可返回定时分析对话框。(图表略。)

可以看出信号输入后并不是马上有信号输出,而是经过了一定的延迟,本系统的延迟时间为6.0ns。

经过以上步骤后,软件设计部分基本完成。

四、本课程学习的一点心得

相关文档
最新文档