EDN首页   博客首页

最新日志

发表于:2007-9-28 10:57:47
标签:无标签

1

电平总结2

要了解逻辑电平的内容,首先要知道以下几个概念的含义: [52RD.com]
1:输入高电平(Vih): 保证逻辑门的输入为高电平时所允许的最小输入高电平,当输入电平高于Vih时,则认为输入电平为高电平。 [52RD.com]
2:输入低电平(Vil):保证逻辑门的输入为低电平时所允许的最大输入低电平,当输入电平低于Vil时,则认为输入电平为低电平。 [52RD.com]
3:输出高电平(Voh):保证逻辑门的输出为高电平时的输出电平的最小值,逻辑门的输出为高电平时的电平值都必须大于此Voh。 [52RD.com]
4:输出低电平(Vol):保证逻辑门的输出为低电平时的输出电平的最大值,逻辑门的输出为低电平时的电平值都必须小于此Vol。 [52RD.com]
5:阀值电平(Vt): 数字电路芯片都存在一个阈值电平,就是电路刚刚勉强能翻转动作时的电平。它是一个界于Vil、Vih之间的电压值,对于CMOS电路的阈值电平,基本上是二分之一的电源电压值,但要保证稳定的输出,则必须要求输入高电平> Vih,输入低电平[52RD.com]
对于一般的逻辑电平,以上参数的关系如下: [52RD.com]
Voh > Vih > Vt > Vil > Vol。 [52RD.com]
6:Ioh:逻辑门输出为高电平时的负载电流(为拉电流)。 [52RD.com]
7:Iol:逻辑门输出为低电平时的负载电流(为灌电流)。 [52RD.com]
8:Iih:逻辑门输入为高电平时的电流(为灌电流)。 [52RD.com]
9:Iil:逻辑门输入为低电平时的电流(为拉电流)。 [52RD.com]
门电路输出极在集成单元内不接负载电阻而直接引出作为输出端,这种形式的门称为开路门。开路的TTL、CMOS、ECL门分别称为集电极开路(OC)、漏极开路(OD)、发射极开路(OE),使用时应审查是否接上拉电阻(OC、OD门)或下拉电阻(OE门),以及电阻阻值是否合适。对于集电极开路(OC)门,其上拉电阻阻值RL应满足下面条件: [52RD.com]
(1): RL < (VCC-Voh)/(n*Ioh+m*Iih) [52RD.com]
(2):RL > (VCC-Vol)/(Iol+m*Iil) [52RD.com]
其中n:线与的开路门数;m:被驱动的输入端数。 [52RD.com]
:常用的逻辑电平[52RD.com]
·逻辑电平:有TTL、CMOS、LVTTL、ECL、PECL、GTL;RS232、RS422、LVDS等。 [52RD.com]
·其中TTL和CMOS的逻辑电平按典型电压可分为四类:5V系列(5V TTL和5V CMOS)、3.3V系列,2.5V系列和1.8V系列。 [52RD.com]
·5V TTL和5V CMOS逻辑电平是通用的逻辑电平。 [52RD.com]
·3.3V及以下的逻辑电平被称为低电压逻辑电平,常用的为LVTTL电平。 [52RD.com]
·低电压的逻辑电平还有2.5V和1.8V两种。 [52RD.com]
·ECL/PECL和LVDS是差分输入输出。 [52RD.com]
·RS-422/485和RS-232是串口的接口标准,RS-422/485是差分输入输出,RS-232是单端输入输出。 [52RD.com]
[52RD.com]
title=dvubb pluginspage="http://www".macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash src="UploadFile/2006-7/200672321204716568".swf width="500" height="300" type="application/x-shockwave-flash" quality="high">[52RD.com]
TTL和CMOS的逻辑电平关系[52RD.com]
图2-1:TTL和CMOS的逻辑电平图 [52RD.com]
上图为5V TTL逻辑电平、5V CMOS逻辑电平、LVTTL逻辑电平和LVCMOS逻辑电平的示意图。 [52RD.com]
5V TTL逻辑电平和5V CMOS逻辑电平是很通用的逻辑电平,注意他们的输入输出电平差别较大,在互连时要特别注意。 [52RD.com]
另外5V CMOS器件的逻辑电平参数与供电电压有一定关系,一般情况下,Voh≥Vcc-0.2V,Vih≥0.7Vcc;Vol≤0.1V,Vil≤0.3Vcc;噪声容限较TTL电平高。 [52RD.com]
JEDEC组织在定义3.3V的逻辑电平标准时,定义了LVTTL和LVCMOS逻辑电平标准。 [52RD.com]
LVTTL逻辑电平标准的输入输出电平与5V TTL逻辑电平标准的输入输出电平很接近,从而给它们之间的互连带来了方便。 LVTTL逻辑电平定义的工作电压范围是3.0-3.6V。 [52RD.com]
LVCMOS逻辑电平标准是从5V CMOS逻辑电平关注移植过来的,所以它的Vih、Vil和Voh、Vol与工作电压有关,其值如上图所示。LVCMOS逻辑电平定义的工作电压范围是2.7-3.6V。 [52RD.com]
5V的CMOS逻辑器件工作于3.3V时,其输入输出逻辑电平即为LVCMOS逻辑电平,它的Vih大约为0.7×VCC=2.31V左右,由于此电平与LVTTL的Voh(2.4V)之间的电压差太小,使逻辑器件工作不稳定性增加,所以一般不推荐使用5V CMOS器件工作于3.3V电压的工作方式。由于相同的原因,使用LVCMOS输入电平参数的3.3V逻辑器件也很少。 [52RD.com]
JEDEC组织为了加强在3.3V上各种逻辑器件的互连和3.3V与5V逻辑器件的互连,在参考LVCMOS和LVTTL逻辑电平标准的基础上,又定义了一种标准,其名称即为3.3V逻辑电平标准,其参数如下: [52RD.com]
[52RD.com]
图2-2:低电压逻辑电平标准 [52RD.com]
从上图可以看出,3.3V逻辑电平标准的参数其实和LVTTL逻辑电平标准的参数差别不大,只是它定义的Vol可以很低(0.2V),另外,它还定义了其Voh最高可以到VCC-0.2V,所以3.3V逻辑电平标准可以包容LVCMOS的输出电平。在实际使用当中,对LVTTL标准和3.3V逻辑电平标准并不太区分,某些地方用LVTTL电平标准来替代3.3V逻辑电平标准,一般是可以的。 [52RD.com]
JEDEC组织还定义了2.5V逻辑电平标准,如上图所示。另外,还有一种2.5V CMOS逻辑电平标准,它与上图的2.5V逻辑电平标准差别不大,可兼容。 [52RD.com]
低电压的逻辑电平还有1.8V、1.5V、1.2V的逻辑电平。 [52RD.com]
、TTL和CMOS逻辑器件[52RD.com]
逻辑器件的分类方法有很多,下面以逻辑器件的功能、工艺特点和逻辑电平等方法来进行简单描述。 [52RD.com]
:TTL和CMOS器件的功能分类[52RD.com]
按功能进行划分,逻辑器件可以大概分为以下几类: 门电路和反相器、选择器、译码器、计数器、寄存器、触发器、锁存器、缓冲驱动器、收发器、总线开关、背板驱动器等。 [52RD.com]
1:门电路和反相器 [52RD.com]
逻辑门主要有与门74X08、与非门74X00、或门74X32、或非门74X02、异或门74X86、反相器74X04等。 [52RD.com]
2:选择器 [52RD.com]
选择器主要有2-1、4-1、8-1选择器74X157、74X153、74X151等。 [52RD.com]
3: 编/译码器 [52RD.com]
编/译码器主要有2/4、3/8和4/16译码器74X139、74X138、74X154等。 [52RD.com]
4:计数器 [52RD.com]
计数器主要有同步计数器74X161和异步计数器74X393等。 [52RD.com]
5:寄存器 [52RD.com]
寄存器主要有串-并移位寄存器74X164和并-串寄存器74X165等。 [52RD.com]
6:触发器 [52RD.com]
触发器主要有J-K触发器、带三态的D触发器74X374、不带三态的D触发器74X74、施密特触发器等。 [52RD.com]
7:锁存器 [52RD.com]
锁存器主要有D型锁存器74X373、寻址锁存器74X259等。 [52RD.com]
8:缓冲驱动器 [52RD.com]
缓冲驱动器主要有带反向的缓冲驱动器74X240和不带反向的缓冲驱动器74X244等。 [52RD.com]
9:收发器 [52RD.com]
收发器主要有寄存器收发器74X543、通用收发器74X245、总线收发器等。 [52RD.com]
10:总线开关 [52RD.com]
总线开关主要包括总线交换和通用总线器件等。 [52RD.com]
11:背板驱动器 [52RD.com]
背板驱动器主要包括TTL或LVTTL电平与GTL/GTL+(GTLP)或BTL之间的电平转换器件。 [52RD.com]
:TTL和CMOS逻辑器件的工艺分类特点[52RD.com]
按工艺特点进行划分,逻辑器件可以分为Bipolar、CMOS、BiCMOS等工艺,其中包括器件系列有: [52RD.com]
Bipolar(双极)工艺的器件有: TTL、S、LS、AS、F、ALS。 [52RD.com]
CMOS工艺的器件有: HC、HCT、CD40000、ACL、FCT、LVC、LV、CBT、ALVC、AHC、AHCT、CBTLV、AVC、GTLP。 [52RD.com]
BiCMOS工艺的器件有: BCT、ABT、LVT、ALVT。 [52RD.com]
:TTL和CMOS逻辑器件的电平分类特点[52RD.com]
TTL和CMOS的电平主要有以下几种:5VTTL、5VCMOS(Vih≥0.7*Vcc,Vil≤0.3*Vcc)、3.3V电平、2.5V电平等。 [52RD.com]
5V的逻辑器件 [52RD.com]
5V器件包含TTL、S、LS、ALS、AS、HCT、HC、BCT、74F、ACT、AC、AHCT、AHC、ABT等系列器件 [52RD.com]
3.3V及以下的逻辑器件 [52RD.com]
包含LV的和V 系列及AHC和AC系列,主要有LV、AHC、AC、ALB、LVC、ALVC、LVT等系列器件。 [52RD.com]
具体情况可以参考下图: [52RD.com]
[52RD.com]
图3-1:TI公司的逻辑器件示例图 [52RD.com]
:包含特殊功能的逻辑器件[52RD.com]
A.总线保持功能(Bus hold) [52RD.com]
由内部反馈电路保持输入端最后的确定状态,防止因输入端浮空的不确定而导致器件振荡自激损坏;输入端无需外接上拉或下拉电阻,节省PCB空间,降低了器件成本开销和功耗,见图6-3。ABT、LVT、ALVC、ALVCH、ALVTH、LVC、GTL系列器件有此功能。 命名特征为附加了“H”如:74ABTH16244。 [52RD.com]
[52RD.com]
图3-2:总线保持功能图 图3-3:串行阻尼电阻图 [52RD.com]
B.串联阻尼电阻(series damping resistors) [52RD.com]
输出端加入串联阻尼电阻可以限流,有助于降低信号上冲/下冲噪声,消除线路振铃,改善信号质量。如图6-4所示。具有此特征的ABT、LVC、LVT、ALVC系列器件在命名中加入了“2”或“R”以示区别,如ABT162245,ALVCHR162245。对于单向驱动器件,串联电阻加在其输出端,命名如SN74LVC2244;对于双向的收发器件,串联电阻加在两边的输出端,命名如SN74LVCR2245。 [52RD.com]
C.上电/掉电三态(PU3S,Power up/power down 3-state) [52RD.com]
即热拔插性能。上电/掉电时器件输出端为三态,Vcc阀值为2.1V;应用于热拔插器件/板卡产品,确保拔插状态时输出数据的完整性。多数ABT、LVC、LVT、LVTH系列器件有此特征。 [52RD.com]
D.ABT 器件(Advanced BiCMOS Technology) [52RD.com]
结合了CMOS器件(如HC/HCT、LV/LVC、ALVC、AHC/AHCT)的高输入阻抗特性和双极性器件(Bipolar,如TTL、LS、AS、ALS)输出驱动能力强的特点。包括ABT、LVT、ALVT等系列器件,应用于低电压,低静态功耗环境。 [52RD.com]
E.Vcc/GND对称分布 [52RD.com]
16位Widebus器件的重要特征,对称配置引脚,有利于改善噪声性能。AHC/AHCT、AVT、AC/ACT、CBT、LVT、ALVC、LVC、ALB系列16位Widebus器件有此特征。 [52RD.com]
F.分离轨器件(Split-rail) [52RD.com]
即双电源器件,具有两种电源输入引脚VccA和VccB,可分别接5V或3.3V电源电压。如ALVC164245、LVC4245等,命名特征为附加了“4”。[52RD.com]
[52RD.com]
逻辑器件的使用指南[52RD.com]
1:多余不用输入管脚的处理 [52RD.com]
在多数情况下,集成电路芯片的管脚不会全部被使用。例如74ABT16244系列器件最多可以使用16路I/O管脚,但实际上通常不会全部使用,这样就会存在悬空端子。所有数字逻辑器件的无用端子必须连接到一个高电平或低电平,以防止电流漂移(具有总线保持功能的器件无需处理不用输入管脚)。究竟上拉还是下拉由实际器件在何种方式下功耗最低确定。 244、16244经测试在接高电平时静态功耗较小,而接地时静态功耗较大,故建议其无用端子处理以通过电阻接电源为好,电阻值推荐为1~10K。 [52RD.com]
2:选择板内驱动器件的驱动能力,速度,不能盲目追求大驱动能力和高速的器件,应该选择能够满足设计要求,同时有一定的余量的器件,这样可以减少信号过冲,改善信号质量。并且在设计时必须考虑信号匹配。 [52RD.com]
3:在对驱动能力和速度要求较高的场合,如高速总线型信号线,可使用ABT、LVT系列。板间接口选择ABT16244/245或LVTH16244/245,并在母板两端匹配,在不影响速度的条件下与母板接口尽量串阻,以抑制过冲、保护器件,典型电阻值为10- 200Ω左右,另外,也可以使用并接二级管来进行处理,效果也不错,如1N4148等(抗冲击较好)。 [52RD.com]
4:在总线达到产生传输线效应的长度后,应考虑对传输线进行匹配,一般采用的方式有始端匹配、终端匹配等。 [52RD.com]
始端匹配是在芯片的输出端串接电阻,目的是防止信号畸变和地弹反射,特别当总线要透过接插件时,尤其须做始端匹配。 内部带串联阻尼电阻的器件相当于始端匹配,由于其阻值固定,无法根据实际情况进行调整,在多数场合对于改善信号质量收效不大,故此不建议推荐使用。始端匹配推荐电阻值为10~51 Ω,在实际使用中可根据IBIS模型模拟仿真确定其具体值。 [52RD.com]
由于终端匹配网络加重了总线负载,所以不应该因为匹配而使Buffer的实际驱动电流大于驱动器件所能提供的最大Source、Sink电流值。 [52RD.com]
应选择正确的终端匹配网络,使总线即使在没有任何驱动源时,其线电压仍能保持在稳定的高电平。 [52RD.com]
5:要注意高速驱动器件的电源滤波。如ABT、LVT系列芯片在布线时,建议在芯片的四组电源引脚附近分别接0.1 μ或0.01 μ电容。 [52RD.com]
6:可编程器件任何电源引脚、地线引脚均不能悬空;在每个可编程器件的电源和地间要并接0.1uF的去耦电容,去耦电容尽量靠近电源引脚,并与地形成尽可能小的环路。 [52RD.com]
7:收发总线需有上拉电阻或上下拉电阻,保证总线浮空时能处于一个有效电平,以减小功耗和干扰。 [52RD.com]
8:373/374/273等器件为工作可靠,锁存时钟输入建议串入10-200欧电阻。 [52RD.com]
9:时钟、复位等引脚输入往往要求较高电平,必要时可上拉电阻。 [52RD.com]
10:注意不同系列器件是否有带电插拔功能及应用设计中的注意事项,在设计带电插拔电路时请参考公司的《单板带电插拔设计规范》。 [52RD.com]
11:注意电平接口的兼容性。 选用器件时要注意电平信号类型,对于有不同逻辑电平互连的情况,请遵守本规范的相应的章节的具体要求。 [52RD.com]
12: 在器件工作过程中,为保证器件安全运行,器件引脚上的电压及电流应严格控制在器件手册指定的范围内。逻辑器件的工作电压不要超出它所允许的范围。 [52RD.com]
13:逻辑器件的输入信号不要超过它所能允许的电压输入范围,不然可能会导致芯片性能下降甚至损坏逻辑器件。 [52RD.com]
14:对开关量输入应串电阻,以避免过压损坏。 [52RD.com]
15:对于带有缓冲器的器件不要用于线性电路,如放大器。 [52RD.com]
、TTL、CMOS器件的互连[52RD.com]
:器件的互连总则[52RD.com]
在公司产品的某些单板上,有时需要在某些逻辑电平的器件之间进行互连。在不同逻辑电平器件之间进行互连时主要考虑以下几点: [52RD.com]
1:电平关系,必须保证在各自的电平范围内工作,否则,不能满足正常逻辑功能,严重时会烧毁芯片。 [52RD.com]
2:驱动能力,必须根据器件的特性参数仔细考虑,计算和试验,否则很可能造成隐患,在电源波动,受到干扰时系统就会崩溃。 [52RD.com]
3:时延特性,在高速信号进行逻辑电平转换时,会带来较大的延时,设计时一定要充分考虑其容限。 [52RD.com]
4:选用电平转换逻辑芯片时应慎重考虑,反复对比。通常逻辑电平转换芯片为通用转换芯片,可靠性高,设计方便,简化了电路,但对于具体的设计电路一定要考虑以上三种情况,合理选用。 [52RD.com]
对于数字电路来说,各种器件所需的输入电流、输出驱动电流不同,为了驱动大电流器件、远距离传输、同时驱动多个器件,都需要审查电流驱动能力:输出电流应大于负载所需输入电流;另一方面,TTL、CMOS、ECL等输入、输出电平标准不一致,同时采用上述多种器件时应考虑电平之间的转换问题。 [52RD.com]
我们在电路设计中经常遇到不同的逻辑电平之间的互连,不同的互连方法对电路造成以下影响: [52RD.com]
·对逻辑电平的影响。应保证合格的噪声容限(Vohmin-Vihmin≥0.4V,Vilmax-Volmax ≥0.4V),并且输出电压不超过输入电压允许范围。 [52RD.com]
·对上升/下降时间的影响。应保证Tplh和Tphl满足电路时序关系的要求和EMC的要求。 [52RD.com]
·对电压过冲的影响。过冲不应超出器件允许电压绝对最大值,否则有可能导致器件损坏。 [52RD.com]
TTL和CMOS的逻辑电平关系如下图所示: [52RD.com]
图4-1: TTL和CMOS的逻辑电平关系图 [52RD.com]
图4-2:低电压逻辑电平标准 [52RD.com]
3.3V的逻辑电平标准如前面所述有三种,实际的3.3V TTL/CMOS逻辑器件的输入电平参数一般都使用LVTTL或3.3V逻辑电平标准(一般很少使用LVCMOS输入电平),输出电平参数在小电流负载时高低电平可分别接近电源电压和地电平(类似LVCMOS输出电平),在大电流负载时输出电平参数则接近LVTTL电平参数,所以输出电平参数也可归入3.3V逻辑电平,另外,一些公司的手册中将其归纳如LVTTL的输出逻辑电平,也可以。 [52RD.com]
在下面讨论逻辑电平的互连时,对3.3V TTL/CMOS的逻辑电平,我们就指的是3.3V逻辑电平或LVTTL逻辑电平。 [52RD.com]
常用的TTL和CMOS逻辑电平分类有:5V TTL、5V CMOS、3.3V TTL/CMOS、3.3V/5V Tol.、和OC/OD门。 [52RD.com]
其中: [52RD.com]
3.3V/5V Tol.是指输入是3.3V逻辑电平,但可以忍受5V电压的信号输入。 [52RD.com]
3.3V TTL/CMOS逻辑电平表示不能输入5V信号的逻辑电平,否则会出问题。 [52RD.com]
注意某些5V的CMOS逻辑器件,它也可以工作于3.3V的电压,但它与真正的3.3V器件(是LVTTL逻辑电平)不同,比如其VIH是2.31V(=0.7×3.3V,工作于3.3V)(其实是LVCMOS逻辑输入电平),而不是2.0V,因而与真正的3.3V器件互连时工作不太可靠,使用时要特别注意,在设计时最好不要采用这类工作方式。 [52RD.com]
值得注意的是有些器件有单独的输入或输出电压管脚,此管脚接3.3V的电压时,器件的输入或输出逻辑电平为3.3V的逻辑电平信号,而当它接5V电压时,输入或输出的逻辑电平为5V的逻辑电平信号,此时应该按该管脚上接的电压的值来确定输入和输出的逻辑电平属于哪种分类。 [52RD.com]
对于可编程器件(EPLD和FPGA)的互连也要根据器件本身的特点并参考本章节的内容进行处理。 [52RD.com]
以上5种逻辑电平类型之间的驱动关系如下表: [52RD.com]
输入[52RD.com]
5V TTL 3.3V /5V Tol. 3.3V TTL/CMOS 5V CMOS[52RD.com]
输出 5V TTL √ √ ?/FONT> ?/FONT>[52RD.com]
3.3V TTL/CMOS √ √ √ ?/FONT>[52RD.com]
5V CMOS √ √ ?/FONT> √[52RD.com]
OC/OD 上拉 上拉 上拉 上拉[52RD.com]
上表中打钩(√)的表示逻辑电平直接互连没有问题,打星号(?/FONT>)的表示要做特别处理。 [52RD.com]
对于打星号(?/FONT>)的逻辑电平的互连情况,具体见后面说明。 [52RD.com]
一般对于高逻辑电平驱动低逻辑电平的情况如简单处理估计可以通过串接10-1K欧的电阻来实现,具体阻值可以通过试验确定,如为可靠起见,可参考后面推荐的接法。 [52RD.com]
从上表可看出OC/OD输出加上拉电阻可以驱动所有逻辑电平,5V TTL和3.3V /5V Tol.可以被所有逻辑电平驱动。所以如果您的可编程逻辑器件有富裕的管脚,优先使用其OC/OD输出加上拉电阻实现逻辑电平转换;其次才用以下专门的逻辑器件转换。 [52RD.com]
对于其他的不能直接互连的逻辑电平,可用下列逻辑器件进行处理,详细见后面5.2到5.5节。 [52RD.com]
TI的AHCT系列器件为5V TTL输入、5V CMOS输出。 [52RD.com]
TI的LVC/LVT系列器件为TTL/CMOS逻辑电平输入、3.3V TTL(LVTTL)输出,也可以用双轨器件替代。 [52RD.com]
注意:不是所有的LVC/LVT系列器件都能够运行5V TTL/CMOS输入,一般只有带后缀A的和LVCH/LVTH系列的可以,具体可以参考其器件手册。 [52RD.com]
:5V TTL门作驱动源[52RD.com]
·驱动3.3V TTL/CMOS [52RD.com]
通过LVC/LVT系列器件(为TTL/CMOS逻辑电平输入,LVTTL逻辑电平输出)进行转换。 [52RD.com]
·驱动5V CMOS [52RD.com]
可以使用上拉5V电阻的方式解决,或者使用AHCT系列器件(为5V TTL输入、5V CMOS输出)进行转换。 [52RD.com]
:3.3V TTL/CMOS门作驱动源[52RD.com]
·驱动5V CMOS [52RD.com]
使用AHCT系列器件(为5V TTL输入、5V CMOS输出)进行转换(3.3V TTL电平(LVTTL)与5V TTL电平可以互连)。 [52RD.com]
:5V CMOS门作驱动源[52RD.com]
·驱动3.3V TTL/CMOS [52RD.com]
通过LVC/LVT器件(输入是TTL/CMOS逻辑电平,输出是LVTTL逻辑电平)进行转换。 [52RD.com]
:2.5V CMOS逻辑电平的互连[52RD.com]
随着芯片技术的发展,未来使用2.5V电压的芯片和逻辑器件也会越来越多,这里简单谈一下2.5V逻辑电平与其他电平的互连,主要是谈一下2.5V逻辑电平与3.3V逻辑电平的互连。(注意:对于某些芯片,由于采用了优化设计,它的2.5V管脚的逻辑电平可以和3.3V的逻辑电平互连,此时就不需要再进行逻辑电平的转换了。) [52RD.com]
1:3.3V TTL/CMOS逻辑电平驱动2.5V CMOS逻辑电平 [52RD.com]
2.5V的逻辑器件有LV、LVC、AVC、ALVT、ALVC等系列,其中前面四种系列器件工作在2.5V时可以容忍3.3V的电平信号输入,而ALVC不行,所以可以使用LV、LVC、AVC、ALVT系列器件来进行3.3V TTL/CMOS逻辑电平到2.5V CMOS逻辑电平的转换。 [52RD.com]
2:2.5V CMOS逻辑电平驱动3.3V TTL/CMOS逻辑电平 [52RD.com]
2.5V CMOS逻辑电平的VOH为2.0V,而3.3V TTL/CMOS的逻辑电平的VIH也为2.0V,所以直接互连的话可能会出问题(除非3.3V的芯片本身的VIH参数明确降低了)。此时可以使用双轨器件SN74LVCC3245A来进行2.5V逻辑电平到3.3V逻辑电平的转换,另外,使用OC/OD们加上拉电阻应该也是可以的。

