数字系统设计原理和方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
论述数字系统设计的原理和方法
一、数字系统原理
数字系统,即有一些逻辑单元构成的具备数字运算和逻辑处理的一类算术系统,完成对数字量进行算术运算和逻辑运算的电路称为数字电路。用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路,或数字系统。由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。
数字电路一般分为组合逻辑电路和时序逻辑电路。
组合逻辑电路简称组合电路,它由最基本的的逻辑门电路组合而成。特点是:输出值只与当时的输入值有关,即输出惟一地由当时的输入值决定。电路没有记忆功能,输出状态随着输入状态的变化而变化,类似于电阻性电路,如加法器、译码器、编码器、数据选择器等都属于此类。
时序逻辑电路简称时序电路,它是由最基本的逻辑门电路加上反馈逻辑回路(输出到输入)或器件组合而成的电路,与组合电路最本质的区别在于时序电路具有记忆功能。时序电路的特点是:输出不仅取决于当时的输入值,而且还与电路过去的状态有关。它类似于含储能元件的电感或电容的电路,如触发器、锁存器、计数器、移位寄存器、储存器等电路都是时序电路的典型器件。
数字电路是以二进制逻辑代数为数学基础,使用二进制数字信号,既能进行算术运算
又能方便地进行逻辑运算(与、或、非、判断、比较、处理等),因此极其适合于运算、
比较、存储、传输、控制、决策等应用。以二进制作为基础的数字逻辑电路,简单可靠,准
确性高。集成度高,体积小,功耗低是数字电路突出的优点之一。电路的设计、维修、维护
灵活方便,随着集成电路技术的高速发展,数字逻辑电路的集成度越来越高,集成电路块的
功能随着小规模集成电路(SSI)、中规模集成电路(MSI)、大规模集成电路(LSI)、超
大规模集成电路(VLSI)的发展也从元件级、器件级、部件级、板卡级上升到系统级。
电路的设计组成只需采用一些标准的集成电路块单元连接而成。对于非标准的特殊电路还
可以使用可编程序逻辑阵列电路,通过编程的方法实现任意的逻辑功能。
因为数字系统的稳定,易于实现等特点,因此数字系统设计广泛的应用于电视、雷达、通信、电子计算机、自动控制、航天等科学技术各个领域。
二、实现方法
近年来、,可编程逻辑器件随着微电子制造工艺的发展取得了长足的进步,其代表作之
一的现场可编程逻辑阵列(FPGA)在电子、通信等领域已经得到了广泛应用,成为数字系
统设计领域中的要器件之一。
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)
领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件
门电路数有限的缺点。
以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以
被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组
合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记
忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像
一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按
照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比ASIC(专用集成电路)的速度要慢,实现同样的功能比ASIC电路
面积要大。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误
和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比
较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移
到一个类似于ASIC的芯片上。另外一种方法是用CPLD(ComplexProgrammabl e Logic Device,复杂可编程逻辑器件)。
FPGA的开发相对于传统PC、单片机的开发有很大不同。FPGA以并行运算为主,以硬件描述语言来实现;相比于PC或单片机(无论是冯诺依曼结构还是哈佛结构)的顺
序操作有很大区别,也造成了FPGA开发入门较难。目前国内有专业的FPGA外协开发厂家,如[北京中科鼎桥ZKDQ-TECH]等。FPGA开发需要从顶层设计、模块分层、逻辑实现、软硬件调试等多方面着手。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括
可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。现场可编程门阵列(FPGA)是可编
程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不
同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑
功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接
到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存
储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,
并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
使用FPGA设计时需要注意的以下三个方面:
1、面积与速度的互换。这里的面积指的是FPGA的芯片资源,包括逻辑资源和I/O
资源等;这里的速度指的是FPGA工作的最高频率(和DSP或者ARM不同,FPGA设计的
工作频率是不固定的,而是和设计本身的延迟紧密相连)。在实际设计中,使用最小的面
积设计出最高的速度是每一个开发者追求的目标,但是“鱼和熊掌不可兼得”,取舍之间展示了
一个开发者的智慧。ﻫ速度换面积ﻫ速度优势可以换取面积的节约。面积越小,就意
味着可以用更低的成本来实现产品的功能。速度换面积的原则在一些较复杂的算法设计
中常常会用到。在这些算法设计中,流水线设计常常是必须用到的技术。在流水线的设计中,这些被重复使用但是使用次数不同的模块将会占用大量的FPGA资源。对FPGA的
设计技术进行改造,将被重复使用的算法模块提炼出最小的复用单元,并利用这个最小的高
速代替原设计中被重复使用但次数不同的模块。当然,在改造的过程中必然会增加一些其
他的资源来实现这个代替的过程。但是只要速度具有优势,那么增加的这部分逻辑依然能
够实现降低面积提高速度的目的。可以看到,速度换面积的关键是高速基本单元的复用。ﻫ面积换速度ﻫ在这种方法中面积的复制可以换取速度的提高。支持的速度越高,就意味
着可以实现更高的产品性能。一些注重产品性能的应用领域可以采用并行处理技术,实现面
积换速度。
2、硬件可实现原则。FPGA设计通常会使用HDL语言,比如Verilog HDL或者VHDL。当采用HDL语言来描述一个硬件电路功能的时候,一定要确保代码描述的电路是硬件可实现的。ﻫVerilogHDL语言的语法与C语言很相似,但是它们之间有着本质的区别。C语言是基于过程的高级语言,编译后可以在CPU上运行。而VerilogHDL语言描述的本
身就是硬件结构,编译后是硬件电路。因此,有些语句在C语言的环境中应用是没有问题的,但是在HDL语言环境下就会导致结果不正确或者不理想。如:
for(i=0;i<16;i++)ﻫ DoSomething();
在C语言中运行没有任何问题,但是在Verilog HDL的环境下编译就会导致综合后
的资源严重浪费。
3、同步设计原则。同步电路和异步电路是FPGA设计的两种基本电路结构形式。异
步电路的最大缺点是会产生毛刺。同步设计的核心电路是由各种触发器构成的。这类电路
的任何输出都是在某个时钟的边沿驱动触发器产生的。所以,同步设计可以很好地避免毛刺
的产生。
不管你是一名逻辑设计师、硬件工程师或系统工程师,甚或拥有所有这些头衔,只要
你在任何一种高速和多协议的复杂系统中使用了FPGA,你就很可能需要努力解决好器件配置、电源管理、IP集成、信号完整性和其他的一些关键设计问题。不过,你不必独自面对