1.1 数字逻辑和逻辑电平
1.1.1 模拟器件构成的数字电路
科技在近几十年里发生了翻天覆地的变化,其变化的速度几乎颠覆了所有人的想象。科技改变世界,科技改变生活。今天无处不在的压缩视频、数字通信、无线网络、互联网、虚拟技术等统统都可归结为数字世界,而数字世界最基本的构成仅仅是0和1这两个数学里最简单的符号。人类知识大厦中的基础支柱——数学理论的每一次重大突破都会引起其他学科的变革,进而极大地推动科技的革命。真实的世界是模拟的世界。人们运用模数转换将真实的模拟世界变换到数字域,再应用人类几千年研究探索的数学知识完成各种复杂的处理,最后通过数模转换回到真实的世界。在这转换之间,世界已经发生了彻底的改变!
复杂的数学公式只出现在课本里当然没有意义,半导体技术赋予了这些精妙理论以绝佳的舞台。电子器件的开关状态与数字世界中的0和1有天然的对应关系,难以计数的电子器件在人们的精心组织下完成了看似不可能完成的海量信息处理。可以说,离开了半导体技术,这个数字时代将黯淡无光。
所谓模拟器件构成的数字电路,指的是利用模拟器件——二极管或三极管的开关特性来构建的电路。最简单的具有开关特性的开关器件是二极管,不过对于逻辑门电路来讲,为实现更加复杂的逻辑功能以及更便于大规模集成电路设计,最常用的是三极管。
众所周知,数字逻辑的基本单元就是“门”,由众多的“门”即可实现各式各样复杂的逻辑功能。FPGA也就成为数字领域的“乐高”,用它几乎可以搭建出任何作品。最常用最基本的逻辑门电路是TTL(Transistor-Transistor Logic,晶体管-晶体管逻辑)反相器电路和CMOS(Complementary Metal Oxide Semiconductor,互补金属氧化物半导体)反相器电路。因此,了解这两种门电路也就了解了构成FPGA的基本粒子。无论是TTL还是CMOS,本质上都是由不同种类的模拟器件——晶体管构成的。
“与”门、“或”门、“非”门是最基本的三种逻辑门电路,其中最基础的是“非”门电路。读者可以通过阅读康华光编写的《电子技术基础:数字部分》详细了解所有门电路的工作原理。由于TTL和CMOS的主要区别在于高低电平的定义、输入输出电平的范围、功耗等方面,对于FPGA工程师来讲,只需关注信号的高低电平状态即可。虽然FPGA工程师在设计过程中,不需要关注FPGA内部底层电路的工作原理,但如果能够对其有一定的了解,对于快速形成硬件编程思维仍然有明显的促进作用。
接下来简单回顾TTL反相器的工作原理。
1.1.2 TTL反相器电路
图1-1为由NPN型三极管形成反相器的基本电路原理图。根据三极管的工作特性,可将工作区分为截止区、放大区和饱和区。当三极管的发射结正向偏置、集电结反向偏置时,该三极管就工作在放大状态;当三极管的发射结和集电结都正向偏置时,该三极管就工作在饱和状态;当三极管的发射结和集电结都反向偏置时,该三极管就工作在截止状态。
图1-1 反相器的基本电路原理图
当三极管工作在饱和区,输入为高电平(vi>vBE>0.7V)时,输出为低电平(vCE≈0.3V);当三极管工作在截止区,输入为低电平(vi<0.3V)时,输出为高电平(vCE≈VCC)。三极管的这种工作状态正是典型的反相器特性。
对于数字信号来讲,输入信号高低电平的转换在理想情况下是瞬间完成的,这就要求反相器的输出能够对输入信号状态进行快速响应。然而三极管反相器的结构特点决定了其开关速度不够高,远远满足不了一般逻辑电路的速度要求。为了改善它的开关速度和其他性能,往往还需要增加若干其他元器件,从而形成现在仍在使用的TTL电路。
关于TTL反相器电路的工作原理、开关特性、传输特性等不再详细阐述,对于FPGA设计工程师来讲,了解前面介绍的这些基本知识已经足够了,我们只需要知道三极管可以实现反相器功能,TTL是改善了开关速度性能的反相器电路即可。图1-2(a)所示为大多数工科学生在数字电路技术实验课程中见过的反相器集成电路芯片,图1-2(b)为其引脚及结构原理图。在学习了Verilog HDL之后,我们会发现这类芯片的功能只需用几行代码就可以完美地实现。
图1-2 TTL反相器集成电路芯片SN74LS06N
1.1.3 现实中的数字信号波形
理想中的数字信号波形(简称数字波形)只有两种状态:高电平和低电平。数字波形高低电平的转换是在瞬间完成的,不需要任何转换时间。实际电路高低电平的转换是不可能瞬间完成的。器件高低电平的转换时间决定了器件的工作速度。因此,在实际的数字系统中,数字波形不可能立即上升或下降,而要经历一段时间,只是分析某些特定电路工作状态时,数字波形的转换时间足够短,可以采用理想化模型进行分析,且不影响分析结果。当分析电路的工作速度时,数字波形或器件状态的转换时间就显得格外重要了。
下面我们介绍单个数字波形中的四个重要参数:上升时间、下降时间、脉冲宽度、占空比。
一般来讲,数字波形上升时间的定义是,从脉冲幅值的10%上升到90%所经历的时间。下降时间则相反,即从脉冲幅值的90%下降到10%所经历的时间。脉冲宽度则定义为脉冲幅值50%的两个时间点所跨越的时间。占空比定义为,数字波形的一个周期中,高电平脉冲宽度所占的百分比。
图1-3是占空比为40%的理想数字波形和实际波形图,图中,高电平为5V,上升时间定义为从0.5V上升至4.5V的时间(10ns);下降时间定义为从4.5V下降到0.5V的时间(10ns);脉冲宽度为40ns,波形周期为100ns(周期为10MHz),占空比为40%。
图1-3 占空比为40%的理想数字波形和实际波形图
1.1.4 了解常用的逻辑电平
在数字电路中,数字信号往往表现为突变的电压或电流,并且只有两种可能的状态,即高电平或低电平,所以可以用二值信息“0”和“1”来表示数字信号。这里的“0”和“1”不代表数值的大小,只反映两种对立的状态(如“断开”与“关闭”,“高”与“低”,“是”与“非”等)。因此,我们把“0”和“1”这两个数字仅当作两个不同的符号,称为逻辑0和逻辑1,由于只有两种状态,因此又称为二值数字逻辑(简称数字逻辑)。
二值数字逻辑的两种状态,可用电子器件的开关特性来实现,由此形成离散信号电压或数字电压。数字电压通常用逻辑电平来表示。应当注意,逻辑电平不是物理量,而是物理量的相对表示。
规定用“1”表示高电平,用“0”表示低电平,这种表示方法为正逻辑表示法;反之,用“0”表示高电平,用“1”表示低电平,这种表示方法为负逻辑表示法。本书若未做特别说明,均采用正逻辑表示法。
目前常用的电平标准有TTL、CMOS、LVTTL(Low Voltage TTL,低电压TTL)、LVCMOS(Low Voltage CMOS,低电压CMOS)、ECL(Emitter Coupled Logic,发射极耦合逻辑,此电平具有差分结构)、PECL(Positive ECL,正射极ECL)、LVPECL(Low Voltage PECL,低电压PECL)、LVDS(Low Voltage Differential Signal,低电压差动信号,此电平为差分对输入输出)等。为便于对比,表1-1给出了常用逻辑电平标准及注意事项。
表1-1 常用逻辑电平标准及注意事项
续表