数电x
《数字电路基础知识》课件

译码器电路的实现方法
译码器电路可以将二进制码译 成对应的输出信号,用于解码 器索引和操作译码器等。
时序电路的基本概念
时序电路是一种存储器、计数器或时钟驱动电路,需要实时累计和监测信号。时序电路是数字电 路的重要部分。
1
电平触发器的工作原理
触发器是时序电路中最重要的元件之一,能够对电路的状态进行存储和传输。基 本电平触发器的工作原理是使用两个交替的输入信号。
与门电路的实现方法
与门实现的最简单的方法是使 用传统的晶体管,并将它们放 置在一个电路中以实现多个与 门。
或门电路的实现方法
或门的实现方式是将输入值通 过晶体管或其他逻辑门与门电 路相连,利用传输功能对各个 输入执行逻辑或运算。
非门电路的实现方法
一般使用晶体管构建反相器电 路实现非门的功能。
逻辑函数的表达式
存储和传输信息更方便、可靠、快速,
数字电路的缺点
2
且信息可以以数字形式进行编码传输, 从而增强了信息的安全性。
过多的操作会增加电路复杂度,掉电
后信号需要重新设置,同时存在噪声
干扰的影响。
3
数字电路的应用
应用领域涉及电脑、手机、无人驾驶 汽车等,数字逻辑电路的实现可以加 速复杂计算、数据处理和控制过程。
二进制数的基本概念
在计算机系统中,数据以二进制形式存储和处理。因此,理解二进制数的基本概念是理解数字电路的前 提。
数位
二进制数由1和0组成的数码表示,在数码中 表现为位。
进位
由于二进制只有0和1,进位是加法必须的。 当两个二进制数相加时,当每一位相加结果 超过1时,需要进位。
原码、反码和补码
计算机中采用补码作为数字的存储方式,可 以实现加减运算。
数电 知识点总结

数电知识点总结概述:数电(数字电子学)是研究数字电路和数字系统的学科,是现代电子学的一个重要分支。
数电主要研究数字信号的产生、处理、传输和存储等方面的问题。
在现代信息和通信技术中,数电起着举足轻重的作用,因此它是电子工程技术中的重要基础课程。
一、数字电路的基本概念1. 信号与系统信号可以分为模拟信号和数字信号两种。
模拟信号是以连续的形式表示的信号,而数字信号是以离散的形式表示的信号。
数字信号由一系列离散的电平组成,每个电平代表一个离散的数值。
数字信号的基本单位是比特,表示一个二进制数码。
2. 二进制数码二进制是一种适合数字电路处理的码制,它只包含两种状态(0和1),因此逻辑电路的设计更简单、可靠。
在数字电路设计中,计数和存储的基本单位都是二进制。
3. 逻辑门逻辑门是由一个或多个传递器件组成的电路,在它的输入端和输出端之间存在特定的逻辑关系。
常见的逻辑门有与门、或门、非门、异或门等。
逻辑门是数字电路的基本组成单元,可以用来实现各种逻辑函数。
4. 组合逻辑电路组合逻辑电路是由逻辑门组成的电路,其输出只依赖于当前输入的状态,和输入变化时输出的变化无关。
组合逻辑电路可以用来实现任意的布尔逻辑函数。
5. 时序逻辑电路时序逻辑电路是由组合逻辑电路和触发器组成的电路,其输出不仅依赖于当前输入的状态,还与触发器的状态有关。
时序逻辑电路可以用来处理时序信息,例如时钟信号、计数器等。
二、数字系统的表示与运算1. 布尔代数布尔代数是一种代数系统,用来研究逻辑变量之间的运算和关系。
它有两个基本运算:与运算(∧)、或运算(∨)、非运算(¬)。
在数字系统中,布尔代数是描述逻辑运算和逻辑关系的数学工具。
2. 二进制加法二进制加法是二进制数字之间的加法运算,和十进制加法类似。
但是在二进制加法中,只有两个基本数码(0和1),因此进位特别简单。
二进制加法是数字系统中的基本运算之一。
3. 二进制乘法二进制乘法是二进制数字之间的乘法运算,和十进制乘法类似。
数电基本知识点总结

