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

合集下载

组合逻辑VHDL设计——数据选择器 实验报告

组合逻辑VHDL设计——数据选择器 实验报告

实验名称:组合逻辑VHDL设计——数据选择器班级: 09电气2Z 学号: 09312213 姓名:钱雷一、4选1数据选择器的VHDL设计(低电使能端)1.实体框图2.程序设计①正确的程序library ieee;use ieee.std_logic_1164.all;entity mux41a isport(D3,D2,D1,D0,EN:in std_logic;A1,A0:in std_logic;y:out std_logic);end mux41a;architecture aaa of mux41a isbeginy<=D3 when A1='0' and A0='0' and EN='0' elseD2 when A1='0' and A0='1' and EN='0' elseD1 when A1='1' and A0='0' and EN='0' elseD0 when A1='1' and A0='1' and EN='0'else 'Z';end architecture aaa;3.仿真波形图4.仿真波形分析D0-D3是数据输入端,EN为使能端,低电平有效,S(A1和A0)是控制输入端,Y是数据输出端。

当A1、A0=‘11’时,D0数据被选中,输出Y=D0;当A1、A0=‘10’时,D1数据被选中,输出Y=D1,当A1、A0=‘01’时,D2数据被选中,输出Y=D2,当A1、A0=‘00’时,D3数据被选中,输出Y=D3。

二、8选1数据选择器的VHDL设计(低电使能端)1.实体框图2.程序设计①正确的程序library ieee;use ieee.std_logic_1164.all;entity mux81a isport(A0,A1,A2,D0,D1,D2,D3,D4,D5,D6,D7,EN:in std_logic;y:out std_logic);end mux81a;architecture bbb of mux81a issignal Q:std_logic_vector (2 downto 0);beginQ<=A2&A1&A0;y<=D0 when Q="000" and EN='0' elseD1 when Q="001" and EN='0' elseD2 when Q="010" and EN='0' elseD3 when Q="011" and EN='0' elseD4 when Q="100" and EN='0' elseD5 when Q="101" and EN='0' elseD6 when Q="110" and EN='0' elseD7 when Q="111" and EN='0'else 'Z';end architecture bbb;3.仿真波形图4.仿真波形分析D0-D7是数据输入端,EN为使能端,低电平有效,A2,A1,A0是控制输入端,Y是数据输出端。

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

实验一 FPGA VHDL四选一数据选择器的设计
开发软件:QartusII 8.0
实验设备:FPGA实验箱
拟用芯片:Altera EP3C55F484C8
3.实验设计
1)系统原理
根据4选1数据选择器的工作原理,有公式:
Y= + B+ C+ D
可见,要实现功能,需要6个输入,一个输出。其中 是数据选择端,A,B,C,D是数据输入端。由 输出高低电平(开关信号)பைடு நூலகம்定数据的输出和传送。
实验二四选一数据选择器的设计
1实验目的
(1)进一步熟悉和掌握QartusII的使用方法;
(2)掌握FPGA实验箱使用方法;
(3)学习和掌握电路原理图的设计流程
1.实验内容
使用QartusII的元件库,通过元件图的方式设计具有4选1功能的数据选择器,并使用FPGA实验箱对程序进行硬件下载,验证。
2.实验条件
L7=1,L8=开
L7=开,L8=开
发声频率
很慢

较快

表2-1 开关不同位置时蜂鸣器发声状态
实验箱结果如图2-5所示
图2-5实验箱进行试验
5.心得体会
通过这次实验,让我学习到了如何在QartusII中使用原理图的方式做出所需要的功能器件。也学会了如何使用FPGA实验箱。
使用实验箱旁边的频率信号低的4个信号做输入信号,通过FPGA实验箱上的蜂鸣器发出的声音频率快慢来测试实验是否成功。
A输入接入1HZ信号B输入接入4HZ信号
C输入接入8HZ信号D输入接入16HZ
SO输入接入L8开关S1输入接入L7开关
Y输出接入蜂鸣器
可得实验结果如下表 表2-1所示
L7=关,L8=关
L7=关,L8=开
2)电路原理图

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数据选择器的设计

实验二 4选1数据选择器的设计实验二4选1数据选择器的设计实验二4选1数据选择器的设计实验学时:2学时实验类型:设计实验建议:必搞一、实验目的通过实验使学生掌控女团逻辑电路的eda原理图输出设计法,通过电路的仿真和硬件检验,使学生进一步介绍4挑选1数据选择器的功能。

