EDA四选一选择器设计

合集下载

EDA:实验六2选1和4选1多路选择实验

EDA:实验六2选1和4选1多路选择实验

实验六 2选1和4选1多路选择实验班级:通信1121 姓名:王密学号:1121302230一、实验目的:1、了解2选1和4选1的工作原理和实现的方法。

2、实现两个多路选择器,一个2选1,一个4选1。

3、学会用于VHDL语言进行程序设计。

二、实验原理:2选1当选择输入S为L时,Y输出A, 当S为H时,Y输出B。

当选择输入AB为LL时,Y输出D0, 当AB为LH时,Y输出D1, 当AB为HL时,Y输出D2,当AB为HH时,Y输出D3。

说明:sw1选择是控制4选1,还是2选1,sw1=1,为4选1,sw1=0,为2选1。

sw3,sw2为4选1的地址,sw4为2选1的地址。

三、实验连线:1、将EP2C5适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG口连接起来,万用下载区右下角的电源开关拨到 SOPC下载的一边。

2、请将JPLED1短路帽右插,JPLED的短路帽全部上插。

3、将实验板左端的JP103全部用短路帽接上(共八个)。

四、实验内容与步骤:(程序:EP2C5\muxsel\muxsel.sof)1、打开Quartus II 6.0软件,点击“File→OpenP roject”出现如下的对话框(图9.1),选中muxsel,点打开即可;图9.12、点击“Tools-Programmer”后出现如下的对话窗口,3、在点”Edit→Add File………”出现如下对话框(图9.2),在图9.3对话框中,选中EP2C5/muxsel/muxsel.sof项目后点击打开回到Programmer对话框, 在下载对话窗口中“选中Program/ Configure”,点击“Start”即进行下载。

