实验2 组合逻辑电路的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是数据输出端。

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

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

实验二组合逻辑电路的设计一、实验目的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;实验结果:按下试验箱的按键后,数码管显示按键的状态。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

实验二 基于VHDL格雷码编码器的设计

实验二   基于VHDL格雷码编码器的设计

实验二基于VHDL格雷码编码器的设计一、实验目的1、了解格雷码变换的原理。

2、进一步熟悉QUARTUSII软件的使用方法和VHDL输入的全过程。

3、进一步掌握实验系统的使用。

二、实验原理格雷(Gray)码是一种可靠性编码,在数字系统中有着广泛的应用。

其特点是任意两个相邻的代码中仅有一位二进制数不同,因而在数码的递增和递减运算过程中不易出现差错。

但是格雷码是一种无权码,要想正确而简单的和二进制码进行转换,必须找出其规律。

根据组合逻辑电路的分析方法,先列出其真值表再通过卡诺图化简,可以很快的找出格雷码与二进制码之间的逻辑关系。

其转换规律为:高位同,从高到低看异同,异出‘1’,同出‘0’。

也就是将二进制码转换成格雷码时,高位是完全相同的,下一位格雷码是‘1’还是‘0’,完全是相邻两位二进制码的“异”还是“同”来决定。

下面举一个简单的例子加以说明。

假如要把二进制码10110110转换成格雷码,则可以通过下面的方法来完成,方法如图2-1。

图2-1 格雷码变换示意图因此,变换出来的格雷码为11101101。

三、实验内容本实验要求完成的任务是变换12位二进制码到12位的格雷码。

实验中用12位拨动开关模块的K1~K12表示8位二进制输入,用LED模块的LED1~LED12来表示转换的实验结果十二位格雷码。

实验LED亮表示对应的位为‘1’,LED灭表示对应的位为‘0’。

通过输入不同的值来观察输入的结果与实验原理中的转换规则是否一致。

实验箱中的拨动开关、与FPGA的接口电路,LED灯与FPGA的接口电路以及拨动开关、LED与FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。

四、实验步骤1、 打开QUARTUSII 软件,新建一个工程。

2、建完工程之后,再新建一个VHDL File 。

新建一个VHDL 文件的过程如下: 1)选择QUARTUSII 软件中的File>New 命令,出现New 对话框。

如图2-2所示。

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是数据输出端。

组合逻辑VHDL设计——门电路

组合逻辑VHDL设计——门电路

实验名称:组合逻辑VHDL设计——门电路一、2输入与门的VHDL设计1.实体框图2.程序设计①编译前的程序Entity and2a isport(a,b:in bit;c:out bit);end entity and2a;Architecture ex1 of and2a isbeginc<=a and b;end architecture ex1;②程序编译错误情况:无3.仿真波形图4.仿真波形分析有0出0;全1出1。

当A和B中有一个为低电平,C则为低电平;当A和B都为高电平时,C则为高电平。

二、3输入与非门的VHDL设计2.程序设计①编译前的程序Entity nand3a isport(A,B,C:in bit;Y:out bit);end entity nand3a;Architecture ex2 of nand3a isbeginY<=not(A and B and C);end Architecture ex2;②程序编译错误情况:无3.仿真波形图4.仿真波形分析有0出1,全1出0。

当A,B,C中有一个为低电平时,Y则为高电平;当A,B,C三者全为高电平时,Y则为低电平。

三、全加器的VHDL设计2.程序设计①编译前的程序Entity nand3B isport(A,B,CI:in bit;S,CO:out bit);end Entity nand3B;Architecture ex3 of nand3B issignal c,d,e,f :bit;beginc<=A xor B;d<=c and CI;e<=A and B;f<=e nor d;S<=c xor CI;CO<=not f;end architecture ex3;②程序编译错误情况:无3.仿真波形图4.仿真波形分析A B CI CO S0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1这是一个全加器,其中A,B为输入,CI为来自低位的进位。

VHDL语言组合逻辑电路设计

VHDL语言组合逻辑电路设计