数电基本知识点总结一、数字电子学概述数字电子学是研究数字系统中的信号处理和信息表示的学科。
它主要关注二进制数字信号的传输、处理和存储。
数字电子学的基础是逻辑运算,这些运算是构建更复杂数字系统的基本元素。
二、数制和编码1. 数制- 二进制数制:使用0和1两个数字表示所有数值的数制,是数字电子学的基础。
- 八进制数制:使用0到7八个数字表示数值,常用于简化二进制数的表示。
- 十进制数制:使用0到9十个数字表示数值,是日常生活中最常用的数制。
- 十六进制数制:使用0到9和A到F十六个数字表示数值,常用于计算机编程中。
2. 编码- ASCII编码:用于表示文本字符的一种编码方式。
- 二进制编码:将数据转换为二进制形式进行存储和传输。
- 格雷码:一种二进制数系统,用于减少错误的可能性。
三、基本逻辑门1. 与门(AND)- 逻辑表达式:A∧B- 输出为真(1)仅当所有输入都为真。
2. 或门(OR)- 逻辑表达式:A∨B- 输出为真(1)只要至少有一个输入为真。
3. 非门(NOT)- 逻辑表达式:¬ A- 输出为真(1)当输入为假(0)时。
4. 异或门(XOR)- 逻辑表达式:A⊕B- 输出为真(1)当输入不相同时。
四、组合逻辑组合逻辑是指输出仅依赖于当前输入的逻辑电路。
这些电路不包含存储元件,因此没有记忆功能。
1. 逻辑门的组合- 通过基本逻辑门的组合,可以构建更复杂的逻辑函数。
2. 多级逻辑- 多个逻辑门按层次结构连接,形成复杂的逻辑电路。
3. 逻辑表达式简化- 使用布尔代数规则简化逻辑表达式,优化电路设计。
五、时序逻辑时序逻辑电路的输出不仅依赖于当前的输入,还依赖于过去的输入(即电路的历史状态)。
1. 触发器(Flip-Flop)- 基本的时序逻辑元件,能够存储一位二进制信息。
2. 计数器(Counter)- 顺序记录输入脉冲的数量,常用于定时和计数。
3. 寄存器(Register)- 由一系列触发器组成,用于存储多位二进制信息。
数电知识点整理