图9.2图9.3现将muxsel.vhd原程序作如下说明:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY liu123 ISPORT (SW1:IN BOOLEAN;SW2:IN STD_LOGIC;SW3:IN STD_LOGIC;SW4:IN BOOLEAN;LED:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END liu123;ARCHITECTURE ADO OF liu123 ISSIGNAL RST_MUXSEL: STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL RST_MUXSEL2: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINPROCESS(SW1,SW2,SW3)beginIF (SW2='0' AND SW3 ='0') THEN RST_MUXSEL<="10101010";ELSIF (SW2='0' AND SW3='1' )THEN RST_MUXSEL<="01010101";ELSIF (SW2='1' AND SW3='0')THEN RST_MUXSEL<="10001000";ELSIF (SW2='1' AND SW3='1') THEN RST_MUXSEL<="01110111";ELSE RST_MUXSEL<="XXXXXXXX";END IF;E ND PROCESS;PROCESS (SW4)BEGINIF SW4 THENRST_MUXSEL2<="10100101";ELSERST_MUXSEL2<="01011010";END IF;END PROCESS;PROCESS(SW1,RST_MUXSEL,RST_MUXSEL2)BEGINcase sw1 iswhen true => LED<=RST_MUXSEL;when false => LED<=RST_MUXSEL2;END case;END PROCESS;END ADO;引脚分配(Cyclone EP2C5Q208C8):sw1-P43,sw2-P44,sw3-P45,sw4-P46,led0-P13,led1-P14,led2-P15,led3-P30,led4-P3 1,led5-P33,led6-P34,led7-P35,管脚标号led0到led7分别接到8位的LED流水灯上,使用高低电平观察输出的结果,sw1到sw4接到拨码开关上,。

实验一四选一数据选择器的设计

实验一四选一数据选择器的设计

实验一四选一数据选择器的设计实验目的:设计并实现一个四选一数据选择器,可以将四个输入信号中的一个作为输出信号进行传递。

实验原理:四选一数据选择器是多路选择器的一种,主要由输入端、控制端和输出端组成。

输入端有四个信号输入线,控制端有两个控制输入线,输出端有一个信号输出线。

通过控制输入线的不同组合,可以选择其中一个输入信号传递到输出端。

实验材料与器件:1.1片74LS153(二选四数据选择器)芯片2.4个开关按钮3.连接线4.电源线5.示波器(可选)实验步骤:1.连接电路:a. 将芯片74LS153的Vcc引脚连接到正极电源线,将GND引脚连接到负极电源线。

b.将芯片的1A、1B、2A、2B四个输入引脚分别连接到四个开关按钮。

c.将芯片的S0、S1两个控制输入引脚分别连接到两个控制开关按钮。

d.将芯片的Y输出引脚连接到输出信号线。

e.将电源线接入电源插座,通电。

2.设置控制输入:a.初始状态下,所有控制输入引脚都为低电平状态。

b.可以通过控制两个开关按钮的开关状态来改变控制输入引脚的电平。

3.输出结果观测:a.打开示波器,将其输入端连接到芯片的输出引脚,设置为观测模式。

b.通过改变控制输入的电平状态,可以选择不同的输入信号进行输出。

c.观察示波器上的输出信号波形,确保输出信号与选择的输入信号一致。

4.实验记录:a.记录不同控制输入状态下的输入信号及输出信号。

b.通过对比观测结果,验证芯片的正常工作。

实验注意事项:1.连接电路时,注意电源接线正确,避免短路或电路损坏。

2.实验过程中操作电路和仪器时,保持手部干燥,并确保安全。

3.实验完成后,关闭电源,将电路和仪器恢复原状,并整理实验记录。

4.若没有示波器,可以通过观察输出信号线连接的LED灯的亮灭来判断输出信号的状态。

实验结果与讨论:在实验中,我们设计并实现了一个四选一数据选择器,并通过改变控制输入的电平状态来选择不同的输入信号进行输出。

通过观察观测结果,我们可以发现当控制输入引脚的电平状态为低-低时,选择1A作为输出;当为低-高时,选择1B作为输出;当为高-低时,选择2A作为输出;当为高-高时,选择2B作为输出。

EDA4选一数据选择器程序

EDA4选一数据选择器程序

4选一LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX41A_ZXT ISPORT (A1,A0: IN STD_LOGIC;EN: IN STD_LOGIC;D3,D2,D1,D0: IN STD_LOGIC;Y: OUT STD_LOGIC);END ENTITY MUX41A_ZXT;ARCHITECTURE BHV OF MUX41A_ZXT ISSIGNAL A :STD_LOGIC_VECTOR(2 DOWNTO 0); BEGINA <= EN & A1 & A0;Y <= D0 WHEN A="000" ELSED1 WHEN A="001" ELSED2 WHEN A="010" ELSED3 WHEN A="011" ELSE'Z';END ARCHITECTURE BHV;3—8译码器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DEC38A_ZXT ISPORT ( A2,A1,A0: IN STD_LOGIC;S1,S2,S3: IN STD_LOGIC;Y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ENTITY DEC38A_ZXT;ARCHITECTURE EX2 OF DEC38A_ZXT ISSIGNAL A: STD_LOGIC_VECTOR(5 DOWNTO 0); BEGINA <= S1 & S2 & S3 & A2 & A1 & A0;WITH A SELECTY <= "11111110" WHEN "100000","11111101" WHEN "100001","11111011" WHEN "100010","11110111" WHEN "100011","11101111" WHEN "100100","11011111" WHEN "100101","10111111" WHEN "100110","01111111" WHEN "100111","ZZZZZZZZ" WHEN OTHERS; END ARCHITECTURE EX2;8-3编码器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ENC83A_ZXT ISPORT(I7,I6,I5,I4,I3,I2,I1,I0:IN STD_LOGIC;Y2,Y1,Y0: OUT STD_LOGIC);END ENTITY ENC83A_ZXT; ARCHITECTURE EX4 OF ENC83A_ZXT IS SIGNAL I: STD_LOGIC_VECTOR (7 DOWNTO 0); SIGNAL Y: STD_LOGIC_VECTOR (2 DOWNTO 0); BEGINI <= I7&I6&I5&I4&I3&I2&I1&I0; WITH I SELECTY <= "000" WHEN "11111110","001" WHEN "11111101","010" WHEN "11111011","011" WHEN "11110111","100" WHEN "11101111","101" WHEN "11011111","110" WHEN "10111111","111" WHEN "01111111","ZZZ" WHEN OTHERS;Y2 <= Y(2);Y1 <= Y(1);Y0 <= Y(0);END ARCHITECTURE EX4;共阴极数码管LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DEC_DISPLAY_ZXT ISPORT(EN:IN STD_LOGIC;A: IN STD_LOGIC_VECTOR(3 DOWNTO 0);Ya,Yb,Yc,Yd,Ye,Yf,Yg: OUT STD_LOGIC); END ENTITY DEC_DISPLAY_ZXT; ARCHITECTURE EX3 OF DEC_DISPLAY_ZXT IS SIGNAL S: STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL Y: STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINS <= EN&A;WITH S SELECTY <= "1111110" WHEN "10000","0110000" WHEN "10001","1101101" WHEN "10010","1111001" WHEN "10011","0110011" WHEN "10100","1011011" WHEN "10101","1011111" WHEN "10110","1110000" WHEN "10111","1111111" WHEN "11000","1111011" WHEN "11001","0000000" WHEN OTHERS;Ya <= Y(6);Yb <= Y(5);Yc <= Y(4);Yd <= Y(3);Ye <= Y(2);Yf <= Y(1);Yg <= Y(0);END ARCHITECTURE EX3;#include <reg51.h>sbit s1=P3^5;void delay(){ unsigned char i,j;for (i=0;i<255;i++)for(j=0;j<255;j++);}void main(){unsigned char i;unsigned char temp;P0=0xff;while(s1==1){temp=0x01;for(i=0;i<8;i++){P0=~temp;delay();temp=temp<<1;}}while(s1==0){temp=0x80;for(i=0;i<8;i++) {{unsigned char i; unsigned char temp; P0=0xff;while(s1==1) {temp=0x01;for(i=0;i<8;i++){P0=~temp;delay();temp=temp<<1;}}while(s1==0) {temp=0x80;for(i=0;i<8;i++) {P0=~temp;delay();temp=temp>>1; }}。

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之基本触发器和四选一数据选择器

目录摘要 (I)1 引言 (1)2 设计思路 (2)2.1 设计的目的 (2)2.2 需求分析 (2)2.3 设计的基本内容 (2)3 EDA、VHDL简介 (3)3.1 EDA技术 (3)3.2 硬件描述语言——VHDL (4)4 设计规划过程 (4)4.1四选一数据选择器的工作原理 (5)4.2基本触发器器的工作原理 (5)4.3课程设计中各个模块的设计 (6)5 结束语 (9)参考文献 (9)附录 (11)1 引言现代电子产品正在以前所未有的革新速度,向着功能多样化,体积最小化,功耗最低化的方向迅速发展。

它与传统电子产品在设计上的显著区别,一是大量使用大规模可编程逻辑器件,以提高产品性能,缩小产品体积,降低产品消耗;二是广泛运用现代计算机技术,以提高电子设计自动化程度,缩短开发周期,提高产品的竞争力。

EDA技术正是为了适应现代电子产品设计的要求,吸收各相关学科最新成果而形成的一门新技术。

它采用可编程器件,通过设计芯片来实现系统功能。

采用硬件描述语言作为设计输入和库(LibraLy)的引入,由设计者定义器件的内部逻辑和管脚,将原来由电路板设计完成的大部分工作故在芯片的设计中进行。

由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量和难度,有效增强了设计的灵活性,提高了工作效率。

并且可减少芯片的数量,缩小系统体积,降低能源消耗,提高了系统的性能和可靠性。

能全方位地利用计算机自动设计、仿真和调试。

本次设计中,系统基于数据选择器及D触发器,JK触发器,T触发器的原理,使用EDA技术在FPGA中设计了四选一数据选择器和基本触发器,采用硬件描述语言VHDL按模块化方式进行设计,然后进行编程,时序仿真等。

在数据选择器中,用拨码开关作四位数据及两位控制端的输入,LED作输出,通过拨码开关组成控制输入端s1和s0不同组合,观察LED与数据输入端a,b,c,d的关系,验证4选一数据选择器设计的正确性,通过VHDL语言实现了本设计的控制功能,按不同的键实现不同的功能,根据数据选择器的特性方程设计输出状态。

EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)

EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)

EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)EDA实验报告实验14选1数据选择器的设计一、实验目的1.学习EDA软件的基本操作。

2.学习使用原理图进行设计输入。

3.初步掌握器件设计输入、编译、仿真和编程的过程。

4.学习实验开发系统的使用方法。

二、实验仪器与器材1.EDA开发软件一套2.微机一台3.实验开发系统一台4.打印机一台三、实验说明本实验通过使用基本门电路完成4选1数据选择器的设计,初步掌握EDA设计方法中的设计输入、编译、综合、仿真和编程的过程。

实验结果可通过实验开发系统验证,在实验开发系统上选择高、低电平开关作为输入,选择发光二极管显示输出电平值。

本实验使用Quartus II 软件作为设计工具,要求熟悉Quartus II 软件的使用环境和基本操作,如设计输入、编译和适配的过程等。

实验中的设计文件要求用原理图方法输入,实验时,注意原理图编辑器的使用方法。

例如,元件、连线、网络名的放置方法和放大、缩小、存盘、退出等命令的使用。

学会管脚锁定以及编程下载的方法等。

四、实验要求1.完成4选1数据选择器的原理图输入并进行编译;2.对设计的电路进行仿真验证;3.编程下载并在实验开发系统上验证设计结果。

五、实验结果4选1数据选择器的原理图:仿真波形图:管脚分配:实验2 四位比较器一、实验目的1.设计四位二进制码比较器,并在实验开发系统上验证。

2.学习层次化设计方法。

二、实验仪器与器材1.EDA 开发软件 一套 2.微机 一台 3.实验开发系统 一台 4.打印机 一台 5.其它器件与材料 若干 三、实验说明本实验实现两个4位二进制码的比较器,输入为两个4位二进制码0123A A A A 和0123B B B B ,输出为M(A=B ),G (A>B )和L (A<B )(如图所示)。