元件定 义 元件在 何处?
元件设计应放在同一 目录下
已 知 逻 辑 电 路 设 计 方 法
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY GINV IS PORT(A:IN STD_LOGIC; C:OUT STD_LOGIC); END GINV; ARCHITECTURE dataflow OF GINV IS BEGIN C<=NOT A; END dataflow;
已知逻辑电路设计方法
添加中间信号
L1
L3
L2
L4
已 知 逻 辑 电 路 设 计 方 法
ARCHITECTURE dataflow OF ymq24 IS COMPONENT GINV PORT(A:IN STD_LOGIC; C:OUT STD_LOGIC); END COMPONENT; COMPONENT GNAND2 PORT(A,B:IN STD_LOGIC; C:OUT STD_LOGIC); END COMPONENT; SIGNAL L1,L2,L3,L4:STD_LOGIC; BEGIN U1:GINV PORT MAP(A0,L1); U2:GINV PORT MAP(A1,L2); U3:GINV PORT MAP(L1,L3); U4:GINV PORT MAP(L2,L4); U5:GNAND2 PORT MAP(L1,L2,Y0); U6:GNAND2 PORT MAP(L2,L3,Y1); U7:GNAND2 PORT MAP(L1,L4,Y2); U8:GNAND2 PORT MAP(L3,L4,Y3); END dataflow;
元件设计应放在同一 目录下
已 知 逻 辑 电 路 设 计 方 法

实验二 组合逻辑电路分析与设计

实验二  组合逻辑电路分析与设计

实验二组合逻辑电路分析与设计一、实验目的1.掌握组合逻辑电路的分析方法与测试方法;2.掌握组合逻辑电路的设计方法。

二、实验预习要求1.熟悉门电路工作原理及相应的逻辑表达式;2.熟悉数字集成电路的引脚位置及引脚用途;3.预习组合逻辑电路的分析与设计步骤。

三、实验原理通常, 逻辑电路可分为组合逻辑电路和时序逻辑电路两大类。

电路在任何时刻, 输出状态只决定于同一时刻各输入状态的组合, 而与先前的状态无关的逻辑电路称为组合逻辑电路。

1.组合逻辑电路的分析过程, 一般分为如下三步进行:(1)由逻辑图写出输出端的逻辑表达式;(2)画出真值表;(3)根据对真值表进行分析, 确定电路功能。

2. 组合逻辑电路的一般设计过程为图实验2.1所示。

设计过程中, “最简”是指电路所用器件最少, 器件的种类最少, 而且器件之间的连线也最少.四、实验仪器设备1. TPE-ADⅡ实验箱(+5V电源, 单脉冲源, 连续脉冲源, 逻辑电平开关, LED显示, 面包板数码管等)1台;2. 四两输入集成与非门74LS00 2片;3. 四两输入集成异或门74LS86 1片;4. 两四输入集成与非门74LS20 3片。

五、实验内容及方法1. 分析、测试74LS00组成的半加器的逻辑功能。

(1)用74LS00组成半加器, 如图实验2.2所示电路, 写出逻辑表达式并化简, 验证逻辑关系。

Z1=AB;Z2= Z1A = ABA;Z3= Z1B = ABB;Si= Z2Z3 = ABA ABB = ABA+ABB = AB+ AB = A + B;Ci = Z1A = AB;(2)列出真值表。

(3)分析、测试用异或门74LS86与74LS00组成的半加器的逻辑功能, 自己画出电路, 将测试结果填入自拟表格中, 并验证逻辑关系。

评价: 通过这种方法获得测试结果和上述电路完全相同, 并且在有异或门的情况下实现较为简单, 所以我们应当在设计的时候在条件允许的情况实现最简。

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

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

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

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

提示:D触发器的符号如右图所示,当时钟信号输入端CLK接收到上升沿信号时,输入端D的信号被传送到输出端Q输出,否则输出端Q维持原来的状态不变。

实验代码:D触发器LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY DFF1 ISPORT (CLK : IN STD_LOGIC ;D : IN STD_LOGIC ;Q : OUT STD_LOGIC );END ;ARCHITECTURE bhv OF DFF1 ISSIGNAL Q1 : STD_LOGIC ; --类似于在芯片内部定义一个数据的暂存节点BEGINPROCESS (CLK)BEGINIF 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 ISPORT(CLK,RESET:IN STD_LOGIC;Q:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0));END jsq10;ARCHITECTURE ONE OF jsq10 ISBEGINPROCESS(CLK,RESET)BEGINIF(RESET='0') THEN Q<="0000";ELSIF(CLK' EVENT AND CLK='1') THENQ<="0000";ELSEQ<=Q+1;END IF;END IF;END PROCESS;END ONE;(3)用VHDL语言设计一个电平锁存器,对程序进行编译和仿真,并记录仿真波形。

VHDL描述组合逻辑电路

VHDL描述组合逻辑电路

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

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

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

还有异或门,与非门。

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

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

与门:又称“与电路”。

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

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

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

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

规律与也称规律乘。

又称“或电路”。

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

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

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

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

实验2 组合逻辑电路的分析和设计

实验2   组合逻辑电路的分析和设计

实验二组合逻辑电路的设计一、实验目的: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。

实验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种逻辑电路的设计。

实验《二》:组合逻辑与时序逻辑电路的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、给目标板下载代码,在开关输入键值,观看实验结果。

数电实验报告实验二组合逻辑电路的设计方案

数电实验报告实验二组合逻辑电路的设计方案

实验二组合逻辑电路的设计一、实验目的1.掌握组合逻辑电路的设计方法及功能测试方法。

2.熟悉组合电路的特点。

二、实验仪器及材料a) TDS-4数电实验箱、双踪示波器、数字万用表。