二、实验原理数据选择器又叫“多路开关”。

数据选择器在地址码(或叫选择控制)电位的控制下,从几个数据输入中选择一个并将其送到一个公共的输出端。

数据选择器的功能类似一个多掷开关。

数据选择器为目前逻辑设计中应用十分广泛的逻辑部件,它有2选1、4选1、8选1、16选1等类别。

数据选择器的电路结构一般由于活门阵列而成,也有用传输门开关和门电路混合而成的。

图14挑选1数据选择器原理图图1是一个4选1数据选择器,d3―d0是数据输入端,s1和s0是控制输入端,y是4选1数据输出端。

三、实验内容设计并实现一个4选1数据选择器,要求根据原理图写出它的逻辑关系,并利用开发工具软件对其进行编译和仿真,最后通过实验开发系统对其进行硬件验证。

四、实验步骤1)在maxplus2的图形编辑方式下,从prim元件库中调出4选1数据选择器电路所需要的元件。

并按照图1所示的原理电路,完成4选1数据选择器原理图的输入设计。

3)在波形编辑方式下,编辑mux41.gdf的波形文件,并顺利完成输出信号d3,d2,d1和d0,掌控信号s1和s0电平的设置。

波形文件编辑完结后以mux41.scf为波形文件名计算机上安装。

继续执行仿真器simulator命令,仿真已经开始,观测仿真波形展开设计电路的功能检验。

五、实验结果1.4选1数据选择器的逻辑功能及真值表2.仿真波形。

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

VHDL实验报告 四选一数据选择器的设计
4)分配完管脚后,再次进行一次全编译,使分配的管脚
五、实验步骤
4、对设计文件进行仿真
1)选择File--New,在弹出的对话框中选择Vector Waveform File,点击OK按 钮,打开进入一个空的波形编辑器窗口。
2)设置仿真结束时间,波形编辑器默认的仿真结束时间为 1µS,根据仿真需 要,可以自由设置仿真的结束时间(本次设置的为1ms)。选择 QUARTUSII 软件的 Edit--
的 Fie>Save进行保存。
5)指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,在这里介绍 功能仿真。在 QUARTUSII软件中选择 Processing>Simulator Tool 命令,打开仿真器工具 窗口,如下图所示。
按图上的提示,首先产生功能仿真网表文件(在simulation
mode后选择
二、实验目的
1、熟悉四选一数据选择器的工作原理。 2、进一步掌握VHDL顺序语句和并行语句的使用。 3、进一步熟悉QUARTUSⅡ软件的使用方法和VHDL输入的全
过程。
三、实验原理
在数字系统中常需要将多路数据有选择地分别传送到公共 数据线上去,完成这一功能的逻辑电路称为数据选择器。 数据选择器是一种通用性很强的中规模集成电路,它的用 途很广。
3)点击 Add Hardware 按钮,出现 Add Hardware 对话框,在 Add Hardware 对话 框中,从 Hardware type 列表中选择所需要硬件类型,如果是 USB 接口的请参照用户使用手册 中的 USB 电缆的安装与使用,如果使用的是并口下载线则选取如下图 所示的硬件类型,点击 OK按钮,完成对硬件类型的设置。回到编程器硬件设置窗口, 点击 Close 按钮退出设置。则在 编程器对话框中的编程硬件类型会出现刚才选取的编程器硬件。

EDA技术-VHDL-四选一数据选择器程序设计与仿真实验

EDA技术-VHDL-四选一数据选择器程序设计与仿真实验

EDA技术-VHDL-四选⼀数据选择器程序设计与仿真实验四选⼀数据选择器程序设计与仿真实验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 四选⼀数据选择器逻辑功能表从表3.2.1中可知使能端en=1时,不论a~c输⼊状态如何,均⽆输出(y=1,因为所⽤器件的显⽰电路是共阳极),多路开关被禁⽌。

使能端en=0时,多路开关正常⼯作,根据地址码s2、s1的状态选择a~c输⼊信号中某⼀个通道的数据输送到输出端y。

3 实验内容(1) 建⽴⼀个四选⼀数据选择器的⽂件夹。

(2) 在定义好的VHDL模型中完成四选⼀数据选择器的描述,并创建⼯程。