第一篇: 数电知识点总结(整理版)数电复习知识点第章1、了解任意进制数的一般表达式、2-8-10-16进制数之间的相互转换2、了解码制相关的基本概念和常用二进制编码( 8421BCD、格雷码等)第三章1、掌握与、或、非逻辑运算和常用组合逻辑运算(与非、或非、与或非、异或、同或)及其逻辑符号,2、掌握逻辑问题的描述、逻辑函数及其表达方式、真值表的建立3、掌握逻辑代数的基本定律、基本公式、基本规则( 对偶、反演等)4、掌握逻辑函数的常用化简法( 代数法和卡诺图法) ;5、掌握最小项的定义以及逻辑函数的最小项表达式,掌握无关项的表示方法和化简原则,6、掌握逻辑表达式的转换方法(与或式、与非- 与非式、与或非式的转换)第四章1、了解包括MOS在内的半导体元件的开关特性;2、掌握TTL门电路和MOS门电路的逻辑关系的简单分析3、了解拉电流负载、灌电流负载的概念、噪声容限的概念,4、掌握OD门、OC门及其逻辑符号、使用方法:5、掌握三态门及其逻辑符号、使用方法:6、掌握CMOS传输门及其逻辑符号、使用方法7、了解正逻辑与负逻辑的定义及其对应关系8、掌握TTL与CMOS门电路的输入特性(输入端接高阻、接低阻、悬空等)第五章1、掌握组合逻辑电路的分析与设计方法2、掌握产生竞争与冒险的原因、检查方法及常用消除方法3、掌握常用的组合逻辑集成器件( 编码器、译码器、数据选择器)4、掌握用集成译码器实现逻辑函数的方法5、掌握用2n选数据选择器实现n或者n +1个变量的逻辑函数的方法,第六章1、掌握各种触发器(RS、D、JK、T、T’)的功能、特性方程及其常用表达方式( 状态转换表、状态转换图、波形图等)2、了解各种RS触发器的约束条件3、掌握异步清零端Rd和异步置位端Sd的用法2、了解不同功能触发器之间的相互转换:第七章1、了解时序逻辑电路的特点和分类,2、掌握时序逻辑电路的描述方法(状态转移表、状态转移图、波形图、驱动方程、状态方程.输出方程) ;3、掌握同步时序逻辑电路的分析与设计方法,掌握原始状态转移图的化简4、了解异步时序逻辑电路的简单分析5、掌握移位寄存器、计数器的功能、工作原理和实际应用等6、掌握集成计数器实现任意进制计数器的方法,7、掌握用移位寄存器、计数器以及其他组合逻辑器件构成循环序列发生器的原理第八章1、掌握门电路和分立元件构成的施密特触发器、单稳态触发器、多谐振荡器的电路组成及工作原理,掌握相关参数的计算方法,2、掌握用555电路构成施密特触发器、单稳态触发器、多谐振荡器的方法以及工作参数的计算或者改变方法第九章RG1、了解ROM和RAM的基本概念;R2、了解存储器容量的表示方法和扩展方法,了解存储容量与地址线、数据线的关系.第一章数制和码制1、什么是数制、码制2、二进制、十进制、八进制、十六进制相互转换,不同数制数的的大小排列3、求二进制数的反码、补码(包括无符号数、有符号数)4、十进制数对应的8421BCD码、余三码、格雷码第二章、逻辑代数0、什么是逻辑代数,逻辑变量的取值特点1、与、或、非、与非、或非、与或非、异或、同或运算,运算符号、逻辑符号、逻辑功能、运算关系2、逻辑代数基本公式: 运算规则、运算法则、交换律、结合律、分配率、摩根定律公式3、逻辑代数常用公式: 吸收率I、II几余律4、逻辑代数基本定理:代入定理、反演定理、对偶定理,求反演式、对偶式5、什么是逻辑函数卡诺图化简D逻辑函数式( 最小项表达式)0真值表D6、逻辑函数的表示方法:真值表、逻辑函数式、逻辑图、波形图以及相互之间的转换逻辑问题抽象7、逻辑函数化简( 公式、卡诺图)第三章1、什么是门电路2、正负逻辑的概念3、二极管、三极管、MOS管开关特性: 静态开关特性、动态开关特性( 主要是结论)4、二极管与门、或门原理,写表达式5、CMOS反相器、CMOS与非门、CMOS或非门,认识电路写表达式6、CMOS反相器闻值电压值、输入噪声容限值及其意义7、CMOS门电路无输入特性,输出特性: 输出低电平电流、输出高电平电流8、CMOS门电路传输延迟时间意义9、OD门、TS门给出逻辑符号电路会写表达式、分析功能;OD门输出并联使用功能.10、CMOS 传输门功能(根据逻辑符号分析)、双向模拟开关功能分析11、CMOS门电路多于不用输入端的处理( 不影响逻辑功能、不能悬空)12、三极管反相器分析13、TTL反相器:输入高、低电平各三极管的工作状态( 导通、截止、饱和、倒置工作情况)14、TTL反相器闽值电压值、输入噪声容限电压值及其意义15、TTL反相器输入特性曲线读出输入短路电流值(输入低电平电流值)、输入高电平电流值理解输出高电平电流、输出低电平电流( 极限值);TTL反相器扇出系数的计算及其意义16、TTL反相器输入负载特性: 开门电阻(值)、关门电阻( 值)17、TTL反相器传输延迟时间的意义18、TTL与非门(多发射极三极管实现的逻辑功能)、或非门,认识电路并写逻辑表达式19、普通TTL门、CMOS输出端能否并联使用20、OC门、TS门逻辑符号给定电路分析逻辑功能并画波形图,第四章组合逻辑电路1、组合逻辑电路、时序逻辑电路的概念区别,电路区别2、组合逻辑电路分析( 真值表分析逻辑功能)3、组合逻辑电路设计(分立门电路器件设计、中规模集成电路设计译码器、数据选择器等)组合逻辑电路设计的步骤(最简与或表达式、与非-与非表达式、最简与或非表达式)4、编码器: 输入信号端与输出编码端的关系;互斥编码器、优先编码器区别01000,其余全为1,则输出编码为Y2"Y1"YO"口'74HC148功能,若输入I5 74HC147功能.5、译码器:输入编码端与输出信号端的关系74HC138功能分析:基本功能、扩展功能;两片74HC138级联构成4线-16线译码器;74HC138设计组合逻辑函数;6、数据选择器:概念(含义);输入信号、输出端的关系;74HC153、74HC151基本功能扩展功能、级联;数据选择器设计组合逻辑函数。
数电(PDF)