用高低电平开关作为输入,发光二极管作为输出,具体管脚安排可根据试验系统的实际情况自行定义。

四选一多路选择器三种方法

四选一多路选择器三种方法

四选⼀多路选择器三种⽅法四选⼀多路选择器三种⽅法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、有利于仿真器的仿真。

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为输出端。

EDA技术4选1多路选择器实验报告

EDA技术4选1多路选择器实验报告

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软件进行设计、编译和下载程序,我们能够更加便捷地进行数字电路实验。

此外,通过实际操作,我们学会了使用数字逻辑实验箱、万用表等实验设备,提高了实践操作能力。

EDA技术_项目3_数据选择器电路设计

EDA技术_项目3_数据选择器电路设计
31
(1)程序包说明(包首)
语法:
package 程序包名
{ 包说明项 } end 程序包名;
is
包声明项可由以下语句组成: use 语句(用来包括其它程序包); 类型说明;子类型说明;常量说明; 信号说明;子程序说明;元件说明。
32
例:程序包说明
33
(2)程序包包体
程序包的内容:子程序的实现算法。 包体语法: package body 程序包名 is
配置(Configuration)
42
库的使用语法:
library 库名; 程序包的使用有两种常用格式: use 库名.程序包名.项目名 use 库名.程序包名.All; 例:
library ieee; use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.conv_integer;
36
with input select drive<=B“1111110” when B“0110000” when B“1101101” when B“1111001” when B“0110011” when B“1011011” when B“1011111” when B“1110000” when B“1111111” when B“1111011” when B“0000000” when end architecture art;
38
Type STD_LOGIC:
9 logic value system („U‟, „X‟, „0‟, „1‟, „Z‟, „W‟, „L‟, „H‟, „-‟) • „W‟, „L‟, „H” weak values (Not supported by Synthesis) • „X‟ - (not „x‟)used for unknown • „Z‟ - (not „z‟) used for tri-state • „-‟ Don‟t Care

4选1数据选择器

4选1数据选择器

电子设计技术课程设计四位加法器姓名:黄政学号:2011059605班级:通信工程zb421101指导教师:郑雪娇2013年12月26日一、设计目的1. 熟练使用Verilog HDL语言在mux plusⅡ软件平台上编写程序,完成编译工作。

2.学习VHDL程序中数据对象、数据类型、顺序语句、并行语句的综合使用,了解VHDL程序的基本结构。

3.掌握使用EDA工具设计数字系统的设计思路和设计方法。

学习VHDL基本逻辑电路的综合设计应用。

4.学习实验开发系统的使用方法。

二、设计内容1、设计并调试好一个4选1数据选择器。

2、仿真、分析结果、绘制波形三、设计过程1、程序的设计打开mux plusⅡ,单击file,选择new ,选择Editor file类型。

进行文本编辑,编辑完成后并以“max4_1.vhd”(注意后缀是.Vhd)为文件名,存在自己建立的工程目录D:\(自己的文件夹)内。

进行存盘操作时,系统在弹出的存盘操作对话框中,自动保留了上一次存盘时的文件名和文件目录,不要随意单击“OK”按钮结束存盘,一定要填入正确的文件名并选择正确的工程目录后,才能单击“OK”按钮存盘,这是上机实验时最容易忽略和出错的地方。

程序设计内容如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX41A ISPORT(D3,D2,D1,D0,A1,A0,EN:IN STD_LOGIC;Y:OUT STD_LOGIC);END ENTITY MUX41A;ARCHITECTURE ONE OF MUX41A ISBEGINY<=D0 WHEN A1='0' AND A0='0' AND EN='1'ELSE D1 WHEN A1='0' AND A0='1' AND EN='1'ELSE D2 WHEN A1='1' AND A0='0' AND EN='1'ELSE D3 WHEN A1='1' AND A0='1' AND EN='1'ELSE 'Z';END ARCHITECTURE ONE;3、功能仿真设计文件仿真,是对电路设计的一种间接的检测方法。

EDA四选一选择器设计

EDA四选一选择器设计

4选1数据选择器1·设计背景和设计方案1·1设计背景该设计是以数字电子技术为基础,实现数据从四位数据中按照输入的信号选中一个数,来实现所期望的逻辑功能。

1·2设计方案用拨码开关作四位数据及两位控制端的输入,LED 作输出,通过拨码开关组成控制输入端s1和s0不同组合,观察LED 与数据输入端a,b,c,d 的关系,验证四选一数据选择器设计的正确性。

使用逻辑门电路与、或、非的组合来表达4选1数据选择器,通过控制输入的信号来控制输出的信号值。

其逻辑电路图如下:3021D D D D其示意框图如下:其中输入数据端口为D0、D1、D2、D3,A 、A ’为控制信号,Y 为输出。