点击此处查看原文 >>

系统分类: 汽车电子   |    用户分类: 无分类    |    来源: 无分类

评论(1) | 阅读(614)
发表于:2007-9-28 10:54:17
标签:无标签

1

电平总结1

TTL和CMOS电平

1,TTL电平:
   输出高电平>2.4V,输出低电平<0.4V。在室温下,一般输出高电平是3.5V,输出低电平是0.2V。最小输入高电平和低电平:输入高电平>=2.0V,输入低电平<=0.8V,噪声容限是0.4V。
2,CMOS电平:
   1逻辑电平电压接近于电源电压,0逻辑电平接近于0V。而且具有很宽的噪声容限。
3,电平转换电路:
   因为TTL和COMS的高低电平的值不一样(ttl 5v<==>cmos 3.3v),所以互相连接时需要电平的转换:就是用两个电阻对电平分压,没有什么高深的东西。哈哈
4,OC门,即集电极开路门电路,OD门,即漏极开路门电路,必须外界上拉电阻和电源才能将开关电平作为高低电平用。否则它一般只作为开关大电压和大电流负载,所以又叫做驱动门电路。
5,TTL和COMS电路比较:
 1)TTL电路是电流控制器件,而coms电路是电压控制器件。
 2)TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。COMS电路的速度慢,传输延迟时间长(25-50ns),但功耗低。COMS电路本身的功耗与输入信号的脉冲频率有关,频率越高,芯片集越热,这是正常现象。
 3)COMS电路的锁定效应:
   COMS电路由于输入太大的电流,内部的电流急剧增大,除非切断电源,电流一直在增大。这种效应就是锁定效应。当产生锁定效应时,COMS的内部电流能达到40mA以上,很容易烧毁芯片。
  防御措施:   1)在输入端和输出端加钳位电路,使输入和输出不超过不超过规定电压。
               2)芯片的电源输入端加去耦电路,防止VDD端出现瞬间的高压。
               3)在VDD和外电源之间加线流电阻,即使有大的电流也不让它进去。
               4)当系统由几个电源分别供电时,开关要按下列顺序:开启时,先开启COMS电路得电源,再开启输入信号和负载的电源;关闭时,先关闭输入信号和负载的电源,再关闭COMS电路的电源。