第6 章时序逻辑电路61时序逻辑电路的简介§ 6.1 时序逻辑电路的简介时序逻辑电路结构基本单元:触发器(基本逻辑门+反馈线基本单元: 触发器( 基本逻辑门+ 反馈线)具有记忆功能输入输出取决于以前的状态同步的异步的所有触发器在时钟脉冲的同一个边沿被触发1时序电路分类触发器不在同一时刻触发时序电路的结构:组合逻辑电路+ 触发器(存储单元)X Z组合逻辑电路X: 外部输入Z:外部输出wQ触发器电路W: 控制输入J, K, D, TW:控制输入--J K D TQ:触发器的状态Q: 触发器的状态2XZ各变量之间的关系:组合逻辑电路(,)Z F X Q =)输出方程触发器电路wQ(,W H X Q =1n nG W +=特征方程驱动方程(,)QQ 按照电路中输出变量是否和输入变量直接相关时序电路Mealy -type (米里型)输出Z Q n X3Moore -type (莫尔型)输出Z ~ Q n§6.2 同步时序电路的分析电路分析: 给定电路, 研究电路的原理,描述电路的功能.例1: 分析下图的同步时序电路1)输入控制输入X J 0, K 0, J 1, K 14输出状态ZQ 1 (高位), Q 0 (低位)列出方程n nn表示当前状态不能省略n 表示当前状态,不能省略状态图图例0nQ 1n Q 11n Q +10n Q +XZ 状态表X/ZQ 1Q 00101000 0 00 0 10 1 00110010/00100001 0 01 0 11100 1 1010010/01/01/11/01/00000101 1 01 1 100110/10/010对应一个CLK每条转换线对应着真值表中的行7每条转换线对应着真值表中的一行4) 电路功能0/0X/Z Q 1Q 001110/01/01/11/01/0000/10/010状态图的主循环:摸3的双向加法器X=0, M-3 加法器:Z =1,进位;顺时针循环X=1M 3减法器借位8X=1, M-3 减法器:Z =1,借位。
数电知识点汇总

数电知识点汇总一、数制与编码。
1. 数制。
- 二进制:由0和1组成,逢2进1。
在数字电路中,因为晶体管的导通和截止、电平的高和低等都可以很方便地用0和1表示,所以二进制是数字电路的基础数制。
例如,(1011)₂ = 1×2³+0×2² + 1×2¹+1×2⁰ = 8 + 0+2 + 1=(11)₁₀。
- 十进制:人们日常生活中最常用的数制,由0 - 9组成,逢10进1。
- 十六进制:由0 - 9、A - F组成,逢16进1。
十六进制常用于表示二进制数的简化形式,因为4位二进制数可以用1位十六进制数表示。
例如,(1101 1010)₂=(DA)₁₆。
- 数制转换。
- 二进制转十进制:按位权展开相加。
- 十进制转二进制:整数部分采用除2取余法,小数部分采用乘2取整法。
- 二进制与十六进制转换:4位二进制数对应1位十六进制数。
将二进制数从右向左每4位一组,不足4位的在左边补0,然后将每组二进制数转换为对应的十六进制数;反之,将十六进制数的每一位转换为4位二进制数。
2. 编码。
- BCD码(Binary - Coded Decimal):用4位二进制数来表示1位十进制数。
常见的有8421 BCD码,例如十进制数9的8421 BCD码为(1001)。
- 格雷码(Gray Code):相邻的两个代码之间只有一位不同。
在数字系统中,当数据按照格雷码的顺序变化时,可以减少电路中的瞬态干扰。
例如,3位格雷码的顺序为000、001、011、010、110、111、101、100。
二、逻辑代数基础。
1. 基本逻辑运算。
- 与运算(AND):逻辑表达式为Y = A·B(也可写成Y = AB),当A和B都为1时,Y才为1,否则Y为0。
在电路中可以用串联开关来类比与运算。
- 或运算(OR):逻辑表达式为Y = A + B,当A和B中至少有一个为1时,Y为1,只有A和B都为0时,Y为0。
数电实验报告答案

