实验二 组合逻辑电路的VHDL实现

合集下载

VerilogHDL实验报告

VerilogHDL实验报告

VerilogHDL实验报告实验一Modelsim仿真软件的使用一、实验目的(1)熟悉Modelsim 软件(2)掌握Modelsim 软件的编译、仿真方法(3)熟练运用Modelsim 软件进行HDL 程序设计开发二、实验内容1、实验要求用Verilog HDL 程序实现一个异或门,Modelism仿真,观察效果。

2、步骤1、建立工程2、添加文件到工程3、编译文件4、查看编译后的设计单元5、将信号加入波形窗口6、运行仿真3、方法moduleyihuo (a,b,c);inputa,b;output c;assign c=a^b;endmodule测试程序:module t_yihuo;reg a,b; wire c;initial begin a=0; forever #20 a=~a; end initial begin b=0; forever #30 b=~b; endyihuou1(a,b,c);endmodule二、实验结果波形图:三、分析和心得通过这次的实验,我基本熟悉Modelsim软件,掌握了Modelsim软件的编译、仿真方法。

同时在编写程序的过程中,加深了我对课上所讲的HDL的语法的认识。

实验二简单组合电路设计一、实验目的(1)掌握基于Modelsim的数字电路设计方法(2)熟练掌握HDL 程序的不同实现方法二、实验内容1、实验要求设计一个三人表决器(高电平表示通过),实验内容如下:(1)三个人,一个主裁判,两个副裁判;(2)规则:只要主裁判同意,输出结果为通过;否则,按少数服从多数原则决定是否通过。

使用 Verilog HDL 程序实现上述实验内容,并使用modelsim 仿真。

2、方法module test(a,b,c,s);inputa,b,c;output s;assign s=c|(b&a);endmodulemodulet_test;rega,b,c;wire s;initialbegina=0;forever#10 a=~a;endinitialbeginb=0;forever #20 b=~b;endinitialbeginc=0;forever#40 c=~c;endtest u1(a,b,c,s);endmodule三、实验结果四、分析和心得通过本次实验,我掌握基于Modelsim的简单数字电路设计方法,且尝试了用不同方法实现功能,三人表决器可以通过testbench测试程序实现,也可以利用always模块实现,可见程序的设计思想是很重要的。

实验二 组合逻辑电路的设计

实验二  组合逻辑电路的设计

实验二组合逻辑电路的设计一、实验目的1.设计8段译码器、两路4位二进制比较器,并在实验装置上验证所设计的电路;2.学习用VHDL语句进行逻辑描述。

二、实验要求用VHDL设计8段译码器、两路4位二进制比较器,对CPLD器件进行配置及下载来验证自己的设计,验证电路的外围器件可选用按键输入、指示灯输出。

三、设计方案按键的状态作为输入,输出对应数字的编码,连接到数码管上面可以看到数码管显示对应的数值。

代码:LED.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity LED isport(number:in std_logic_vector(3 downto 0);ledout:out std_logic_vector(7 downto 0));end;architecture u1 of LED isbeginwith number selectledout<="00111111"when"0000", --0"00000110"when"0001", --1"01011011"when"0010", --2"01001111"when"0011", --3"01100110"when"0100", --4"01101101"when"0101", --5"01111101"when"0110", --6"00000111"when"0111", --7"01111111"when"1000", --8"01101111"when"1001", --9"01110111"when"1010", --A"01111100"when"1011", --B"00111001"when"1100", --C"01011110"when"1101", --D"01111001"when"1110", --E"01110001"when"1111"; --Fend;实验结果:按下试验箱的按键后,数码管显示按键的状态。

(新)实验二组合逻辑电路设计

(新)实验二组合逻辑电路设计

实验二组合逻辑电路设计一、实验目的1、了解和逐步掌握一般组合逻辑电路的设计方法;2、熟练掌握QuartusⅡ软件原理图输入方式的操作步骤;3、熟练掌握QuartusⅡ软件中底层和顶层电路模块的设计方法;4、熟练掌握Quartus Ⅱ软件常见操作的设置方法。

二、实验设备计算机、QuartusⅡ软件、实验箱三、实验内容1、在QuartusⅡ软件中采用VHDL语言完成一个2选1多路选择器底层电路的设计;2、将已设计完成的2选1数据选择器作为底层模块,通过原理图输入方式和元件例化语句两种方式完成顶层3选1数据选择器顶层电路的设计和测试。

四、实验步骤注意:以下为大体步骤,详细步骤根据具体实验过程独立完成。

1、设计2选1数据选择器底层模块用VHDL语言完成该电路模块的设计并在QuartusⅡ软件中进行仿真,截取仿真波形作为部分实验结果。