令AA ’=“00”时,输出Y=D0;令AA ’=“01”时,输出Y=D1;令AA ’=“10”时,输出Y=D2;令AA ’=“11’ 时,输出Y=D3;D0输入 D 1 数据 D 2 D 3真值表如下:D3 1 1 D32·方案实施1)程序12·1·1设计思路四选一多路选择器设计时,定义输入S为标准以内漏记为STD_LOGIC,输出的信号Z的数据类型定义为2位标准逻辑矢量位STD_LOGIC_VECTOR( 1 DOWNTO 0 ).使用LIBRATY语句和USE语句,来打开IEEE库的程序包STD_LOGIC_1164.ALL。

当输入信号时,程序按照输入的指令来选择输出,例如输入信号为“00”时,将a的值给z,进而输出z的值,输入信号为“11”是,将a的值给z,进而输出z的值。

若输入信号是已经定义的四个信号之外的值时(即当IF条件语句不满足时),输出值为x,并将x的值给输出信号z。

这样即可实现四选一数据选择的功能。

2·1·2程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 isPORT (a,b,c,d :IN STD_LOGIC;s :IN STD_LOGIC_VECTOR(1 DOWNTO 0);z : OUT STD_LOGIC);END mux41;ARCHITECTURE one OF mux41 ISBEGINPROCESS( s,a,b,c,d)BEGINCASE s ISWHEN "00" => z <= a;WHEN "01" => z <= b;WHEN "10" => z <= c;WHEN "11" => z <= d;WHEN OTHERS => z <=null;END CASE;END PROCESS;END one;2·1·3运行结果当输入信号“00”时,输出信号z的值为‘a’;当输入信号“01”时,输出信号z的值为‘b’;当输入信号“10”时,输出信号z的值为‘c’;当输入信号“11”时,输出信号z的值为‘d’;2·1·4波形仿真及描述输入:a 的波形周期为10ns,b的波形周期为5ns,c的波形周期为15ns,d的波形周期为8ns。

(VHDL实验报告)四选一数据选择器的设计

(VHDL实验报告)四选一数据选择器的设计
四选一数据选择器有六个输入端(其中四个为数据输入端,
两个为控制信号输入端)和一个输出端。其真值表如下图 所示:
四选一多路选择器的 VHDL 描述非常灵活,可以采用多种语
句来实现。本实验要求分别用VHDL顺序语句和并行语句来 实现。
四、实验内容
在本实验中,用六个拨动开关来表示四选一数据选择器四
五、实验步骤
1、建立工程文件
1)运行QUARTUSII 软件。 2)选择软件中的菜单 File>New Project Wizard, 新建一个工程。 3)点击NEXT进入工作目录,设定工程名和实体名。 4)点击NEXT,进入下一设定对话框,(本次实验选 用Cyclone II系列芯片EP2C35F672C8),在对话框的左上方 的 Family 下拉菜单中选取 CycloneII ,在中间右边的Pin count下拉菜单中选取 672,在 Speed grade 下拉菜单中选 取 8,在左下方的 Available devices 框中选取 EP2C35F672C8 。点击 NEXT 完成器件的选取,进入 EDA TOOL设定界面。 5)按默认选项,点击NEXT出现新建工程以前所有的 设定信息,再点击FINISH完成新建工程的建立。
五、实验步骤
3、管脚分配
1)在前面选择好一个合适的目标器件(在这个实验中选择 为EP2C35F672C8)完成设计的分析综合过程,得到工程的数据文 件以后,需要对设计中的输入、输出引脚指定到具体的器件管脚 号码,指定管脚号码称为管脚分配或管脚锁定。这里介绍两种方 法进行管脚锁定。 2)点击 Assignments 菜单下面的 Assignment Editor, 进入到引脚分配窗口。将弹出的窗口中的 All 改成 pin ,再点 击 List,在 Nodes Found窗口会出现所有信号的名称,点击中间 的按钮则Selected Nodes 窗口下方出现被选择的端口名称。双击 OK 按钮,完成设置。进入管脚分配窗口。 3)依照“硬件与 FPGA 的管脚连接表”分配对应的输入 管脚名 ,依照“LED灯与FPGA管脚连接表”分配对应的输出管脚 名。本次实验的分配关系是:(输入端 D3、D2、D1、D0、sel1、 sel0 分别对应的 FPGA 管脚名为 H8、J8、J9、A4、B5、A6,输 出端 y 对应的 FPGA 管脚名为 G13 ),如下图所示。 4)分配完管脚后,再次进行一次全编译,使分配的管脚

eda实验报告(全加器,四选一数据选择器,交通灯)

eda实验报告(全加器,四选一数据选择器,交通灯)

