实验一 组合逻辑电路的VHDL实现
第五章 组合逻辑电路的VHDL语言描述
BEGIN
PROCESS ( a, datain ) BEGIN IF ( datain = '1' ) THEN dataout <= '0' ; ELSE dataout <= '1' ; END IF ; END PROCESS ; END ARCHITECTURE behavioral_2 ; --RTL描述方式 ,MAX中需要加入时钟a
第5章
组合逻辑电路的VHDL描述
仿真波形
第5章
组合逻辑电路的VHDL描述
5.1.5 2输入同或门电路
LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY cynxor2 IS PORT ( datain1, datain2 : IN STD_LOGIC ; dataout : OUT STD_LOGIC ) ; END ENTITY cynxor2 ; ARCHITECTURE behavioral OF cynxor2 IS BEGIN
END ENTITY cyxor2 ;
ARCHITECTURE behavioral OF cyxor2 IS BEGIN dataout <= datain1 XOR datain2 ; END ARCHITECTURE behavioral ;
第5章
组合逻辑电路的VHDL描述
LIBRARY IEEE ;
第5章
组合逻辑电路的VHDL描述
LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY cynot IS
PORT ( a, datain : IN STD_LOGIC ; END ENTITY cynot ; ARCHITECTURE behavioral_2 OF cynot IS dataout : OUT STD_LOGIC ) ;
数字电路与逻辑设计实验
数字电路与逻辑设计实验报告学院:班级:姓名:学号:日期:一.实验名称:实验一: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 个电路进行链接,并下载到实验板显示计数结果。
《VLSI设计》实验指导书
实验一简单组合逻辑电路的设计与仿真一、实验目的(1)初步掌握Verilog/VHDL程序的基本结构(2)学会编写简单的Verilog/VHDL程序(3)掌握用Modelsim软件进行RTL级代码的设计和仿真的基本方法(4)掌握基本组合逻辑电路的实现方法。
二、实验内容这是一个可综合的数据比较器,很容易看出它的功能是比较数据a与数据b,如果两个数据相同,则给出结果1,否则给出结果0。
在Verilog HDL中,描述组合逻辑时常使用assign 结构。
注意equal=(a==b)?1:0,这是一种在组合逻辑实现分支判断时常使用的格式。
设计模块://--------------- compare.v -----------------------module compare (equal,a,b);input a,b;output equal;assign equal=(a==b)?1:0; // a等于b时,equal输出为1;a不等于b时,equal输出为0。
endmodule测试模块用于检测模块设计得正确与否,它给出模块的输入信号,观察模块的内部信号和输出信号,如果发现结果与预期的有所偏差,则要对设计模块进行修改。
测试模块://--------------- test_compare.v-----------------module test_compare;reg a,b;wire equal;initial // initial常用于仿真时信号的给出。
begin a=0; b=0;#100 a=0; b=1;#100 a=1; b=1;#100 a=1; b=0;#100 $stop; // 系统任务,暂停仿真以便观察仿真波形。
endcompare compare1(.equal(equal),.a(a),.b(b)); // 调用模块。
endmodule仿真波形(部分):三、实验步骤1、产生一个工作库在对设计进行仿真之前,你首先需产生一个库,用于放置编译的源代码。
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. 步骤一:熟悉VHDL编程语言在实验开始之前,团队成员对VHDL编程语言进行了研究和熟悉。
我们了解了VHDL的基本语法、数据类型和结构,并获得了对VHDL设计原理的初步理解。
2. 步骤二:设计功能电路在本实验中,我们选择了一个特定的功能电路进行设计。
我们首先进行了功能需求分析,并根据需求确定了电路的输入输出信号以及主要的逻辑运算。
然后,我们使用VHDL编程语言将电路的逻辑运算实现为代码,并进行了仿真和测试。
3. 步骤三:电路仿真和验证为了验证我们设计的电路功能的正确性,我们使用了VHDL仿真工具进行了电路的仿真和验证。
我们根据输入信号的不同组合,观察输出信号的变化,并与我们预期的结果进行比较。
通过这一步骤,我们确认了我们设计的电路能够按照预期工作。
4. 步骤四:电路实现和测试在确认电路的设计和仿真结果无误之后,我们进一步将电路实现到实际的数字电路平台上,并进行了硬件测试。
我们使用实际的输入信号来测试电路的性能和稳定性,并对输出信号进行观察和分析。
通过这一步骤,我们验证了电路在实际环境中的可行性。
设计原理我们设计的电路基于特定的功能需求,采用了经典的数字电路设计原理。
通过使用VHDL编程语言,我们将电路的逻辑运算实现为逻辑门和触发器的组合。
通过将输入信号连接到适当的逻辑门和触发器,我们实现了所需的功能。
结果与分析经过实验步骤的完成,我们成功地设计和实现了一个具有特定功能的数字电路。
在仿真测试和实际测试中,电路都表现出了良好的性能和稳定性。
根据结果的分析,我们验证了电路的设计原理和逻辑的正确性。
结论本实验通过使用VHDL编程语言和数字电路设计技术,成功地实现了一个具有特定功能的电路设计。
我们的实验结果表明,VHDL和数字电路设计技术在电路设计领域具有重要的应用价值。
基于CPLD组合逻辑电路的VHDL实现
其它端口
I /O 区 0X08000 ̄ 0X0FFFF。
另外,还有其它的 I/O 控制逻辑、软硬件复位等系统需求。
2.2 硬件设计
系统控制电路的逻辑框图(不含数据和地址总线)如图 2- 1 所示。
收稿日期:2006-07-29
·66·
北京电子科技学院学报
2006年
在 本 系 统 中 ,CPU 采 用 DSP
对 PCI、网卡、键盘等的状态端口 读取仿真结果也均正确。
2)产生各接口需要的控制信 号的仿真:如对总线进行地址为 0x8000 的 写 操 作 , 写 入 数 据 为
图 2- 3 I/O 控制仿真波形
0x55 后,USB 的几个控制信号线输出状态均正确,写入数据为 0xaa 后,USB 的几个控制信号线状态与写入数据为 0x55 时正 好相反,这说明对 USB 的控制信号线操作是正确的。
第 14 卷 第 4 期 Vol.14 No.4
北京电子科技学院学报 Journal of Beijing Electronic Science and Technology Institute
2006 年 12 月 Dec. 2006
基于 CP LD 组合逻辑电路的 VHDL 实现
李新红 1 李凤华 2,1 丛 文 1 (1 . 西安电子科技大学计算机学院,陕西西安 71 0071 ; 2. 北京电子科技学院,北京 1 00070)
摘 要:本文介绍了基于 C PLD 组合逻辑电路的 V H D L 设计思想,并结合嵌入式教学系统的译码和 I/O
控制电路的具体应用,做了较为详细的例证,其中包含部分代码。
关键词: C PLD ;组合逻辑电路;V H D L;实现
中图分类号:TN791
数字逻辑电路实验报告
数字逻辑电路实验报告指导老师:班级:学号:姓名:时间:第一次试验一、实验名称:组合逻辑电路设计1二、试验目的:掌握组合逻辑电路的功能测试。
1、验证半加器和全加器的逻辑功能。
2、、学会二进制数的运算规律。
3、试验所用的器件和组件:三、74LS00 3片,型号二输入四“与非”门组件74LS20 1片,型号四输入二“与非”门组件74LS86 1片,型号二输入四“异或”门组件实验设计方案及逻辑图:四、/全减法器,如图所示:1、设计一位全加时做减法运时做加法运算,当M=1M决定的,当M=0 电路做加法还是做减法是由SCin分别为加数、被加数和低位来的进位,、B和算。
当作为全加法器时输入信号A分别为被减数,减数Cin、B和为和数,Co为向上的进位;当作为全减法时输入信号A 为向上位的借位。
S为差,Co和低位来的借位,1)输入/(输出观察表如下:(2)求逻辑函数的最简表达式函数S的卡诺图如下:函数Co的卡诺如下:化简后函数S的最简表达式为:Co的最简表达式为:2(3)逻辑电路图如下所示:、舍入与检测电路的设计:2F1码,用所给定的集成电路组件设计一个多输出逻辑电路,该电路的输入为8421为奇偶检测输出信号。
当电路检测到输入的代码大于或F2为“四舍五入”输出信号,的个数为奇数时,电路。
当输入代码中含1F1=1;等于5是,电路的输出其他情况F1=0 F2=0。
该电路的框图如图所示:的输出F2=1,其他情况输出观察表如下:(输入/0 1 0 0 1 01 0 1 0 0 11 1 1 0 0 01 0 1 1 1 11 0 0 1 0 11 0 1 0 0 11 0 0 1 1 01 1 1 0 1 11 0 1 1 0 011111求逻辑函数的最简表达式(2)的卡诺如下:函数F1 F2函数的卡诺图如下:的最简表达式为:化简后函数F2 的最简表达式为:F1)逻辑电路图如下所示;(3课后思考题五、化简包含无关条件的逻辑函数时应注意什么?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 组合逻辑电路
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设计实验报告(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描述组合逻辑电路
规律电路由于只分高、低电平,抗干扰力强,精度和保密性佳。
广泛应用于计算机、数字掌握、通信、自动化和仪表等方面。
最基本的有与电路或电路和非电路。
还有异或门,与非门。
“规律电路”在汉英词典中的解释(a logical circuit 简洁的规律电路通常是由门电路构成,也可以用三极管来制作,例如,一个NPN三极管的集电极和另一个NPN三极管的放射极连接,这就可以看作是一个简洁的与门电路,即:当两个三极管的基极都接高电平的时候,电路导通,而只要有一个不接高电平,电路就不导通…… 规律电路分为3类:非门,与门,或门。
非门:利用内部结构,使输入的电势变成相反的电势,高电势变低电势,低电势变高电势。
与门:又称“与电路”。
执行“与”运算的基本门电路。
有几个输入端,只有一个输出端。
当全部的输入同时为“1”电平常,输出才为“1”电高,否则输出为“0”电平。
与的含义是∶只有当打算一件事的全部条件都具备时,这个大事才会发生。
规律与也称规律乘。
又称“或电路”。
执行“或”运算的基本门电路。
有几个输入端,只有一个输出端。
只要输入中有一个为“1”电平常,输出就为“1”电平,只有当全部的输入全为“0”电平常,输出才为“0”电平。
非门的电路状态表:
AF1001
与门的电路状态表:
ABZ000010100111 或门的电路状态表:ABF000011101111。
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。
实验一-用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、全程编译。
点击箭头所指图标,开始全程编译。
如果有错误,编译会自动停止,出现点击确定,按提示到文件中修改错误,保存文件,继续点击全程编译的图标,如还有错误,继续上面的步骤。
基于CPLD组合逻辑电路的VHDL实现
2 0 年 1 月 06 2
D c 2 0 e. 06
Байду номын сангаас基 于 CP D组合逻辑 电路的 VH L DL实现
李新红 t 李凤华 z 丛 t 文
(. 1 西安 电子科技 大学计算机学院 , 陕西西安 7 0 7 ; . 1 0 1 2 北京 电子科技学院, 京 1 0 7 ) 北 00 0
摘 要: 本文介绍 了基 于 C L P D组合逻辑 电路 的 V HDL设 计思想 , 并结合嵌入式教 学 系统的译码和 IO /
2逻辑 电路 的设计 与实现
本应用实 例为一个 多功能的嵌 入式教学实验系统 , 系统提供 比较 多的外围接 口, 该 包括 U B接 口、 S 以太 网接 口 、 存储接 口(l h和 R M)P ' Fa s A 、C 桥接 口、 盘和 L D接 口等 , I 键 C 其中较为复杂的组合逻辑 电路部分采用 C L P D设计思想来实现 。 系统需
维普资讯
第 1 4卷 第 4期
V .1 No o1 4 .4
北京电子科技学院学报
J u n l o e j n l c r n c S in ea dT c n lg n t t t o r a f B i i g E e t o i c e c n e h o o y I s i u e
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语言进行组合逻辑电路设计的方法。
二、实验设备及器件
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 IS
PORT( a, b : IN BIT ;
s : IN BIT;
y : OUT BIT) ;
END ENTITY mux21a ;
ARCHITECTURE one OF mux21a IS
BEGIN
y <= a WHEN s = '0' ELSE
b ;
END ARCHITECTURE
one ;
(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 IS
PORT(a,b:IN STD_LOGIC;
so,co:OUT STD_LOGIC); END h_adder;
ARCHITECTURE example2 OF h_adder IS
BEGIN
so<=a XOR b;
co<=a AND b;
END example2;
(3)用VHDL 语言设计一个三态缓冲器,对程序进行编译和仿真,并记录仿真波形。
提示:三态缓冲器电路如右图所示,如果
缓冲器的使能端en 为1,缓冲器的输入端
in1的信号值被复制到输出端;如果使能端
en 为其它数值,缓冲器的输出为高阻态。
实验代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY Threestategate IS
PORT(IN1,EN:IN STD_LOGIC;
半加器真值表
OUT1:OUT STD_LOGIC);
END Threestategate;
ARCHITECTURE ARC_BUFFER OF Threestategate IS
BEGIN
PROCESS(IN1,EN)
BEGIN
IF EN='1' THEN
OUT1<=IN1;
ELSE
OUT1<='Z'; END IF;
END PROCESS;
END ARC_BUFFER;
四、 实验要求
熟练掌握运用VHDL 语言进行组合逻辑电路设计的基本方法。
五、 实验结果
(1)2选1多路选择器
在Quartus II 建立工程并输入代码,经编译后波形图如下所示:
实验分析:
如图所示,a 和b 分别为两个数据输入端,s 为通道选择控制信号输入端。
可
2选1多路选择器波形图
以看到,当s 为低电平时,a 输入端的信号传送至y ;当s 为高电平时,b 输入端的信号传送至y ,则设计的程序基本符合要求。
(2)1位半加器
在Quartus II 建立工程并输入代码,经编译后波形图如下所示:
实验分析:
如图所示,a ,b 为半加器的两个输入端,co 是进位输出端,so 是和输出端。
在0~10ns ,只有b 端输入信号为“1”,因此,进位输出端co 为“0”,和位输出端so 为“1”;在10ns~15ns ,此时输入端只有a 为“1”,b 端为“0”,因此,so 、co 的输出情况和0~10ns 内一致;在15ns~20ns 内,此时a 、b 输入端均为“1”,故进位输出端co 为“1”,和位输出端为“0”.
(3)三态缓冲器
在Quartus II 建立工程并输入代码,经编译后波形图如下所示:
如图所示,EN 为三态门的使能端,IN1为输入端,OUT1为输出端。
观察可知,在0~10ns 内,IN1的输入为“1”,但此时使能端EN
没有使能信号,因此
1位半加器波形图
三态缓冲器波形图
三态门的输出OUT1为初始状态;在10ns~20ns内,在这个周期内,使能信号始终加载在EN上,因此,三态门的输出OUT1随着输入端IN1的变化而变化。
六、实验总结
本次实验的主要内容是组合逻辑电路的VHDL实现,要求我们掌握VHD语言进行逻辑电路设计的方法,同时熟悉Quartus II软件的使用。
但由于个人原因申请了免听《EDA技术》课程的理论课,加上平时没有及时地查阅课本资料,导致进行实验操作时无从入手,拖慢了实验进度。
在课后继续完成实验内容时,发现虽然没有系统地在课堂上学习理论知识,但通过进行实验操作,还是可以较为容易地读懂VHDL语言。
这提醒我,要认真对待眼前的困难,只要认真实践、掌握诀窍,困难就会一步步蚕食,将会变成简单!。