(3) 设计完成后进⾏全程编译,检查源程序编写是否正确。

(4) 建⽴波形编辑⽂件并对输⼊波形进⾏编辑。

(5) 启动仿真器进⾏仿真,并分析仿真结果。

4 实验预习与思考(1) 进⼀步学习在QuartusⅡ软件平台上建⽴⼯作库⽂件和编辑设计⽂件的⽅法。

(2) 进⼀步学习建⽴波形编辑器⽂件编辑输⼊波形的⽅法。

(3) VHDL语⾔的结构体在整个程序中起什么作⽤。

5 VHDL仿真实验(1)新建⼀个⽂件夹。

本例中⽂件夹名为mux。

(2)输⼊源程序,打开计算机桌⾯上图标。

组合逻辑VHDL设计——数据选择器 实验报告

组合逻辑VHDL设计——数据选择器 实验报告

实验名称:组合逻辑VHDL设计——数据选择器班级: 09电气2Z 学号: 09312213 姓名:钱雷一、4选1数据选择器的VHDL设计(低电使能端)1.实体框图2.程序设计①正确的程序library ieee;use ieee.std_logic_1164.all;entity mux41a isport(D3,D2,D1,D0,EN:in std_logic;A1,A0:in std_logic;y:out std_logic);end mux41a;architecture aaa of mux41a isbeginy<=D3 when A1='0' and A0='0' and EN='0' elseD2 when A1='0' and A0='1' and EN='0' elseD1 when A1='1' and A0='0' and EN='0' elseD0 when A1='1' and A0='1' and EN='0'else 'Z';end architecture aaa;3.仿真波形图4.仿真波形分析D0-D3是数据输入端,EN为使能端,低电平有效,S(A1和A0)是控制输入端,Y是数据输出端。

当A1、A0=‘11’时,D0数据被选中,输出Y=D0;当A1、A0=‘10’时,D1数据被选中,输出Y=D1,当A1、A0=‘01’时,D2数据被选中,输出Y=D2,当A1、A0=‘00’时,D3数据被选中,输出Y=D3。

二、8选1数据选择器的VHDL设计(低电使能端)1.实体框图2.程序设计①正确的程序library ieee;use ieee.std_logic_1164.all;entity mux81a isport(A0,A1,A2,D0,D1,D2,D3,D4,D5,D6,D7,EN:in std_logic;y:out std_logic);end mux81a;architecture bbb of mux81a issignal Q:std_logic_vector (2 downto 0);beginQ<=A2&A1&A0;y<=D0 when Q="000" and EN='0' elseD1 when Q="001" and EN='0' elseD2 when Q="010" and EN='0' elseD3 when Q="011" and EN='0' elseD4 when Q="100" and EN='0' elseD5 when Q="101" and EN='0' elseD6 when Q="110" and EN='0' elseD7 when Q="111" and EN='0'else 'Z';end architecture bbb;3.仿真波形图4.仿真波形分析D0-D7是数据输入端,EN为使能端,低电平有效,A2,A1,A0是控制输入端,Y是数据输出端。

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

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

实验⼀四选⼀数据选择器的设计实验⼀四选⼀数据选择器的设计⼀、实验⽬的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双四选一设计

VHDL双四选一设计

VHDL双四选⼀设计本双四选⼀数据选择器使⽤到了四选⼀数据选择器、译码器。

