实验七----4选1多路选择器设计实验
- 格式:doc
- 大小:544.50 KB
- 文档页数:15
4选1多路选择器VHDL语言设计在VHDL语言中设计一个4选1多路选择器主要涉及到以下几个方面:实体声明、端口声明、内部信号声明、内部结构设计、行为建模以及仿真测试。
下面是一个VHDL语言设计的参考模板,详细解释了每个步骤的实现方法。
1. 实体声明(Entity Declaration)```vhdlentity mux_4to1 isportA, B, C, D : in std_logic;S : in std_logic_vector(1 downto 0);CLK : in std_logic;Y : out std_logicend mux_4to1;```2. 端口声明(Port Declaration)端口声明定义了输入和输出端口的类型。
在这个例子中,输入和输出端口的类型都是标准逻辑类型。
```vhdlarchitecture behavioral of mux_4to1 issignal input_mux : std_logic_vector(3 downto 0);beginA <= input_mux(0);B <= input_mux(1);C <= input_mux(2);D <= input_mux(3);end behavioral;```3. 内部信号声明(Internal Signal Declaration)内部信号声明是为了辅助模块内的信号传输和处理。
在这个例子中,我们需要声明一个内部信号来保存选择信号S对应的多路选择器输入信号。
```vhdlarchitecture behavioral of mux_4to1 issignal input_mux : std_logic_vector(3 downto 0);signal mux_out : std_logic;beginA <= input_mux(0);B <= input_mux(1);C <= input_mux(2);D <= input_mux(3);end behavioral;```4. 内部结构设计(Internal Structure Design)内部结构设计定义了多路选择器的逻辑结构。
EDA实验二4选1多路选择器设计实验一、实验目的进一步熟悉QuartusII 的VHDL 文本设计流程、组合电路的设计仿真和测试。
二、实验内容实验内容一:根据 4.1流程,利用QuartusII 完成四选一多路选择器的文本编辑输入和仿真测试等步骤,给出仿真波形。
实验内容二:对VHDL 不同描述方式的四选一多路选择器进行硬件实验,比较他们的特性。
三、实验记录1.when-else语句设计的4选1多路选择器a).利用when-else语句的vhdl程序library ieee;use ieee.std_logic_1164.all;entity mux41a isport(a,b,c,d,s0,s1:in std_logic;y:out std_logic);end entity mux41a;architecture one of mux41a isbeginy<= a when s0='0' and s1='0' elseb when s0='1' and s1='0' elsec when s0='0' and s1='1' elsed;end architecture one;备注以上是when-else语句设计的4选1多路选择器的vhdl描述。
程序中应该注意的有以下几点A.一:实体的命名要和工程名相同,并且不能是中文的或者以数字开头;B.二:when-else语句具有最高赋值优先级;b).when-else语句设计的4选1多路选择器的RTL图图(1)when-else语句设计的4选1多路选择器的RTL图c).when-else语句设计的4选1多路选择器的时序仿真波形图图(2)when-else语句设计的4选1多路选择器的时序仿真波形图d).when-else语句设计的4选1多路选择器功能仿真波形图图(3)when-else语句设计的4选1多路选择器功能仿真波形图2.if-then语句设计的4选1多路选择器a).利用when-else语句的vhdl程序library ieee;use ieee.std_logic_1164.all;entity mux41b isport(a,b,c,d,s0,s1:in std_logic;y:out std_logic);end entity mux41b;architecture one of mux41b isbeginprocess (a,b,c,d,s0,s1) beginif s0='0' and s1='0' then y<= a;end if;if s0='1' and s1='0' then y<= b;end if;if s0='0' and s1='1' then y<= c;end if;if s0='1' and s1='1' then y<= d;end if;end process;end architecture one;备注:以上是if—then语句设计的4选1多路选择器的vhdl描述。
电学实验报告模板实验原理数据选择器的功能类似一个单刀多掷开关,如图1所示。
数据选择器在地址码的控制下,从多路数据输入中选择其中一个并将其送到一个公共的输出端。
图1 数据选择器示意图1. 4选1数据选择器图2 4选1数据选择器及其逻辑图2所示为4选1数据选择器及其逻辑。
该电路有4路输入数据和为地址输入。
为使能控制端,当时,数据选择器正常工作;当时,数据选择器的输出被锁定在“0”,不能选择。
由图2(b)可以得到该数据选择器的逻辑函数式为(1)2. 用4选1数据选择器扩展成8选1数据选择器8选1数据选择器有8路数据输入,3位地址输入。
如果用4选1数据选择器实现8选1,需要2片4选1数据选择器,如图所示。
其中,是通过4选1数据选择器的使能控制端接入的。
由图5并根据式(1),可以得到显然实现了8选1的逻辑功能。
图5 用4选1数据选择器扩展成8选1数据选择器实验仪器实验内容及步骤1. 测试和验证74HC153的逻辑功能(1)集成电路芯片74HC153引脚图74HC153是双4选1数据选择器,芯片内部包含两个独立的、完全相同的4选1数据选择器。
图7-5所示为引脚图。
每一个4选1数据选择器都设置了一个使能控制端。
两个4选1数据选择器共享地址输入端。
图6 74HC151引脚图(2)测试和验证74HC153的逻辑功能按图7连接电路。
实验数据记录在表7-1。
验证74HC153的逻辑功能。
图7 测试74HC151的逻辑功能实验电路表1(3)用一片74HC153扩展成8选1数据选择器图8 74HC153扩展成8选1数据选择器实验电路按图8连接电路。
实验数据记录在表2。
验证电路的逻辑功能。
表2实验结果及分析1.实验结果2.分析该实验结果表明74HC153元件实现了4选1的数据选择功能74HC153与74LS00两个4选1数据选择器拓展实现了8选1的逻辑功能实验结论1.74HC153具有4选1逻辑功能,能够实现数据选择,其有4路输入数据D0、D1、D2、D3,A0、A1为地址输入,为使能控制端,当时,数据选择器正常工作;当时,数据选择器的输出被锁定在“0”,不能选择。
多路选择器的设计实验一.实验项目多路选择器的设计二.实验目的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为输出端。
四选一数据选择器程序设计与仿真实验1 实验目的(1) 熟悉在QuartusⅡ软件平台上建立工作库文件和编辑设计文件的方法。
(2) 熟悉创建工程文件方法。
(3) 熟悉编译前设置和启动全程编译设置的方法。
(4) 熟悉波形编辑器的使用方法(5) 熟悉在QuartusⅡ软件平台上对设计进行仿真的操作全过程(6) 会用VHDL语言设计一个四选一数据选择器。
2 实验原理数据选择器又叫“多路开关”。
数据选择器在地址码(或叫选择控制)电位的控制下,从几个数据输入中选择一个并将其送到一个公共的输出端。
数据选择器的功能类似一个多掷开关,如图3.2.1所示,图中有四路数据a、b、c、d输入,通过选择控制信号 s1、s2(地址码)从四路数据中选中某一路数据送至输出端y。
逻辑功能如表3.2.1所示。
图3.2.1 四选1数据选择器示意图表3.2.1 四选一数据选择器逻辑功能表输入输出en S2 S1 a b c d y1 ×××××× 10 0 0 0×××0 1××× 10 0 1 ×0××0 ×1×× 10 1 0 ××0×0××1×10 1 1×××00×××11从表3.2.1中可知使能端en=1时,不论a~c输入状态如何,均无输出(y=1,因为所用器件的显示电路是共阳极),多路开关被禁止。
使能端en=0时,多路开关正常工作,根据地址码s2、s1的状态选择a~c输入信号中某一个通道的数据输送到输出端y。
3 实验内容(1) 建立一个四选一数据选择器的文件夹。
(2) 在定义好的VHDL模型中完成四选一数据选择器的描述,并创建工程。
EDA技术4选1多路选择器实验报告实验报告:EDA技术4选1多路选择器实验一、实验目的本实验旨在通过EDA(Electronic Design Automation)技术,利用4选1多路选择器实现数据选择功能,加深对数字电路设计基础知识的理解,掌握EDA技术的实际应用。
二、实验原理4选1多路选择器是一种数字逻辑电路,它有4个数据输入端,1个数据输出端和2个选择端。
通过控制选择端的状态,可以选择其中一个数据输入端的数据输出到输出端。
三、实验步骤1.实验准备在实验前,需要准备以下设备和软件:•数字逻辑实验箱•EDA软件(如Quartus II)•连接线若干•万用表•实验电路板•4选1多路选择器芯片(如74LS153)•发光二极管及限流电阻(用于显示输出结果)2.实验操作(1)将4选1多路选择器芯片连接到实验电路板上,并按照要求连接发光二极管及限流电阻。
(2)使用EDA软件创建新项目,并选择合适的FPGA芯片型号。
(3)在新项目中添加4选1多路选择器模块,并将其与FPGA芯片连接。
(4)根据实验要求,编写控制逻辑的VHDL或Verilog代码。
(5)将控制逻辑代码编译并下载到FPGA芯片中。
(6)使用万用表检查连接是否正确,发光二极管是否亮起。
(7)通过改变选择端的输入状态,观察发光二极管亮灭情况,验证4选1多路选择器的数据选择功能。
四、实验结果与分析通过本次实验,我们成功地利用4选1多路选择器实现了数据选择功能。
在EDA软件中,我们设计了合适的控制逻辑,将选择的输入数据传送到输出端,并通过发光二极管显示输出结果。
当改变选择端的输入状态时,观察到发光二极管的亮灭情况随之改变,证明了4选1多路选择器的数据选择功能。
通过本次实验,我们深入了解了数字电路设计的基本知识,掌握了EDA技术在实践中的应用。
通过使用EDA软件进行设计、编译和下载程序,我们能够更加便捷地进行数字电路实验。
此外,通过实际操作,我们学会了使用数字逻辑实验箱、万用表等实验设备,提高了实践操作能力。
实验七 4选1和8选1数据选择器的设计一、实验目的3. 掌握电路设计和仿真测试的方法。
二、实验原理数据选择器是一种数字电路,用于从多个输入信号中选择一个输出信号。
数据选择器根据控制信号的不同,可以实现4选1或8选1的选择功能。
4选1数据选择器的原理如下:输入端有4个数据输入,一个选择输入S(S=0时选择输入1,S=1时选择输入2,S=2时选择输入3,S=3时选择输入4),根据S的不同,输出端输出选择的输入信号。
8选1数据选择器的原理与4选1相似,只是输入端有8个数据输入,选择输入S的取值范围为0~7。
三、实验器材1. 计算机和仿真软件Multisim;2. 数字电路实验箱、数字电路元器件。
四、实验步骤2. 在Multisim中建立相应的电路,并进行仿真测试。
3. 分析仿真结果,验证电路是否符合设计要求,如果出现问题,及时查找原因并修改电路图。
4. 根据实验结果,总结设计和仿真方法,掌握数据选择器电路的设计和仿真测试技巧。
五、实验注意事项1. 在进行电路设计和仿真测试时,应仔细分析原理,并尽可能避免出现矛盾和异常。
2. 电路元器件的选用要合适,尤其是输入和输出端的电阻值和工作电压要一致。
3. 在进行仿真测试时,要保证仿真参数的准确性,特别是信号幅度和频率要符合预期。
4. 电路测试完成后,应及时记录实验结果,包括电路图、仿真参数、测试数据等信息。
六、实验结果分析经过设计和仿真测试,我们成功实现了4选1和8选1数据选择器电路的设计,并获得了合适的仿真结果。
在实验过程中,我们掌握了数据选择器电路的设计和仿真测试技巧,积累了一定的电路设计和测试经验。
综上所述,本次实验达到了预期目标,并为我们今后的电路设计和测试工作提供了一定的指导和参考。
四选一数据选择器11微电子黄跃1117426021【实验目的】1.四选一数据选择器,2.学习Verilog HDL文本文件进行逻辑设计输入;3.学习设计仿真工具modelsim的使用方法;【实验内容】1. 实现四选一数据选择器的“Verilog ”语言设计。
2. 设计仿真文件,进行验证。
【实验原理】数据选择器又称为多路转换器或多路开关,它是数字系统中常用的一种典型电路。
其主要功能是从多路数据中选择其中一路信号发送出去。
所以它是一个多输入、单输出的组合逻辑电路。
4选1数据选择器的元件符号如图一所示,其中D0、D1、D2、D3是4位数据输入端,A0和A0是控制输入端,Y是数据输出端。
当A1A0=00时,输出Y=D1;A1A0=01时,Y=D1;A1A0=10时,Y=D2;A1A0=11,Y=D3。
A1 A0 D Y0 0 D00 1 D11 0 D2 1 1 D3 D0 D1 D2 D3图一4选1数据选择器的元件符号由真值表写出输出逻辑表达式 301201101001)()()()(D A A D A A D A A D A A F+++=由逻辑表达式做出逻辑电路图。
【程序源代码】module mux4_1(sel,in,out); input [1:0] sel; input [3:0] in; output out; reg out;always@(sel or in) begin case ({sel[1],sel[0]}) 2'b00: out=in[0]; 2'b01: out=in[1]; 2'b10: out=in[2]; 2'b11: out=in[3]; default: out=1'bx; endcase end图 二 4选1数据选择器原理图Endmodule测试程序代码如下:module test_mux4_1;reg [1:0] S;reg [3:0] IN;wire Y;mux4_1 M1(.sel(S),.in(IN),.out(Y));always #10 IN[0]=~IN[0];always #20 IN[1]=~IN[1];always #40 IN[2]=~IN[2];always #80 IN[3]=~IN[3];initialbegin S=1'b0;IN=4'h0;#100 $stop;endalways #10 S=S+1;endmodule【仿真和测试结果】【实验心得和体会】这次实验与上次相比有明显的进步,通过这次实验我对modelsim的应用更加得心应手,深切的体会到了verilog是一种描述性语言,这次实验总的来说是比较顺利的,但在实验过程中还是遇到了一些问题,比如端口的匹配问题,在写程序的时候误将位宽写在了变量名的后面,虽然程序能够运行但有警告,仿真波形是错误的,可见在写程序时警告有时也是致命的,这要求我们在学习的过程中思想一定要严谨!其次在做实验时一定要多想,例如在学习这门课时,书上说在模块外部输入可以是wire型或reg型,但在写程序时激励模块往往要初始化数据,所以编程时其类型往往声明为reg型,通过这个例子我明白了书上所说的有时往往是一个比较笼统的,而更多的需要我们自己去实践、探索、勤思考,只有这样我们才能把书本上的知识转化为属于我们自己的知识,才能在学习的道路上走的更远!。
实验七----4选1多路选择器设计实验
实验七 4选1多路选择器设计实验
一、实验目的
进一步熟悉QuartusII 的VHDL 文本设计流程、组合电路的设计仿真和测试。
二、实验原理
四选一多路选择器设计时,试分别用IF_THEN 语句、WHEN_ELSE 和CASE 语句的表达方式写出此电路的VHDL 程序,要求选择控制信号s1和s2的数据类型为STD_LOGIC;当s1=‘0’,s0=‘0’;s1=‘0’,s0=‘1’;s1=‘1’,s0=‘0’和s1=‘1’,s0=‘1’时,分别执行y<=a 、y<=b 、y<=c 、y<=d 。
三、程序设计
其示意框图如下:
其中输入数据端口为a 、b 、c 、d ,s1、s2为控制信号,Y 为输出。
令s0s1=“00”时,输出y=a ; 令s0s1=“01”时,输出y=b ; 令s0s1=“10”时,输出y=c ; 令s0s1=“11’ 时,输出y=d ;
a
输入 b y 数据 c
d
s0 s1
真值表如下: 输入
输出
x s0 s1
y a 0 0
a b 0 1 b c 1 0
c
4 选 1
d 1 1 d
四、VHDL仿真实验
(1)用IF_THEN语句设计4选1多路选择器
1.建立文件夹D:\alteral\EDAzuoye\if_mux41,启动QuartusII软件工作平台,打开并建立新工程管理窗口,完成创建工程。
图1 利用New Project Wizard创建工程mux41
2.打开文本编辑。
NEW→VHDL File→相应的输入源程序代码→存盘为mux41.vhd.。
图2 选择编辑文件类型
源程序代码如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux41 IS
PORT(a,b,c,d:IN STD_LOGIC;
s0: IN STD_LOGIC;
s1: IN STD_LOGIC;
y: OUT STD_LOGIC);
END ENTITY mux41;
ARCHITECTURE if_mux41 OF mux41 IS
SIGNAL s0s1:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN
s0s1<=s0&s1;
PROCESS(s0s1,a,b,c,d)
BEGIN
IF s0s1="00" THEN y<=a;
ELSIF s0s1="01" THEN y<=b;
ELSIF s0s1="10" THEN y<=c;
ELSE y<=d;
END IF;
END PROCESS;
END ARCHITECTURE if_mux41;
3.综合运行,检查设计是否正确。
图3 全程编译无错后的报告信息
4.生成symbol。
图4 生成symbol
5.建立波形编辑文件进行功能仿真,仿真结果如下图所示。
图5 设置时钟CLK的周期
图6 仿真波形输出报告
从上图时序仿真可以看出:
s0s1=“00”时,输出y=a;
s0s1=“01”时,输出y=b;
s0s1=“10”时,输出y=c;
s0s1=“11’时,输出y=d;
6.查看RTL电路。
选择Tools->Netlist Viewers->RTL Viewers命令,即HDL的RTL级图形观测器,选择好后即自动弹出计数器设计的RTL电路,如下图:
图7 RTL电路图
(2)用WHEN_ELSE语句设计4选1多路选择器
1.建立文件夹D:\alteral\EDAzuoye\when_mux41,启动QuartusII软件工作平台,打开并建立新工程管理窗口,完成创建工程。
图1 利用New Project Wizard创建工程mux41
2.打开文本编辑。
NEW→VHDL File→相应的输入源程序代码→存盘为mux41.vhd.。
图2 选择编辑文件类型
源程序代码如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux41 IS
PORT(a,b,c,d:IN STD_LOGIC;
s0: IN STD_LOGIC;
s1: IN STD_LOGIC;
y: OUT STD_LOGIC);
END ENTITY mux41;
ARCHITECTURE when_mux41 OF mux41 IS
SIGNAL s:STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
s<=s0&s1;
y<=a WHEN s="00" ELSE
b WHEN s="01" ELSE
c WHEN s="10" ELSE
d WHEN s="11" ELSE
'0';
END when_mux41;
3.综合运行,检查设计是否正确。
图3 全程编译无错后的报告信息
4.生成symbol。
图4 生成symbol
5.建立波形编辑文件进行功能仿真,仿真结果如下图所示。
图5 设置时钟CLK的周期
图6 仿真波形输出报告
从上图时序仿真可以看出:
s0s1=“00”时,输出y=a;
s0s1=“01”时,输出y=b;
s0s1=“10”时,输出y=c;
s0s1=“11’时,输出y=d;
6.查看RTL电路。
选择Tools->Netlist Viewers->RTL Viewers命令,即HDL的RTL级图形观测器,选择好后即自动弹出计数器设计的RTL电路,如下图:
图7 RTL电路图
(3)用CASE语句设计4选1多路选择器
1.建立文件夹D:\alteral\EDAzuoye\case_mux41,启动QuartusII软件工作平台,打开并建立新工程管理窗口,完成创建工程。
图1 利用New Project Wizard创建工程mux41
2.打开文本编辑。
NEW→VHDL File→相应的输入源程序代码→存盘为mux41.vhd.。
图2 选择编辑文件类型
源程序代码如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux41 IS
PORT(a,b,c,d:IN STD_LOGIC;
s0: IN STD_LOGIC;
s1: IN STD_LOGIC;
y: OUT STD_LOGIC);
END ENTITY mux41;
ARCHITECTURE case_mux41 OF mux41 IS
SIGNAL s0s1:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN
s0s1<=s0&s1;
PROCESS(s0s1,a,b,c,d) BEGIN
CASE s0s1 IS
WHEN"00"=>y<=a;
WHEN"01"=>y<=b;
WHEN"10"=>y<=c;
WHEN"11"=>y<=d;
WHEN OTHERS=>NULL;
END CASE;
END PROCESS;
END ARCHITECTURE case_mux41;
3.综合运行,检查设计是否正确。
图3 全程编译无错后的报告信息
4.生成symbol。
图4 生成symbol
5.建立波形编辑文件进行功能仿真,仿真结果如下图所示。
图5 设置时钟CLK的周期
图6 仿真波形输出报告从上图时序仿真可以看出:s0s1=“00”时,输出y=a;
s0s1=“01”时,输出y=b;
s0s1=“10”时,输出y=c;
s0s1=“11’时,输出y=d;
6.查看RTL电路。
选择Tools->Netlist Viewers->RTL Viewers命令,即HDL的RTL级图形观测器,选择好后即自动弹出计数器设计的RTL电路,如下图:
图7 RTL电路图。