浙师大数理与信息工程学院学生实验报告实验一简单组合逻辑电路设计1、实验目的熟悉软件使用,了解CPLD设计的过程。

用画逻辑图和直接使用VHDL语言的两种方法进行逻辑设计。

2、实验内容用开关K7,K8作为输入设置,从输出指示LED观察OUT21,22,23,24等的变化。

3、实验条件EDA实验箱、QUARTUS2软件4、实验设计原理图VHDL源程序library ieee;use ieee.std_logic_1164.all;entity shier isPort( k7,k8:in std_logic;out20,out21,out22,out23,out24:out std_logic); end shier;architecture sr of shier isbeginout20<=k7;out21<=not k7;out22<=k7 and k8;out23<=k7 or k8;out24<=k7 xor k8;end sr;波形仿真实验二三八译码器电路设计1、实验目的熟悉软件使用,了解CPLD设计的过程。

用画逻辑图和直接使用VHDL语言的两种方法进行逻辑设计。

2、实验内容用开关K1,K2,K3,K4作为输入设置,组成一个高输出有效的三八译码器,从输出指示LED观察OUT1到OUT8随K1,K1,K3置值的改变而引起相应的变化。

3、实验条件EDA实验箱、QUARTUS2软件4、实验设计原理图VHDL源程序library ieee;use ieee.std_logic_1164.all;entity shisan isport( a,b,c:in std_logic;y:out std_logic_vector(7 downto 0));end shisan;architecture one of shisan isbeginprocess(a,b,c)variable d:std_logic_vector(2 downto 0);begind:=(c&b&a);if d<="000" theny<="00000001";elsif d<="001" theny<="00000010";elsif d<="010" theny<="00000100";elsif d<= "011"theny<="00001000";elsif d<= "100"theny<="00010000";elsif d<="101"theny<="00100000";elsif d<="110" theny<="01000000";elsif d<="111" theny<="10000000";else null;end if;end process;end one;波形仿真实验四四选一数据选择器电路设计1、实验目的熟悉和了解VHDL语言涉及数字电路的流程,掌握完整的EDA设计方法。

四选一数据选择器课程设计

四选一数据选择器课程设计

四选一数据选择器课程设计EDA课程设计报告题目:四选一数据选择器院系班级:设计者:指导老师:设计时间:目录目录............................................................... - 1 - 1、设计目的、要求......................................... - 2 -1.1、设计目的.......................................... - 2 -1.2、系统设计要求.................................. - 2 -1.3、设计工具.......................................... - 3 -2、设计原理及相关硬件................................. - 3 -2.1、系统设计方案及原理...................... - 3 -2.2、硬件原理.......................................... - 4 -3、主要模块设计............................................. - 5 -3.1、模块xy4 ........................................... - 5 -4、系统编译及仿真过程................................. - 6 -4.1、工程建立.......................................... - 6 -4.2、系统编译.......................................... - 7 -4.3、仿真.................................................. - 8 -5、硬件验证过程和分析................................. - 8 -5.1、引脚设置和保护.............................. - 8 -5.2、硬件下载.......................................... - 9 -6、实验参考程序........................................... - 12 -6.1、模块xy4 ......................................... - 12 -7、总结........................................................... - 14 -1、设计目的、要求1.1、设计目的了解并掌握一般设计方法,具备初步的独立设计能力;掌握用VerilogHDL语言程序的基本技能;提高综合运用所学的理论知识独立分析和解决问题的能力;进一步掌握EDA技术的开发流程,学习其独特的运用,进一步的提高自己的动手能力和知识领域。

四选一数据选择器的设计

四选一数据选择器的设计

XX大学实习(实训)报告实习(实训)名称:电工电子实习学院:专业、班级:指导教师:报告人:学号:时间: 2011年7月1日至 2011年7月8日实习主要内容:(1)了解EDA技术的发展及应用(2)掌握VHDL语言的基础知识,熟悉在数字电路系统设计中VHDL程序设计(3)学习MAX+PLUSⅡ软件的应用方法(4)应用EDA技术的设计方法完成4选1数据选择器的设计(采用原理图和文本法两种方法实现),并在MAX+PLUSⅡ上仿真主要收获体会与存在的问题:通过课程设计,发现自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。

同时也体会到设计课的重要性和目的性所在。

同时这次实习也有很多收获,首先我们学会了MAX+PLUSⅡ软件的应用方法,并且能够独立设计出原理图,其次本次设计课培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。

指导教师意见:建议成绩:指导教师签字:年月日备注:实习报告1.目的(1)通过实习掌握maxplus2软件的使用和VHDL语言的基础知识(2)应用maxplus2完成四选一数据选择器的设计,并实现仿真。

2.内容2.1 maxplus2的认识(1)Max+plusⅡ是Altera公司提供的FPGA/CPLD开发集成环境,Altera 是世界上最大可编程逻辑器件的供应商之一。

