实验报告一多路选择器

合集下载

实验1 多路选择器

实验1 多路选择器
但是,如果 if 语句在使用时没有 else 语句与其配对则会发生这样的情况: 编译器判断 if 后面的条件表达式是否满足,如果满足则执行其后的语句,那如果 条件表达式不满足呢?这时,编译器就会自动产生一个寄存器来寄存当前的值, 在条件不满足时保输出的过去值。这样就会产生用户没有设计的多余的寄存器出 来。因此建议读者在使用 if 语句的时候要加上 else 语句与其配对。防止产生多 余的寄存器。
激励代码解释: `timescale 10 ns/ 1 ps module mux21_vlg_tst();
reg a; reg b; reg s; wire y;
// 设置时间尺度和时间精度 // 测试代码的端口参数列表为空 // 输入变量声明为 reg 型变量
// 输出变量声明为 wire 型变量
always 语句块的使用
always 块的语句格式如下: always @(<敏感事件列表>)
各可执行的语句; …… 其中敏感事件列表中列出了所有影响 always 块中输出的信号清单,也就是 说,如果敏感事件列表中的任何一个变量发生了变化,都要执行 always 语句块 中的语句。如 always @ (a or b or s)表示:只要 a、b、s 中的任何一个变量发生了 变化,就立刻执行 always 语句块中的语句。 为了方便起见,敏感列表也可以用“*”代替,如 always @ (*), (*)号将 自动包含 always 语句块中右边的语句或条件表达式中的所有信号。如程序清单 2, 只要 always 语句块中表达式右边出现的变量 a 和 b,或者条件表达式中出现的变 量 s,这三个变量中的任何一个变量发生了变化,就立刻执行 always 语句块中的 语句。 always 语句还有另外一种形式,即:always 后面不带任何有关敏感事件列表

EDA多路选择器设计实验报告

EDA多路选择器设计实验报告

EDA多路选择器设计实验报告多路选择器设计实验一、实验目的:进一步熟悉Quartus II的Verilog文本设计流程,组合电路的设计仿真和硬件测试。

二、实验内容:1、根据4.1节流程,利用Quartus II完成4选1多路选择器的文本代码编辑输入和仿真测试等步骤,给出仿真波形。

2、在实验系统上硬件测试,验证此设计的功能。

三、实验程序:Quartus II程序:module mux41a(a,b,c,d,s0,s1,y);input a,b,c,d;input s0,s1;output y;reg y;always@(a,b,c,d,s0,s1)begin :mux41case({s0,s1})2'b00:y<=a;2'b01:y<=b;2'b10:y<=c;2'b11:y<=d;default :y<=a;endcaseendendmodulemodelsim程序:// Copyright (C) 1991-2012 Altera Corporation// Your use of Altera Corporation's design tools, logic functions // and other software and tools, and its AMPP partner logic // functions, and any output files from any of the foregoing // (including device programming or simulation files), and any // associated documentation or information are expressly subject // to the terms and conditions of the Altera Program License // Subscription Agreement, Altera MegaCore Function License // Agreement, or other applicable license agreement, including, // without limitation, that your use is for the sole purpose of // programming logic devices manufactured by Altera and sold by // Altera or its authorized distributors. Please refer to the // applicable agreement for further details.//******************************************************************** *********// This file contains a Verilog test bench template that is freely editable to// suit user's needs .Comments are provided in each section to help the user// fill out necessary details.//******************************************************************** *********// Generated on "10/11/2015 21:31:33"// Verilog Test Bench template for design : mux41a//// Simulation tool : ModelSim-Altera (Verilog)//`timescale 1 us/ 1 psmodule mux41a_vlg_tst();// constants // general purpose registers//reg eachvec;// test vector input registersreg a;reg b;reg c;reg d;reg s0;reg s1;// wires wire y;// assign statements (if any) mux41a i1 (// port map - connection between master ports and signals/registers .a(a),.b(b),.c(c),.d(d),.s0(s0),.s1(s1),.y(y));initialbegina=0;b=0;c=0;d=0;s0=0;s1=0;#20 s0=0;s1=1;#20 s0=1;s1=0;#20 s0=1;s1=1;#20 $stop;endalways #2 a=~a;always #4 b=~b;always #6 c=~c;always #8 d=~d;endmodule四、实验步骤:1、打开Quartus II,点击“file”中的“New Project Wizard”,新建工程到指定文件夹中2、点击“New”新建工作簿,写入程序3、点击“compile design”进行编译方法一:联合仿真1、点击“processing”中的“start”2、点击“file”中的“open”,找到“modelsim”,查找“.vt”文件3、打开“mux41a”文件4、修改文件中的程序5、打开“Assignments”,点击“setting”,修改时间6、点击“test benches”后再点击“New”添加“mux41a”文件7、再进行编译8、点击“Tools”,打开“Run Simulation Tool”,再选择“RTL Simulation”方法二:modelsim单独仿真1、在modelsim中新建“sim”文件2、打开“modelsim”,创建工程3、点击“create new file”,新建两个工作簿4、分别添加相应程序进去,进行编译5、选择library,点击work,之后再右击add?to wave?selected signals,最后选择simulate点击run?run all。