b) 参考元件:74LS86、74LS00。

三、预习要求及思考题1.预习要求:1)所用中规模集成组件的功能、外部引线排列及使用方法。

2) 组合逻辑电路的功能特点和结构特点.3) 中规模集成组件一般分析及设计方法.4)用multisim软件对实验进行仿真并分析实验是否成功。

2.思考题在进行组合逻辑电路设计时,什么是最佳设计方案?四、实验原理1.本实验所用到的集成电路的引脚功能图见附录2.用集成电路进行组合逻辑电路设计的一般步骤是:1)根据设计要求,定义输入逻辑变量和输出逻辑变量,然后列出真值表;2)利用卡络图或公式法得出最简逻辑表达式,并根据设计要求所指定的门电路或选定的门电路,将最简逻辑表达式变换为与所指定门电路相应的形式;3)画出逻辑图;4)用逻辑门或组件构成实际电路,最后测试验证其逻辑功能。

五、实验内容1.用四2输入异或门(74LS86)和四2输入与非门(74LS00)设计一个一位全加器。

1)列出真值表,如下表2-1。

其中A i、B i、C i分别为一个加数、另一个加数、低位向本位的进位;S i、C i+1分别为本位和、本位向高位的进位。

2)由表2-1全加器真值表写出函数表达式。

3)将上面两逻辑表达式转换为能用四2输入异或门(74LS86)和四2输入与非门(74LS00)实现的表达式。

4)画出逻辑电路图如图2-1,并在图中标明芯片引脚号。

按图选择需要的集成块及门电路连线,将A i、B i、C i接逻辑开关,输出Si、Ci+1接发光二极管。

改变输入信号的状态验证真值表。

2.在一个射击游戏中,每人可打三枪,一枪打鸟(A),一枪打鸡(B),一枪打兔子(C)。

规则是:打中两枪并且其中有一枪必须是打中鸟者得奖(Z)。

试用与非门设计判断得奖的电路。

实验二 组合逻辑电路的设计 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。

实验二 简单组合电路的设计

实验二 简单组合电路的设计

可编程逻辑设计——实验二报告学院:物理与信息工程学院专业:通信工程年级:2007级班级:二班学号:110700221姓名:林明明指导老师:杨秀芝实验二简单组合电路的设计一、实验目的:熟悉QuartusII VHDL文本设计流程全过程。

学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。

二、实验原理VHDL硬件描述语言是一种可以从多个层次上对数字逻辑电路进行建模的国际标准(IEEE),本次实验是用VHDL设计一个简单的数字组合逻辑电路,并结合QuartusII环境和实验电路进行硬件测试。

三、实验内容:1)根据实验一中一位全加器的电路原理图,改用VHDL语言文本输入方法,设计一位全加器,要求采用结构化的描述方法。

设计完成后,利用QuartusII集成环境进行时序分析、仿真,记录仿真波形和时序分析数据。

2)用VHDL语言设计一个四选一数据选择器电路。

要求先设计一个二选一数据选择器mux21,然后利用元件例化语句设计四选一数据选择器mux41,同样请给出时序分析数据和仿真结果。

3)硬件测试(选用器件 EPF10K10 Pin84)管脚锁定:1)一位全加器a PIO23(I/O19) 30 SW1b PIO24(I/O20) 35 SW2ci PIO25(I/O21) 36 SW3s PIO21(I/O16) 27 LED10co PIO19(I/O8) 29 LED122)四选一数据选择器a1 PIO23 30 SW1a0 PIO24 35 SW2d3 PIO27 38 SW5d2 PIO28 39 SW6d1 PIO29 47 SW7d0 PIO30 42 SW8yout 29 LED12四、思考题比较原理图输入法和文本输入法的优缺点。

