欢迎来到我的范文网!

设计一个1位的二选一多路选择器,使用门级描述实现,使用逻辑表达式实现,使用if条件

教学设计 时间:2020-06-14

【www.myl5520.com--教学设计】

四选一多路选择器设计实验
篇一:设计一个1位的二选一多路选择器,使用门级描述实现,使用逻辑表达式实现,使用if条件

EDA试验实验二 四选一多路选择器设计实验

一、实验目的

进一步熟悉QuartusII的VHDL文本设计流程、组合电路的设计仿真和测试。 二、实验内容

实验内容一:根据以下流程,利用QuartusII完成四选一多路选择器的文本编辑输入和仿真测试等步骤,给出仿真波形。 创建工程。 新建文件夹。

输入正确的源程序,保存,编译。 波形仿真,分配引脚,编译。 下载到试验箱,进行功能验证。 (原理图及仿真的波形界面在备注)

实验内容二:在试验系统上硬件测试,验证此设计的功能,对于引脚锁定以及硬件下载测试。输出信号接蜂鸣器。最后进行编译、下载和硬件测试实验。

实验内容三:对VHDL不同描述方式的四选一多路选择器进行硬件实验,比较他们的特性。

三、程序设计

其示意框图如下:

其中输入数据端口为a、b、c、d,s1、s2为控制信号,Y为输出。 令s1s2=“00”时,输出Y=a; 令s1s2=“01”时,输出Yb; 令s1s2=“10”时,输出Y=c; 令s1s2=“11’ 时,输出Y=d;

输入 b 数据 c

a

d

真值表如下:

第一种方案: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41a IS

PORT (a,b,c,d,s0,s1:IN STD_LOGIC; --输入信号 y:OUT STD_LOGIC); --输出信号 END ENTITY mux41a;

ARCHITECTURE one OF mux41a IS

SIGNAL S:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN

S<=s0&s1; --并置操作,获得二维矢量数据类型 PROCESS(s0,s1,a,b,c,d) --敏感信号 BEGIN CASE S IS

WHEN"00"=> y<=a; WHEN"01"=> y<=b; WHEN"10"=> y<=c; WHEN"11"=> y<=d;

WHEN OTHERS=>NULL; --其它情况为空值 END CASE; --CASE语句结束 END PROCESS; --PROCESS进程语句结束 END ARCHITECTURE one;

第二种方案: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY MUX41 IS

(

PORT

S1:IN BIT; S0:IN BIT; a:IN BIT; b:IN BIT; c:IN BIT; d:IN BIT; Y:OUT BIT );

END MUX41;

ARCHITECTURE LOGIC OF MUX41 IS BEGIN

Y<=(a AND (NOT S1)AND(NOT S0)) OR (b AND (NOT S1)AND S0) OR (c AND S1 AND(NOT S0)) OR (d AND S1 ANDS0); END LOGIC;

程序分析:四选一多路选择器设计时,定义输入S为标准以内漏记为STD_LOGIC,输出的信号y的数据类型定义为2位标准逻辑矢量位STD_LOGIC_VECTOR( 1 DOWNTO 0 ).使用LIBRATY语句和USE语句,来打开IEEE库的程序包STD_LOGIC_1164.ALL。当输入信号时,程序按照输入的指令来选择输出,例如输入信号为“00”时,将a的值给y,进而输出y的值,输入信号为“11”是,将a的值给y,进而输出y的值。若输入信号是已经定义的四个信号之外的值时(即当IF条件语句不满足时),输出值为x,并将x的值给输出信号z。这样即可实现四选一数据选择的功能。

四、仿真波形

分析: 从上图时序仿真可以看出:

s1s2=“00”时,输出Y=a; s1s2=“01”时,输出Yb; s1s2=“10”时,输出Y=c; s1s2=“11’ 时,输出Y=d;

(如图中注释)

实验二 四选一多路选择器的设计
篇二:设计一个1位的二选一多路选择器,使用门级描述实现,使用逻辑表达式实现,使用if条件

实验二 四选一多路选择器的设计

姓名:庞啟明 学号:1112120110 专业:自动化

一、实验目的

进一步熟悉QuartusⅡ的Verilog HDL文本设计流程,学习组合电路的设计、仿真和硬件测试。