数字逻辑实验报告

数字逻辑实验报告

数字逻辑实验报告数字逻辑实验报告引言数字逻辑是计算机科学中的重要基础知识,通过对数字信号的处理和转换,实现了计算机的高效运算和各种复杂功能。

本实验旨在通过实际操作,加深对数字逻辑电路的理解和应用。

实验一:二进制加法器设计与实现在这个实验中,我们需要设计一个二进制加法器,实现两个二进制数的加法运算。

通过对二进制数的逐位相加,我们可以得到正确的结果。

首先,我们需要将两个二进制数输入到加法器中,然后通过逻辑门的组合,实现逐位相加的操作。

最后,将得到的结果输出。

实验二:数字比较器的应用在这个实验中,我们将学习数字比较器的应用。

数字比较器可以比较两个数字的大小,并输出比较结果。

通过使用数字比较器,我们可以实现各种判断和选择的功能。

比如,在一个电子秤中,通过将待测物品的重量与设定的标准重量进行比较,可以判断物品是否符合要求。

实验三:多路选择器的设计与实现在这个实验中,我们需要设计一个多路选择器,实现多个输入信号中的一路信号的选择输出。

通过使用多路选择器,我们可以实现多种条件下的信号选择,从而实现复杂的逻辑控制。

比如,在一个多功能遥控器中,通过选择不同的按钮,可以控制不同的家电设备。

实验四:时序电路的设计与实现在这个实验中,我们将学习时序电路的设计与实现。

时序电路是数字逻辑电路中的一种重要类型,通过控制时钟信号的输入和输出,实现对数据的存储和处理。

比如,在计数器中,通过时序电路的设计,可以实现对数字的逐位计数和显示。

实验五:状态机的设计与实现在这个实验中,我们将学习状态机的设计与实现。

状态机是一种特殊的时序电路,通过对输入信号和当前状态的判断,实现对输出信号和下一个状态的控制。

状态机广泛应用于各种自动控制系统中,比如电梯控制系统、交通信号灯控制系统等。

实验六:逻辑门电路的优化与设计在这个实验中,我们将学习逻辑门电路的优化与设计。

通过对逻辑门电路的布局和连接方式进行优化,可以减少电路的复杂性和功耗,提高电路的性能和可靠性。

EDA实验报告

EDA实验报告

实验一:QUARTUS II 软件使用及组合电路设计仿真页脚内容1实验目的:学习QUARTUS II 软件的使用,掌握软件工程的建立,VHDL源文件的设计和波形仿真等基本内容。

实验内容:1.四选一多路选择器的设计基本功能及原理:选择器常用于信号的切换,四选一选择器常用于信号的切换,四选一选择器可以用于4路信号的切换。

四选一选择器有四个输入端a,b,c,d,两个信号选择端s(0)和s(1)及一个信号输出端y。

当s输入不同的选择信号时,就可以使a,b,c,d中某一个相应的输入信号与输出y端接通。

逻辑符号如下:页脚内容2程序设计:软件编译:在编辑器中输入并保存了以上四选一选择器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。

仿真分析:仿真结果如下图所示页脚内容3分析:由仿真图可以得到以下结论:当s=0(00)时y=a;当s=1(01)时y=b;当s=2(10)时y=c;当s=3(11)时y=d。

符合我们最开始设想的功能设计,这说明源程序正确。

2.七段译码器程序设计基本功能及原理:七段译码器是用来显示数字的,7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD 中实现。

本项实验很容易实现这一目的。

输出信号的7位分别接到数码管的7个段,本实验中用的数码管为共阳极的,接有低电平的段发亮。

数码管的图形如下页脚内容4七段译码器的逻辑符号:程序设计:页脚内容5软件编译:在编辑器中输入并保存了以上七段译码器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。

仿真分析:仿真结果如下图所示:页脚内容6分析:由仿真的结果可以得到以下结论:当a=0(0000)时led7=1000000 此时数码管显示0;当a=1(0001)时led7=1111001 此时数码管显示1;当a=2(0010)时led7=0100100 此时数码管显示2;当a=3(0011)时led7=0110000 此时数码管显示3;当a=4(0100)时led7=0011001 此时数码管显示4;当a=5(0101)时led7=0010010 此时数码管显示5;当a=6(0110)时led7=0000010 此时数码管显示6;当a=7(0111)时led7=1111000 此时数码管显示7;当a=8(1000)时led7=0000000 此时数码管显示8;页脚内容7当a=9(1001)时led7=0010000 此时数码管显示9;当a=10(1010)时led7=0001000 此时数码管显示A;当a=11(1011)时led7=0000011 此时数码管显示B;当a=12(1100)时led7=1000110 此时数码管显示C;当a=13(1101)时led7=0100001 此时数码管显示D;当a=14(1110)时led7=0000110 此时数码管显示E;当a=15(1111)时led7=0001110 此时数码管显示F;这完全符合我们最开始的功能设计,所以可以说明源VHDL程序是正确的。

