实验一 用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;波形文件:生成元器件及连接电路思考:有程序可以看出,定义了三个输入端,一个输出端。
- 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;。