6,COMS电路的使用注意事项
   1)COMS电路时电压控制器件,它的输入总抗很大,对干扰信号的捕捉能力很强。所以,不用的管脚不要悬空,要接上拉电阻或者下拉电阻,给它一个恒定的电平。
   2)输入端接低内组的信号源时,要在输入端和信号源之间要串联限流电阻,使输入的电流限制在1mA之内。
   3)当接长信号传输线时,在COMS电路端接匹配电阻。
   4)当输入端接大电容时,应该在输入端和电容间接保护电阻。电阻值为R=V0/1mA.V0是外界电容上的电压。
   5)COMS的输入电流超过1mA,就有可能烧坏COMS。   
7,TTL门电路中输入端负载特性(输入端带电阻特殊情况的处理):
   1)悬空时相当于输入端接高电平。因为这时可以看作是输入端接一个无穷大的电阻。
   2)在门电路输入端串联10K电阻后再输入低电平,输入端出呈现的是高电平而不是低电平。因为由TTL门电路的输入端负载特性可知,只有在输入端接的串联电阻小于910欧时,它输入来的低电平信号才能被门电路识别出来,串联电阻再大的话输入端就一直呈现高电平。这个一定要注意。COMS门电路就不用考虑这些了。
8,TTL电路有集电极开路OC门,MOS管也有和集电极对应的漏极开路的OD门,它的输出就叫做开漏输出。OC门在截止时有漏电流输出,那就是漏电流,为什么有漏电流呢?那是因为当三机管截止的时候,它的基极电流约等于0,但是并不是真正的为0,经过三极管的集电极的电流也就不是真正的0,而是约0。而这个就是漏电流。开漏输出:OC门的输出就是开漏输出;OD门的输出也是开漏输出。它可以吸收很大的电流,但是不能向外输出的电流。所以,为了能输入和输出电流,它使用的时候要跟电源和上拉电阻一齐用。OD门一般作为输出缓冲/驱动器、电平转换器以及满足吸收大负载电流的需要。
9,什么叫做图腾柱,它与开漏电路有什么区别?
   TTL集成电路中,输出有接上拉三极管的输出叫做图腾柱输出,没有的叫做OC门。因为TTL就是一个三级关,图腾柱也就是两个三级管推挽相连。所以推挽就是图腾。一般图腾式输出,高电平400UA,低电平8MA

