实验一 用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位加法器的功能,并验证了其正确性和性能。
在功能仿真中,我们输入了不同的测试数据,观察了输出结果,发现加法器能够正确地进行加法运算,并得到了正确的结果。
在时序仿真中,我们观察了电路的时序行为,包括输入信号的变化、输出信号的响应和中间信号的传播延迟等,发现加法器能够在时序上满足要求,并且具有较好的性能。
组合逻辑电路分析与设计实验报告
组合逻辑电路分析与设计实验报告一、实验目的:1. 掌握逻辑设计基本方法2. 能够自己设计简单逻辑电路,并能用VHDL描述3. 理解输出波形和逻辑电路功能之间的关系二、实验设备与器材:1. 实验箱一套(含数字信号发生器、逻辑分析仪等测量设备)2. 电缆若干三、实验原理:组合逻辑电路是指由与或非门等基本逻辑门或它们的数字组合所构成的电路。
对于组合逻辑电路而言,不需要任何时钟信号控制,它的输出不仅能直接受到输入信号的影响,同时还与其输入信号的时序有关,输入信号的任何改变都可能导致输出信号的变化,因此组合逻辑电路的输出总是与它的输入存在着一个确定的逻辑关系。
本实验通过学习与实践,让学生从具体的组合逻辑电路出发,逐步掌握数字逻辑电路设计技术,了解逻辑电路的设计过程,掌握用组合逻辑门件构成数字系统的方法,提高学生设计和分析组合逻辑电路的能力。
四、实验内容及步骤:本实验的基本内容是设计一个可以进行任意二进制数求和的组合逻辑电路,并用VHDL 语言描述该电路。
其主要步骤如下:1. 设计电路的逻辑功能,确定电路所需基本逻辑门电路元件的类型和数量。
2. 画出电路的逻辑图并进行逻辑延迟估算。
3. 利用VHDL语言描述电路功能,并利用仿真软件验证电路设计是否正确。
4. 利用实验箱中的数字信号发生器和逻辑分析仪验证电路设计是否正确。
五、实验结果与分析:我们首先设计了一个可以进行单位位的二进制数求和的电路,即输入两个1位二进制数和一个进位信号,输出一个1位二进制数和一个进位信号。
注意到,当输入的两个二进制数为同等真值时,输出的结果即为原始输入中的异或结果。
当输入的两个二进制数不同时,输出需要加上当前进行计算的进位,同时更新输出进位信号的取值。
我们继续将此电路扩展到多位数的情况。
假设输入两个n位的二进制数a和b,我们需要得到一个(n+1)位的二进制数c,使得c=a+b。
我们需要迭代地对每一位进行计算,并在计算每一位时将其前一位的进位值也列入计算中。
实验一组合逻辑电路的VHDL设计
实验⼀组合逻辑电路的VHDL设计组合逻辑电路的VHDL设计学院及班级:学号:姓名:完成时间:(1)实验⽬的:熟悉QuartusⅡ的VHDL⽂本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。
(2)实验内容1:⽤VHDL语⾔设计2选1多路选择器。
提⽰:参考例3-1。
要求:⾸先利⽤QuartusⅡ完成2选1多路选择器的⽂本编辑输⼊和编译、仿真测试等步骤,给出时序仿真波形。
选择⽬标器件EP1C3,建议选实验电路模式5,如附图1所⽰。
⽤键1(PIO0,引脚号为1)控制s;a和b分别接clock0(引脚号为93)和clock2(引脚号为17);输出信号y接扬声器speaker(引脚号为129)。
通过短路帽选择clock0接256Hz信号,clock2接8Hz信号。
引脚锁定后进⾏编译、下载和硬件测试实验,通过键1控制s,可使扬声器输出不同⾳调。
(3)实验内容2:将此⼆选⼀多路选择器看成是⼀个元件mux21a,利⽤元件例化语句描述图2所⽰电路,并将此⽂件放在同⼀⽬录中。
图2 双2选1多路选择器要求:⾸先利⽤QuartusⅡ完成2选1多路选择器的⽂本编辑输⼊和编译、仿真测试等步骤,给出时序仿真波形。
然后进⾏引脚锁定以及硬件下载测试。
选择⽬标器件EP1C3,建议选实验电路模式5(附图1),⽤键1(PIO0,引脚号为1)控制s0;⽤键2(PIO1,引脚号为2)控制s1;a3、a2和a1分别接clock5(引脚号为16)、clock0(引脚号为93)和clock2(引脚号为17);输出信号outy仍接扬声器spker(引脚号为129)。
通过短路帽选择clock0接256Hz信号,clock5接1024Hz,clock2接8Hz信号。
通过选择键1、键2,控制s0、s1,可使扬声器输出不同⾳调。
(4)程序设计程序⽰例1:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;entity mux21a isport(a,b,s:in std_logic;y:out std_logic);end entity mux21a;architecture one of mux21a isbeginPROCESS(s,a,b)BEGINCASE S ISWHEN '0' => y <= a;WHEN '1' => y <= b;WHEN OTHERS =>NULL ;END CASE;END PROCESS;end architecture one;程序⽰例2:library ieee;use ieee.std_logic_1164.all;entity muxk isport(a1,a2,a3,s0,s1:in std_logic;outy: out std_logic);end entity muxk;architecture one of muxk issignal tmp: std_logic;component mux21aport(a,b,s: in std_logic;y:out std_logic);end component;beginu1: mux21a port map(a=>a2,b=>a3,s=>s0,y=>tmp);u2: mux21a port map(a=>a1,b=>tmp,s=>s1,y=>outy);end architecture one;(5)实验过程打开软件,点击新建建⽴⼀个VHDL FILE,将编写好的程序拷进去点击保存根据提⽰新建⼀个以实体名为名的⼯程并选择芯⽚,程序名也与实体名⼀致。
VHDL与数字电路设计实验报告
VHDL与数字电路设计实验报告引言本实验旨在通过使用VHDL编程语言和数字电路设计技术,实现特定功能的电路设计。
本文档将对实验的步骤、设计原理和结果进行详细描述。
实验步骤1. 步骤一:熟悉VHDL编程语言在实验开始之前,团队成员对VHDL编程语言进行了研究和熟悉。
我们了解了VHDL的基本语法、数据类型和结构,并获得了对VHDL设计原理的初步理解。
2. 步骤二:设计功能电路在本实验中,我们选择了一个特定的功能电路进行设计。
我们首先进行了功能需求分析,并根据需求确定了电路的输入输出信号以及主要的逻辑运算。
然后,我们使用VHDL编程语言将电路的逻辑运算实现为代码,并进行了仿真和测试。
3. 步骤三:电路仿真和验证为了验证我们设计的电路功能的正确性,我们使用了VHDL仿真工具进行了电路的仿真和验证。
我们根据输入信号的不同组合,观察输出信号的变化,并与我们预期的结果进行比较。
通过这一步骤,我们确认了我们设计的电路能够按照预期工作。
4. 步骤四:电路实现和测试在确认电路的设计和仿真结果无误之后,我们进一步将电路实现到实际的数字电路平台上,并进行了硬件测试。
我们使用实际的输入信号来测试电路的性能和稳定性,并对输出信号进行观察和分析。
通过这一步骤,我们验证了电路在实际环境中的可行性。
设计原理我们设计的电路基于特定的功能需求,采用了经典的数字电路设计原理。
通过使用VHDL编程语言,我们将电路的逻辑运算实现为逻辑门和触发器的组合。
通过将输入信号连接到适当的逻辑门和触发器,我们实现了所需的功能。
结果与分析经过实验步骤的完成,我们成功地设计和实现了一个具有特定功能的数字电路。
在仿真测试和实际测试中,电路都表现出了良好的性能和稳定性。
根据结果的分析,我们验证了电路的设计原理和逻辑的正确性。
结论本实验通过使用VHDL编程语言和数字电路设计技术,成功地实现了一个具有特定功能的电路设计。
我们的实验结果表明,VHDL和数字电路设计技术在电路设计领域具有重要的应用价值。
实验一 组合逻辑电路的VHDL实现
实验一组合逻辑电路的VHDL实现一、实验目的掌握使用VHDL语言进行组合逻辑电路设计的方法。
二、实验设备及器件IBM PC机一台三、实验内容按照Quartus II 软件的使用说明进行Quartus II 集成开发环境的仿真调试练习,然后按照以下内容建立文件并编译仿真调试。
(1)用VHDL 语言设计一个2选1多路选择器,对程序进行编译和仿真,并记录仿真波形。
提示:如右图所示,a和b分别为两个数据输入端,s 为通道选择控制信号输入端。
当s为低电平时,a输入端的信号传送至y;当s为高电平时,b输入端的信号传送至y。
实验代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21a ISPORT( a, b : IN BIT ;s : IN BIT;y : OUT BIT) ;END ENTITY mux21a ;ARCHITECTURE one OF mux21a ISBEGINy <= a WHEN s = '0' ELSEb ;END ARCHITECTUREone ;(2)用VHDL 语言设计一个1位半加器,对程序进行编译和仿真,并记录仿真波形。
提示:半加器真值表如右所示。
实验代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;ENTITY h_adder ISPORT(a,b:IN STD_LOGIC;so,co:OUT STD_LOGIC); END h_adder;ARCHITECTURE example2 OF h_adder ISBEGINso<=a XOR b;co<=a AND b;END example2;(3)用VHDL 语言设计一个三态缓冲器,对程序进行编译和仿真,并记录仿真波形。
07 第七章 使用VHDL语言来设计组合逻辑电路
第七章 使用VHDL语言来设计组合逻辑电路
7.2.5 异或门设计
异或门是用于实现异或逻辑的电路,其逻 辑表达式如下:
异或门的真值表如下:
第七章 使用VHDL语言来设计组合逻辑电路
7.2.6 三态门设计
三态门的输出既可以是一般二值逻辑电路 的正常的“0”状态和“1”状态,又可以保持 特有的高阻抗(Z)状态 ,其真值表如下:
第七章 使用VHDL语言来设计组合逻辑电路
7.1 组合逻辑电路设计基础 7.2 组合逻辑的基本电路设计 7.3 译码器设计 7.4 编码器设计 7.5 数据选择器设计 7.6 比较器设计 7.7 加法器设计 7.8 减法器设计 7.9 乘法器设计 7.10 奇偶检验电路设计 7.11 其他逻辑电路设计
多位加法器可以分为并行进位和串行进位两种。
第七章 使用VHDL语言来设计组合逻辑电路
7.8 减法器设计
减法器用于实现两个二进制的数减法的组 合逻辑。最简单的全减器是采用本位结果 和借位来显示,二进制中是借一当二,所 以可以使用两个输出变量的高低电平变化 来实现减法运算。
在实际应用中,可以使用“三-八”译码器 来实现全减器。
逻辑代数中,最基本的逻辑运算是“与”、 “或”、“非”三种。
第七章 使用VHDL语言来设计组合逻辑电路
7.1.2 逻辑函数的表示方法
逻辑函数(logical function)是数字电路的 特点及描述工具,其输入、输出量是高、 低电平,可以用二元常量(0,1)来表示, 输入量和输出量之间的关系是一种逻辑上 的因果关系,数字电路可以用逻辑函数的 的数学工具来描述。逻辑函数的表示方法 有多种:如逻辑表达式、真值表、逻辑图、 波形图等。
VHDL实验报告(1)
VHDL 实验报告******班级:电子0701学号:************实验一组合逻辑电路设计一实验目的:1. 熟悉mux+pluxII软件,可以进行新文件的编辑和文件的修改。
2. 掌握门电路VHDL语言程序设计方法。
3. 掌握选择器VHDL语言程序设计方法。
4. 掌握加法器VHDL语言程序设计方法。
5. 熟悉VHDL编程的基本方法。
二实验设备:1.计算机2.Max+PlusII软件三实验原理及内容:1 二输入与门(1)实验原理二输入与门是我们数字电路中的一个基础逻辑门电路,是最基本的逻辑门电路之一,也是最简单的逻辑门之一。
它能实现两个输入端的相与,一般有三个端口。
二输入与门的表达式是:Y=ab二输入与门的逻辑符号如图(1)所示,真值表如表(1)所示。
图(1)与门逻辑符号表(1)与门真值表(2)实验内容a.在mux+pluxII文本编辑环境下,打开新文本,编写两输入与门VHDL语言源程序,程序设计如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY and2 ISPORT(a,b: IN STD_LOGIC;Y: OUT STD_LOGIC);END and2;ARCHITECTURE behave OF and2 ISBEGINY <= a and b;END behave;b.对源程序进行编译,按照提示进行修改,直至编译通过。
c.对编译程序进行仿真,分析并记录仿真波形,其仿真波形图如图(2)所示。
图(2)二输入与门仿真图d.在自己的目录下保存相应的源文件、波形文件。
2 四选一选择器(1)实验原理四选一选择器如图(3)所示,真值表如表(2)所示。
图(3)mux4管脚图表(2)mux4真值表(2)实验内容a.在mux+plusII文本编辑环境下,打开新文件,编辑四选一VHDL源程序文件,其程序设计如下:LIBRARY IEEEUSE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT(A: IN STD_LOGIC_VECTOR (1 DOWNTO 0);D0,D1,D2,D3:IN STD_LOGIC;G:IN STD_LOGIC;Y: OUT STD_LOGIC);END mux4;ARCHITECTURE dataflow OF mux4 ISBEGINPROCESS (A,D0,D1,D2,D3,G)BEGINIF (G ='0') THENIF (A="00")THEN Y <= D0;ELSIF(A="01")THEN Y <= D1;ELSIF(A="10")THEN Y <= D2;ELSE Y <= D3;END IF;ELSE Y <='0';END IF;END PROCESS;END dataflow;b.对源程序进行编译,按照提示进行修改,直到编译通过。
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语言)
实验报告一、实验目的熟悉利用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设计——数据选择器班级: 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系统设计》实验报告》组合逻辑电路设计
《FPGA系统设计》实验报告》组合逻辑电路设计一、设计任务1、熟悉 Quartus II 的编译环境;2、了解在 Quartus II 环境下运用 VHDL 语言的编程开发流程,包括源程序的输入、编译、模拟仿真及程序下载。
3、七段显示译码器4、三态门的设计5.八位数码管的动态扫描二、设计过程(一)七段显示译码器1、简单信号赋值语句;2、条件信号赋值语句;自行画出真值表,求出逻辑表达式,写出对应程序,下载验证。
(二)三态门电路的实现使用IF语句完成三态门的设计。
在数字电路中,三态门电路是在普通门电路的基础上附加控制电路构成的。
顾名思义,三态门电路不但具有逻辑值 0 和逻辑值 1,而且还具有高阻态输出的第三种状态(或称禁止态)。
三态门主要用于可编程逻辑器件管脚的双向口设置,在后续实验中会涉及。
三态门电路的逻辑电路图 1。
图3.1 三态门根据三态门的逻辑电路图和真值表,不难看出三态门电路的基本工作原理是:当控制端口的输入使能信号EN=’1’,那么直接将输入端口的数据送到输出端口上;当控制端口的输入使能信号 EN=’0’,那么这时输出端口呈高阻状态。
如表2所示。
表3.1 三态门真值表程序:三态门程序图3.2 引脚分配图图3.3 电路生成符号实验结果图3.4 三态门实验现象七段显示译码器1.简单信号赋值语句程序3. 条件信号赋值语句图3.5 引脚分配图图3.6 电路生成符号实验结果图3.7 七段显示实验现象2.八位数码管的动态扫描程序图3.8 引脚分配图实验结果图3.9 动态扫描实验现象三、总结这次实验运用到了有关三态们的知识,之前我们在数字逻辑电路里了解到一点相关的知识,于是在本次实验中,由于理论已经完成地差不多,实验现象完全符合。
实验一组合逻辑电路的设计
实验一 组合逻辑电路的设计一、实验目的:1、 掌握组合逻辑电路的设计方法。
2、 掌握组合逻辑电路的静态测试方法。
3、 加深FPGA 设计的过程,并比较原理图输入和文本输入的优劣。
4、 理解“毛刺”产生的原因及如何消除其影响。
5、 理解组合逻辑电路的特点。
二、实验的硬件要求:1、 EDA/SOPC 实验箱。
2、 计算机。
三、实验原理1、组合逻辑电路的定义数字逻辑电路可分为两类:组合逻辑电路和时序逻辑电路。
组合逻辑电路中不包含记忆单元(触发器、锁存器等),主要由逻辑门电路构成,电路在任何时刻的输出只和当前时刻的输入有关,而与以前的输入无关。
时序电路则是指包含了记忆单元的逻辑电路,其输出不仅跟当前电路的输入有关,还和输入信号作用前电路的状态有关。
通常组合逻辑电路可以用图1.1所示结构来描述。
其中,X0、X1、…、Xn 为输入信号, L0、L1、…、Lm 为输出信号。
输入和输出之间的逻辑函数关系可用式1.1表示: 2、组合逻辑电路的设计方法组合逻辑电路的设计任务是根据给定的逻辑功能,求出可实现该逻辑功能的最合理组 合电路。
理解组合逻辑电路的设计概念应该分两个层次:(1)设计的电路在功能上是完整的,能够满足所有设计要求;(2)考虑到成本和设计复杂度,设计的电路应该是最简单的,设计最优化是设计人员必须努力达到的目标。
在设计组合逻辑电路时,首先需要对实际问题进行逻辑抽象,列出真值表,建立起逻辑模型;然后利用代数法或卡诺图法简化逻辑函数,找到最简或最合理的函数表达式;根据简化的逻辑函数画出逻辑图,并验证电路的功能完整性。
设计过程中还应该考虑到一些实际的工程问题,如被选门电路的驱动能力、扇出系数是否足够,信号传递延时是否合乎要求等。
组合电路的基本设计步骤可用图1.2来表示。
3、组合逻辑电路的特点及设计时的注意事项①组合逻辑电路的输出具有立即性,即输入发生变化时,输出立即变化。
(实际电路中图 1.1 组合逻辑电路框图L0=F0(X0,X1,²²²Xn)² ² ²Lm=F0(X0,X1,²²²Xn)(1.1)图 1.2 组合电路设计步骤示意图图还要考虑器件和导线产生的延时)。
实验一-用VHDL语言设计组合逻辑电路
实验一用VHDL语言设计组合逻辑电路一、实验目的:掌握用VHDL语言设计组合逻辑电路的方法。
熟悉QuartusⅡ的操作。
二、实验仪器:PC机一台三、实验内容:1.用VHDL语言设计4选1数据选择器。
2.用文本输入法输入3.建立工程,编译,改错,直至编译通过4.仿真,验证所设计电路的正确性四、操作步骤:1、在所使用的计算机数据盘里建立自己的文件夹2、打开QuartusII3、单击工具栏中的new,在出现的对话框中选择VHDL File,点击OK。
4、输入设计程序。
输入结束后,将程序保存在自己的文件夹中。
注意:存盘的文件名应该跟实体名相同。
5、创建工程。
创建工程有两种方法:第一种方法是在保存文件后出现的对话框中点击‘是’,按提示进行操作;第二种方法是在出现的对话框点击‘否’。
第一种方法的具体过程:点击‘是’,出项下面的框点击‘Next’,出项不需要任何修改,继续点击‘Next’,出项继续点击‘Next’,在后面出现的框图中继续点击‘Next’,直到没有‘Next’选项,点击‘Finish’,这样就完成工程的创建。
第二种方法的具体过程:点击‘否’此时要创建工程,点击菜单File下的“New Preject Wizard”。
出现框图:点击‘Next’,出项点击最上一行右边的,寻找你的文件所在的文件夹,点击要创建工程的文件名,点击打开(或双击要创建工程的文件名),出现项目名称和文件名称相同。
点击‘Next’,出现点击,在出现的对话框点击文件名,点击‘打开’,出现点击右边的‘add’,出现点击‘Next’,在后面出现的框图中继续点击‘Next’,直到没有‘Next’选项,点击‘Finish’,这样就完成工程的创建。
6、观察QUARTUS 界面点击箭头所指图标,观察箭头上方的变化,点击+号,双击出项的文件7、全程编译。
点击箭头所指图标,开始全程编译。
如果有错误,编译会自动停止,出现点击确定,按提示到文件中修改错误,保存文件,继续点击全程编译的图标,如还有错误,继续上面的步骤。
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;
元件设计应放在同一 目录下
已 知 逻 辑 电 路 设 计 方 法
用VHDL语言设计基本逻辑电路
(3)选择信号赋值语句的用法
ARCHITECTURE ar_7 OF fzh_2 IS
BEGIN
WITH q SELECT
y<= a WHEN
结束
″00″, --选择值用“,”
b WHEN ″01″,
c WHEN ″10″,
d WHEN OTHERS;
END ar_7;
4)元件例化语句:主要用于在VHDL中的层次设计。
1)进程的敏感信号是时钟信号
在这种情况下,时钟信号应作为敏感信 号,显式的出现在PROCESS语句后跟的括 号中,如PROCESS(clock_signal)。时钟信号 边沿的到来,将作为时序电路语句执行的条 件,如下例所示:
该进程在时钟信号发生变化时被启动, 而在时钟边沿的条件得到满足后才真正执行 时序电路所对应的语句。
3.1 Summary of basic statements in VHDL codes
1、 Sequential Assignment Statements
1)IF、CASE、LOOP、NULL statements only using in process, procedure and function. 2)IF、CASE用于条件选择;LOOP用于循环 控制偏重计算;NULL是一条空语句,一般用于 CASE语句中。
2. Multiplication Circuit
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY mul IS PORT(A,B: IN STD_LOGIC_VECTOR(2 DOWNTO 0);
三态门和双向缓冲器是接口电路和 总线驱动电路经常用到的器件。
VHDL语言实验指导书
浙江工商大学计算机与信息工程学院 开放实验项目实验指导书
基于 VHDL 的数字逻辑电路设计
指导教师:
傅均
开放地点: 信息楼 119 室
图 1. HST 实验板及包含硬件资源
《基于 VHDL 的数字逻辑电路设计》实验指导书 傅均 V3.0
第2页
图 2. EPM240T100C5 芯片引脚和对应板上资源连接
注意 1: CPLD 的第 9、13、31、45、59、63、80、94 引脚已经接 Vcc 3V;CPLD 的第 10、11、32、46、60、65、79、93 引脚已经接 GND 0V。CPLD 的第 22、 23、24、25 引脚已经用于 JTAG 下载器连接。第 64 引脚已经设置为时钟输入 GCLK3(11MHz)。
开放时间: 第 11-15 周三 10-12 节
电子邮箱: junfu@mail.
2012 年 4 月-6 月 版本 V3.0
目录
1、实验说明和注意事项………………………………………………...(1) 2、实验设备与资源介绍………………………………………………...(1) 3、实验内容与要求…………………………………………………...…(4)
实验一 常用组合逻辑电路设计
一、 实验目的
1 .初步掌握 VHDL 语言的基本单元及其构成。 2 .了解 VHDL 中的顺序语句和并行语句,掌握 process 语句、信号赋值语句等。 3 .学习 Quartus II 9.1 软件的基本操作,掌握文本输入法设计数字电路的过程。 4 .学会编写 3-8 译码器、数值比较器等简单的常用组合逻辑电路。
EDA实验报告-实验1-简单组合逻辑设计
暨南大学本科实验报告专用纸课程名称EDA实验成绩评定实验项目名称简单组合逻辑设计指导教师郭江陵实验项目编号01 实验项目类型验证实验地点B305 学院电气信息学院系专业物联网工程组号:A6一、实验前准备本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。
EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为3.3V;EDAPRO/240H实验仪主板的VCCIO跳线器组中“VCCIO3.3V”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为 2.5V;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为3.3V。
请参考前面第二章中关于“电源模块”的说明。
二、实验目的1、熟悉Max+Plus II下简单的VHDL文本方式设计。
2、学习使用JTAG接口下载逻辑电路到CPLD并能调试到正常工作。
3、熟悉数字电路集成设计的过程。
三、实验原理译码器是把输入的数码解出其对应的数码,例如:BCD至7段显示器执行的动作就是把一个四位的BCD码转换成7个码的输出,以便在7段显示器上显示这个十进制数。
译码器有N个二进制选择线,那么最多可译码转换成2N个数据。
当一个译码器有N条输入线及M条输出线时,则称为N×M的译码器。
3×8译码器是依此而来。
3×8译码器真值表如下表所示:四、实验内容把译码器的输入接到拨码开关,输出端接8个LED灯,通过拨码开关改变输入的逻辑电平变化来观察LED输出情况,验证3×8译码器的工作状态。
五、实验要求学习使用Max+Plus II 的使用VHDL 语言组成简单的数字逻辑电路。
六、设计框图及原理图首先判断使能端口EN 状态,当其满足高电平时,判断三个输入端口A2、A1、A0的状态来决定输出,如使能端口为低电平则固定输出不受三个逻辑输入A2、A1、A0的影响,使能有效时按照三个输入状态来决定八个输出的状态。
EDA实验报告 常用组合逻辑电路设计
EDA实验报告实验目的:1.常用组合逻辑电路设计方法2.VHDL设计思想与调试方法3.LPM元件定制4.电路设计的仿真验证和硬件验证实验要求:学习常用组合逻辑的可综合代码的编写,学习VHDL语言的编程思想与调试方法,学习通过定制LPM元件实现逻辑设计,通过波形仿真及硬件实验箱验证设计的正确与否。
实验流程:1.利用VHDL代码实现2.利用LPM元件定制实现3.运用分析调试工具RTL viewer查看景软件解释生成的原理图并分析实验具体步骤:1.利用VHDL代码实现(1)VHDL代码(2)编译通过后进行波形仿真2.利用LPM元件定制实现(1)Tools→ Mega Wizard Plug_in Manager或在图形编辑窗口空白处双击(2)Create a new custom megafunction variation(3)Installed Plug_Ins→ Arithmetic lpm_compare(4)然后进行相应的设置,Generate netlist ,选择要生成的文件,完成生成的VHDL语言代码:LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY lpm;USE lpm.all;ENTITY lpm_compare2 ISPORT(dataa : IN STD_LOGIC_VECTOR (1 DOWNTO 0);datab : IN STD_LOGIC_VECTOR (1 DOWNTO 0);AeB : OUT STD_LOGIC ;AgB : OUT STD_LOGIC ;AgeB : OUT STD_LOGIC ;AlB : OUT STD_LOGIC ;AleB : OUT STD_LOGIC ;AneB : OUT STD_LOGIC);END lpm_compare2;ARCHITECTURE SYN OF lpm_compare2 ISSIGNAL sub_wire0 : STD_LOGIC ;SIGNAL sub_wire1 : STD_LOGIC ;SIGNAL sub_wire2 : STD_LOGIC ;SIGNAL sub_wire3 : STD_LOGIC ;SIGNAL sub_wire4 : STD_LOGIC ;SIGNAL sub_wire5 : STD_LOGIC ;COMPONENT lpm_compareGENERIC (lpm_representation : STRING;lpm_type : STRING;lpm_width : NA TURAL);PORT (dataa : IN STD_LOGIC_VECTOR (1 DOWNTO 0);datab : IN STD_LOGIC_VECTOR (1 DOWNTO 0);AgeB : OUT STD_LOGIC ;AlB : OUT STD_LOGIC ;AleB : OUT STD_LOGIC ;AneB : OUT STD_LOGIC ;AgB : OUT STD_LOGIC ;AeB : OUT STD_LOGIC);END COMPONENT;BEGINAgeB <= sub_wire0;AlB <= sub_wire1;AleB <= sub_wire2;AneB <= sub_wire3;AgB <= sub_wire4;AeB <= sub_wire5;lpm_compare_component : lpm_compareGENERIC MAP (lpm_representation => "UNSIGNED",lpm_type => "LPM_COMPARE",lpm_width => 2)PORT MAP (dataa => dataa,datab => datab,AgeB => sub_wire0,AlB => sub_wire1,AleB => sub_wire2,AneB => sub_wire3,AgB => sub_wire4,AeB => sub_wire5);END SYN;生成的波形图:生成的RTL viewer原理图思考题1、VHDL实体描述方式有哪些类型?优缺点是什么?答:(1)结构描述:使用元件例化方法描述硬件构造特征,定义实现实体的信号与实体的精确互连结构。
VHDL 实验一组合逻辑电路的设计
实验一组合逻辑电路的设计一、实验目的:1.熟悉QuartusⅡ的VHDL文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。
2.加深FPGA\CPLD设计的过程,并比较原理图输入和文本输入的优劣。
二、实验的硬件要求:1.GW48EDA/SOPC+PK2实验系统。
三、实验内容:1.首先利用QuartusⅡ完成2选1多路选择器(如图S1-1)的文本编辑输入(mux21a.vhd)和仿真测试等步骤。
最后在实验系统上进行硬件测试,验证本项设计的功能。
图S1-12.将此多路选择器看成是一个元件mux21a,利用原理图输出法完成图s1-2,并将此文件放在同一目录中。
图s1-2编译、综合、仿真本例程,并对其仿真波形作出分析说明。
最后在实验系统上进行硬件测试,验证本项设计的功能。
3.以1位二进制全加器为基本元件,用例化语句写出8位并行二进制全加器的顶层文件,编译、综合、仿真本例程,并对其仿真波形作出分析说明。
最后在实验系统上进行硬件测试,验证本项设计的功能。
4.七段数码管译码器(Decoder)七段数码管译码器(Decoder)的输入为4位二进制代码,输出为7个表征七段数码管代码的状态信号。
下面为一个七段数码管译码器的VHDL源代码模型:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY display ISPORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END;ARCHITECTURE ONE OF display ISBEGINPROCESS(A)BEGINCASE A ISWHEN "0000"=>LED7S<="0111111";--X"3F"->0WHEN "0001"=>LED7S<="0000110";--X"06"->1WHEN "0010"=>LED7S<="1011011";--X"5B"->2WHEN "0011"=>LED7S<="1001111";--X"4F"->3WHEN "0100"=>LED7S<="1100110";--X"66"->4WHEN "0101"=>LED7S<="1101101";--X"6D"->5WHEN "0110"=>LED7S<="1111101";--X"7D"->6WHEN "0111"=>LED7S<="0000111";--X"07"->7WHEN "1000"=>LED7S<="1111111";--X"7F"->8WHEN "1001"=>LED7S<="1101111";--X"6F"->9WHEN "1010"=>LED7S<="1110111";--X"77"->10WHEN "1011"=>LED7S<="1111100";--X"7C"->11WHEN "1100"=>LED7S<="0111001";--X"39"->12WHEN "1101"=>LED7S<="1011110";--X"5E"->13WHEN "1110"=>LED7S<="1111001";--X"79"->14WHEN "1111"=>LED7S<="1110001";--X"71"->15WHEN OTHERS=>NULL;END CASE;END PROCESS;END;编译、综合、仿真本例程,并对其仿真波形作出分析说明。
第2-5讲 VHDL语言结合逻辑电路设计
END ymq83;
请注意 数据类型 的声明
译 码 器 设 计
ARCHITECTURE behavior OF ymq83 IS SIGNAL INDATA:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN 该描述 INDATA<=C&B&A; PROCESS(INDATA) 不具有 BEGIN 优先级 CASE INDATA IS WHEN “000” => Y<=“11111110”; WHEN “001” => Y<=“11111101”; WHEN “010” => Y<=“11111011”; WHEN “011” => Y<=“11110111”; WHEN “100” => Y<=“11101111”; WHEN “101” => Y<=“11011111”; WHEN “110” => Y<=“10111111”; WHEN “111” => Y<=“01111111”; WHEN OTHERS => Y<=“XXXXXXXX”; END CASE; END PROCESS; END behavior;
PROCESS (i) BEGIN CASE i IS WHEN "00000001" => y <="000"; WHEN "00000010" => y <="001"; WHEN "00000100" => y <="010"; WHEN "00001000" => y <="011"; WHEN "00010000" => y <="100"; WHEN "00100000" => y <="101"; WHEN "01000000" => y <="110"; WHEN "10000000" => y <="111"; WHEN OTHERS => y <= "ZZZ"; END CASE; END PROCESS; END ARCHITECTURE ONE ;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一用VHDL语言设计组合逻辑电路
一、实验目的:掌握用VHDL语言设计组合逻辑电路的方法。
熟悉QuartusⅡ的
操作。
二、实验仪器:PC机一台
三、实验内容:
1.用VHDL语言设计4选1数据选择器。
2.用文本输入法输入
3.建立工程,编译,改错,直至编译通过
4.仿真,验证所设计电路的正确性
四、操作步骤:
1、在所使用的计算机数据盘里建立自己的文件夹
2、打开QuartusII
3、单击工具栏中的new,在出现的对话框中选择VHDL File,点击OK。
4、输入设计程序。
输入结束后,将程序保存在自己的文件夹中。
注意:存盘的文件名应该跟实体名相同。
5、创建工程。
创建工程有两种方法:第一种方法是在保存文件后出现的对话框
中点击‘是’,按提
示进行操作;
第二种方法是在出现的对话框点击‘否’。
第一种方法的具体过程:
点击‘是’,出项下面的框
点击‘Next’,出项
不需要任何修改,继续点击‘Next’,出项
继续点击‘Next’,在后面出现的框图中继续点击‘Next’,直到没有‘Next’选项,点击‘Finish’,这样就完成工程的创建。
第二种方法的具体过程:点击‘否’
此时要创建工程,点击菜单File下的“New Preject Wizard”。
出现框图:
点击‘Next’,出项
名,点击打开(或双击要创建工程的文件名),出现
项目名称和文件名称相同。
点击‘Next’,出现
点击,在出现的对话框点击文件名,点击‘打开’,出现
点击右边的‘add’,出现
点击‘Next’,在后面出现的框图中继续点击‘Next’,直到没有‘Next’选项,点击‘Finish’,这样就完成工程的创建。
6、观察QUARTUS 界面
点击箭头所指图标,观察箭头上方的变化,点击+号,双击出项的文件
7、全程编译。
点击箭头所指图标,开始全程编译。
如果有错误,编译会自动停止,出现
点击确定,按提示到文件中修改错误,保存文件,继续点击全程编译的图标,如还有错误,继续上面的步骤。
如没有错误,会自动完成编译
点击‘确定’。
8、时序仿真
从仿真结果说明电路的功能。
单击new,在出现的对话框中选择第二个标签“Other Files”,选择V ector Waveform File,点击OK。
选择菜单View下“Utility Windows”中的“Node Finder”,出现“Node Finder”对话框。
“Node Finder”对话框中,上面中间的“Filter”右边下拉列表框中选择“Pins:all”,点击“list”,将出现的端口信息按需要拖入波形窗口。
设置输入波形,保存波形文件。
如需要修改仿真时间,点击Edit菜单下End Time。
保存波形文件。
时序仿真。
仔细读仿真报告,判断电路的正确性;如不正确,修改程序,重新编译,仿真,直至设计的电路完全正确。
时序仿真可参照教科书P100。
关闭工程,准备下一个实验内容。
点击菜单File下的close project,关闭当前工程。
如需要打开工程,点击菜单File下的open project,选择文件夹,选择要打开的工程名,点击打开。
五、思考题:
用VHDL语言编写8位奇偶校验电路。
当8位中有奇数个1时输出为1。
六、实验报告要求:
写出正确的程序,并简要说明实验中遇到的问题及解决方法。
Library ieee;
Use ieee.std_logic_1164.all;
Entity mux41a is
port(s:in std_logic_vector(1 downto 0);
d0,d1,d2,d3:in std_logic;
y:out std_logic);
End mux41a ;
Architecture ab of mux41a is
Begin
y<=d0 when s=“00”else
d1 when s=“01”else
d2 when s=“10”else
d3;
End ab;。