VHDL语言设计四选一选择器

合集下载

四选一多路选择器

四选一多路选择器

四选一选择器的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); ***信号定义***BEGINsel<=b&a;PROCESS (input,sel) ***进程的定义***BEGINIF(sel="00") THENy<=input(0);ELSIF(sel<="01") THENy<=input(1);ELSIF(sel<="10") THENy<=input(2);ELSEy<=input(3);END IF;END PROCESS;END rtl;三、文本文件的编译及仿真全过程在编辑器中输入并保存了以上四选一选择器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件,如*.cnf,*.rpt,*.snf,*.pof 等。

4选1多路选择器VHDL语言设计

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选择器

4选1选择器
当ab输入不同的选择信号时就可以使inp0inp3中某个相应的输入信号与输出端y接通
第4章 VHDL应用实例
4.1.5 数据选择器
2019年1月17日3时6分
4选1选择器用于四路信号的切换。4选1选择器有4个信号输入端 INP(0)~INP(3),两个信号选择端A、B,一个信号输出端Y。当A、B输入不 同的选择信号时,就可以使INP(0)~INP(3)中某个相应的输入信号与输出 端Y接通。 【例4.10】4选1选择器的VHDL描述
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX41 IS PORT(INP: IN STD_LOGIC_VECTOR(3 DOWNTO 0); A,B:IN STD_LOGIC; Y:OUT STD_LOGIC); END MUX41;
ARCHITECTURE ART OF MUX41 IS
ELSIF (SEL="11")THEN Y<=INP(2);
ELSE Y<=INP(3); END IF;
END PROCESS;
END ART;
2
第4章 VHDL应用实例
2019年1月17日3时6分
【例2.28】用条件信号赋值语句描述的四选一数据选择器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux44 IS PORT(i0,i 1,i2,i3,a,b:பைடு நூலகம்N STD_LOGIC; q:OUT STD_LOGIC); END mux44; ARCHITECTURE aa OF mux44 IS SIGNAL sel: STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN sel<=b & a; q<= i0 WHEN sel="00" ELSE i1 WHEN sel="01" ELSE i2 WHEN sel="10" ELSE i3 WHEN sel="11" ; END aa

VHDL语言设计4选1多路选择器讲解学习

VHDL语言设计4选1多路选择器讲解学习

V H D L语言设计4选1多路选择器4选1多路选择器的VHDL描述要求:THEN语句和CASE语句实现4选1多路选择器,其中选择控制信号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。

一、解法1:用IF_THEN语句实现4选1多路选择器(1)程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT (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 ISSIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0);--定义标准逻辑位矢量数据BEGINs0s1<=s1&s0; --s1相并s0,即s1与s0并置操作PROCESS(s0s1,a,b,c,d)BEGINIF 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;(2)编译的结果如下:编译报告:二、解法2:用CASE语句实现4选1多路选择器(1)程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT (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 ISSIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0);--定义标准逻辑位矢量数据类型BEGINs0s1<=s1&s0; --s1相并s0,即s1与s0并置操作PROCESS(s0s1,a,b,c,d)BEGINCASE s0s1 IS --类似于真值表的case语句WHEN "00" => y <= a;WHEN "01" => y <= b;WHEN "10" => y <= c;WHEN "11" => y <= d;WHEN OTHERS =>NULL ;END CASE;END PROCESS;END case_mux41;(2)编译结果:编译报告:。

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

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

实验二四选一多路选择器的设计姓名:庞啟明学号: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…..”的对话框,选择“是”自动创建工程。

这里先选择“否”,即暂时不创建工程流程。

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

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

实验⼀四选⼀数据选择器的设计实验⼀四选⼀数据选择器的设计⼀、实验⽬的1、熟悉Quartus II软件的使⽤。

2、了解数据选择器的⼯作原理。

3、熟悉EDA开发的基本流程。

⼆、实验原理及内容实验原理数据选择器在实际中得到了⼴泛的应⽤,尤其是在通信中为了利⽤多路信号中的⼀路,可以采⽤数据选择器进⾏选择再对该路信号加以利⽤。