2、设计3选1数据选择器顶层模块将2选1数据选择器作为底层元件,利用原理图输入方式和元件例化语句两种方式完成3选1数据选择器顶层模块的设计并仿真;注意:底层和顶层文件应放在同一工程文件夹中,截取3选1数据选择器仿真波形和顶层图作为部分实验结果。

3、完成3选1数据选择器的引脚锁定(1)三个输入端可自由锁定在三个按键上,根据实验箱上空余的引脚自由锁定;(2)两个选择端可自由锁定在两个拨码开关上;(3)输出端可自由锁定在一个LED 灯上,通过灯的亮灭判断是否有输出。

为了清楚区分三个输入端,测试时可设置三个不同的LED 灯来判断。

图-1 开关量输入输出模块S1—s8是带自锁的单刀单执拨码开关,在开关未拨动时是低电平,拨动时J1为高电平并保持高电平不变,只有回拨开关时J1才恢复低电平输入。

图-2 按键模块此模块共有8个按键,BUTTON1—BUTTON8是轻触按键;在按键未按下时JP6为高电平输入,按键按下后JP6对FPGA 输入低电平,松开按键后恢复高电平输入。

图-3 LED 灯指示模块该模块有8个LED 指示灯,在使用时候只需要用排线连接JP5和FPGA 连接,FPGA 输出低电平时指示灯亮。

数字电路与逻辑设计实验

数字电路与逻辑设计实验

