四选一多路选择器
四选一数据选择器
数据选择器:
数据选择器(data selector) 根据给定的输入地址代码,从一组输入信号中选出指定的一个送至输出端的组合逻辑电路。
有时也把它叫做多路选择器或多路调制器(multiplexer)。
MUX (数据选择器(multiplexer)):
在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关。
产品规格有4选1数据选择器、8选1数据选择器(型号为74151、74LS151、74251、74LS153)、16选1数据选择器(可以用两片74151连接起来构成)等之分。
如在数字电路中,mux6常指6路开关、mux6to1(mux6_1)常指6选1数据选择器。
多路转换器的作用主要是用于信号的切换。
集成模拟电子开关在小信号领域已成为主导产品,与以往的机械触点式电子开关相比,集成电子开关有许多优点,例如切换速率快、无抖动、耗电省、体积小、工作可靠且容易控制等。
但也有若干缺点,如导通电阻较大,输入电流容量有限,动态范围小等。
因而集成模拟开关主要使用在高速切换、要求系统体积小的场合。
在较低的频段上f<10MHz),集成模拟开关通常采用CMOS工艺制成:而在较高的频段上(f>10MHz),则广泛采用双极型晶体管工艺。
4选1多路选择器VHDL语言设计
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)内部结构设计定义了多路选择器的逻辑结构。
实验七4选1多路选择器设计实验(DOC)
实验七 4 选1多路选择器设计实验一、实验目的进一步熟悉Quartusll 的VHDL 文本设计流程、组合电路的设计仿真和测试。
二、实验原理四选一多路选择器设计时,试分别用IF_THEN 语句、WHEN_ELSE 和CASE 语句的表达方式写出此电路的 VHDL 程序,要求选择控制信号S1和s2的数据类 型为 STD_LOGIC;当 s1= ‘ 0',s0= ‘0' ; s1= ‘O', s0= ‘1’ ; s1= ‘ 1' , s0= ‘O ' 和 s1= '1', sO= ‘1'时,分别执行 y<=a 、y<=b 、yv=c 、y<=d 。
三、程序设计其示意框图如下:其中输入数据端口为a 、b 、c 、d ,s1、s2为控制信号,丫为输出。
令 sOs1= “ 00” 时,输出 y=a ; 令 sOs1= “ 01” 时,输出 y=b ; 令 sOs1= “ 10” 时,输出 y=c ; 令 sOs1= “ 11'时,输出 y=d ;厂a 输入 < b 数据 c I dsOs1真值表如下:4选1-------- y数据选择器四、VHDL仿真实验(1)用IF_THEN语句设计4选1多路选择器1. 建立文件夹D: \alteral\EDAzuoye\if_mux41, 启动QuartusII 软件工作平台,打开并建立新工程管理窗口,完成创建工程。
New Project WD i rectorv; Nafpe L Top-._evel Entity .page 1 QT5What is the working directory fm this project?0:\altera\E DAsuoye\^_muw41What is the n^me of this project?| muK41What is the n^me of the top-level design entity for this project? This name is casesensitive and must sKactly mart ch the sriit> name in the design file.mu«41 ...U se Existing Project Settings ...图 1 利用New Project Wizard 创建工程mux412. 打开文本编辑。
完整版四选一多路选择器试验报告
实验报告学院:电气工程学院班级: 专业:电子信息工程“所有程序〞 一 “ Altera 〞 一 “ Quartus II 9.0〞 “Quartus II 9.0(32bit )Q 启动软件.2 .选择 “File 〞 一 “New Project Wizard 〞,出现 “Introduction 〞 页3 .单击“Next〞按钮,进入工程名称的设定、工作目录的选择.4 .在对话框中第一行选择工程路径;第二行输入工程名,第三行输入顶层文件的实体名6 .新建设计文件,选择“File |New 〞 ,在NeW 寸话框中选择Device DesignFiles 下的Verilog File ,单击OK 完成新建设计文件.7 .在新建设计文件中输入Verilog 程序.8 .结果仿真编写四选一电路的VHDL 弋码并仿真,编译下载验证:实验程序:LIBRARY IEEE;USE IEEE. STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT (input: IN STD_LOGIC_VECTOR (3 DOWNTO 0);sel: IN STD_LOGIC_VECTOR (1 DOWNTO 0);y : OUT STD_LOGIC);END mux4 ;ARCHITECTURE rtl OF mux4 ISBEGINPROCESS (input, sel)BEGINIF (sel= "00〞)THENy<= input (0);ELSIF (sel= "01")THENy<= input (1);1.选择“开始〞 面, 如下列图,该页面介绍所要完成的具体任务.ELSIF (sel= “10〞)THENELSE END IF;END PROCESS;END rtl;二:程序运行图:LIBRARY IEEE TOSE- ITEE . STD LOGTC i 1.ALLj■ ENTITY aiucial 15S PC®LT(ifil!rtlt : TN 5TD_XX>GTC_VECTOR ( 3 DCffiiTC ?); a r b:I^STD2tMIC?ysCOT STD_DOGICJ j|E=iD ENTITYS ARTHTTEZTTTRH rtl CF ir :^J£4al 15SIGNAL 5elsSTD_L©GIC -_VECTOR (1 BWNTO .?事■ BEGIN,FRCCE55(ZLnpUT ;/ aeL) IS BEGIPTIF {S*l-"0O*)ZMEM input (O);ELSXFI3el="OZe > 二三E¥kmm ?工? wE^SXF I ael-"10*P TH£^y<-i npuiE ?学〉:yc-lnpuEqm):END IFJEND PR&Cr35:END ARCHITECTTURE rrl ::波形图:y<= input (2); Ey<= input (3);本次实验学习了组合逻辑电路、编码器的功能与定义,学习了Verilog和VHD语言,同时熟悉了利用Quartus II开发数字电路的根本流程和Quartus II 软件的相关操作,学会了使用Vector Wav被形仿真.实验过程中也遇到了很多自己不能解决的问题,在同学和老师的帮助下算是知道问题的所在,有待在今后的学习中不断完善.指导教师意见签名:年月日实验总结。
实验二四选一多路选择器的设计
实验二四选一多路选择器的设计姓名:庞啟明学号: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…..”的对话框,选择“是”自动创建工程。
这里先选择“否”,即暂时不创建工程流程。
四选一多路选择器三种方法
四选⼀多路选择器三种⽅法四选⼀多路选择器三种⽅法module MUX41a(a,b,c,d,s1,s0,y); input a,b,c,d;input s1,s0;output y;reg y;always@(a or b or c or d or s1or s0); begin:MUX41case({s1,s0})2'b00:y<=a;2'b01:y<=b;2'b10:y<=c;2'b11:y<=d;default:y<=a;endcaseendendmodule计数器module CTR(CLK,Q,R);input CLK,R;output[3:0]Q;reg[3:0]Q;always@(posedge CLK or negedge R)if(!R)Q<=0;else Q<=Q+4'b0001;endmoduleD触发器module DFF(CLK,D,Q,RST0,RST1);input CLK,D,RST0,RST1;output Q;reg Q;always@(posedge CLK or negedge RST1) begin if(!RST1)Q<=0; else if(RST0==1)Q<=0;else if(RST0==0)Q<=D;endendmoduleSR锁存器module SR(S,R,CLK,RD,Q);input S,R,RD,CLK;output Q;reg Q;wire[3:0]H;assign H={CLK,RD,S,R};always@(*)begincase(H)H<=4'b1000:Q<=Q; H<=4'b0:Q<=0; H<=4'b?1??:Q<=0; H<=4'b1010:Q<=1;H<=4'b1001:Q<=0; default:Q<=0; endcaseendendmodule⼆进制转换成格雷码module btog(b,g); input[3:0]b;output[3:0]g; assign g[3]=b[3]; assign g[2]=b[3]^b[2]; assign g[1]=b[2]^b[1]; assign g[0]=b[1]^b[0]; endmodule 格雷码转换⼆进制module gtob(b,g); input[3:0]g;output[3:0]b;assign b[3]=g[3];assign b[2]=g[3]^g[2];assign b[1]=g[2]^g[1];assign b[0]=g[1]^g[0];endmodule乘法器module mul2(H,F,R);input[1:0]H,F;output[3:0]R;assign R[0]=H[0]&F[0];assign R[1]=(H[1]&F[0])^(H[0]&F[1]);assign R[2]=(H[1]&F[0]&H[0]&F[1])^(H[1]&F[1]); assign R[3]=H[1]&F[0]&H[0]&F[1]&H[1]&F[1]; //*assign R= {R[3],R[2],R[1],R[0]};/*//*assign H={H[1],H[0]};/*//*assign F={F[1],F[0]};/*Endmodule七段数码管显⽰module SMG(A,B);input[3:0]A;output[6:0]B;reg[6:0]B;always@(A)case(A)4'b0000:B<=7'b0111111;4'b0001:B<=7'b0000110;4'b0010:B<=7'b1011011;4'b0011:B<=7'b1001111;4'b0100:B<=7'b1100110;4'b0101:B<=7'b1101101;4'b0110:B<=7'b1111101;4'b0111:B<=7'b0000111;4'b1000:B<=7'b1111111;4'b1001:B<=7'b1101111;4'b1010:B<=7'b1110111;4'b1011:B<=7'b1111100;4'b1100:B<=7'b0111001;4'b1101:B<=7'b1011110;4'b1110:B<=7'b1111001;4'b1111:B<=7'b1110001;default:B<=7'b0111111;endcaseendmodule同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效优点:a、有利于仿真器的仿真。
实验五--4选1多路复用器和4位比较器设计与仿真
实验五 4选1多路复用器和4位比较器设计与仿真班级信息安全一班姓名邓一蕾学号2指导老师袁文澹一、实验目的1.熟悉QuartusⅡ仿真软件的基本操作,并用VHDL语言和逻辑图设计四选一多路选择器,4位比较器。
二、实验内容1.参照芯片74LS153的电路结构,用逻辑图和VHDL语言设计四选一多路复用器;2.从QuartusⅡ中取7485器件(比较器)进行仿真与分析;用VHDL语言设计4位比较器,接着进行仿真与分析,电路逻辑结构参照芯片74x85三.实验原理1.(1)四选一多路选择器逻辑电路的原理4选1多路选择器,GN为使能端,AB为选择通道控制端,c0,c1,c2,c3为数据输入端.Y为输出端。
当GN为1时,y=0;当GN为0,AB=00时,Y为c0的值;当GN为0,AB=01时,Y为c1的值;当GN为0,AB=10时,Y为c2的值;当GN为0,AB=11时,Y为c3的值;(2)通过实验实现逻辑的原理2.(1)4位比较器的逻辑电路图A0,B0,A1,B1,A2,B2,A3,B3为相比较数输入端,ALBI,AEBI,AGBI为级联输入端ALBO,AEBO,AGBO为比较输出端。
2)通过实验实现逻辑的逻辑功能表为四、实验方法与步骤实验方法:采用基于FPGA进行数字逻辑电路设计的方法。
采用的软件工具是QuartusII软件仿真平台,采用的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱。
1.4选1多路选择器实验步骤:编写源代码。
打开QuartusⅡ软件平台,点击File中得New建立一个文件。
编写的文件名与实体名一致,点击 as以“.vhd”为扩展名存盘文件。
2、按照实验箱上FPGA的芯片名更改编程芯片的设置。
操作是点击Assign/Device,选取芯片的类型。
建议选“Altera的EPF10K20TI144_4”3、编译与调试。
确定源代码文件为当前工程文件,点击Complier进行文件编译。
实验三 4选1多路选择器设计实验
实验三 4选1多路选择器设计实验一、实验目的进一步熟悉QuartusII的VHDL文本设计流程、组合电路的设计仿真和测试。
二、实验原理四选一多路选择器设计时,定义输入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。
这样即可实现四选一数据选择的功能。
三、实验仪器(1)配套计算机及Quartus II 软件四、实验内容实验内容一:根据以下流程,利用QuartusII完成四选一多路选择器的文本编辑输入和仿真测试等步骤,给出仿真波形。
实验内容二:在试验系统上硬件测试,验证此设计的功能。
对于引脚锁定以及硬件下载测试。
输出信号接蜂鸣器。
最后进行编译、下载和硬件测试实验(通过选择键1、键2,控制S0,S1,可使蜂鸣器输出不同音调)。
实验内容三:对VHDL不同描述方式的四选一多路选择器进行硬件实验,比较他们的特性。
五、程序设计其示意框图如下:其中输入数据端口为a、b、c、d,s1、s2为控制信号,Y为输出。
令s1s2=“00”时,输出Y=a;令s1s2=“01”时,输出Yb ; 令s1s2=“10”时,输出Y=c ; 令s1s2=“11’ 时,输出Y=d ;a输入 b Y数据 cdS1 s2真值表如下:输入输出X s1 s2Y a 0 0a b 0 1 b c 1 0 c d 1 1d六、 VHDL 仿真实验(1)建立文件夹E :\alteral\edashiyan\mux41a,启动QuartusII 软件工作平台,打开并建立新工程管理窗口,完成创建工程。
实验二、4选1多路选择器实验
实验2 4选1多路选择器实验一实验目的1.熟悉QuartusII的VHDL文本设计流程全过程,学习计数器的设计与仿真2.熟悉文本输入及仿真步骤。
3.掌握组合逻辑电路的静态测试方法。
4.初步了解可编程器件设计的全过程。
二实验仪器设备1 PC机,1台2 QuartusII系统三实验原理1 参考教材习题中的相关内容;2 根据老师教学演示的相关内容。
3 阅读并熟悉本次实验内容。
四实验内容用VHDL语言设计一个4选1多路选择器,并进行编辑,编译,仿真。
要求(1) 根据习题所给的参考原理框图进行VHDL的编辑;(2) 多种方法设计的4选1多路选择器;(3) 对于所设计的程序进行编译,检查纠错。
(4)程序完善之后进行程序的仿真并进行波形的记录与分析。
五实验参考程序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 ISSIGNAL S:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINS<=s0&s1; --并置操作,获得二维矢量数据类型PROCESS(s0,s1,a,b,c,d) --敏感信号BEGINCASE S ISWHEN"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;六. 实验仿真图形。
实验五 4选1多路复用器和4位比较器设计与仿真
实验五 4选1多路复用器和4位比较器设计与仿真班级信息安全一班姓名邓一蕾学号201208060106指导老师袁文澹一、实验目的1.熟悉QuartusⅡ仿真软件的基本操作,并用VHDL语言和逻辑图设计四选一多路选择器,4位比较器。
二、实验内容1.参照芯片74LS153的电路结构,用逻辑图和VHDL语言设计四选一多路复用器;2.从QuartusⅡ中取7485器件(比较器)进行仿真与分析;用VHDL语言设计4位比较器,接着进行仿真与分析,电路逻辑结构参照芯片74x85三.实验原理1.(1)四选一多路选择器逻辑电路的原理4选1多路选择器,GN为使能端,AB为选择通道控制端,c0,c1,c2,c3为数据输入端.Y 为输出端。
当GN为1时,y=0;当GN为0,AB=00时,Y为c0的值;当GN为0,AB=01时,Y为c1的值;当GN为0,AB=10时,Y为c2的值;当GN为0,AB=11时,Y为c3的值;(2)通过实验实现逻辑的原理2.(1)4位比较器的逻辑电路图A0,B0,A1,B1,A2,B2,A3,B3为相比较数输入端,ALBI,AEBI,AGBI为级联输入端ALBO,AEBO,AGBO为比较输出端。
2)通过实验实现逻辑的逻辑功能表为四、实验方法与步骤实验方法:采用基于FPGA进行数字逻辑电路设计的方法。
采用的软件工具是QuartusII软件仿真平台,采用的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱。
1.4选1多路选择器实验步骤:编写源代码。
打开QuartusⅡ软件平台,点击File中得New建立一个文件。
编写的文件名与实体名一致,点击File/Save as以“.vhd”为扩展名存盘文件。
2、按照实验箱上FPGA的芯片名更改编程芯片的设臵。
操作是点击Assign/Device,选取芯片的类型。
建议选“Altera的EPF10K20TI144_4”3、编译与调试。
确定源代码文件为当前工程文件,点击Complier进行文件编译。
CMOS四选一多路选择器的线路设计与版图设计
vf D Gnd PULSE (0 5 15n 2n 2n 25n 50n).tran 1n 400n.print tran v(ctrl1) v(ctrl2) v(A) v(B) v(C) v(D) v(F)* Main circuit: Module0M1 C N1 N5 Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24uM2 N1 ctrl1 Gnd Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u M3 N18 ctrl2 Gnd Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u M4 A ctrl1 N5 Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24uM5 B ctrl1 N2 Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24uM6 D N1 N2 Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24uM7 N5 ctrl2 F Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24uM8 N2 N18 F Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24uM9 C ctrl1 N5 Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24uM10 A N1 N5 Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24uM11 N1 ctrl1 Vdd Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u M12 N18 ctrl2 Vdd Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u M13 B N1 N2 Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24uM14 D ctrl1 N2 Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24uM15 N5 N18 F Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24uM16 N2 ctrl2 F Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u* End of main circuit: Module0电路图瞬时分析波形图:版图设计:内容(方法、步骤、要求或考核标准及所需工具、设备等)一、实训设备与工具1.PVI计算机一台;2.Tanner Pro集成电路设计软件二、项目总体要求采用全CMOS线路结构,实现如下电路功能:对应选择信号的四种组合,将输入数据信号一一传送到输出端。
VHDL实验 4选1多路选择器
VHDL实验报告学院: 理学院专业:电子信息科学与技术班级:电科091END IF;END PROCESS; PROCESS进程语句结束END ARCHITECTURE rtl;1.实验源程序如下:实验步骤与数据82. 创建文件夹,保存文件。
3.选择芯片为‘EP1C6Q240C8’。
4. 完成设置,显示文件信息。
从显示中我们看到项目和实体名为:MUX4A1,其中只有一个文件,芯片为Cyclone系列的EP1C6Q240C8。
5.运行通过6.运行后的RTL视图7.波形分析(1)添加文件和引脚。
(2)设置输入信号。
可以对输入进行设置.结果分析:①当b='0',a='0'时候,选择出input(0),②当b='0',a='1',时候,选择出input(1)③当b='1',a='0'时候,选择出input(2),④当b='1',a='1'时候,选择出input(3),符合程序结果8.配置引脚⑴选择“Assignments”菜单的“Pins”命令,打开引脚编辑窗口。
四选一数据选择器的引脚分配如下:(2)在设置完引脚后,再次对程序进行编译。
这样就把程序与FPGA的引脚联系起来,这样才能将程序下载到FPGA 开发系统中进行运行仿真。
下载到FPGA中,并验证程序的运行结果。
(3)配置硬件驱动为“ByteBlassterMV[LPT1]”,然后“start”下载,到下载为100%即可完成和对程序进行试验。
9.实验结果。
四选一数据选择器
四选一数据选择器
数据选择器(data selector) 根据给定的输入地址代码,从一组输入信号中选出指定的一个送至输出端的组合逻辑电路。
有时也把它叫做多路选择器或多路调制器。
在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关
图所示的是四选一数据选择器的原理图。
图中的D0、D1、D2、D3是四个数据输入端,Y为输出端,A1、A0是地址输入端。
从表中可见,利用指定A1A0的代码,能够从D0、D1、D2、D3这四个输入数据中选出任何一个并送到输出端。
因此,用数据选择器可以实现数据的多路分时传送。
此外,数据选择器还广泛用于产生任意一种组合逻辑函数。
在图示电路中,若将Y看成是A0、A1及D0、D1、D2、D3的函数,则可写成
图1
如果把A1、A0视为两个输入逻辑变量,同时把D0、D1、D2和D3取为第三个输入逻辑变量A2的不同状态(即A2、/A2、1或0),便可产生所需要的任何一种三变量A2、A1、A0的组合逻辑函数。
可见,
利用具有n位地址输入的数据选择器可以产生任何一种输入变量数不大于n +1的组合逻辑函数。
其工作原理是你给A1A0一组信号比如1 0 那么就相当于给了他一个2进制数字2 也就相当于选通了D2这个输入端这个时候输出Y 输出的就是D2的信号
D2是什么Y就输出什么
输出表。
四选一多路选择器原理
四选一多路选择器原理
多路选择器是一种基本的数电器件,它具有多个数据输入端和一个控制端,通过控制端选择数据输入端的某一个输入,并将其输出。
四选一多路选择器的意思是有四个数据输入端,一个控制端,在控制端的控制下选择其中一个输入端作为输出端输出。
其实现原理是利用多个开关或传输门进行控制,将所需输入的数据传递到输出端。
在数字电路中,多路选择器是实现多种逻辑功能的重要器件之一,有着广泛的应用。
- 1 -。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。
经过以上步骤后,软件设计部分基本完成。
四、本课程学习的一点心得
通过这门课的学习,自己在电子硬件设计方面的知识又有了一定的补充,但是由于动手偏少,加之没有实战环境,所以仍需要更多的训练,同时也希望学校能在经费方面给与支持,使得老师能够在机房边上机边授课,这样的效果会更好。
最后谢谢郭老师的教诲,希望能有更多的机会向您请教。
学院:自动化学院
学号:036099149
姓名:张晓峰
日期:2003-12-28。