从多路输⼊信号中选择其中⼀路进⾏输出的电路称为数据选择器。

或:在地址信号控制下,从多路输⼊信息中选择其中的某⼀路信息作为输出的电路称为数据选择器。

数据选择器⼜叫多路选择器,简称MUX。

4选1数据选择器:(1)原理框图:如右图。

D0 、D1、D2、D3 :输⼊数据A1 、A0 :地址变量由地址码决定从4路输⼊中选择哪1路输出。

(2)真值表如下图:(3)逻辑图数据选择器的原理⽐较简单,⾸先必须设置⼀个选择标志信号,⽬的就是为了从多路信号中选择所需要的⼀路信号,选择标志信号的⼀种状态对应着⼀路信号。

在应⽤中,设置⼀定的选择标志信号状态即可得到相应的某⼀路信号。

这就是数据选择器的实现原理。

实验内容1、分别采⽤原理图和VHDL语⾔的形式设计4选1数据选择器2、对所涉及的电路进⾏编译及正确的仿真。

三、实验条件Quartus II实验环境四、实验与仿真原理图:D0 、D1、D2、D3 :输⼊数据A1 、A0 :地址变量由地址码决定从4路输⼊中选择哪1路输出。

(2)真值表如下图:仿真结果:St为功能端。

当st=1时y=0;当st=0时选择器才开始⼯作。

当a1a0=00时y=d0 a1a0=01时y=d1a1a0=10 时y=d2a1a0=11时y=d3完成了四选⼀的功能。

Vhdl编码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mux4 isport(a0,a1,a2,a3:in std_logic;s:in std_logic_vector(1 downto 0);y:out std_logic);end mux4;architecture archmux of mux4 isbeginy<=a0 when s="00" elsea1 when s="01" elsea2 when s="10" elsea3;end archmux;仿真:当s=0时y=a1;当s=1时y=a1;当s=2时y=a2;当s=3时y=a3 。

VHDL语言设计四选一选择器

VHDL语言设计四选一选择器

课程: 数字逻辑与数字系统VHDL语言设计四选一选择器实验报告系:电子信息与计算机科学系专业:自动化班级:文自112—2班姓名:桑*超学号: 2011905192**指导教师:徐红霞学年学期:2012-2013学年(第一学期)2012年12月15日姓名: 桑*超班级: 文自112-2班学号: 2011905192** 试验: VHDL语言设计日期:2012.12.15 指导老师: 徐洪霞一、实验报告的名称: VHDL语言设计二、本次实验的目的:1.掌握VHDL 语言的设计技巧2.用VHDL语言设计四选一选择器三、设计过程:1.工程编译源:用VHDL语言编程。

2.功能仿真:将功能编译后的结果进行仿真。

3.引脚锁定:将个信号按要求分配到相应引脚.4.物理实现:将结果下载到所悬着的器件中四、写出源程序,画出防真波形图.library ieee;use ieee.std_logic_1164.all;entity mux4_1 isport( a,b,c,d : in std_logic;s : in std_logic_vector(1 downto 0);z : out std_logic );end mux4_1;architecture one of mux4_1 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 ;波形仿真图:五、实验总结,主要包括实验中所犯错误,怎样改正等1.在文件名必须与VHDL文件中的设计实体名保持一致。

VHDL语言设计4选1多路选择器演示教学

VHDL语言设计4选1多路选择器演示教学

VHDL 语言设计 4 选 1多路选择器4选1多路选择器的VHDL描述要求:THEN语句和CASE语句实现4选1多路选择器,其中选择控制信号 si和s0 的数据类型为STD_LOGIC_VECTORs仁?O?,sO=?O?; s仁?O?,sO=?1?; s1=? 1?,sO=?O?和s仁?1?,sO=?1?时,分别执行 y<=a、yv=b、yv=c、yv=d。