点击此处查看原文 >>

系统分类: 嵌入式   |    用户分类: 无分类    |    来源: 无分类

评论(0) | 阅读(579)
发表于:2007-5-7 12:20:05
标签:无标签

0

好久不见十分想念

最近工作一直很忙,没有了时间纪录和总结,接触了很多东西,不过都没有时间深究,就等着失业了,呵,好有时间把那些自己觉得欠下的债恶补一下。现在对“仿真”很感兴趣,今后可能大肆地写关于仿真的很多东西了,然后把梦想照进现实。

点击此处查看原文 >>

系统分类: 生活点滴   |    用户分类: 无分类    |    来源: 无分类

评论(2) | 阅读(788)
发表于:2006-3-1 8:45:32
标签:无标签

4

VHDL学习5

  • 三态门

三态门的应用 三态门的有很多的实际应用,比如数据和地址BUS的构建,RAM或堆栈的数据端口设计等。

三态门的设计 当输入输出状态时,dataout<=datain;而当高阻状态的时候,则dataout<="ZZZZZZZZ"

注:

尽可能不用'Z'做比较值,表达式和操作数。否则综合会出错。

VHDL虽然不区分大小写,但是高阻态已经定义为大写'Z'。

大多数FPGA器件内部都无法构成三态门,所以只能用多路选择器的结构来实现,有的甚至在端口都无法实现。

  • 双向端口设计