以下为VHDL双四选⼀数据选择器描述:library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity smux41 isPort (sa,sb,sele:instd_logic;d00: in std_logic_vector(7 downto 0);d01: in std_logic_vector(7 downto 0);d02: in std_logic_vector(7 downto 0);d03: in std_logic_vector(7 downto 0);d10: in std_logic_vector(7 downto 0);d11: in std_logic_vector(7 downto 0);d12: in std_logic_vector(7 downto 0);d13: in std_logic_vector(7 downto 0);clk: in std_logic;y1: out std_logic_vector(7 downto 0);y2: out std_logic_vector(7 downto 0));end smux41;architecturestruct of smux41 is-- components-- 8 bit mux41 for smux41component mux_41port (s1,s0,sel:instd_logic;d0,d1,d2,d3:instd_logic_vector(7 downto 0);y: out std_logic_vector(7 downto 0));end component;-- 1 to 2 Decodercomponent decoder_1_to_2port(sel: in std_logic;sel0,sel1: out std_logic);end component;signal sel0 ,sel1: std_logic;begin-- decoderdes_decoder: decoder_1_to_2 port map (sel =>sele,sel0 =>sel0 ,sel1 => sel1);mux1: mux_41 PORT MAP(d0 =>d00 ,d1 =>d01 ,d2 =>d02 ,d3 =>d03 ,s0 =>sa,s1 =>sb,sel => sel0 ,y =>y1);mux2: mux_41 PORT MAP(d0 =>d10 ,d1 =>d11 ,d2 =>d12 ,d3 =>d13 ,s0 =>sa,s1 =>sb,sel => sel1 ,y => y2);endstruct;以下是VHDL四选⼀数据选择器描述:libraryieee; use ieee.std_logic_1164.all;entity mux_41 isport (s1,s0,sel:in std_logic;d0,d1,d2,d3:instd_logic_vector(7 downto 0); y: out std_logic_vector(7 downto 0)); end mux_41;architecturebehav of mux_41 issignal s: std_logic_vector (1 downto 0);begins<=s1&s0;process(s)beginif (sel='1' and s="00") theny<=d0;elsif(sel='1' and s="01" )theny<=d1;elsif(sel='1' and s="10" )theny<=d2;elsif(sel='1' and s="11" )theny<=d3;end if;end process;endbehav;以下为VHDL译码器描述:libraryieee;use ieee.std_logic_1164.all;entity decoder_1_to_2 isport (sel:instd_logic;sel0,sel1:outstd_logic );end decoder_1_to_2;architecture one of decoder_1_to_2 is beginprocess(sel)beginif (sel='0') thensel0<='1';elsif(sel='1')thensel1<='1';end if;if (sel='0') thensel1<='0';elsif(sel='1')then sel0<='0';end if;end process; end one;。

VHDL实验报告

VHDL实验报告

班级:2009211411 学号:09211999 姓名:陈东东四选一数据选择器1.实验目的:利用数据选择器的原理,即在地址选择信号的控制下从输入的四路数据中选择一路数据作为输出。

2.实验内容和实验原理:四选一数据选择器有4条输入数据线,2条地址选择线和一条数据输出线,通过控制2条地址选择线实现数据输出线从4条输入线中选择一条输出。

3.试验程序:LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY MUX4 ISPORT(D0:IN std_logic;D1:IN std_logic;D2:IN std_logic;D3:IN std_logic;S0:IN std_logic;S1:IN std_logic;Q :OUT std_logic);END mux4;ARCHITECTURE RTL OF mux4 ISBEGINPROCESS(D0,D1,D2,D3,S0,S1)BEGINIF(S1='0' AND S0='0')THENQ<=D0;ELSIF(S1='0' AND S0='1')THENQ<=D1;ELSIF(S1='1' AND S0='0')THENQ<=D2;ELSIF(S1='1' AND S0='1')THENQ<=D3;ELSEQ<='Z';END IF;END PROCESS;END RTL;4.波形仿真:S1和S0表示地址选择线,D3,D2,D1,D0表示输入数据线,Q表示输出数据线。

5.试验中遇到的问题及解决方法:实验较为简单,无问题。

组合逻辑电路之加法器设计1.实验目的:利用计算机组成原理中介绍的修正函数,编程实现一个任意位进位的1位BCD码加法器。

(完整word版)四选一多路选择器实验报告.docx

(完整word版)四选一多路选择器实验报告.docx

实验报告学院:电气工程学院专业:电子信息工程班级:姓名学号实验时间指导教师实验项目名称四选一多路选择器实验组成绩实1.学习组合逻辑电路、编码器的功能与定义,学习 Verilog 和VHDL语言验 2 .熟悉利用 Quartus II 开发数字电路的基本流程和 Quartus II 软件的相关目操作的 3 .学会使用 Vector Wave 波形仿真实验按照老师的要求完成实验,编写实验报告要求选择器常用于数字 4 路信号的切换。

实四选一选择器有 4 个输入端 input0、1、2、 3. 两个信号控制端 a,b 及一个信验号输出端 y。

当 a,b input0-input3中的原一个输入信号与输出 y 端口接通。

用拨码开关作四位数据及两位控制端的输理LED s1 和 s0LED 与数据输入端 a,b,c,d 4 选一数据选择器设计的正确性。