实验名称:数字电路基础实验实验目的:1. 熟悉数字电路的基本原理和基本分析方法。
2. 掌握数字电路实验设备的使用方法。
3. 培养动手实践能力和分析问题、解决问题的能力。
实验时间:2023年X月X日实验地点:实验室XX室实验仪器:1. 数字电路实验箱2. 万用表3. 双踪示波器4. 数字信号发生器5. 短路线实验内容:一、实验一:基本逻辑门电路实验1. 实验目的- 熟悉与门、或门、非门的基本原理和特性。
- 学习逻辑门电路的测试方法。
2. 实验步骤- 连接实验箱,设置输入端。
- 使用万用表测量输出端电压。
- 记录不同输入组合下的输出结果。
- 分析实验结果,验证逻辑门电路的特性。
3. 实验结果与分析- 实验结果与理论预期一致,验证了与门、或门、非门的基本原理。
- 通过实验,加深了对逻辑门电路特性的理解。
二、实验二:组合逻辑电路实验1. 实验目的- 理解组合逻辑电路的设计方法。
- 学习使用逻辑门电路实现组合逻辑电路。
2. 实验步骤- 根据设计要求,绘制组合逻辑电路图。
- 连接实验箱,设置输入端。
- 测量输出端电压。
- 记录不同输入组合下的输出结果。
- 分析实验结果,验证组合逻辑电路的功能。
3. 实验结果与分析- 实验结果符合设计要求,验证了组合逻辑电路的功能。
- 通过实验,掌握了组合逻辑电路的设计方法。
三、实验三:时序逻辑电路实验1. 实验目的- 理解时序逻辑电路的基本原理和特性。
- 学习使用触发器实现时序逻辑电路。
2. 实验步骤- 根据设计要求,绘制时序逻辑电路图。
- 连接实验箱,设置输入端和时钟信号。
- 使用示波器观察输出波形。
- 记录不同输入组合和时钟信号下的输出结果。
- 分析实验结果,验证时序逻辑电路的功能。
3. 实验结果与分析- 实验结果符合设计要求,验证了时序逻辑电路的功能。
- 通过实验,加深了对时序逻辑电路特性的理解。
四、实验四:数字电路仿真实验1. 实验目的- 学习使用数字电路仿真软件进行电路设计。
(数电知识)原码、反码与补码知识