双向端口inout 模式的设计也必须考虑到三态的使用,其实是高阻的使用。这是因为,当双向端口在完成输入的时,必须使原来呈输出模式的端口呈高阻态,否则,待输入的外部数据势必会与端口处原有电平发生“线与”。

状态机

自定义数据类型语句:

TYPE 数据类型名 IS 数据形式 OF 构成数据形式的数据元素的类型;

TYPE 数据类型名 IS (数据元素描述) ;

其中数据形式包括:Array type ,Enumeration type ,Interger type,Record type,Time type,Real type

构成数据形式的元素类型包括:bit, Boolean ,character ,std_logic

状态符号化,表征每个状态的二进制数用文字符号来表示,最左边的为‘0’或“0000”向右依次加1

 

SUBTYPE 子类型名 IS 基本数据类型 RANGE 约束范围;

SUBTYPE 没有新定义数据类型只是对已有的数据类型加以约束,引进SUBTYPE的益处在于:

1.         提高可读性和易处理性;

2.         其实质的好处在于提高综合的优化效率,即综合器可以根据子类型所设的约束范围有效的推出参与综合的寄存器的数目等优化措施。

 

般有限状态机的设计:

一、说明部分:

  1. 说明部分在architecture与begin之间;
  2. 定义枚举型数据形式描以述状态;
  3. 把状态变量定义为信号便于信息传输,状态变量数据类型和描述状态的数据类型一致,因此只能在状态中取值。

二、主控时序(REG)进程,在时钟驱动下负责状态转换current_state<=next_state,它不负责状态的取值。主控时序进程中必须包含一个时钟敏感信号。next_state的内容由其他进程实际情况决定。

三、主控组合(COM)即状态译码进程,由当前状态(current_state)进入相应状态(所谓进入相应状态就是做此状态下规定的行为),并和外部输入state_input共同作用决定下一个状态next_state和对外发出控制信号comb_outputs,直至下一个时钟脉冲到来进入新一轮的状态周期转换。

四、辅助进程:

  1. 一些算法进程; 
  2. 配合状态机工作的其他时序进程; 
  3. 为稳定输出的数据锁存器等。