一、解法1:用IF_THEN语句实现4选1多路选择器(1)程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT (a,b,c,d: IN STD_LOGIC;sO: IN STD_LOGIC;s1: IN STD_LOGIC;y: OUT STD_LOGIC);END ENTITY mux41;ARCHITECTURE if_mux41 OF mux41 ISSIGNAL sOs1 : STD_LOGIC_VECTOR(1 DOWNTO 0)定义标准逻辑位矢量数据 BEGINsOs1<=s1 &s0; --s1 相并sO,即s1与sO并置操作PROCESS(sOs1,a,b,c,d)BEGINIF sOs1 = "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;(2)编译的结果如下:_1 ―LIBRARYZ USE IEEE・2rTD_L0GTC_l.l石岂・ALL;3 3 EWTITY ttittK41lS3 SPORT (引4 6* IN 5TD_LOfJIC;55U;IN STP_LOGIC;631:IN ST^OGIC:7y:OUT 号T D I L OGM):a EMD ENTITY mux41;9: ■: ARCHITECTURE l£_mux41 OF ntux^a IS10SIGMAL sOsl : STD_LOGIC_VECTOR (1 DOUWTO 0);—定义标准逻辑位矢虽数据11 B BEGIN12gOsK^gltsO;——s 上相并即R与如并査操柞13PROCESS [s口sl r a.to^cr,d)148EGIN15S IF sOst = J|00»THEN y <= a;IS S!ELS IF sOsl = f,m rr THEN y «h;17 BELSIF sOsl = M10r,THEN y <= c;19. ELSE y <- d;3 EMb TF^20EHD PROCESS;21EWP ARCHITECTURE22编译报告:Flow Status.Succsssfiil - !lon Miy 23 2^:24:40 201&Quartus II Versi on90 Buili 132 02/25/2009 S5 Full VersicnRe^isiom Name mix4iTop-level Entity Name n*ux4iFamily FLEK1CKDevice ErF10KIQlJCa4-4Timing Finfcl用包七tim lug r equir eniexit Y esTot 1®番iu ents 2 / 7T6 ( < 1 )Total pins T F阴〔12慕〕Total memory bi Is0/6.144 ( D % )二、解法2:用CASEg句实现4选1多路选择器(1)程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT (a,b,c,d: IN STD_LOGIC;sO: IN STD_LOGIC;s1: IN STD_LOGIC;y: OUT STD_LOGIC);END ENTITY mux41;ARCHITECTURE case_mux41 OF mux41 ISSIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0)定义标准逻辑位矢量数据类型BEGINs0s1<=s1 &s0; --s1 相并s0,即s1与s0并置操作PROCESS(s0s1,a,b,c,d)BEGINCASE s0s1 IS --类似于真值表的case语句WHEN "00" => y <= a;WHEN "01" => y <= b;WHEN "10" => y <= c;WHEN "11" => y <= d;WHEN OTHERS =>NULL ;END CASE;END PROCESS;END case_mux41;(2)编译结果:1LTBRARV IEEE;2USE IEEE,STD LOGIC i 15^1 .ALL;3j ENTITY K1UK41IS4SPORT (a f to r c r d: IN STD_LOGIC;5sn:IN STD_LCX;IC;651;IN TTD^LOGTC;7y: OUT STD^LOGIC);8ENDENTITY-H1UX41;9□ARCHITECTURE case_wux4i OF I»LD<41IS10SIGNAL sosl : 5TD~LOGIC_VECTOR(1 DOWNTO 口心--定文标准逻辑位矢區数据类型11/:BEGIN122031<=Sl£sa;__ml相并"0r Wsl与兰□并萱燥件13H PROCESS(snsl r a r b r e f ri)BEGIM15□CASE sOsl IS —斐馆于克值恚的c*匕语旬ie WHEN f,ao if -> y 5 a;17WHEN f,0i,F=> y <- b;!□WHEN "1口“三A y <= c;19WHEN rr ll FT F y a= d;20WHEN OTHERS =AHULL ;21 EWD 匚ASE;22EMD PROCESS;END case_inux41;24编译报告:Flo* Status SucceKifvl ~ Mon fflfcy 23 22 31:55 20fEQuartus II Version9.0 Btiild 132 02/25/20M ST lull VersionRevi'sicin Name mux41T op^laval Inti ty Nwna wux-41F anally FmiOKD evi. c e E?PLOE1Dire4-4Timkiig Jftoifvli FinUMet timing re^uir畑Total lagi c el 2 / 5T6 ( < 1 )Total pins7 / 5S ( 12 )T otal memory bits0 / e, 144 ( D 囂)。