二、实验原理

if_else条件语句描述方式,以过程语句引导的顺序语句,适合描述复杂逻辑系统的行为描述语句。

(1)以模块定义语句关键词module_endmodule引导完整的电路模块。

(2)以input和output语句引导模块的外部端口。

(3)以reg等关键词定义模块内将出现的相关信息的特征和数据类型。

(4)以always @ 等关键词引导对模块逻辑功能描述的语句。负责描述电路器件的内部逻辑功能和电路结构。

三、实验设备与软件平台

实验设备:计算机、FPGA硬件平台是Cyclone系列FPGA

软件平台:Quartus II 9.1 (32-Bit)、5E+系统

四、实验内容

编写Verilog程序描述一个电路,实现以下功能:

具有6个输入端口 A、B、C、D、S1、SO,A、B、C、D均为输入端口,位宽为1;Sl、S0为通道选择控制信号端,位宽为1;Y为输出端口,位宽为1。当S1S0为“00”时,A的数据从Y输出,S1S0为“01”时,B的数据从Y输出,S1S0为“10”时,C的数据从Y输出,S1S0为“11”时,D的数据从Y输出。

五、实验步骤

设计流程:

1、编辑和输入设计文件

(1)、新建一个文件夹

如D:\MUX41 ,本工程所有文件将存放在此目录中。

1)输入VHDL源程序

打开QuartusII,选择菜单File->New。选择Verilog HDL File,输入源程序。

2)文件存盘

选择File->Save As命令,找到已设立的文件夹D:\MUX41,存盘文件名应与实体名一致,存盘为MUX41.v。当出现语句“do you want to create?..”的对话框,选择“是”自动创建工程。这里先选择“否”,即暂时不创建工程流程。下一步手动创建工程。

(2)、创建工程

1)选择菜单File->New project Wizard命令,即弹出工程设置对话框。单击此对话框右侧的“?”进行设置,第一行的D:\MUX41表示工程所在的工作库文件夹,第二行的MUX41表示此项工程的工程名,第三行是当前工程顶层文件的实体名。

2)将设计文件MUX41.v添加入工程中。点“?”按钮,在弹出的对话框中选择MUX41.v文件。单击“Add”按钮。

3)选择目标芯片

器件选择Cyclone系列中的EP1C6Q240C8。也可以从主菜单Assignments的下拉菜单中点击 Device目标芯片设置窗口。

4)工具设置,此处不进行设置,点击Next

5)结束设置

列出了此工程相关设置情况,点击Finish按钮,出现project nevigator窗口,显示本工程项目的层次结构和各层次的实体名。

2、全程综合与编译

选择Processing->start compilation,等待一段时间,跳出对话框提示编译成功或有错误,并在信息栏显示错误信息。

3、仿真测试

1)打开波形编辑器

选择File->new,选择vector waveform file。

2)设定仿真时间区域

设计一个1位的二选一多路选择器,使用门级描述实现,使用逻辑表达式实现,使用if条件。

在Edit->end time,在弹出的窗口time栏处输入50,单位选“us”。

3)波形文件存盘,默认文件名为MUX41.vwf

4)将此工程MUX41的端口信号名选入波形编辑器中

View->utility windows项的Node Finder选项。点击“list”。

5)将端口信号名拖入波形编辑器中,拖完信号后可以关掉浮动窗口

6)按键盘上“CTRL+W”,显示全部仿真时间区域。

7)编辑输入波形(输入激励信号)

8) 仿真器参数设置

9)启动仿真器。提示是否保存,选择“是”,仿真成功后选“确定”。

10) 观察仿真结果

按键盘上“CTRL+W”,在全部仿真时间区域内观察波形,并分析波形图显示的逻辑功能是否正确

4、引脚锁定与硬件测试

打开MUX41命名的工程,应选择File的Open Project命令。选择Assignments->assingnment editor项。Category栏中选择locations,然后双击TO栏的《new》,选择Node Finder。在出现的对话框左边框中选择需要锁定的端口信号名,这些信号跳到右栏,单击OK按键后,这些信号名即进入信号编辑栏。接着在表框中分别键入需要锁定的端口引脚名。锁定引脚后,必须重新编译,启动Processing->Start Ccomplication,编译完成后可下载配置文件。

