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

上传人:桔**** 文档编号:499004529 上传时间:2023-09-30 格式:DOCX 页数:9 大小:269.87KB
返回 下载 相关 举报
实验一 组合逻辑电路的设计_第1页
第1页 / 共9页
实验一 组合逻辑电路的设计_第2页
第2页 / 共9页
实验一 组合逻辑电路的设计_第3页
第3页 / 共9页
实验一 组合逻辑电路的设计_第4页
第4页 / 共9页
实验一 组合逻辑电路的设计_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《实验一 组合逻辑电路的设计》由会员分享,可在线阅读,更多相关《实验一 组合逻辑电路的设计(9页珍藏版)》请在金锄头文库上搜索。

1、实验一 组合逻辑电路的设计一、实验目的:1、掌握组合逻辑电路的设计方法。2、掌握组合逻辑电路的静态测试方法。3、加深FPGA设计的过程,并比较原理图输入和文本输入的优劣。4、理解“毛刺”产生的原因及如何消除其影响。5、理解组合逻辑电路的特点。二、实验的硬件要求:1、 EDA/SOPC 实验箱。2、 计算机。三、实验原理1、组合逻辑电路的定义 数字逻辑电路可分为两类:组合逻辑电路和时序逻辑电路。组合逻辑电路中不包含记忆 单元(触发器、锁存器等),主要由逻辑门电路构成,电路在任何时刻的输出只和当前时刻 的输入有关,而与以前的输入无关。时序电路则是指包含了记忆单元的逻辑电路,其输出不 仅跟当前电路的

2、输入有关,还和输入信号作用前电路的状态有关。通常组合逻辑电路可以用图 1.1 所示结构来描述。其中, X0、 X1、 Xn 为输入信号, L0、 L1、 Lm 为输出信号。输入和输出之间的逻辑函数关系可用式1.1 表示:X0 组合逻L0LO=FO(XO,X1, Xn)辑电路 (1.1)XnLmLm=F0(X0,X1, Xn) J图 1.1 组合逻辑电路框图2、组合逻辑电路的设计方法 组合逻辑电路的设计任务是根据给定的逻辑功能,求出可实现该逻辑功能的最合理组 合电路。理解组合逻辑电路的设计概念应该分两个层次:(1)设计的电路在功能上是完整的, 能够满足所有设计要求;(2)考虑到成本和设计复杂度,

3、设计的电路应该是最简单的,设计 最优化是设计人员必须努力达到的目标。在设计组合逻辑电路时,首先需要对实际问题进行逻辑抽象,列出真值表,建立起逻辑 模型;然后利用代数法或卡诺图法简化逻辑函数,找到最简或最合理的函数表达式;根据简 化的逻辑函数画出逻辑图,并验证电路的功能完整性。设计过程中还应该考虑到一些实际的 工程问题,如被选门电路的驱动能力、扇出系数是否足够,信号传递延时是否合乎要求等。 组合电路的基本设计步骤可用图 1.2 来表示。图 1.2 组合电路设计步骤示意图图3、组合逻辑电路的特点及设计时的注意事项 组合逻辑电路的输出具有立即性,即输入发生变化时,输出立即变化。(实际电路中还要考虑器

4、件和导线产生的延时)。 组合逻辑电路设计时应尽量避免直接或间接的反 馈,以免出现不确定的状态或形成振荡。如右图设计的 基本触发器,当输入S、R从“00”变为“11”时,无 法确定Q和Q的值。尖峰干扰。图 1.3 竞争冒险实例由于“毛刺”的影响,应避免使用组合 逻辑电路直接产生时钟信号,也应避免将组 合逻辑电路的输出作为另一个电路的异步控 制信号。如右图,本意是设计一个计数范围 为“05”的六进制计数器,即输出 QD、 QC、 QB、QA 从 5 “0101 ”变到 6 “0110”时,与 门输出1 ”,控制CLR”异步复位到0000”, 但是由于输出从3“0011”变到4“0100”时, QC