五、状态机的分类

Moore 型/Mealy 型

 

Moore 型,同步输出,输出为当前状态的函数,输入发生变化还须等待时的钟到来,时钟使状态变化时,输出才变化。

Mealy 型,异步输出,输出为当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的,不依赖时钟。

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 无分类

评论(3) | 阅读(3539)
发表于:2006-1-20 21:00:16
标签:无标签

3

VHDL学习4

  • q : bufferr integer rang 15 dwonto 0   -- 定义q为buffer类型的端口,此端口的数据类型为integer,此整数的取值范围是从15到0。

注:

1.integer 的取值可用符号的32位2进制数表示。

2.需要注意的是,VHDL仿真器将integer类型作为有符号数处理,而VHDL综合器则将integer作为无符号数处理。而且VHDL综合器要求必须使用rang子句为所定义的数限定范围,然后根据所限定的范围来确定此信号或变量的2进制的位数,因为VHDL综合器无法综合未限定范围的恶整数类型的信号和变量。

3.整数在表达式中不加引号,而逻辑数必须加引号,一位的加单引号,一位以上的加双引号。

4.natural,positive 为integer的子类型。

  •  关于signal

signal可作为内部的节点,这就决定它不需要像端口那样定义模式,即数据i流动不受方向限制,可用来建立寄存器等。

  • 关于算数运算

VHDL规定加减等算数操作符对应的操作数只能是integer,而当不同数据类型间运算操作的时候就要调用运算符重载函数 ieee库中的std_logic_unsigned程序包中,其中预定义的操作符有+、-、*、=、>=、<=、>、<、/=、and、mod,用法如下:

library ieee;

use ieee_logic_unsigned.all

  • veriable 变量,也是数据对象的一种,赋值符号为“:=”。 
  • others=>X)缺省赋值操作符,可以在较多的矢量赋值中作省略化的赋值。例如:

signal d1,d3 :std_logic_vector(4 dwonto 0)

veriable d2,d4:std_logic_vector(15 downto 0)

...

d1<=(others=>'0');

d2:=(1=>'1',4=>'1',others=>'0');

d3<=(1=>d1(3),3=>d2(3)???,others=>d1(2));

所谓同步异步都是对于时钟信号而言的,不依赖于时钟而有效的信号称为异步信号,否则称为同步信号。

 穿行并行,我的理解是如果将一个vector一次性一次送性的给另一个vector的话就是并行,如果是一个bit一个bit的送的话就是串行。

  •  数据对象

VHDL中的数据对象有三种,常量(constant)、变量(veriable)、信号(signal),用来描述目标量的属性的。

  1. 常量(constant),允许的三个设计单元有实体,结构体,程序包,块,进程,子程。常量的可视性,即常量的作用范围决定于它被定义的位置:包=>实体=>结构体=>进程等。signal 也有the same attribute. 
  2. 变量(veriable),是一个局部量,只作用于在定义了变量的process和subprogram的顺序语句里面,而且变量的数据传输没有延时行为。变量的主要作用是在进程中作为临时的数据存储单元(当前)。 
  3. 信号(signal),信号的define 和使用的范围为entity,architecture和package,而不能在process和subprogram的顺序语句中。而且,在没有作特殊设置时,信号也有一个最小传输延时,它的硬件特征更为明显,类似于连接线,可以作为设计实体并行语句模块间的信息交流通道,它即可以保存当前值也可以保存历史值,和触发器的记忆功能有很好的对应关系,只是不必care信号上的数据流动方向。关于信号的初始值的设定和veriable一样,因为电路上电后的随机性,因此综合器并不支持设置初始值。由于process的敏感列表里可以有信号,那么信号就能把process外部的信息引入或传出.在process中,当多个同名信号被赋值,只执行最后一个,因为当遇到end process的时候才对signal赋值。但是当并行语句中却不允许同一信号有多个驱动源的。 
  4. 硬件电路系统上来看,变量和信号相当于电路系统中的连线和连线上传输的信号,常量相当于电路中的恒定电平,如gnd和vcc。在不完整条件语句中,变量和信号有同样的功能都能。  
  5. 关于process(clk) begin

if clk'event and clk='1' then

a<=d;        --d,q为port,a,b为signal    

b<=a;

q<=b;

end if ;

end  process;中的一些问题!

首先,此进程描述的是当clk上升沿发生时,将信号由port d输入到a到b,再由port q输出。

下面要说的是这个进程执行时的几个问题。

首先,此进程执行的时候,a的赋值,b的赋值,q的赋值是并行执行的,也就是说a,b,q的赋值是同时的。但这是在进程中,也就是说应该先将a赋值,再将a的值赋给b,最后把b的值由q输出,这样一个顺序执行,为什么会是并行执行的呢?为什么赋值结束后q输出的值并不是d输入的值呢,而是上一时钟b的值?

这是因为,对于某一个时钟周期的信号,确实是按从a到b到q的顺序传输的。而对于同一个时钟,各个节点上的信号都不是当前其上一个节点上的信号,原因很简单,就是因为要有一个固定延时赋值才完成。也就是说q输出的值是b上一时钟的值,而b被更新的值是上一时钟a的值... ...而当前这个时刻,每一个一个节点的值都是被赋给的新值,也就是说,在这个固定延时时间里,各个节点被赋值是同时发生的。

这个进程中的信号的顺序赋值,很完美的体现了硬件行为,即整体描述了一个信号是如何在节点之间传递的,又描述出每个时钟的信号都是如何在节点之间动作的,这就是HDL的魅力吧!~呵呵

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 无分类

评论(1) | 阅读(4874)
发表于:2006-1-20 20:57:39
标签:无标签

3

VHDL学习3

CASE语句,属于顺序语句,因此必须放在process中使用,用法如下:
case expression is

when choice => sequential_statements      --quential_statements 顺序语句构成,语句间用;隔开。when choice => sequential_statements. . .

(when others=>sequential_statements)   --如果有没有被列举的情况,用此语句统一处理。

end case;

注:

1.choice 必须在expression的取值范围内;

2.when条件句中,必须覆盖expression中的所有情况,如果choice中没有覆盖expression中的所有情况,则要用others关键词,涵盖剩下的所有情况再作处理;

3.expression的每个情况只能出现一次,必须且只能选中一个情况。

std_logic_vector         标准逻辑矢量数据类型, 为一维数组,所以要求注明其宽度,用法如下:
例如:pout : out  std_logic_vector(7downto 0) ;  --定义了一个宽度为8位的标准逻辑矢量,每一位分别为pout(7),pout(6),pout(5)... ...pout(1),pout(0).

或者signal: std_logic_vector(1 to 4 )        --4位

其中的每一位都为std_logic类型,用于表达多通道端口或节点,或者总线BUS。类似的数据类型还有bit_vector.