EDA---多路选择器的设计实验

EDA---多路选择器的设计实验

多路选择器的设计实验一.实验项目多路选择器的设计二.实验目的1.进一步熟悉Quartus II的VHDL文本设计流程,组合电路的设计仿真和硬件测试。

2.通过用VHDL设计一个4选1的多路选择器,掌握使用VHDL输入方式,进行FPGA/CPLD电路设计的方法。

3.熟悉多路选择器的功能。

三.实验设备及工具Quartus II 18.1四.实验内容与步骤1.准备工作:创建Quartus II项目。

2.设计输入:采用HDL输入方式。

新建文件(菜单File/ New...)选择VHDL文件类型(VHDL File),扩展名*.vhd,输入VHDL设计的代码,文件存盘。

3.编译、综合:在Processing菜单选择Start Compilation 项自动进行编译。

4.进行仿真:功能仿真、时序仿真。

新建“激励信号”的波形文件:(菜单File/New...)选择波形文件类型(Wector Waveform File)选择要仿真的节点:在“Name”列空白处,右键菜单,如上图所示。

选择菜单“Insert Node or Bus...”,在对话框选择“Nodes Finder”按钮根据过滤条件,列出节点名称:List选择节点 OK根据需要编辑输入端口“激励信号”的波形注意:保存波形文件,默认文件名即可。

运行仿真工具:如果仿真没有错误,则完成后自动打开仿真结果的波形窗口(仿真报告窗口)。

检查仿真波形是否正确:注意,需要人工判定结果,是否跟设计要求相符。

5. 器件编程:把设计下载到目标电路上,用实际器件验证设计是否正确。

正确连接下载线(电脑和目标电路板之间)在Tools 菜单内选择Programmer项(或者按钮),出现编程器窗口。

指定下载电缆类型:Byte Blaster、USB Blaster等。

选择下载(配置、烧录)方式:JTAG、AS等下载的目标文件:*.sof、*.pof勾选“Program/Configure”,CPLD器件可以选择加密器件点击Start按钮,开始下载五. 实验结果及结果分析多路选择器的代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY A ISPORT(h,i,j,k : IN STD_LOGIC;x,y : IN STD_LOGIC;z : OUT STD_LOGIC);END ENTITY A;ARCHITECTURE BHV OF A ISSIGNAL S :STD_LOGIC_VECTOR(1 DOWNTO 0); BEGINS <= x & y ;PROCESS(x,y)BEGINCASE (S) ISWHEN"00"=> z<=h;WHEN"01"=> z<=i;WHEN"10"=> z<=j;WHEN"11"=> z<=k;when OTHERS => NULL ;END CASE;END PROCESS;END ARCHITECTURE BHV ;多路选择器的编译:多路选择器的仿真:结果分析:a,b,c,d是4个输入端口,s1和s0为通道选择控制信号端,y为输出端。

4选1多路选择器实验报告

4选1多路选择器实验报告

4选1多路选择器实验报告
一、实验目的
熟悉Quartus II的VHDL文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。

二、实验原理
选择控制的信号s1和s0的数据类型为STD_LOGIC_VECTOR;当s1=‘0’,s0=‘0’;s1=‘0’,s0=‘1’;s1=‘1’,s0=‘0’和s1=‘1’,s0=‘1’时分别执行y<=a、y<=b、y<=c、y<=d。

三、实验任务
利用Quartus II完成4选1多路选择器的VHDL程序(分别用IF_THEN语句和CASE语句的表达方式)和仿真测试等步骤,给出仿真波形。

四、实验步骤
1、创建工程:运行Quartus Ⅱ软件,执行File=>New Project Wizard 命令,建立工程。

2、编辑VHDL文件:执行File => New 命令,弹出新建文件对话框,选择“VHDL File ”。

(1)用CASE语句的表达方式编写的VHDL程序及其仿真波形
①VHDL程序
②模拟仿真,得到仿真波形,如下图
(2)、用IF_THEN语句的表达方式编写的VHDL程序及其仿真波形
①VHDL程序
②模拟仿真,得到仿真波形,如下图
3、功能真值表
五、实验小结
通过四选一选择器的设计,使我们对CPLD设计过程有了初步的了解,并且基本熟悉掌握了CPLD设计过程。

东南大学数字系统实验实验一

东南大学数字系统实验实验一