数字电路与逻辑设计实验报告学院:班级:姓名:学号:日期:一.实验名称:实验一:QuartusII 原理图输入法设计与实现实验二:用VHDL 设计与实现组合逻辑电路实验三:用VHDL 设计与实现时序逻辑电路实验四:用VHDL 设计与实现数码管动态扫描控制器二.实验所用器件及仪器:1.计算机2.直流稳压电源3.数字系统与逻辑设计实验开发板三.实验要求:实验一:(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。

(2)用(1)实现的半加器和逻辑门设计实现一个全加器,仿真并验证其功能,并下载到实验板上测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

(3)用3—8线译码器和逻辑门设计实现函数F=/C/B/A+/CB/A+C/B/A+CBA,仿真验证其功能并下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

注:实验时将三个元器件放在一个new block diagram中实现。

实验二:(1)用VHDL语言设计实现一个共阴极7段数码译码器,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,7段数码管显示输出信号。

(2)用VHDL语言设计实现一个8421码转余三码的代码器,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

(3)用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个‘1’时,输出1,否则出0;仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

实验三:(1)用VHDL语言设计实现一个带异步复位的8421 十进制计数器,仿真验证其功能,并下载到实验板测试。

要求用按键设定输入信号,发光二极管显示输出信号。

(2)用VHDL语言设计实现一个分频系数为12,输出信号占空比为50%的分频器,仿真验证其功能。

注:实验时将(1)、(2)和数码管译码器 3 个电路进行链接,并下载到实验板显示计数结果。

实验二 组合逻辑电路的设计 fpga

实验二 组合逻辑电路的设计   fpga

实验二组合逻辑电路的设计一、实验目的:1、掌握用VHDL语言和EPLD进行组合逻辑电路的设计方法。

2、加深对EPLD设计全过程的理解。

3、掌握组合逻辑电路的静态测试方法。

二、实验设备:PC机三、实验内容:1、用VHDL语言输入法设计三人表决器,其输入为8421码,要求当输入1的个数大于等于2时,判别电路输出为1;反之为0。

2、用VHDL语言输入法设计8-3编码器。

四、实验步骤:(一)三人表决器1、采用文本编辑器输入三人表决器VHDL语言源程序,建立工程。

VHDL语言源程序如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity bj isport (m:in std_logic_vector(2 downto 0);y:out std_logic);end;architecture one of bj isbeginprocess (m)beginif m="000" then y<='0';elsif m="001"then y<='0';elsif m="010"then y<='0';elsif m="011"then y<='1';elsif m="100"then y<='0';elsif m="101"then y<='1';elsif m="110"then y<='1';elsif m="111"then y<='1';end if;end process;end;2、编译并进行仿真,仿真结果如下所示:由仿真结果可以验证当输入1的个数大于等于2时,判别电路输出为1;反之为0。

vhdl实验报告

vhdl实验报告

vhdl实验报告VHDL实验报告引言:VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,广泛应用于数字电路设计和仿真。

本篇实验报告将介绍我在VHDL实验中的学习和实践经验,包括实验目的、实验过程、实验结果以及对VHDL的理解和展望。

一、实验目的VHDL实验的主要目的是让我们掌握VHDL语言的基本语法和使用方法,能够利用VHDL描述数字电路,并通过仿真和综合工具进行验证和实现。

通过这些实验,我们可以深入了解数字电路的原理和设计方法,提高我们的逻辑设计能力和工程实践能力。

二、实验过程在实验过程中,我们首先学习了VHDL的基本语法,包括实体声明、端口声明、信号声明等。

然后,我们通过实例学习了VHDL的建模方法,包括组合逻辑电路的建模和时序逻辑电路的建模。

在组合逻辑电路的建模中,我们学习了使用逻辑运算符和条件语句描述电路的功能;在时序逻辑电路的建模中,我们学习了使用过程语句和时钟信号描述电路的状态转换。

在学习了VHDL的基础知识后,我们开始进行实验设计。

我们选择了一个简单的数字电路,如4位加法器,来进行实验验证。

首先,我们通过VHDL语言描述了加法器的功能和结构,包括输入端口、输出端口和中间信号。

然后,我们使用仿真工具进行了功能仿真,验证了加法器的正确性。

接着,我们使用综合工具将VHDL代码综合成门级电路,并进行了时序仿真和时序优化,验证了加法器的时序正确性和性能。

三、实验结果通过实验,我们成功地实现了4位加法器的功能,并验证了其正确性和性能。

在功能仿真中,我们输入了不同的测试数据,观察了输出结果,发现加法器能够正确地进行加法运算,并得到了正确的结果。

在时序仿真中,我们观察了电路的时序行为,包括输入信号的变化、输出信号的响应和中间信号的传播延迟等,发现加法器能够在时序上满足要求,并且具有较好的性能。

VHDL与数字电路设计实验报告

VHDL与数字电路设计实验报告

VHDL与数字电路设计实验报告引言本实验旨在通过使用VHDL编程语言和数字电路设计技术,实现特定功能的电路设计。

本文档将对实验的步骤、设计原理和结果进行详细描述。

实验步骤1. 步骤一:熟悉VHDL编程语言在实验开始之前,团队成员对VHDL编程语言进行了研究和熟悉。

我们了解了VHDL的基本语法、数据类型和结构,并获得了对VHDL设计原理的初步理解。

2. 步骤二:设计功能电路在本实验中,我们选择了一个特定的功能电路进行设计。

我们首先进行了功能需求分析,并根据需求确定了电路的输入输出信号以及主要的逻辑运算。

然后,我们使用VHDL编程语言将电路的逻辑运算实现为代码,并进行了仿真和测试。

3. 步骤三:电路仿真和验证为了验证我们设计的电路功能的正确性,我们使用了VHDL仿真工具进行了电路的仿真和验证。

我们根据输入信号的不同组合,观察输出信号的变化,并与我们预期的结果进行比较。

通过这一步骤,我们确认了我们设计的电路能够按照预期工作。

4. 步骤四:电路实现和测试在确认电路的设计和仿真结果无误之后,我们进一步将电路实现到实际的数字电路平台上,并进行了硬件测试。

我们使用实际的输入信号来测试电路的性能和稳定性,并对输出信号进行观察和分析。

通过这一步骤,我们验证了电路在实际环境中的可行性。

设计原理我们设计的电路基于特定的功能需求,采用了经典的数字电路设计原理。

通过使用VHDL编程语言,我们将电路的逻辑运算实现为逻辑门和触发器的组合。

通过将输入信号连接到适当的逻辑门和触发器,我们实现了所需的功能。

结果与分析经过实验步骤的完成,我们成功地设计和实现了一个具有特定功能的数字电路。

在仿真测试和实际测试中,电路都表现出了良好的性能和稳定性。

根据结果的分析,我们验证了电路的设计原理和逻辑的正确性。

结论本实验通过使用VHDL编程语言和数字电路设计技术,成功地实现了一个具有特定功能的电路设计。

我们的实验结果表明,VHDL和数字电路设计技术在电路设计领域具有重要的应用价值。

VHDL语言实现数字电路设计

VHDL语言实现数字电路设计

VHDL语言实现数字电路设计数字电路是由逻辑门、寄存器以及其他数字组件组成的电子系统,用于处理和传输数字信号。

VHDL(Very High-Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,用于描述数字电路和系统。

通过使用VHDL语言,我们可以实现数字电路的设计,从而满足各种需求。

VHDL语言提供了一种结构化的设计方法,允许设计者描述硬件电路的结构、功能以及时序行为。

以下是一些常见的数字电路设计任务,以及如何使用VHDL语言来实现它们。

1. 门电路设计门电路是最简单的数字电路之一,由逻辑门组成。

使用VHDL语言,我们可以通过描述逻辑门的输入和输出来实现门电路的设计。

例如,我们可以使用VHDL语言描述一个与门:```vhdlentity AND_gate isport (A, B : in bit;Y : out bit);end entity AND_gate;architecture dataflow of AND_gate isbeginY <= A and B;end architecture dataflow;```在这个例子中,我们定义了一个输入端口A和B,以及一个输出端口Y。

在architecture部分,我们使用VHDL语言描述了Y的逻辑值为A和B的逻辑与。

2. 时序逻辑电路设计时序逻辑电路是根据时钟信号进行操作和状态转换的电路。

使用VHDL语言,我们可以描述时序逻辑电路的行为和状态变化。

例如,我们可以使用VHDL语言描述一个触发器:```vhdlentity D_flip_flop isport (D, CLK : in bit;Q : out bit);end entity D_flip_flop;architecture behavior of D_flip_flop issignal Q_temp : bit;beginprocess(CLK)beginif CLK'event and CLK = '1' thenQ_temp <= D;end if;end process;Q <= Q_temp;end architecture behavior;```在这个例子中,我们定义了一个输入端口D和CLK,以及一个输出端口Q。

实验《二》:组合逻辑与时序逻辑电路的VHDL模型实验

实验《二》:组合逻辑与时序逻辑电路的VHDL模型实验

汕头大学实验报告学院:工学院系:电子专业年级成绩:姓名:学号组:实验时间:2010-04-10指导教师签字:________________________________________实验《二》:组合逻辑与时序逻辑电路的VHDL模型实验一、实验目的:1、掌握组合逻辑和时序逻辑电路的设计方法。

2、掌握组合逻辑电路的静态测试方法。

加深FPGA设计的过程,并比较原理图输入和文本输入的优劣。

3、了解通用同步计数器,异步计数器的使用方法。

4、理解积分分频器的原理。

二、硬件要求1、拨位开关。

2、FPGA主芯片:EP1K30QC208。

3、LED显示模块。

三、实验原理译码器是输入数码和输出数码之间的对应关系,也就是说,“输入码和输出码之间的对应表”这应该算是设计译码器的必须条件。

译码器常用来做码和码之间的转换器,也常被用于地址总线或用作电路的控制线。

例如下面为常见的3×8译码器的真值表:A0 A1 A2000001010011100101110111Y0Y1Y2Y3Y4Y5Y6Y710000010000010000001000010000001000001000001实验中可根据需要,为3×8译码器加入使能控制脚。

一般的分频器可获得的分频频率种类分布不均匀,积分分频,能比较好的解决这个问题。

1、分频结果=来源频率×N/(2ⁿ-1)2、频率波形不均匀。

四、实验内容及步骤本实验内容是完成38译码器和分频器的设计,然后将3×8译码器的结果在实验箱上实现,分频器则能正确仿真、显示,实验步骤如下:1、编写3×8译码器的VHDL代码。

2、用Quartus II对其进行编译仿真。

3、在仿真确定无误后,选择芯片ACEX1K EP1K30QC208。

4、给芯片进行管脚绑定,在此进行编译。

5、根据自己绑定的管脚,在实验箱上对键盘接口、显示接口和FPGA之间进行正确连线。

6、给目标板下载代码,在开关输入键值,观看实验结果。

vhdl实验报告

vhdl实验报告

专用集成电路实验报告13050Z011305024237X德文实验一开发平台软件安装与认知实验实验内容1、本实验以三线八线译码器(LS74138)为例,在Xilinx ISE 9.2软件平台上完成设计电路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。

下载芯片选择Xilinx公司的CoolRunner II系列XC2C256-7PQ208作为目标仿真芯片。

2、用1中所设计的的三线八线译码器(LS74138)生成一个LS74138元件,在Xilinx ISE 9.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译码器(LS74138),实现编译,仿真,管脚分配和编程下载等操作。

源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;-- Unment the following lines to use the declarations that are-- provided for instantiating Xilinx primitive ponents.--library UNISIM;--use UNISIM.Vponents.all;entity ls74138 isPort ( g1 : in std_logic;g2 : in std_logic;inp : in std_logic_vector(2 downto 0);y : out std_logic_vector(7 downto 0));end ls74138;architecture Behavioral of ls74138 isbeginprocess(g1,g2,inp)beginif((g1 and g2)='1') thencase inp iswhen "000"=>y<="00000001";when "001"=>y<="00000010";when "010"=>y<="00000100";when "011"=>y<="00001000";when "100"=>y<="00010000";when "101"=>y<="00100000";when "110"=>y<="01000000";when "111"=>y<="10000000";when others=>y<="00000000";end case;elsey<="00000000";end if;end process;end Behavioral;波形文件:生成元器件及连接电路思考:有程序可以看出,定义了三个输入端,一个输出端。

vhdl 组合逻辑电路

vhdl 组合逻辑电路

vhdl 组合逻辑电路VHDL组合逻辑电路VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,用于描述数字电路和系统级电路的行为和结构。

VHDL可以用于设计、仿真和验证电子系统。

在数字电路设计中,组合逻辑电路是一种重要的电路类型,本文将重点介绍VHDL中的组合逻辑电路。

一、组合逻辑电路简介组合逻辑电路是由输入端、输出端和逻辑门构成的电路。

它的输出仅取决于当前的输入,而与过去的输入无关。

组合逻辑电路的主要特点是没有存储元件,也就是说输出只与输入有关,不受时间的影响。

二、VHDL语言描述组合逻辑电路1. 实体声明在VHDL中,组合逻辑电路可以通过实体声明来描述。

实体声明包括实体头和实体体两部分。

实体头部分定义了实体名称、输入端口和输出端口,并且可以定义参数和模式等信息。

例如:实体名称:AND2输入端口:A, B输出端口:Y实体体部分定义了实体的行为,使用逻辑表达式来描述输出与输入之间的关系。

例如:实体体部分:Y <= A AND B;2. 架构声明架构声明用于描述实体的具体实现。

在架构声明中,可以使用信号、变量、常数、函数等来描述电路的行为。

例如:架构声明:架构 Behavioral of AND2 is开始信号 temp: bit;开始temp <= A AND B;Y <= temp;结束 Behavioral;三、VHDL组合逻辑电路的应用举例1. 与门(AND)与门是最基本的逻辑门之一,它的输出为输入信号的逻辑与运算结果。

在VHDL中,可以通过以下代码来实现一个2输入与门:实体声明:实体名称:AND2输入端口:A, B输出端口:Y实体体部分:Y <= A AND B;2. 或门(OR)或门是另一种基本的逻辑门,它的输出为输入信号的逻辑或运算结果。

在VHDL中,可以通过以下代码来实现一个2输入或门:实体声明:实体名称:OR2输入端口:A, B输出端口:Y实体体部分:Y <= A OR B;3. 非门(NOT)非门是最简单的逻辑门,它的输出为输入信号的逻辑非运算结果。

基本组合电路设计(使用VHDL语言)

基本组合电路设计(使用VHDL语言)

实验报告一、实验目的熟悉利用QuartusⅡ的VHDL文本设计流程,学习简单组合电路的设计、多层次电路设计、编译及仿真全过程。

二、实验内容1.利用QuartusⅡ完成2选1多路选择器的文本编辑输入和仿真测试等步骤,给出仿真波形。

2.根据工作原理,利用VHDL语言完成1位半加器和全加器的设计;3.建立一个更高的原理图设计层次,利用以上获得的1位全加器用例化语句写出8位二进制全加器的顶层文件,并讨论此加法器的电路特性。

三、实验环境计算机、QuartusII软件四、实验步骤1.利用QuartusⅡ完成2选1多路选择器的文本编辑输入和仿真测试等步骤,给出仿真波形。

(1)代码(2)仿真波形仿真结果分析:当s=1时,y=b,即输出信号b;当s=0时,y=a,即输出信号b。

仿真结果与理论结果是一致的,所以编辑的2选1多路选择器的文本是正确的.2.根据工作原理,利用VHDL语言完成1位半加器和全加器的设计;1位半加器设计:(1)代码(2)仿真波形仿真结果分析:进位信号so=a AND b,即当且仅当a=b=1时,产生进位。

输出信号so=a XOR b,当a=1,b=0或a=0,b=1时,输出信号so=1,否则so=0。

仿真结果与理论结果是一致的,所以编辑1位半加器的的文本是正确的.原件or2a(1)代码(2)原理图1位全加器加器设计:(1)代码(2)仿真波形(3)原理图3.建立一个更高的原理图设计层次,利用以上获得的1位全加器用例化语句写出8位二进制全加器的顶层文件,并讨论此加法器的电路特性。

(1)代码(2)仿真波形结果分析:A1,B1分别是两个加数的最低位,依次类推,A8,B8分别是两位加数的最高位。

当最高位A8,B8与来自低位进位C7中有两个是高电平时,则进位CARRY会产生高电平,否则CARRY为低电平。

其余位数的加法跟生活中的加法是一致的。

(3)原理图五、实验结果与讨论试验结果和理论结果是一致的,所以对2选1多路选择器、半加器、全加器以及8为全加器的文本描述是正确的。

组合逻辑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是数据输出端。

实验2组合逻辑电路的VHDL设计

实验2组合逻辑电路的VHDL设计

实验二 组合逻辑电路的VHDL 设计一、实验目的与要求 1、目的(1)熟悉VHDL 语言的基本结构(2)掌握用VHDL 语言实现组合逻辑功能器件的逻辑功能的一般方法。

2、要求(1)调试程序要记录调试过程中出现的问题及解决办法; (2)给出每个问题的算法或画出流程图;(3)编写程序要规范、正确,上机调试过程和结果要有记录,并注意调试程序集成环境的掌握及应用,不断积累编程及调试经验; (4)做完实验后给出本实验的实验报告。

二、实验设备、环境PII 以上计算机,装有QuartusII 软件 三、方法与步骤(一)教师简单回顾所需知识并演示较一个简单功能的实现过程。

1、 简单回顾组合逻辑电路的特点及常用逻辑功能器件的功能 2、 回顾QuartusII 的VHDL 操作步骤3、 以4选1数据选择器为例,重点演示该组合逻辑单元的VHDL 设计过程。

(1)4选1数据选择器的真值表与电路符号(2)4选1数据选择器的参考VHDL 程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41 ISPORT(S :IN STD_LOGIC_VECTOR (1 DOWNTO 0); A,B,C,D : IN STD_LOGIC; Y :OUT STD_LOGIC );地址输入输出S0 S1 0 0 A 0 1 B 1 0 C 11DS[1..0]A B C DYMULTI_4VA B C DS[1..0]YEND mux41;ARCHITECTURE a OF mux41 ISBEGINPROCESS (s,A,B,C,D)BEGINIF (S="00") THENY <= A;ELSIF (S="01") THENY <= B;ELSIF (S="10") THENY <= C;ELSIF (S="11") THENY <= D;END IF;END PROCESS;END a;四、实验过程、内容、数据处理及分析按照设计选题编写简单程序1、可供选择进行设计的组合逻辑电路如下,要求规定课时内至少完成3种逻辑电路的设计。

北邮数电实验报告

北邮数电实验报告

北京邮电大学实验报告实验名称: 数电电路与逻辑设计实验学院:信息与通信工程学院班 级: 姓 名: 学 号: 班内序号:日期:一. 实验一:QuartusII 原理图输入法设计1. 实验名称和实验任务要求(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块 元。

(2)用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号入信号。

(3)用3线-8线译码器(74LS138)和逻辑门设计实现函数F=A B C +A B C +AB C +A B C 。

2.实验原理图及波形图(1)半加器(2)全加器(3)74LS383.仿真波形图分析(1)半加器:输入为a,b,输出S,CO(进位)。

当ab都为0时,半加和s=0,进位端co=0。

当ab都为1时,半加和s=0,进位端co=1。

当a=1,b=0或a=0,b=1时,半加和s=1,进位端co=0。

(2)全加器:输入a,b,输出S,CO(进位),ci(低进位)。

当a=0,b=0,ci=0,输出s=0,co=0。

当a=0,b=1或a=1,b=0又ci=0,输出s=1,co=0。

当a=0,b=0,ci=1,输出s=1,co=0。

(3)74LS138输入A,B,C,输出为3。

四个输出对应F中的四个最小项,Y0、Y2、Y4、Y7,以实现函数功能。

二.实验二:用VHDL设计与实现组合逻辑电路1.实验名称和实验任务要求(1)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能。

要求用拨码开关设定输入信号,7段数码管显示输出信号。

(2)用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

(3)用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个’1’时,输出为’1’,否则输出’0’,仿真验证其功能。

VHDL描述组合逻辑电路

VHDL描述组合逻辑电路

VHDL描述组合逻辑电路
规律电路由于只分高、低电平,抗干扰力强,精度和保密性佳。

广泛应用于计算机、数字掌握、通信、自动化和仪表等方面。

最基本的有与电路或电路和非电路。

还有异或门,与非门。

“规律电路”在汉英词典中的解释(a logical circuit 简洁的规律电路通常是由门电路构成,也可以用三极管来制作,例如,一个NPN三极管的集电极和另一个NPN三极管的放射极连接,这就可以看作是一个简洁的与门电路,即:当两个三极管的基极都接高电平的时候,电路导通,而只要有一个不接高电平,电路就不导通…… 规律电路分为3类:非门,与门,或门。

非门:利用内部结构,使输入的电势变成相反的电势,高电势变低电势,低电势变高电势。

与门:又称“与电路”。

执行“与”运算的基本门电路。

有几个输入端,只有一个输出端。

当全部的输入同时为“1”电平常,输出才为“1”电高,否则输出为“0”电平。

与的含义是∶只有当打算一件事的全部条件都具备时,这个大事才会发生。

规律与也称规律乘。

又称“或电路”。

执行“或”运算的基本门电路。

有几个输入端,只有一个输出端。

只要输入中有一个为“1”电平常,输出就为“1”电平,只有当全部的输入全为“0”电平常,输出才为“0”电平。

非门的电路状态表:
AF1001
与门的电路状态表:
ABZ000010100111 或门的电路状态表:ABF000011101111。

VHDL实验(完整版)

VHDL实验(完整版)

实验一 Quartus II软件使用与十进制计数器一、实验目的熟悉使用Quartus II软件二、实验内容安装Quartus II软件并成功注册、使用Quartus II软件建立工程并完成十进制计数器三、实验仪器、设备计算机、Quartus II软件四、实验步骤1.打开安装文件位于…quartusII6.0\disk1\install.exe,根据提示进行下一步操作,在弹出框中选择第一个选项,install Quartus II and Related Software。

Quartus II的安装步骤1接下来的安装中选择下一步,到下图选择界面。

只勾选安装Quartus II 6.0即可。

Quartus II的安装步骤22.完成安装步骤2后选择下一步至下图所示,选择完全安装complete,再继续点击下一步至安装开始。

完全安装Quartus II软件软件安装途中出现如下图所示情况时,选择安装文件中的…disk2\disk2\quartus,然后选择确定——OK继续安装直到结束。

安装过程中换disk2路径Quartus II软件的安装至此结束,此安装步骤WINXP/WIN 7均有效,WIN8若有问题,请修改兼容权限。

3.软件注册。

软件安装结束后打开Quartus II软件将出现下图所示情况,这是没有注册的提醒,我们必须先进行注册才能建立工程文件,若大家忽略了这个提示窗口,直接进行工程建立等工作,任何仿真图和编译功能都无法正常使用,等于白费功夫浪费时间,还要重新做,非常影响学习兴趣和情绪。

(由于软件注册是绑定MAC物理地址,所以每台机器的license 是完全不一样的,实验室的电脑已经安装好了Quartus II软件,但是没有注册,所以做实验的时候一点要先注册,不然就白做了)Quartus II软件提示未注册弹窗注册方法,打开quiic7.1 lisence 生成器文件夹中的keymaker.exe,在弹出的窗口中点击Make License,在文件夹中就会出现和本台机器相匹配的license.dat。

实验二-组合逻辑电路设计与实现-

实验二-组合逻辑电路设计与实现-
缺点。
思考题: 1. 采用74LS151八选一的数据选择器,重新设计实验内容2中的
②题 。 2. 通过具体的设计体验后,你认为组合逻辑电路设计的关键点 或关键步骤是什么?
13
输入
输出
s A1 A0
1×× 00 0 00 1 01 0 01 1
Q
0
D0
D1
D2
D3
7
实验二 组合逻辑电路设计与实现
(3)采用数据选择器实现逻辑函数 1)将双 4选1 数据
选择器 CT74LS153 扩 展成 8选1 数据选择器:
8
实验二 组合逻辑电路设计与实现
将双 4选1 数据选择器 CT74LS153 扩展成 8选1 数据选择器:
如使 F=1Y ,则令
A1A,A0=B
比较得:
V cc
+5V
B
16 15 14 13 12 11 10
9
V cc 2S A 0 2D 3 2D 2 2D 1 2D 0 Q
D0=0,D1=C,D2=C,D3=1
74LS153
1S A 1 1D 3 1D 2 1D 1 1D 0 Q G N D
12
345
9
实验二 组合逻辑电路设计与实现
2)用双4选1数据选择器 CT74LS153 实现逻辑函数
F A B C A B C AC B ABC 解: CT74LS153输出函数为:
1 Y A 1 A 0 1 D 0 A 1 AD 3
1
实验二 组合逻辑电路设计与实现
三. 实验原理
1、二进制译码器
如:2-4线译码器74LS139、 3-8线译码器74LS138 和 4-16线译码器74LS154。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二组合逻辑电路的VHDL实现
一、实验目的
掌握使用VHDL语言进行时序逻辑电路设计的方法。

二、实验设备及器件
IBM PC机一台
三、实验内容
(1)用VHDL 语言设计一个D触发器,对程序进行编译和仿真,并记录仿真波形。

CLK接收到上升沿信号时,输入端D的信号被传送到输
出端Q输出,否则输出端Q维持原来的状态不变。

实验代码:
D触发器LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY DFF1 IS
PORT (CLK : IN STD_LOGIC ;
D : IN STD_LOGIC ;
Q : OUT STD_LOGIC );
END ;
ARCHITECTURE bhv OF DFF1 IS
SIGNAL Q1 : STD_LOGIC ; --类似于在芯片内部定义一个数据的暂存节点
BEGIN
PROCESS (CLK)
BEGIN
IF CLK'EVENT AND CLK = '1'
THEN Q1 <= D ;
END IF;
Q <= Q1 ; --将内部的暂存数据向端口输出
END PROCESS ;
END bhv;
(2)用VHDL语言设计一个十进制加法计数器,对程序进行编译和仿真,并记录仿真波形。

提示:十进制加法计数器的电路如下图所示,在时钟信号的驱动下,计数器进行累加,每次加1,其输出状态由0000变化到1001,加满回零。

当复位输入端reset为低电平时,计数器复位,输出状态回到0000。

十进制加法计数器电路图
实验代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY jsq10 IS
PORT(CLK,RESET:IN STD_LOGIC;
Q:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0));
END jsq10;
ARCHITECTURE ONE OF jsq10 IS
BEGIN
PROCESS(CLK,RESET)
BEGIN
IF(RESET='0') THEN Q<="0000";
ELSIF(CLK' EVENT AND CLK='1') THEN
Q<="0000";
ELSE
Q<=Q+1;
END IF;
END IF;
END PROCESS;
END ONE;
(3)用VHDL语言设计一个电平锁存器,对程序进行编译和仿真,并记录仿真
波形。

提示:电平锁存器电路如右图所示。

当复位信
号q为低电平;当复位信号reset为低电平时,
如果s信号为高电平,输出信号q输出输入端
电平锁存器
data的值;当复位信号reset为低电平时,如果
s信号为低电平,输出信号保持原值。

实验代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY LATCHH IS
Port ( DATA,RESET,S: IN STD_LOGIC;
Q: OUT STD_LOGIC);
END LATCHH;
ARCHITECTURE BITT OF LATCHH IS
SIGNAL Q1:STD_LOGIC ; --类似于在芯片内部定义一个数据的暂存节

BEGIN
PROCESS(DATA,RESET,S)
BEGIN
Q<='0';
Q1<='0';
ELSIF(S='1')THEN
Q1<=DATA;
Q<=DATA;
ELSE
Q<=Q1;
END IF;
END PROCESS;
END BITT;
四、实验要求
熟练掌握运用VHDL语言进行组合逻辑电路设计的基本方法。

五、实验结果
(1)D触发器
在Quartus II建立工程并输入代码,经编译后波形图如下所示:
D触发器实验波形图
实验分析:
如图所示,当时钟信号输入端CLK接收到上升沿信号时,输入端D的信号被传送到输出端Q输出,否则输出端Q维持原来的状态不变。

在0~5ns内,虽然CLK电平中间有过一次翻转,但输入端D始终为低电平,所以输出端Q为低电平;在5ns~10ns,时钟信号有一次翻转,此时D为高电平,因此输出端Q为1.
(2)十进制加法器
在Quartus II 建立工程并输入代码,经编译后波形图如下所示:
实验分析:
如图所示,CLK 是时钟信号,Q0、Q1、Q2和Q3是从低到高的4位二进制数,在时钟信号的驱动下,计数器进行累加,每次加1,其输出状态由0000变化到1001,加满回零。

当复位输入端reset 为低电平时,计数器复位,输出状态回到0000。

在0~10ns 内,由于复位输入端RESET 为低电平,因此虽然时钟信号CLK 有输入,但计数器无法进行累加;在10ns~20ns 内,复位输入端为“1”,此时时钟信号CLK 有效,计数器进行累加计数。

(3)电平锁存器
在Quartus II 建立工程并输入代码,经编译后波形图如下所示:
实验分析:
在10ns~20ns ,复位信号reset 为高电平,锁存器被复位,输出信号q 为低电平;在0~10ns ,复位信号reset 为低电平时,如果s 信号为高电平,输出信号q 输出输入端data 的值;当复位信号reset 为低电平时,如果s
信号为低电平,输
十进制加法器波形图
电平锁存器
出信号保持原值。

但由于最后时序的原因,未能实现最后一点。

六、实验总结
本次实验的主要内容是时序逻辑电路的VHDL实现,要求我们掌握VHD语言进行时序电路设计的方法,同时在实验一的基础上,进一步熟悉Quartus II软件的使用。

经过这两次实验,让我体会到只要愿意认真学,总会有收获。

例如本次实验前2个项目都是在参考程序的情况下完成的,项目3经过思考、结合前面的几个程序,就设计出了基本的轮廓。

此外,本次实验涉及到时序的问题比较多,个人主观认为特别是在电平锁存器的“RESET为低,S为低,输出保持信号保持原值”这个状态下,设计程序应该没问题,但是发现RESET、S同时由高电平变为低电平状态下,输出Q并未保持原输出,而是跳变为0。

后来进行总结时,认为应该是在并列情况下由于有延迟导致程序逻辑没问题,但与实际情况条件不符,导致结果出错。

相关文档
最新文档