第3章组合逻辑电路的优化实现
【课前思考】
(1)数字逻辑电路分为组合逻辑电路和时序逻辑电路,二者有什么区别?
(2)怎样以*短的时间实��一个性能价格比*高的目标电路?
【学习指南】
(1)电路设计的首要目标是满足功能要求,其次是优化,即在可用资源的情况下力求成本低且运行速度快(延迟时间短)。若不能同时满足上述要求,则应在性能和价格之间寻求一个适当的折中。
(2)当目标电路的规模很大时,用EDA工具完成一个优化的设计将事半功倍。我们既要掌握逻辑设计的基本理论,又要学会使用EDA工具进行设计,使用EDA工具设计时,以VHDL功能描述为**。
3.1组合逻辑电路的特点与优化实现
数字逻辑电路可分为组合逻辑电路(combinationallogiccircuit)和时序逻辑电路(简称时序电路,sequentialcircuit)。组合逻辑电路的输出仅取决于当前的输入,时序电路的输出不仅取决于当前的输入还取决于当前的状态(简称现态),而当前状态则由先前的状态和先前的输入逐步演变而来,因而和输入信号取值的时间序列有关。
时序逻辑电路的状态由记忆元件保存,组合逻辑电路中则不包含记忆元件。值得注意的是:基本门电路如果通过反馈形成环路,则可能构成记忆元件,即无意间的错误连接也可能造成不希望的记忆元件,这种偶然的错误可能将一个组合逻辑电路实现为时序电路。
组合逻辑电路优化实现的步骤如下。
(1)目标电路的原始描述。真值表、卡诺图、逻辑表达式、逻辑图以及硬件描述语言源代码等都可以作为目标电路的原始描述,关键是原始描述必须准确地描述目标电路的功能,不可有错误、歧义或疏漏。
(2)逻辑化简。从电路的原始描述提取逻辑函数并加以优化,这项工作也可称为与可用资源无关或与物理实现无关的逻辑优化。
(3)与可用资源相关的优化实现。实现一个优化的设计必须以可用资源为基础,通常以表2.4给出的基本门电路作为可用资源。而在另外一些场合,可用资源可能是多路选择器或其他积木块电路。例如,对于可编程逻辑器件(CPLD或FPGA)来说,其宏单元是可用资源。手工设计过程中由设计者进行优化,自动设计过程中则由EDA工具实现优化,这项工作也可称为适配(fitting)或物理映射。 数字逻辑是计算机、自动化和电子工程等专业的本科生核心课程之一,编写本书的基本出发点是理论与实践相结合,基本理论与新的设计方法相结合。这里所说的新的设计方法是指硬件描述语言(Hardware Desct。iption LanglJage,HDL)和设计自动化工具(ElectronicDesign Automation,EDA)。
在没有先进的EDA工具的条件下,只能依靠纸和笔进行手工设计,费时费力效果差。使用EDA工具后局面将大为改观,其主要优点是:
(1)设计者工作的**是在理论的指导下对目标电路作**的描述,将烦琐的细节工作交给EDA工具去做,有利于设计大规模的数字系统。
(2)检验一个设计正确与否可以在EDA工具(模拟验证)的帮助下完成,因而使设计者具备自我检查的能力。
(3)通过实践完成一个特定的任务,必然印象深刻,并且这个设计不是纸面上的图形和文字,而是可以提交给EDA工具、可直接被综合为集成电路的设计。虽然学习EDA工具的使用方法以及学习VHDL都需要花费一定的时间和精力,但是这种付出和收获相比,收获将远大于付出。从教学改革的角度看,这种教学实践实现了和国际接轨,学校教育和产业界接轨。
高等教育强调创新人才的培养,重大理论的创新固然可贵,技术创新、产品创新也具有重要价值。从培养创新型人才出发,本课程必须强调基本理论,其理由是:
(1)理论是应用的基石。
(2)只有掌握基本的理论知识才能更好地使用EDA工具。
(3)理论本身也需要继承和创新,如果不在原有的基本理论上创新,就不可能产生今天的EDA工具,而EDA工具的进一步发展仍需依赖理论的创新。限于篇幅,本书对有关EDA方面的理论有所涉及但涉及不深。
培养创新人才需要通过各个教学环节来实现,对于本课程来说,除了用纸、笔完成适量的作业以巩固理论知识之外,更多的练习是使用EDA工具完成一系列设计。学生完成一个设计任务后,谁能告诉他这个设计是否与预期功能相符?是EDA工具!EDA工具提供的模拟波形将显示该目标电路的行为特性。这创造了一个自主学习的环境,当学生完成了一个个任务之后,将逐渐树立信心,使他有勇气面对新的挑战。