Max+plusⅡ界面友好,使用便捷,被誉为业界最易用易学的EDA软件。

在Max+plusⅡ上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。

(2)、Max+plusⅡ开发系统的特点很多,比如开放性的界面,编辑过程与结构无关,丰富的设计库,硬件描述语等。

(3)、Max+plusⅡ软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数。

EDA技术4选1多路选择器实验报告

EDA技术4选1多路选择器实验报告

EDA技术4选1多路选择器实验报告实验报告:EDA技术4选1多路选择器1.引言多路选择器是一种常见的组合电路,用于从多个输入信号中选择出一个输出信号。

在数字电路设计中,采用EDA(Electronic Design Automation)技术可以方便地进行多路选择器的设计、模拟和验证。

本实验旨在使用EDA技术设计、模拟和验证一个4选1多路选择器。

2.设计本实验采用Verilog HDL语言进行设计。

首先,我们定义一个4位的输入端口sel,用于选择4个输入信号in0、in1、in2和in3中的一个。

然后,我们定义一个输出端口out,用于输出被选择的信号。

接下来是设计的核心部分,根据4位选择信号sel的不同取值,选择相应的输入信号作为输出信号。

我们使用一个case语句来实现多路选择器的选择功能。

3.仿真为了验证设计的正确性,我们使用EDA技术对多路选择器进行了仿真。

在仿真中,我们可以输入不同的选择信号和输入信号组合,观察输出结果是否符合预期。

通过仿真,我们可以验证多路选择器在不同输入和选择信号组合下的正确性和稳定性。

如果输出结果与预期一致,那么我们可以得出结论:设计的多路选择器是正确的。

4.验证验证是设计过程中非常重要的一步,通过验证可以判断设计是否达到了预期的功能和性能要求。

我们使用EDA技术对多路选择器进行了验证。

在验证过程中,我们更加注重多路选择器的性能指标,如延迟和功耗等。

我们可以通过模拟分析和优化来改进多路选择器的性能。

5.总结本实验通过使用EDA技术设计、模拟和验证了一个4选1多路选择器。

通过实验我们学习了EDA技术在数字电路设计中的作用和应用。

同时,我们了解了多路选择器的基本原理和设计方法,掌握了Verilog HDL语言的设计和仿真技巧。

通过本实验,我们发现EDA技术能够极大地提高数字电路设计的效率和准确性。

通过合理应用EDA技术,我们可以设计出更加可靠、高效的数字电路,并且可以方便地对其进行仿真和验证。

EDA实验报告

EDA实验报告

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

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

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

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

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

仿真分析:仿真结果如下图所示分析:由仿真图可以得到以下结论:当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个段,本实验中用的数码管为共阳极的,接有低电平的段发亮。

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

仿真分析:仿真结果如下图所示:分析:由仿真的结果可以得到以下结论:当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;当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技术4选1多路选择器实验报告

EDA技术4选1多路选择器实验报告
Y
0
0
A
0
1
B
1
0
C
1
1
D
(三)实验仪器及器材
PC机一台;Quartus II软件一套;KHF-5型实验开发系统一套
(四)实验方法及步骤
实验方法及步骤与实验一各个步骤一致,按照实验一进行就行。
1,打开Quartus II开发环境;
2,新建项目;
注意:文件夹名不能用中文,也最好不要用数字;不要将文件夹设在计算机已有的安装目录中,更不要将工程文件直接放在安装目录中。
3、完成软件仿真,管脚配置后下载进行硬件测试。3、完成简单与非门电路的VHDL设计或原理图设计,仿真后下载到实验箱上进行硬件测试。
(二)实验原理:
4选1数据选择器有两个地址输入端:S1、S0;4个数据输入端:D、C、B、A;1个输出端Y。其真值表如表1示。
表14选1数据选择器真值表
地址输入
输出
S0
S1
(五)实验数据及分析处理
源程序
4选1数据选择器--用IF-THEN语句
波形仿真结果
RTL电路图
(六)实验结果体会
实验前熟悉数据选择器的工作原理,实验过程中结合理论进行分析;并且初步掌握了QuartusⅡ环境下4选1数据选择器的VHDL设计或原理图设计。波形仿真时仍遇到问题,通过老师指导解决了那个问题,其他方面基本没问题,达到了实验目的。
实验报告
学院:电子信息工程学院专业:dianzi
电子信息工程技术2014年12月20日星期六
姓名
康杰
学号
2013030341079
班级
2013电技二班
指导师
余华
课程名称
EDA技术与VHDL
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4选1数据选择器
1·设计背景和设计方案
1·1设计背景
该设计是以数字电子技术为基础,实现数据从四位数据中按照输入的信号选中一个数,来实现所期望的逻辑功能。