5、使用USB编程器下载配置文件

首先安装USB编程器的驱动程序。选择自己搜索驱动程序。备注:若没有正确安装驱动程序,USB Blaster 编程器不可选,这时必须到硬件设备管理器中删除打问号的USB驱动程序,重新正确安装。

6、配置文件下载

将编译产生的SOF格式配置文件配置进FPGA中。在MODE选择JTAG。编程器选择USB Blaster下载方式。

7、点击“start”将配置文件下载,然后进行硬件测试。

实验程序:

module MUX41a (A,B,C,D,S1,S0,Y);

input A,B,C,D,S1,S0;

output Y;

reg [1:0] SEL;设计一个1位的二选一多路选择器,使用门级描述实现,使用逻辑表达式实现,使用if条件。

reg Y;

always @ (A,B,C,D,SEL) begin

SEL = {S1,S0};

if (SEL==0) Y = A;

else if (SEL==1) Y = B;

else if (SEL==2) Y = C;

else Y = D;

end

endmodule

功能仿真截图:

仿真时序波形图

管脚锁定截图

六、实验结果及分析

由4选1多路选择器的时序波形图可知,程序的功能符合设计要求。5E+系统演示时,分别按下或放开键K1、K2,蜂鸣器发出四种不同的声音。

七、心得体会

四选一多路选择器的设计是典型的组合电路模块。源程序Verilog描述由四部分组成。程序虽然简短,但是如果不认真输入就容易出错,得不到预期的实验结果,设置仿真信号的时候要注意选择信号的大小,选择不当蜂鸣器发出的声音就不正常。

实验一 2选1多路选择器1
篇三:设计一个1位的二选一多路选择器,使用门级描述实现,使用逻辑表达式实现,使用if条件

本科学生综合性实验报告

学号 114090317 姓名 李明旭

学院 物电学院 专业、班级 11电子

实验课程名称 电子设计自动化(EDA实验)

教师及职称 罗永道 (副教授)

开课学期至学年学期

填报时间年月

云南师范大学教务处编印

1

2

4设计一个1位的二选一多路选择器,使用门级描述实现,使用逻辑表达式实现,使用if条件。

实验一verilog门级建模
篇四:设计一个1位的二选一多路选择器,使用门级描述实现,使用逻辑表达式实现,使用if条件

西 安 郵 電 學 院

verilog设计基础课内实验

报 告 书

系部名称 :

学生姓名 :

专业名称 :

班 级 :

时号 : 间 : 计算机系 常成娟 电子信息科学与技术 电科0603 22号 2006-9-11 至 2006-9-22

实验题目 门级建模

一、 实验内容

1、使用bufif0和bufif1设计一个二选一多路选择器; 2、在设计完成后,写出激励模块对其进行仿真 。

二、 详细设计

多路选择器,如下图所示:设计一个1位的二选一多路选择器,使用门级描述实现,使用逻辑表达式实现,使用if条件。

门b1和b2

路选择器。用s来控制输出。

三、 仿真结果

四、 调试情况,设计技巧及体会

通过本次实验我学会了从门级抽象的角度来设计电路,同时练习了所学的词法约定和语法结构、模块以及端口。学会自己独立使用verilog语言对实际硬件建模。并学会了如何设计激励,尽可能把在容易出现的错误找出来地方改变激励信号,在

五、 源程序清单

module mux2(out, in1, in0,s);

output out;

input in0,in1,s;

bufif0 #(1:2:3,3:4:5,5:6:7) b1(out,in0,s);

bufif1 #(1:2:3,3:4:5,5:6:7) b2(out,in1,s);

endmodule

module t_mux2;

reg IN1,IN0,S;

wire OUT;

mux2 s1(OUT,IN1,IN0,S);

initial

begin

IN0= 0;IN1= 1;S= 1;

#10 S= 0;

#10 S= 1;

IN0= 1;IN1= 0;S= 1;

#10 S= 0;

#10 S= 1;

end

initial

$monitor($time,"IN0= %b,IN1= %b,S= %b,OUT= %b\n",IN0,IN1,S,OUT);

endmodule

本文来源:http://www.myl5520.com/jiaoanxiazai/109606.html

推荐内容