2.1 原码、反码与补码在计算机内的数(称之为“机器数”)值有3种表示法:原码、反码和补码。
所谓原码就是带正、负号的二进制数,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
由此可见,这三种表示法中,关键是负数的表示方式不一样。
2.2.1 正负数表示、定点数与浮点数在计算机内,通常把1个二进制数的最高位定义为符号位,用“0”表示正数,“1”表示负数;其余位表示数值。
规定小数点位置固定不变的数称为“定点数”;小数点的位置不固定,可以浮动的数称为“浮点数”。
2.2.2 原码原码表示法是定点数的一种简单的表示法。
用原码表示带符号二进制数时,符号位用0表示正,1表示负;数值位保持不变。
原码表示法又称为符号-数值表示法。
1. 小数原码表示法设有一数为x,则原码表示可记作[x]原(下标表示)。
例如,X1= +1010110 ;X2= -1001010原码表示数的范围与二进制位数有关。
设二进制小数X=±0.X1X2…Xm,则小数原码的定义如下:例如:X=+0.1011时,根据以上公式可得[X]原=0.1011;X=-0.1011时,根据以上公式可得[X]原= 1-(-0.1011)=1.1011=1.1011当用8位二进制来表示小数原码时,其表示范围为:最大值为0.1111111,其真值约为(0.99)10 ;最小值为1.1111111,其真值约为(-0.99)10。
根据定义,小数“0”的原码可以表示成0.0…0或1.0…0。
2. 整数原码表示法整数原码的定义如下:例如:X=+1101时,根据以上公式可得[X]原=01101;X=-1101时,根据以上公式可得[X]原=24-(-1101)=10000+1101=11101当用8位二进制来表示整数原码时,其表示范围为:最大值为01111111,其真值为(127)10 ;最小值为11111111,其真值为(-127)10 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩评定表学生姓名田大露班级学号1303060220 专业通信工程课程设计题目音量控制电路的设计与实现评语组长签字:成绩日期20 年月日课程设计任务书学院信息科学与工程学院专业通信工程学生姓名田大露班级学号 1203060220课程设计题目音量控制电路的设计与实现实践教学要求与任务:1、熟悉音量控制电路的基本原理2、熟悉quartersⅡ的环境3、熟悉Multisim环境4、对音量控制电路进行结果验证及分析工作计划与进度安排:第一周熟悉Multisim环境及QuartusⅡ环境,练习数字系统设计方法,包括采用触发器设计和超高速硬件描述语言设计,体会自上而下、自下而上设计方法的优缺点。
第二周 1、在QuartusⅡ环境中用VHDL语言实现音量控制电路在仿真器上显示结果波形,并下载到目标芯片上,在实验箱上观察输出结果。
2、在Multisim环境中仿真实现数字计步器,并通过虚拟仪器验证其正确性。
指导教师:201 年月日专业负责人:201 年月日学院教学副院长:201 年月日摘要本设计是在前导验证性认知实验的基础上,进行更高层次的命题设计实验——十二级数字音量控制电路,在教师指导下独立查阅资料、设计、特定功能的电子电路。
以此培养利用模拟、数字电路知识,解决电子线路中常见实际问题的能力,积累实际电子制作经验,目的在于巩固基础、注重设计、培养技能、追求创新、走向成功。
将介绍一种由数字电路构成音量控制电路的设计方法。
这种数字式音量自动控制电路将是未来音量控制发展的主流,将越来越受消费者喜爱。
在音响设备中通常采用电位器进行音量控制。
但经常进行音量控制时,又容易使电位器磨损而出故障而采用数字式音量控制就可以避免模拟调节易受干扰的缺点,而且操作控制更加方便。
关键字:音量控制电路;电位器;数字式目录一、课程设计目的 (5)二、课程题目实现框图 (5)三、实现过程 (5)3.1Q UARTUS II8.1实现过程(VHDL) (5)3.1.1 建立工程 (6)3.1.2 编译程序 (9)3.1.3 波形仿真 (18)3.1.4引脚锁定与下载 (20)3.2M ULTISIM 实现过程(电路设计) (21)3.2.1单元功能电路设计 (21)3.2.2 画逻辑电路图 (23)3.2.3 逻辑分析仪的仿真 (24)3.2.4 仿真结果分析 (24)四、设计总结 (24)五、参考文献 (26)一、 课程设计目的1、了解数字系统设计方法。
2、熟悉VHDL 语言及其仿真环境、下载方法。
3、熟悉Multisim 环境,学会使用逻辑符号及元件画逻辑电路图。
二、课程题目实现框图1、。
如图2-1所示是音量控制电路的结构示意框图。
三、实现过程3.1 QuartusII8.1实现过程(VHDL)图2-1 结构示意框图显示器译码器计数器3.1.1 建立工程(1)启动QUARTUS软件,如图3-1 所示:图3-1 QUARTUS软件的启动界面(2)点击File –> New Project Wizard创建一个新工程,如图3-2所示:图3-2 工程创建向导的启始页(3)点击Next,为工程选择存储目录、工程名称、顶层实体名等,如图3-3所示;图3-3 输入工程名称、存储目录(4)点击Next,若目录不存在,系统可能提示创建新目录,点击“是”按钮创建新目录,如图3-4所示;图3-4 提示是否添加文件(5)点击Next,进入设备选择对话框,这里选中实验箱的核心芯片CYCLONE系列FPGA 产品EP1C6Q240C8,如图3-5所示;图3-5 芯片型号选择(6)点击Next,提示是否需要其他EDA工具,这里不选任何其他工具,如图3-6;图3-6 提示是否利用其他EDA设计工具(7)点击Next后,系统提示创建工程的各属性总结,若没有错误,点击Finish,工程创建向导将生成一个工程,在窗口左侧显示出设备型号和该工程的基本信息等。
如图3-7所示:图3-7 工程阐述汇总3.1.2 编译程序为实现用一个拨码开关控制一个LED亮灭的功能,可用VHDL编写一个程序实现,具体操作过程如下:(1)点击File->New创建一个设计文件,如图3-8所示;图3-8 创建一个设计文件(2)选择设计文件的类型为VHDL File;(3)点击OK,窗口右侧为VHDL的编辑窗口,如图3-9所示:图 3-9 新建的一个VHDL源文件的编辑窗口(4)在编辑窗口中编辑以下程序:library ieee;use ieee.std_logic_1164.all;entity jibuqi isport(scan_clk:in std_logic;clk0,alter,start: in std_logic;S :out std_logic_vector(5 downto0);a,b,c,d,e,f,g :out std_logic);end jibuqi;architecture arch of jibuqi issignal t :std_logic_vector(3 downto 0);signal r :std_logic_vector(6 downto 0);signal clk :std_logic;signal Q1,Q2,Q3,Q4,P1,P2,P3,P4:std_logic_vector(3 downto 0); signal X1,X2,X3,X4,X5:std_logic_vector(3 downto 0);beginU1:process(start,clk0)beginclk <=start and clk0;end process;U2:process(clk)beginif clk'event and clk='1' thenif Q1="0000" then Q1<="0001";elsif Q1="0001" then Q1<="0010";elsif Q1="0010" then Q1<="0011";elsif Q1="0011" then Q1<="0100";elsif Q1="0100" then Q1<="0101";elsif Q1="0101" then Q1<="0110";elsif Q1="0110" then Q1<="0111";elsif Q1="0111" then Q1<="1000";elsif Q1="1000" then Q1<="1001";elsif Q1="1001" then Q1<="0000";end if;end if;if Q1' event and Q1="0000" thenif Q2="0000" then Q2<="0001";elsif Q2="0001" then Q2<="0010";elsif Q2="0010" then Q2<="0011";elsif Q2="0011" then Q2<="0100";elsif Q2="0100" then Q2<="0101";elsif Q2="0101" then Q2<="0110";elsif Q2="0110" then Q2<="0111";elsif Q2="0111" then Q2<="1000"; elsif Q2="1000" then Q2<="1001"; elsif Q2="1001" then Q2<="0000"; end if;end if;if Q2' event and Q2="0000" thenif Q3="0000" then Q2<="0001";elsif Q3="0001" then Q3<="0010";elsif Q3="0010" then Q3<="0011";elsif Q3="0011" then Q3<="0100";elsif Q3="0100" then Q3<="0101";elsif Q3="0101" then Q3<="0110";elsif Q3="0110" then Q3<="0111";elsif Q3="0111" then Q3<="1000";elsif Q3="1000" then Q3<="1001";elsif Q3="1001" then Q3<="0000"; end if;end if;if Q3' event and Q3="0000" thenif Q4="0000" then Q4<="0001";elsif Q4="0001" then Q4<="0010";elsif Q4="0010" then Q4<="0011";elsif Q4="0011" then Q4<="0100";elsif Q4="0100" then Q4<="0101";elsif Q4="0101" then Q4<="0110";elsif Q4="0110" then Q4<="0111";elsif Q4="0111" then Q4<="1000";elsif Q4="1000" then Q4<="1001";elsif Q4="1001" then Q4<="0000"; end if;end if;if clk'event and clk='1' then if P1="0000" then P1<="0100";elsif P1="0100" then P1<="1000";elsif P1="1000" then P1<="0010";elsif P1="0010" then P1<="0110";elsif P1="0110" then P1<="0000"; end if;end if;if P1'event and P1="0000" thenif P2="0000" then P2<="0001";elsif P2="0001" then P2<="0010";elsif P2="0010" then P2<="0011";elsif P2="0011" then P2<="0100";elsif P2="0100" then P2<="0101";elsif P2="0101" then P2<="0110";elsif P2="0110" then P2<="0111";elsif P2="0111" then P2<="1000";elsif P2="1000" then P2<="1001";elsif P2="1001" then P2<="0000"; end if;end if;if P2'event and P2="0000" thenif P3="0000" then P3<="0001";elsif P3="0001" then P3<="0010";elsif P3="0010" then P3<="0011";elsif P3="0011" then P3<="0100";elsif P3="0100" then P3<="0101";elsif P3="0101" then P3<="0110";elsif P3="0110" then P3<="0111";elsif P3="0111" then P3<="1000";elsif P3="1000" then P3<="1001";elsif P3="1001" then P3<="0000"; end if;end if;if P3'event and P3="0000" thenif P4="0000" then P4<="0001";elsif P4="0001" then P4<="0010";elsif P4="0010" then P4<="0011";elsif P4="0011" then P4<="0100";elsif P4="0100" then P4<="0101";elsif P4="0101" then P4<="0110";elsif P4="0110" then P4<="0111";elsif P4="0111" then P4<="1000";elsif P4="1000" then P4<="1001";elsif P4="1001" then P4<="0000"; end if;end if;end process;U4:process(alter)beginif alter='0'then X1 <= Q1;X2 <= Q2;X3 <= Q3;X4 <= Q4;X5 <= "1111";else X1 <= "0000";X2 <= P1;X3 <= P2;X4 <= P3;X5 <= P4;end if;end process;U5:process(scan_clk)variable S1:std_logic_vector(4 downto 0):="10000"; beginif scan_clk'event and scan_clk='1' thenif S1="10000" thenS1:="01000";elsif S1="01000" thenS1:="00100";elsif S1="00100" thenS1:="00010";elsif S1="00010" thenS1:="00001";elsif S1="00001" thenS1:="00000";end if;end if;if S1="10000" then t<=X5;elsif S1="01000" then t<=X4;elsif S1="00100" then t<=X3;elsif S1="00010" then t<=X2;elsif S1="00001" then t<=X1;end if;S<=S1;end process;U6:process(t)begincase t iswhen "0000" => r<="0111111";when "0001" => r<="0000110";when "0010" => r<="1011011";when "0011" => r<="1001111";when "0100" => r<="1100110";when "0101" => r<="1101101";when "0110" => r<="1111101";when "0111" => r<="0000111";when "1000" => r<="1101111";when "1001" => r<="1101111";when "1111" => r<="0000000";when others => null;end case;end process;g<=r(6);f<=r(5);e<=r(4);d<=r(3);c<=r(2);b<=r(1);a<=r(0);end arch;(5)输入程序后,存盘,如图3-10所示:图3-10 存盘( 6 ) 点击Processing->Start Compilation编译该文件,系统将开始编译,结束后,给出提示信息和编译结果,如图3-11所示:图3-11 编译结果显示3.1.3 波形仿真(1 )建立时序仿真文件,选择“Vector Waveform File”,如图3-12所示:图3-12 建立时序仿真文件(2)出现图3-13的界面,在Name空白处击右键,Insert→Insert Node or Bus 。