&  并置操作符,表示将操作数或数组合并起来形成新的数组,用法如下:
abc<=a&b 相当于 abc(1)<=a;abc(0)<=b.    a,b可代表操作数或者数组。

component         元件例化语句,用于对现有的实体定义为元件为准备调用作出声明,并配合port map()(端口映射语句)以达到连接底层元件形成更高层次电路结构,用法如下:
Simplified Syntax:

architecture architecture_name of entity_name is

component component_name [ is ]

    generic (generic_list);    port (port_list);end component component_name;

component component_name2 [ is ]

    generic (generic_list);    port (port_list);end component component_name2;

...

begin

port map()   端口映射语句,用于说明元件与当前设计实体中元件间及接口间的连接说明,用法如下:
port map( [被例化成元件的实体中的端口名=>]当前实体中指定的端口名,...  );  --"=>"为连接符号。

注:

当前的设计实体相当于一个高一层次的电路系统,而当前设计的实体中指定的接口相当于整个电路系统上的插座,而被例化的实体形成的元件相当于要插在这些插座上的芯片。

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(3400)
发表于:2006-1-11 13:10:12
标签:无标签

4

VHDL学习2

边沿检测:为了确保clk发生的了一次由0到1的上升跳变,采用如下语句:

clk'event  and  (clk=' 1 ' ) and ( clk'last_vaule=' 0 ' )

其他表达方式:clk='1' and clk'last_vaule='0'

                           rising_edge(clk)--必须打开std_logic_1164程序包

                          wait  until clk='1'

两种不同的触发方式的表达:1.边沿触发;2.电平触发。

边沿触发:.

...

process (clk)

begin

if clk='1'

then q<= d;                --利用进程启动特性对clk的边沿检测

end if;

end process;


电平触发:

...

process(clk,d)

begin

if clk='1'                     --电平触发型寄存器

then q<=d;

end if;

end process;


造成两个程序所生成的触发类型不同的原因是,第一个程序中完全靠检测clk的上升沿(因为当敏感信号变化的时候process才被启动,所以也就是当clk从0到1或者1到0的时候才启动process,当从1到0的时候不满足if clk='1'跳出process,所以只有在clk从0到1的时候,也就是上升沿的时候才能执行q<=d)将当前的d送入q中,直到下一次clk上升沿的到来,送入新的当前的d值,也就产生了边沿触发;而第二个程序中,有clk和d俩个敏感信号,也就是说当clk变化的时候,即clk上升沿的情况下将当前的d送入q;而当d变化的时候,启动process,此时clk=‘1’作为一个条件,满足这个条件则把d送入q,否则跳出process保持原值,综合起来看clk='1'是作为一个条件,当clk='1'时,也就是当clk为高电平的时候将d送入q,就产生了电平触发.

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(3135)
发表于:2006-1-8 14:21:57
标签:无标签

5

VHDL学习1

 


关键词:
设计库和标准程序包 
library library_name;
use library_name.package_name.all; 
• 由于STD_LOGIC数据类型不属于VHDL标准库,所以使用时要予以以下声明:
          library IEEE; 
         use IEEE.Std_Logic_1164.all; 
 
 ENTITY   称为实体,描述了电路器件外部情况及各信号端口的基本性质。