实验软件: Altera Quartus II 9.0集成开发环境。

仪器1. 选择“开始”→“所有程序”→“Altera ”→“ Quartus II 9.0 ” →“Quartus II 9.0 (32bit )”,启动软件。

2.选择“ File ” →“ New Project Wizard ”,出现“ Introduction ”页实验步骤实验内容面,如图所示,该页面介绍所要完成的具体任务。

3.单击“ Next ”按钮,进入工程名称的设定、工作目录的选择。

4.在对话框中第一行选择工程路径;第二行输入工程名,第三行输入顶层文件的实体名6.新建设计文件,选择“File|New ”,在New对话框中选择 Device Design Files 下的 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 ISBEGIN据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;二:程序运行图:三:波形图:实本次实验学习了组合逻辑电路、编码器的功能与定义,学习了Verilog 和VHDL语言,同时熟悉了利用 Quartus II 开发数字电路的基本流程和Quartus II 软件的相关操作,学会了使用Vector Wave波形仿真。

实验三、VHDL数据选择器的设计

实验三、VHDL数据选择器的设计

实验三、VHDL数据选择器的设计一、实验目的通过VHDL语言设计4选1数据选择器,掌握4选1数据选择器的设计方案;掌握软件工具的使用方法,并设计8选1数据选择器的VHDL语言。

二、实验原理图1为4选1数据选择器管脚图。

当S=0时工作,S=1时禁止工作。

A0与A1为4选1数据选择器的控制信号。

图 1 4选1数据选择器管脚图图2为8选1数据选择器管脚图。

当S=0时工作,S=1时禁止工作。

A0与A1,A2为8选1数据选择器的控制信号。

图 2 8选1数据选择器管脚图三、实验内容1.用VHDL语言设计4选1数据选择器,进行编译、波形仿真及器件的编程。

代码一详见附录。

MAX+plusII功能仿真图如下图3 4选1数据选择器功能仿真图2.用VHDL语言设计8选1数据选择器进行编译、波形仿真及器件的编程。

代码二详见附录。

MAX+plusII功能仿真图如下图4 8选1数据选择器功能仿真图四、实验心得在实验中通过4选1数据选择器VHDL语言结合4选1数据选择器工作原理。

对4选1数据选择器VHDL语言进行修改成8选1数据选择器VHDL语言。

将VHDL 语言中控制信号增加A2,对CASE代码中输入输出信号进行相对应的修改。

本次实验同时学会了对单独输入信号的设置。

以及使用软件生成器件管脚图。

附录代码一4选1数据选择器VHDL语言library ieee;use ieee.std_logic_1164.all;entity sxy isport(d0,d1,d2,d3,a0,a1,s:in std_logic;y:out std_logic);end sxy;architecture zhang of sxy issignal a:std_logic_vector (1 downto 0);beginprocess (a0,a1)begina<=a1&a0;if(s='0') thencase a iswhen"00"=>y<=d0;when"01"=>y<=d1;when"10"=>y<=d2;when others=>y<=d3;end case;end if;end process;end zhang;代码二8选1数据选择器VHDL语言library ieee;use ieee.std_logic_1164.all;entity sxy isport(d0,d1,d2,d3,d4,d5,d6,d7,a0,a1,a2,s:in std_logic;y:out std_logic);end sxy;architecture zhang of sxy issignal a:std_logic_vector (2 downto 0);beginprocess (a0,a1,a2) begina<=a2&a1&a0;if(s='0') thencase a is when"000"=>y<=d0; when"001"=>y<=d1; when"010"=>y<=d2; when"011"=>y<=d3; when"100"=>y<=d4; when"101"=>y<=d5; when"110"=>y<=d6; when others=>y<=d7; end case;end if;end process;end zhang;。

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

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设计过程。

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

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

四选一数据选择器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型,通过这个例子我明白了书上所说的有时往往是一个比较笼统的,而更多的需要我们自己去实践、探索、勤思考,只有这样我们才能把书本上的知识转化为属于我们自己的知识,才能在学习的道路上走的更远!。

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