四选一数据选择器实验报告

四选一数据选择器实验报告

四选一数据选择器11微电子黄跃1117426021【实验目的】1.四选一数据选择器,2.学习V erilog HDL文本文件进行逻辑设计输入;3.学习设计仿真工具modelsim的使用方法;【实验内容】1. 实现四选一数据选择器的“V erilog ”语言设计。

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。

由真值表写出输出逻辑表达式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) begincase ({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;endcaseendEndmodule测试程序代码如下: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型,通过这个例子我明白了书上所说的有时往往是一个比较笼统的,而更多的需要我们自己去实践、探索、勤思考,只有这样我们才能把书本上的知识转化为属于我们自己的知识,才能在学习的道路上走的更远!原文已完。

(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)分配完管脚后,再次进行一次全编译,使分配的管脚

四选一电路VHDL程序编写

四选一电路VHDL程序编写

今天我们要编写的是一个四选一电路:逻辑符号示意图:sel 是选择控制端,共两位,可形成4种状态,可控制输出端q 与那个输入端相连接。

源代码:波形仿真图:功能简述:就是在不同地址a[1:0]的取值下,送左边的一个值d0(或d1,或d2,或d3)到q.因为有四个值,即四种情况,所以要2根地址线。

(2的2次方=4)逐行详解:(为了节省大家的时间,我们从下面开始讲解新的和易出错的知识点,对于框架知识等可去前面几节查找)9:输入的地址端口a[1:0].注意;对于用DOWNTO定义的数组,在写其值时其最高位在最左边。

可以看到21~23的值里,最左边是最高位。

18:PROCESS语句。

注意:敏感信号表里要把d0,d1,d2,d3也写入。

为什么?请记住不是只有当地址变化了时PROCESS才执行。

举一种情况:地址不变,但输入数据d变了,那么输出也要跟着变化。

一般的,在PROCESS中,只要在赋值右端的信号,被判断的信号都要放到敏感信号表里。

否则Quartus会出一个警告(当然你可以通过警告来最后添加敏感信号,但还是不要养成这个坏习惯。

)20~25:CASE语句。

属于顺序语句,处理多分支的情况。

语法结构;CASE 表达式ISWHEN 选择值1 => 顺序语句1;WHEN 选择值2=> 顺序语句2;……………….WHEN OTHERS => 顺序处理语句n;END CASE;这个CASE语句类似于C里的switch。

有几点要注意:(1)选择值不能有交集,即每个选择值必须不同。

(2)选择值必须包含该表达式所以的可能值,若不能一一例举全,就必须用关键词OTHERS来涵盖其他所有的值的情况。

如24句中:当a不是”00”,”01”.”10”时,就执行这个OTHERS,使q<=d3,当然,这里的OTHERS就是”11”。

(3)CASE 中的各个分支是并行的,即优先级是一样的,这点是与IF构成的选择器的不同点。

4选1选择器

4选1选择器
4
第4章 VHDL应用实例
2019年1月17日3时6分
简述WITH_SELECT_WHEN选择信号赋值 语句和CASE_WHEN 顺序语句的异同。 • 答:WITH_SELECT_WHEN选择信号赋值 语句中是逗号,最后是分号;是并行语句, 必须放在结构体中。 • CASE_WHEN
• 顺序语句中是分号;是顺序语句,必须放 在进程中。
ELSIF (SEL="11")THEN Y<=INP(2);
ELSE Y<=INP(3); END IF;
END PROCESS;
END ART;
2
第4章 VHDL应用实例
2019年1月17日3时6分
【例2.28】用条件信号赋值语句描述的四选一数据选择器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux44 IS PORT(i0,i 1,i2,i3,a,b:IN STD_LOGIC; q:OUT STD_LOGIC); END mux44; ARCHITECTURE aa OF mux44 IS SIGNAL sel: STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN sel<=b & a; q<= i0 WHEN sel="00" ELSE i1 WHEN sel="01" ELSE i2 WHEN sel="10" ELSE i3 WHEN sel="11" ; END aa
SIGNAL SEL :STD_LOGIC_VECTOR(1 DOWNTO 0);
1
第4章 VHDL应用实例
BEGIN SEL<=B&A; PROCESS(INP,SEC)

VHDL实验 4选1多路选择器

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.实验结果。

第3章2选1和4选1选择器VHDL设计

第3章2选1和4选1选择器VHDL设计

3.3 4选1多路选择器及其VHDL描述
例3-3 仿真结果
summary
❖信号signal; ❖逻辑运算符; ❖进程process语句;语句的分类; ❖条件if语句; ❖库和程序包; ❖标准逻辑位和矢量型数据; ❖并置&操作符; ❖注释--符号; ❖case语句;
思考
❖如何用VHDL设计二进制加法器?
ARCHITECTURE one OF mux21a2 IS SIGNAL d,e : BIT;
BEGIN d <= a AND s ; e <= b AND (NOT S) ; y <= d OR e ;
END ARCHITECTURE one ;
3.1 多路选择器的VHDL描述
3.1 多路选择器的VHDL描述
mux21a2
a
y
b
s
3.1 多路选择器的VHDL描述
相关语法
1.信号signal
信号是VHDL中常用三大数据对象之一,所谓数据对象 是指用来保存不同类型数据的对象。
注意:信号相当于一根带电导线,用于暂存数据。
2.逻辑运算符
运算符类型 逻辑运算符
运算符符号
AND
OR NOT NAND NOR XOR XNOR
PORT ( a, b, s: IN BIT; y: OUT BIT);
END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN
PROCESS (a,b,s) BEGIN IF (s = '1') THEN y <= a ; ELSE y <= b ; END IF;
【例3-3】
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX41A IS PORT(a,b,c,d,s0,s1:IN STD_LOGIC;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程: 数字逻辑与数字系统VHDL语言设计四选一选择器实验报告
系:电子信息与计算机科学系
专业:自动化
班级:文自112—2班
姓名:桑*超
学号: 2011905192**
指导教师:徐红霞
学年学期:2012-2013学年(第一学期)
2012年12月15日
姓名: 桑*超班级: 文自112-2班学号: 2011905192** 试验: VHDL语言设计日期:2012.12.15 指导老师: 徐洪霞
一、实验报告的名称: VHDL语言设计
二、本次实验的目的:
1.掌握VHDL 语言的设计技巧
2.用VHDL语言设计四选一选择器
三、设计过程:
1.工程编译源:用VHDL语言编程。

2.功能仿真:将功能编译后的结果进行仿真。

3.引脚锁定:将个信号按要求分配到相应引脚.
4.物理实现:将结果下载到所悬着的器件中
四、写出源程序,画出防真波形图.
library ieee;
use ieee.std_logic_1164.all;
entity mux4_1 is
port( a,b,c,d : in std_logic;
s : in std_logic_vector(1 downto 0);
z : out std_logic );
end mux4_1;
architecture one of mux4_1 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 ;
波形仿真图:
五、实验总结,主要包括实验中所犯错误,怎样改正等
1.在文件名必须与VHDL文件中的设计实体名保持一致。

2.设计前要先弄清楚四选一选择器的原理,然后根据原理设计程序。

3.编写程序时认真仔细,避免出现一些低级错误。

相关文档
最新文档