entity entity_name is
generic (generic_list);
port (p_name:port_m   data_type;

p_name:port_mi   data_type);
end entity entity_name;
• 电路的端口及其端口信号描述语句PORT()
          p_name端口信号名
          port_m 端口模式:IN       单向只读模式,规定数据只能通过此端口被读入实体中。
                                            OUT     单向输出模式,规定数据只能通过此端口从实体向外流出,或者可以将实体中的数据向此端口赋值 。
                                            INOUT   输入输出双向口
                                            BUFFER  与INOUT类似,区别在于输入信号来自于实体内部产生的回读输出的信号,即允许反馈。
         data_type 数据类型:整数数据类型 INTEGER
                                                布尔数据类型 BOOLEAN
                                                标准逻辑位数据类型 STD_LOGIC
                      type std_ulogic is (   'U',      -- Uninitialized
                                             'X',      -- Forcing   Unknown
                                             '0',      -- Forcing   0
                                             '1',      -- Forcing   1
                                             'Z',      -- High Impedance
                                             'W',      -- Weak     Unknown
                                             'L',      -- Weak     0
                                             'H',      -- Weak     1
                                             '-',     -- Don't Care    );
                                  位数据类型   BIT
                                 BIT数据类型的信号规定的取值范围是逻辑位‘1’,‘0’。
 
 ARCHITECTURE 称为结构体,结构体负责描述电路内部逻辑功能或电路结构,并行语句。
architecture architecture_name of entity_name is
architecture_declarations(说明语句)
                   begin
                            concurrent_statements(功能描述语句)
                   end [ architecture ] [ architecture_name ];
 
                   说明语句:包括在结构体中需要说明和定义的数据对象、数据类型、元件调用声明等。并非必须的。
                   功能描述语句:必须的,给出相应的电路功能描述语句,可以是并行语句、顺序语句或他们的混合。
 
PROCESS_END PROCESS 进程语句和顺序语句,VHDL中,所有合法的顺序描述语句必须放在进程语句中,比如IF_THEN_ELSE_END IF等。
[process_label:] process [ ( sensitivity_list ) ] [ is ]
[process_declarations]?
         begin 
                   sequential_statements?
end process [ process_label ] ;
           sensitivity_list:敏感信号表,通常要求把进程中所有的输入信号都放在敏感信号表中。 
         PROCESS的执行依赖于敏感信号的变化,当某一敏感信号发生跳变,就将启动此进程语句,而在执行一遍整个进程的顺序语句后,便返回进程的启示端,进入等待状态,直到下一次敏感信号中某一信号跳变才再次进入“启动—运行”状态,再执行一遍进程。一个结构体中,可以存在多个进程,它们是并行的,而任意一个进程属于顺序语句。
 
AND(与)、OR(或)、NOT(非)、NAND(与非)、NOR(或非)、XOR(异或)、XNOR(同或) 逻辑操作符,构成组合电路,他们的操作数有三种类型,分别为BIT  BOOLEAN  STD_LOGIC.
 
IF_THEN_ELSE_END IF 条件语句
if condition then
sequential_statements
end if; 
if condition then
    sequential_statements
else 
sequential_statements
end if; 
if condition then
    sequential_statements
    elsif condition then
         sequential_statements
    else 
         sequential_statements
end if; 
 赋值语句 
signal_name  <= [delay_mechanism ] waveform ;
 
WHEN_ELSE 条件信号赋值语句
signal_name  <= [delay_mechanism ] waveform1 when condition1 else
                           [delay_mechanism ] waveform2 when condition2 else
                           . . .
                           [delay_mechanism ] waveformn;
with selection select
signal_name  <= [delay_mechanism ] waveform1 when choice1,
               [delay_mechanism ] waveform2 when choice2,
                            . . .
               [delay_mechanism ] waveformn when others;
 
 SIGNAL 信号定义和数据对象(Data Objects),它规定了信号的行为方式和功能特点。
Simplified Syntax:
signal signal_name : type;
signal signal_name : type := initial_value;
注:signal可作为内部的节点,这就决定它不需要像端口那样定义模式,即数据流动不受方向限制,可用来建立寄存器等。
 
EVENT 信号跳变检测表示和信号属性函数
signal_name’event[and signal_>
 
不完整条件语句与时序电路 
比如在未满足if条件,又没有else明确指出其他条件时如何操作时,即在条件语句中没有对所有可能发生的条件给出对应的处理方式,这样就产生了不完整条件语句。此时,VHDL综合器将引进一个时序元件保持当前状态值。利用这种不完全条件语句的描述引进寄存器元件,从而构成时序电路的方式是VHDL描述时序电路最重要的途径。
CLK’LAST_VALUE=‘0’(‘1’)
rising_edge()测定上升沿的函(LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;)
 
l          WAIT 
Simplified Syntax:
wait; 
wait on signal_list;
wait until condition;
wait for time;

 

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 无分类

评论(4) | 阅读(6156)
发表于:2006-1-3 1:05:16
标签:无标签

5

数字电子技术之逻辑数学基础

BCD(Binary Coded Decimal),就是用4位二进制数码表示1位十进制数的0~9这十个状态。

余3码(1),就是10进制数+3转换成的4位二进制数,如果两个十进制数相加的等于10,二进制正好等于16,高位自动产生进位信号。此外0和9、1和8、2和7、3和6、4和5的余3码互为补码(2421码中也是),这对求取对10的补码是很方便的。 余3码不是恒权代码(2421码为恒权码)。

5211码,一种恒权代码,计数器分频作用后可以发现,如果按8421接成十进制计数器,则连续输入计数脉冲时4个触发器输出的脉冲队于计数脉冲的分频比从低到高一尺为5:2:1:1,5211码每一位的权正好与8421码的十进制计数器4个触发器的输出脉冲的分频比相对应,这种对应关系在构成某些数字系统时很有用(2)

余3循环码,是一种变权码,每一位的1不代表固定的值,它主要特点是相邻的两个代码之间仅有一位状态不同。因此,按余3循环码接成的计数器,每次状态转换过程中只有一个触发器翻转,译码不会产生竞争冒险现象(3)

 

算术运算

在数字电子中,二进制的正、负分别是用0、1表示的,在定点运算(4)情况下,以最高位为符号位。

:在给定的直角坐标系上,坐标全是整数的点,叫做整点;全部整点构成的组就叫做空间格网。在空间网格里的运算称为定点运算。除定点运算外的当然就是浮点运算。

为简化电路,二进制的减法运算,是用补码相加;乘法是用加法和移位;除法是末尾添零减法和移位来实现的。

 

逻辑运算

与,或,非,与非,或非,与或非;--为有0则0,为有1则1。

同或,异或。  --“或”可以理解为为1;同或异或互为反运算。

 

基本公式(5)

也叫布尔恒等式,包括包括分配律、反演律等。

若干常用公式... ...

 

逻辑代数的基本定理

带入定理,用一个逻辑式代替等式中所有同一个变量,等式仍然成立。

反演定理,与或互换,原反互换,结果为原来结果的取反。

--注:1.仍要注意先括号再乘,最后加的优先次次序。

          2.不属于单个变量上的反号要保留不变。

对偶定理,所谓对偶,就是把逻辑式中与、或互换,0、1互换(注意,不是逻辑式取反。),如果两逻辑式相等,那么他们的对偶式也相等。

 

从真值表写出逻辑函数式的一般方法

  1. 找出真值表中Y=1的输入变量的组合; 
  2. 取值为1的取原变量,为0的取反变量,然后与起来; 
  3. 这些乘积项相加即得Y的逻辑函数式。

 

逻辑函数的标准形式,最小项之和、最大项之积。

最小项,所有变量(或其反变量)都在一个乘积项中出现一次。

最大项,所有变量(或其反变量)都在和式中出现一次。

 

逻辑函数的化简方法

最简形式 ,在逻辑式中,乘积项最少,乘积项中的因子也最少。

卡诺图,将n变量的全部最小项用一个小方块表示,并使具有逻辑相邻性(6) 若两个最小项只有一个因子不同,则称他们有逻辑相邻性)的最小项在几何位置上也相邻的排列起来的图形。

用卡诺图化简的步骤:

  1. 将逻辑函数化为最小项之和的形式; 
  2. 画出卡诺图(1表示原变量,0表示取反的;有相应最小项的地方添1,没有则添0); 
  3. 找出可以合并的最小项;--允许重复使用最小项;选取化简后的乘积项。 
  4. 选取化简后的乘积项。

注:也可以合并0求出Y反再把Y反求反得到Y,因为所有的最小项之和为1,Y与Y反之和也为一,Y为添1那部分最小项的和,所以Y反一定就是添0那部分最小项的和了。

具有无关项的逻辑函数以及其化简

约束项、任意项和无关项

约束项:由于某些实际原因,自变量取值的某些组合在正常情况下不可能出现,这些组合对应的最小项称为约束项。

    约束项的性质:每个最小项只有一组取值使它等于 1 ,而对约束项来说,使它等于 1 的这组取值不可能出现。因此约束项恒等于零。

    约束项可用以下式子来表示:

反过来,如果某一最小项恒等于0 ,则该最小项就是约束项。

    根据约束项恒等于 0 的性质,我们在逻辑函数表达式中既可以写上约束项,也可以不写上约束项,如 反映在真值表上,约束项对应的输出既可以是1 也可以是0 ,一般用“×”表示。

 电路输入的变量的某些组合值对输出没有影响,为任意项

    无关项( Don't Care Team ):约束项和任意项的总称,用 d 表示。

多输出化简的时候要把多个输出按照一个整体来考虑,以整体最简为目标,即整体上乘积项最少。

疑问:

  1. 余3码以及其他码制的应用;
  2. 描述的是怎样的情形;
  3. 余3循环码是怎样避免竞争冒险的;
  4. 此处为何提及定点运算;
  5. 化简所用的公式在实际操作上的意义;
  6. 逻辑相邻性的意义是什么。

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(4304)
发表于:2006-1-3 0:57:14
标签:无标签

3

一步一个坑地向前进!!!

       终于有了自己的EDN BLOG了,好像给自己的在电子技术上的心情、体会和成长轨迹找到了一个永远而有力的见证,希望以后能和大家多多交流共同进步,最后严重感谢keil_justin!

点击此处查看原文 >>

系统分类: 自由话题   |    用户分类: 无分类    |    来源: 无分类

评论(0) | 阅读(1967)
总共 , 当前 /