VHDL语言设计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)编译结果:编译报告:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3)点击 Add Hardware 按钮,出现 Add Hardware 对话框,在 Add Hardware 对话 框中,从 Hardware type 列表中选择所需要硬件类型,如果是 USB 接口的请参照用户使用手册 中的 USB 电缆的安装与使用,如果使用的是并口下载线则选取如下图 所示的硬件类型,点击 OK按钮,完成对硬件类型的设置。回到编程器硬件设置窗口, 点击 Close 按钮退出设置。则在 编程器对话框中的编程硬件类型会出现刚才选取的编程器硬件。
1)使用下载电缆将 PC 机与实验系统连接起来。
2)选择 QUARTUSII 软件的 Tools>Programmer 命令,进行编程器窗口。如果没有 设置编程硬件,则编程硬件类型为 No Hardware,需要对编程硬件进行设置。点击 Hardware Setup…编程硬件设置按钮,进行如下图 所示的编程硬件设置对话框。
五、实验步骤
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设定界面。
Functional),点击产生功能仿真网表的按钮 Generate Functional Simulation Netlist
五、实验步骤
5、从设计文件到目标器件的加载
完成对器件的加载有两种形式,一种是对目标器件进行加载文件,一种是对目标器 件的配置芯片进行加载。这里我们介绍对目标器件 EP2C35F672C8进行加载的方法。
4)分配完管脚后,再次进行一次全编译,使分配的管脚
五、实验步骤
4、对设计文件进行仿真
1)选择File--New,在弹出的对话框中选择Vector Waveform File,点击OK按 钮,打开进入一个空的波形编辑器窗口。
ห้องสมุดไป่ตู้
2)设置仿真结束时间,波形编辑器默认的仿真结束时间为 1µS,根据仿真需 要,可以自由设置仿真的结束时间(本次设置的为1ms)。选择 QUARTUSII 软件的 Edit--
End Time命令,弹出线路束时间对话框,在 Time框办输入仿真结束时间,点击OK按钮完成 设置。
3)加入输入、输出端口,在波形编辑器窗口左边的端口名列表区点击鼠标右 键,在弹出的右键菜单中选择 Insert Node or Bus…命令,在弹出的 Insert Node or Bus 对话框界面中点击 Node Finder…按钮。在出现的 Node Finder 界面中的 Filter 列 表中选择 点击 List,在 Nodes Found 窗口出现所有信号的名称,点击中间的按钮则
七、心得体会
3)依照“硬件与 FPGA 的管脚连接表”分配对应的输入 管脚名 ,依照“LED灯与FPGA管脚连接表”分配对应的输出管脚 名。本次实验的分配关系是:(输入端 D3、D2、D1、D0、sel1、 sel0 分别对应的 FPGA 管脚名为 H8、J8、J9、A4、B5、A6,输 出端 y 对应的 FPGA 管脚名为 G13 ),如下图所示。
的 Fie>Save进行保存。
5)指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,在这里介绍 功能仿真。在 QUARTUSII软件中选择 Processing>Simulator Tool 命令,打开仿真器工具 窗口,如下图所示。
按图上的提示,首先产生功能仿真网表文件(在simulation
mode后选择
5)按默认选项,点击NEXT出现新建工程以前所有的 设定信息,再点击FINISH完成新建工程的建立。
五、实验步骤
2、建立文本设计文件
1)建立另一工程(注意不要和原来的图形设计文件工程重名) ,在创建好设计工程后,选择File--New--Device Design Files--VHDL File,点击OK按钮,打开进入文本编辑器对话框。
Selected Nodes 窗口下方出现被选择的端口名称。双击OK按钮,完成设置,回到 Insert Node or Bus 对话框,双击OK按钮,所有的输入、输出端口将会在端口名列表区内显示出 来。
4)编辑输入端口波形,即指定输入端口的逻辑电平变化,在波形编辑窗口中 ,选择要输入波形的输入端口。以 sel0 端口为例,右键单击 sel0 ,依次选择value-clock--period,将时间改为1us。然后重复此过程将 sel1 的时间改成 2us (sel1的周期 是sel0的2倍),再将输入端的D0--D3选择不同的周期(一次要有所差别)。最后选择软件
2)在文本编辑器中输入对应VHDL程序代码(本次实验则需输入 四选一数据选择器的代码,注意实体名与所建工程名的实体名的一致性 ),本次实验我所用的VHDL顺序语句代码是CASE语句,其并行语句的代 码用的是条件信号赋值语句,具体代码如下图所示:
3)对文本文件进行编译。选择processing--compiler tool-start或直接点快捷栏上的三角形则会出现编译器窗口。需要说明的是在 进行设计文件的综合和分析,也可以单独打开某个分析综 合过程不必进 行全编译界面。当完成上述窗口的设定后,点击 START 按钮进行设计文 件的全编译。如果文件有错,在软件的下方则会提示错误的原因和位置 ,以便于使用者进行修改直到设计文件无错。整个编译完成,软件会提 示编译成功。
数字电路EDA设计与应 用
四选一数据选择器
乱弹的枇杷
二、实验目的
1、熟悉四选一数据选择器的工作原理。 2、进一步掌握VHDL顺序语句和并行语句的使用。 3、进一步熟悉QUARTUSⅡ软件的使用方法和VHDL输入的全
过程。
三、实验原理
在数字系统中常需要将多路数据有选择地分别传送到公共 数据线上去,完成这一功能的逻辑电路称为数据选择器。 数据选择器是一种通用性很强的中规模集成电路,它的用 途很广。
4)此次实验室所用的安装驱动的方式为:右键“我的电脑”--设备管理器--双击有 黄色问号通用USB--驱动程序--更新驱动程序--从列表或安装……--下一步--下一步--从磁盘安 装--浏览--在我的电脑D盘中选择找到USB bluster即可安装好驱动。
5)如果软件已运行一个工程,则在打开编程器的时候,编程器窗口会自动出现这个 工程文件要加载到目标器件的文件,如果要加载其它文件可以从其它地方进行添加更改。选好加 载文件后,再点选 Progam/Configure,编程模式选取 JTAG 模式,点击 STRAT进行文件加载, 直到加载进度变为 100%,文件成功加载完成。
五、实验步骤
3、管脚分配
1)在前面选择好一个合适的目标器件(在这个实验中选择 为EP2C35F672C8)完成设计的分析综合过程,得到工程的数据文 件以后,需要对设计中的输入、输出引脚指定到具体的器件管脚 号码,指定管脚号码称为管脚分配或管脚锁定。这里介绍两种方 法进行管脚锁定。
2)点击 Assignments 菜单下面的 Assignment Editor, 进入到引脚分配窗口。将弹出的窗口中的 All 改成 pin ,再点 击 List,在 Nodes Found窗口会出现所有信号的名称,点击中间 的按钮则Selected Nodes 窗口下方出现被选择的端口名称。双击 OK 按钮,完成设置。进入管脚分配窗口。
四选一数据选择器有六个输入端(其中四个为数据输入端, 两个为控制信号输入端)和一个输出端。其真值表如下图 所示:
四选一多路选择器的VHDL描述非常灵活,可以采用多种语 句来实现。本实验要求分别用VHDL顺序语句和并行语句来 实现。
四、实验内容
在本实验中,用六个拨动开关来表示四选一数据选择器四 位数据及两位控制端的输入,用一个LED来表示四选一数 据选择器的一个输出,通过拨动开关组成控制输入端sel1 和sel0不同组合,观察LED与数据输入端D0,D1,D2,D3的关 系,验证四选一数据选择器设计的正确性。使用逻辑门电 路与、或、非的组合来表达4选1数据选择器,通过控制输 入的信号来控制输出的信号值。实验箱上拨动开关档位在 下方时表示其输出为低电平,反之输出市电平。其拨动开 关与FPGA管脚的连接表以及LED灯与FPGA管脚连接表如下 两图所示:
六、实验现象及结果 本次实验我分别用实验箱上的开关K1、
K2、K3、K4作为4选1数据选择器四输入D3、 D2、D1、D0;分别用开关K7、K8作为数据选 择器的控制端 sel1、sel0;分别用LED彩灯 LED1作为数据选择器的一个输出端y。故实 验时将实验箱上的K7、K8置为低电平(即 “00”时),LED灯只与开关K4的电平有关 (当K4为高电平时灯亮,其为低电平时灯灭 )如下第一幅图所示;以下第二张图则是当 K7、K8为“01”时,K3为高电平时,LED灯 亮;第三幅图是K7、K8为“10”,K2为高电 平时灯亮;第四幅图是K7、K8为“11”,K1 为高电平时灯亮。以上结果均符合四选一数 据选择的真值表。
相关文档
最新文档