5、 先于 QB 从“0”变到“1”,导致短暂的 “0111”出现,使与门输出“1”,引起复位, 从而使实际的电路计数范围为“03”,与设 计的初衷相悖。 用VHDL描述组合逻辑电路时,所有 的输入信号都应放在敏感信号表中。U3寺74LS08D 用IF语句和CASE语句描述电路分支时,一定要列举出所有输入状态(一般在最后加上“else”或“when others”分支),否则在综合时将引入LATCH,使电路输出出现延时。4、 VHDL 语言简介VHDL设计文件的基本结构 组合逻辑电路容易出现毛刺”,这是由于电路竞 争冒险”产生的。如图 1.3 所示,图中与门的两个输入 分别由信号A经过不同路径传递

6、而来。按照理想情况分 析,电路输出端应该始终为L=A A=0。考虑到信号在逻辑门中的传输延迟,A到达 与门输入端的时间始终落后于A。图3.2-1 (b)的波形显示,信号A的四次变化都产生了 竞争。但这四次竞争引起的结果是不一样的。第一次和第三次竞争造 成输出错误,第二次 和第四次竞争则没有造成输出错误。换言之,只有第一次和第三次竞争引起了冒险,产生了*1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *T rT i*T* JSTx rTx rTx-NOT Gate Sim

7、ulation-Filename:NOTGATE*1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* k1* *1* *1* *1* *1* k1* *1* *1*T rT i*T* JSTx rTx rTxLibrary IEEE;Use IEEE. std_logic_1164. all;Entity notgate is port(A:in STD_LOGIC; F:out STD_LOGIC;);End notgate ;Architecture notgate _arch of notgate is BeginFJ.已 dag

8、ledagledag1 已 dag1 已 dag1 已 dagJ.已 dagledagledag1 已 dag1 已 dag1 已 dagledagledagledag1 已 dag1 已 dag=,r00000000rp;消隐已nd case;end process;end display;输入信号:D3, D2, Dl, D0所对应的管脚同四位拨码开关相连。输出信号:代表7段字码驱动信号ledag0ledag7的管脚分别同扫描数码管的 段输入 a,b,c,d,e,f,g,H 相连。3、设计一个BCD码加法器。BCD码是二进制编码的十进制码,也就是用4位二进制数来表示十进制中的09这十 个数

9、。由于4位二进制数有00001111共16种组合,而十进制数只需对应4位二进制数的 10种组合,故从4位二进制数的16种组合中取出10种组合来分别表示十进制中的09, 则有许多不同的取舍方式,于是便形成了不同类型的BCD码。本实验我们只针对最简单的情况,也是最常见的BCD码,就是用4位二进制的0000 1001来表示十进制的09,而丢弃4位二进制的10101111共6种组合,这样一来,就相 当于用4位二进制的09对应十进制的09。这样的BCD码进行相加时会出现两种可能, 一种可能是当两个BCD码相加的值小于10时,结果仍旧是正确的BCD码;另外一种可能是 当两个码相加的结果大于或者等于10时,

10、就会得到错误的结果,这是因为4位二进制码可 以表示015,而BCD码只取了其中的09的原因。对于第二种错误的情况,有一个简单 的处理方法就是作加6处理,就会得到正确的结果。下面举例说明第二种情况的处理过程。假如 A=(7)10=(0111)2=(0111)BCD, B=(8)10=(1000)2=(1000)BCD,那么 A+B=(15)10=(llll)2 工(0001 0101)BCD。但是对于(1111)2+(0110)2=(0001 0101)2=(0010 0001)BCD。因此在程序设计时要注意两个输入的BCD码相加结果是否会出现大于或等于 1 0的情况,如果是则必须作加6的修正处理。BCD码加法器的VHDL源码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std logic unsigned.all;entity exp3 isport ( kf B: in 3

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号