1·2设计方案
用拨码开关作四位数据及两位控制端的输入,LED 作输出,通过拨码开关组成控制输入端s1和s0不同组合,观察LED 与数据输入端a,b,c,d 的关系,验证四选一数据选择器设计的正确性。

使用逻辑门电路与、或、非的组合来表达4选1数据选择器,通过控制输入的信号来控制输出的信号值。

其逻辑电路图如下:
3
021D D D D
其示意框图如下:
其中输入数据端口为D0、D1、D2、D3,A 、A ’为控制信号,Y 为输出。

令AA ’=“00”时,输出Y=D0;
令AA ’=“01”时,输出Y=D1;
令AA ’=“10”时,输出Y=D2;
令AA ’=“11’ 时,输出Y=D3;
D0
输入 D 1 数据 D 2 D 3
真值表如下:
D3 1 1 D3
2·方案实施
1)程序1
2·1·1
设计思路
四选一多路选择器设计时,定义输入S为标准以内漏记为STD_LOGIC,输出的信号Z的数据类型定义为2位标准逻辑矢量位STD_LOGIC_VECTOR( 1 DOWNTO 0 ).使用LIBRATY语句和USE语句,来打开IEEE库的程序包STD_LOGIC_1164.ALL。

当输入信号时,程序按照输入的指令来选择输出,例如输入信号为“00”时,将a的值给z,进而输出z的值,输入信号为“11”是,将a的值给z,进而输出z的值。

若输入信号是已经定义的四个信号之外的值时(即当IF条件语句不满足时),输出值为x,并将x的值给输出信号z。

这样即可实现四选一数据选择的功能。

2·1·2
程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux41 is
PORT (a,b,c,d :IN STD_LOGIC;
s :IN STD_LOGIC_VECTOR(1 DOWNTO 0);
z : OUT STD_LOGIC);
END mux41;
ARCHITECTURE one OF mux41 IS
BEGIN
PROCESS( s,a,b,c,d)
BEGIN
CASE s IS
WHEN "00" => z <= a;
WHEN "01" => z <= b;
WHEN "10" => z <= c;
WHEN "11" => z <= d;
WHEN OTHERS => z <=null;
END CASE;
END PROCESS;
END one;
2·1·3
运行结果
当输入信号“00”时,输出信号z的值为‘a’;
当输入信号“01”时,输出信号z的值为‘b’;
当输入信号“10”时,输出信号z的值为‘c’;
当输入信号“11”时,输出信号z的值为‘d’;
2·1·4
波形仿真及描述
输入:
a 的波形周期为10ns,b的波形周期为5ns,c的波形周期为15ns,d的波形周期为8ns。

s[1]的波形周期为5ns,s[2]的波形周期为10ns。

输出:
2)程序2
2·2·1
设计思路
定义6个输入信号,一个输出信号,当控制信号A=‘1’时,muxval的值加1,即muxval=muxval+1;当控制信号B=‘1’时muxval的值加2,即muxval=muxval+2。

当输入值为‘i0’时,输出q的值为0,当输入的值为‘i1’时,输出q的值为1,当输入值为‘i2’时,输出q的值为2,当输入值为‘i3’时,输出q的值为3。

2·2·2程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux41 IS
PORT ( i0,i1,i2,i3,a,b : IN STD_LOGIC;
q : OUT STD_LOGIC );
ENS mux4;
ARCHITECTURE b_mux4 OF mux4 IS
BEGIN
Process ( i0,i1,i2,i3,a,b )
Variable muxval : integer rang 7 downto 0;
Begin
muxval :=0;
if ( a = '1' ) then muxval : muxval + 1; end if;
if ( b = '1' ) then muxval : muxval + 2; end if;
case muxval is
when 0 = > q < = i0;
when 1 = > q < = i1;
when 2 = > q < = i2;
when 3 = > q < = i3;
When others = > null;
end case;
end process;
END b_mux4;
2·2·3
运行结果
当输入信号“00”时,输出信号z的值为‘i0’;
当输入信号“01”时,输出信号z的值为‘i1’;
当输入信号“10”时,输出信号z的值为‘i2’;
当输入信号“11”时,输出信号z的值为‘i3’;
2·2·4
波形仿真及描述
输入:
a的波形周期为20ns,b的波形周期为15ns,c的波形周期为20ns,d的波形周期为15ns,s[1]的波形周期为8ns,s[2]的波形周期为16ns。

输出:
3·结果和结论
经过对以上程序的运行和编译,可得出以下仿真图结论和所设计一致。

4·参考文献
[1] 余孟尝主编《数字电子技术基础简明教程》,1998-12。

[2] 潘松黄继业编著《EDA技术使用个教程》,2006-9。

相关文档
最新文档