数字系统实验报告实验一
一、实验目的
熟悉quartus环境下的vhdl电路设计,学习简单组合电路设计。

二、实验内容
设计双二选一多路选择器:
1.设计二选一多路选择器
2.将两个二选一多路选择器连接,完成三选一功能
3.仿真验证及下载测试
三、实验过程
1.设计二选一多路选择器。

在quartus中新建工程,并创建vhdl文件,编写代码如下:
2.将两个二选一选择器连接构成双二选一多路选择器,连接方式如下:
根据连接方式,可以得到输入输出真值表:
3.引脚绑定
按下表进行引脚绑定
四、实验结果及结论
1.时序仿真结果
对双四选一多路选择器进行时序仿真,结果如下:
仿真遍历了所有输入端口的取值,在S1,S2分别取00,01,10,11时,输出分别对应A,B,C,B的值,对比真值表,可以发现仿真结果正确。

2.下载验证
按引脚图绑定端口,其中S1,S2分别由两个键控制,输出口A,B,C连接的是电路板的音调控制,将两个键自由组合按下,可以明显听到发出三种不同的音调。

因此可以验证设计无误。

EDA实验报告8位二选一多路选择器

EDA实验报告8位二选一多路选择器

学号:201400800093 姓名:胡玲专业:电子信息科学与技术科目:电子设计自动化EDA 实验名称:8位二选一多路选择器
一.实验要求
实验要求:1通过有限状态机的VHDL设计初步了解VHDL表达和设计电路的方法2根据学过的一位二选一选择器改进VHDL语言而掌握8位二选一多路选择器
三.RTL图
四.波形仿真图:
由源代码可知a_fin=a_dis,b_fin=b_dis,但由波形仿真图可知在同一时刻它们并不一定相等,而是存在延迟,结果s_fin也是和对应的输入值存在延迟,如果不考虑延迟,结果正确。

例:t=40ns时输入是1010+0001结果是1011,无进位。

五:实验结果
1.用开关sw17-14表示输入的四位二进制A(17-14分别表示A0-A3),并用LEDR17-14显示。

sw13-10表示输入四位二进制B(13-10分别表示B3-B0)并用LEDR13-10显示。

KEY0用于复位KEY1用于做时钟信号LEDR3-0表示输出的四位二进制数LEDG8(绿灯)显示进位输出。

2.按下复位键—用开关确定输入值(例如输入为1111+1000)—按下时钟信号键—可显示红灯为0111以及绿灯亮有进位。

3.可知结果正确。

六.实验体会及心得
1.做实验前先预习实验内容,学以致用和大胆改进很重要。

2.代码写错没关系,几十个错误也没关系,不能复制粘贴那样学不到东西,与同学探讨很有意义,最后结果出来再回过头研究代码会觉得更了解每一步代码。

3.实验过程中切记避免心浮气躁,急于出结果,如果实在没思路可以看同学代码但一定要看懂在之上进行改变看结果。

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

计算机组成原理实验报告
——实验一多路选择器的设计与实现
专业:计算机科学与技术(师)
姓名:XXX
学号:
指导老师:
完成日期:
一、实验目的
1、回顾多路选择器的原理
2、熟悉Logisim软件的使用方法
3、熟悉ISE软件的开发过程
4、锻炼使用VHDL语言面熟硬件的能力
5、熟悉Digilent Nexy3 FPGA开发板
二、实验容
用两种方法实现一个两位数据的2选1多路选择器
1、用Logisim软件设计2选1多路选择器并进行仿真
2、使用VHDL语言设计2选1多路选择器,并在ISE环境下进行综合、仿真、调试,并下载到Digilent Nexy3 FPGA开发板进行验证
三、实验过程
第一部分:用Logisim实现2选1多路选择器
Step 1:创建工程
2选1多路选择器的逻辑表达式:Z=(A* S)+
(B*S),由此可知一个2选1多路选择器需要
用到与、或、非三种逻辑门电路
Step 2:添加元件
添加U1、U2、U3、U4四个与门电路,U5一个
非门电路,U6、U7两个或门电路
添加A0、A1、B0、B1、S五个输入端口,Z0、
Z1两个输出端口
完成后如下图所示:
Step3:连线
完成后如下图所示:
Step 4:仿真
Step 5:编辑电路外观
Step 6: 电路应用
四、实验结果
第一部分:用Logisim实现2选1多路选择器实验结果
1、表格:
序号
输入输出
A1A0 B1B0 S Z1Z0(预期) Z1Z0(实际)
1 00 01 1 01 01
2 00 10 1 10 10
3 00 11 1 00 11
4 01 00 0 01 01
5 10 00 0 10 10
6 11 00 0 11 11
2、截图
五、实验心得
通过实验我熟悉了Logisim软件的使用方法,并且掌握了多路选择器的设计与实现。

相关文档
最新文档