五、实验结果:1.一位全加器的VHDL描述:(1)一位半加器的VHDL描述library ieee;use ieee.std_logic_1164.all;entity h_adder isport(a,b:in std_logic;co,so:out std_logic);end entity h_adder;architecture fh1 of h_adder isbeginso<=not(a xor (not b));co<=a and b;end architecture fh1;(2)或门逻辑的VHDL描述library ieee;use ieee.std_logic_1164.all;entity or2a isport(a,b:in std_logic;c:out std_logic);end entity or2a;architecture one of or2a isbegin c<=a or b;end architecture one;(3)一位二进制全加器顶层设计的VHDL描述library ieee;use ieee.std_logic_1164.all;entity f_adder isport(ain,bin,cin:in std_logic;cout,sum:out std_logic);end entity f_adder;architecture fd1 of f_adder iscomponent h_adderport(a,b:in std_logic;co,so:out std_logic);end component;component or2aport(a,b:in std_logic;c:out std_logic);end component;signal d,e,f:std_logic;beginu1:h_adder port map(a=>ain,b=>bin,co=>d,so=>e);u2:h_adder port map(a=>e,b=>cin,co=>f,so=>sum);u3:or2a port map(a=>d,b=>f,c=>cout);end architecture fd1;仿真波形:测试结果及分析:…20us~30us:0+1+0=0130us~40us: 0+1+1=1040us~50us: 1+0+0=01;50us~60us: 1+0+1=10;60us~70us: 1+1+0=10;70us~80us: 1+1+1=11;…显然,ain+bin+cin=cout*2+sum,如此,电路的一位全加功能得以验证。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二 组合逻辑电路的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 IS
PORT(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 1
1
D
S[1..0]A B C D
Y
MULTI_4V
A B C D
S[1..0]
Y
END mux41;
ARCHITECTURE a OF mux41 IS
BEGIN
PROCESS (s,A,B,C,D)
BEGIN
IF (S="00") THEN
Y <= A;
ELSIF (S="01") THEN
Y <= B;
ELSIF (S="10") THEN
Y <= C;
ELSIF (S="11") THEN
Y <= D;
END IF;
END PROCESS;
END a;
四、实验过程、内容、数据处理及分析
按照设计选题编写简单程序
1、可供选择进行设计的组合逻辑电路如下,要求规定课时内至少完成3种
逻辑电路的设计。

设计对象选择:基本门电路、8选1数据选择器、3-8译码器、BCD码译码器、优先级编码器、全加器、4位加法器。

(1) 8选1数据选择器
library ieee;
use ieee.std_logic_1164.all;
entity mux81 is
port (s: in std_logic_vector (2 downto 0);
a,b,c,d,e,f,g,h : in std_logic;
y: out std_logic
);
end mux81; architecture e of mux81 is begin
process(s,a,b,c,d,e,f,g,h) begin
if(s="000")then
y<=a;
elsif s=("001") then
y<=b;
elsif s=("010") then
y<=c;
elsif s=("011") then
y<=d;
elsif s=("100") then
y<=e;
elsif s=("101") then
y<=f;
elsif s=("110") then
y<=g;
elsif s=("111") then
y<=h;
end if;
end process;
end e;
(2) 3-8译码器
library ieee;
use ieee.std_logic_1164.all;
entity mux38 is
port (s: in std_logic_vector (2 downto 0); y: out std_logic_vector(7 downto 0)
);
end mux38;
architecture e of mux38 is
begin
process(s)
begin
if(s="000")then
y<="11111110";
elsif s=("001") then
y<="11111101";
elsif s=("010") then
y<="11111011";
elsif s=("011") then
y<="11110111";
elsif s=("100") then
y<="11101111";
elsif s=("101") then
y<="11011111";
elsif s=("110") then
y<="10111111";
elsif s=("111") then
y<="01111111";
end if;
end process;
end e;
(3)优先级编码器
library ieee;
use ieee.std_logic_1164.all;
entity adv is
port (I:in std_logic_vector( 0 to 7 ); y:out std_logic_vector (0 to 2) );
end adv;
architecture a of adv is
begin
process(I)
begin
if (i(7)='0') then
y<="000";
elsif (i(6)='0') then
y<="100";
elsif (i(5)='0') then
y<="010";
elsif (i(4)='0') then
y<="110";
elsif (i(3)='0') then
y<="001";
elsif (i(2)='0') then
y<="101";
elsif (i(1)='0') then
y<="011";
elsif (i(0)='0') then
y<="111";
end if;
end process;
end a;
对所编写的VHDL程序进行软件仿真,直到仿真结果满足功能要求。

1、功能仿真。

2、选择某一型号器件后时序仿真。

记录正确的源程序与仿真波形。

五、实验结论与问题讨论
1、功能仿真与时序仿真有何区别?
答:功能仿真不考虑器件和布线的延时,而时序仿真需要考虑
2、记录软件仿真的波形并与实际功能相对照,检查是否符合功能要求。

3、记录实验过程遇到的问题以及解决的方法。

答:时序仿真的时候出现毛刺,但功能仿真可以解决。

六、实验心得
通过本次实验,我已基本掌握了用VHDL语言实现组合逻辑功能器件的逻辑功能的一般方法。

而时序仿真的时候还会出现毛刺。

相关文档
最新文档