68
该该该该该该 <<EDA 该该该 VHDL>> 该该该该该该该 一书 该该该该 , 该该该该该该该该该该 EDA EDA 该该该 该该该 VHDL VHDL 该该 该该 该该该该该该该该该该该 () 该该该该该该该该该该该 () 该该 该该 2011.09 2011.09

EDA 原理及 VHDL 实现 (该课程为校级精品课程)

  • Upload
    aggie

  • View
    280

  • Download
    0

Embed Size (px)

DESCRIPTION

EDA 原理及 VHDL 实现 (该课程为校级精品课程). 何宾 2011.09. 课程内容. 第 1 章 数字系统 EDA 设计概论 第 2 章 可编程逻辑器件设计方法 第 3 章 VHDL 语言基础 第 4 章 数字逻辑单元设计 第 5 章 数字系统高级设计技术(*) 第 6 章 基于 HDL 设计输入 第 7 章 基于原理图设计输入 第 8 章 设计综合和行为仿真 第 9 章 设计实现和时序仿真. 课程内容. 第 10 章 设计下载和调试 第 11 章 数字时钟设计及实现(* ) 第 12 章 通用异步接收发送器设计及实现 (*) - PowerPoint PPT Presentation

Citation preview

Page 1: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

该电子教案为 <<EDA 原理及 VHDL>> 一书的配套教学资源版权所有 , 不得用于其它商业用途

EDAEDA 原理及原理及 VHDLVHDL 实现实现(该课程为校级精品课程)(该课程为校级精品课程)

何宾何宾2011.092011.09

Page 2: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

课程内容课程内容

第第 11 章 数字系统章 数字系统 EDAEDA 设计概论设计概论第第 22 章 可编程逻辑器件设计方法章 可编程逻辑器件设计方法第第 33 章 章 VHDLVHDL 语言基础语言基础第第 44 章 数字逻辑单元设计章 数字逻辑单元设计第第 55 章 数字系统高级设计技术(章 数字系统高级设计技术( ** ))第第 66 章 基于章 基于 HDLHDL 设计输入设计输入第第 77 章 基于原理图设计输入章 基于原理图设计输入第第 88 章 设计综合和行为仿真章 设计综合和行为仿真第第 99 章 设计实现和时序仿真章 设计实现和时序仿真

Page 3: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

课程内容课程内容

第第 1010 章 设计下载和调试章 设计下载和调试第第 1111 章 数字时钟设计及实现(章 数字时钟设计及实现( *)*)

第第 1212 章 通用异步接收发送器设计及实现章 通用异步接收发送器设计及实现 (*)(*)

第第 1313 章 数字电压表设计及实现章 数字电压表设计及实现 (*)(*)

第第 1414 章 软核处理器章 软核处理器 PicoBlazePicoBlaze 原理及应用原理及应用 (*)(*)

注:带注:带 ** 的内容可根据课时的安排选讲的内容可根据课时的安排选讲

Page 4: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

课程授课时间安排课程授课时间安排

该课程计划总学时:该课程计划总学时: 5656

其中:其中: 理论教授课时:理论教授课时: 4040

实验课时:实验课时: 1616 (大约安排实验(大约安排实验 6-76-7 个)个)

Page 5: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

课程教学用书课程教学用书

理论教学参考用书理论教学参考用书:: 1.1. 何宾编著何宾编著 ,<<EDA,<<EDA 原理及原理及 VHDLVHDL 实现实现 >>,>>, 清华大学清华大学

出版社。出版社。 2011.092011.09 。。

实验教学参考用书实验教学参考用书:: 1. 1. 何宾编著何宾编著 ,<<EDA,<<EDA 原理及应用实验教程原理及应用实验教程 >>>> ,清华,清华

大学出版社。大学出版社。 2009.072009.07 2. 2. 何宾编著何宾编著 ,<<,<< 数字与片上系统设计教程数字与片上系统设计教程 >>,>>, 清华大清华大

学出版社 学出版社

课程网络资源:课程网络资源: http://bucteda.eefocus.comhttp://bucteda.eefocus.com

Page 6: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

课程所要解决的问题?课程所要解决的问题?

回忆大二所学《数字电路》课程,还留在你们心回忆大二所学《数字电路》课程,还留在你们心中的回忆:中的回忆:

烦琐的卡诺图的化简(令你们和我一样抓狂) 烦琐的卡诺图的化简(令你们和我一样抓狂) 如果让你手工化简多变量呢?如果让你手工化简多变量呢?估计你要崩溃估计你要崩溃 想想在做电子课程设计中,你们要花大量的时间想想在做电子课程设计中,你们要花大量的时间

和精力把区区几个和精力把区区几个 74LSXX74LSXX 的门电路,用大量的的门电路,用大量的导线连接在一起。导线连接在一起。这个过程估计你们谁也头疼。这个过程估计你们谁也头疼。

你们也一定也知道在你们教科书的末尾好象提到你们也一定也知道在你们教科书的末尾好象提到了一个称为硬件描述语言了一个称为硬件描述语言 HDLHDL 的东西。老师没的东西。老师没讲,忽略了…讲,忽略了… ,, 为什么啊?(这门课将要揭密)为什么啊?(这门课将要揭密)

Page 7: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

课程所要解决的问题?课程所要解决的问题?

当你们经历了以上的痛苦后,不知道你们想过下当你们经历了以上的痛苦后,不知道你们想过下面的问题没有?面的问题没有?

能不能让计算机帮助化简卡诺图?而且是多个能不能让计算机帮助化简卡诺图?而且是多个 变量?变量? 能不能用一种芯片实现多个分离小规模数字能不能用一种芯片实现多个分离小规模数字 ICIC

的功能,并且在芯片内部将这些功能连接?的功能,并且在芯片内部将这些功能连接? 设计数字系统能不能象设计数字系统能不能象 CC 语言那样,只关心语言那样,只关心

“如何描述”一个数字系统,而不是“如何具“如何描述”一个数字系统,而不是“如何具体实现”数字系统。体实现”数字系统。

Page 8: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

课程的重要性课程的重要性

该课程的学习对后续多门课程的学习起着重要的该课程的学习对后续多门课程的学习起着重要的作用,比如《微机原理》、《单片机》、《数字信作用,比如《微机原理》、《单片机》、《数字信号处理 》、《通信原理》等和“数字”‘号处理 》、《通信原理》等和“数字”‘ 0’0’ 和‘和‘ 1’1’

有关课有关课程。程。 该课程是从事电子系统设计相关专业学生必须掌该课程是从事电子系统设计相关专业学生必须掌握的内容。握的内容。 大学生电子设计竞赛也把该课程内容作为参赛学大学生电子设计竞赛也把该课程内容作为参赛学生应该掌握的内容之一。生应该掌握的内容之一。

你们慢慢体会吧…你们慢慢体会吧…

Page 9: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统数字系统 EDAEDA 技术发展概述 技术发展概述

电子设计自动化(电子设计自动化( Electronics Design Automation, Electronics Design Automation,

EDAEDA )技术是一门迅速发展的新技术。)技术是一门迅速发展的新技术。 EDAEDA 设计就是在计算机上通过特定功能的软件开设计就是在计算机上通过特定功能的软件开发工具,协助设计人员以全自动或半自动化方式完成发工具,协助设计人员以全自动或半自动化方式完成所要求电子系统的设计。 所要求电子系统的设计。

Page 10: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统数字系统 EDAEDA 技术发展概述技术发展概述

EDAEDA 技术所涉及的领域相当广泛,业界一般将技术所涉及的领域相当广泛,业界一般将EDAEDA 技术分成技术分成 ::

狭义狭义 EDAEDA 技术技术 广义广义 EDAEDA 技术技术

Page 11: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统数字系统 EDAEDA 技术发展概述技术发展概述

狭义狭义 EDAEDA 技术技术,就是指以大规模可编程逻辑器件为,就是指以大规模可编程逻辑器件为设计载体,设计载体,以以硬件描述语言为系统逻辑描述的主要表达方硬件描述语言为系统逻辑描述的主要表达方式,式,以以计算机、大规模可编程逻辑器件的开发软件及实验计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,开发系统为设计工具,通过通过有关的开发软件,有关的开发软件,自动自动完成用完成用软件方式设计的电子系统到硬件系统的软件方式设计的电子系统到硬件系统的 :: 逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作编译、逻辑映射、编程下载等工作 最终形成集成电子系统或专用集成芯片的一门新技最终形成集成电子系统或专用集成芯片的一门新技术,或称为术,或称为 IES/ASICIES/ASIC自动设计技术。 自动设计技术。

Page 12: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统数字系统 EDAEDA 技术发展概述技术发展概述

广义广义 EDAEDA 技术,是通过计算机及其电子系统的辅助技术,是通过计算机及其电子系统的辅助分析和设计软件,完成电子系统某一部分的设计过分析和设计软件,完成电子系统某一部分的设计过程。因此,广义程。因此,广义 EDAEDA 技术除了包含狭义的技术除了包含狭义的 EDAEDA 技术技术外,还包括外,还包括 ::

计算机辅助分析计算机辅助分析 CAACAA 技术技术 (( 如如 PSPICEPSPICE ,, EWBEWB ,, MATLAMATLABB等等 )) ,,

印刷电路板计算机辅助设计印刷电路板计算机辅助设计 PCB-CADPCB-CAD 技术技术 (( 如如 PROTELPROTEL ,,ORCADORCAD等等 ))

其它高频和射频设计和分析的工具等 其它高频和射频设计和分析的工具等

Page 13: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统设计技术发展历史数字系统设计技术发展历史

在过去的在过去的 6060年中,数字逻辑改变了整个世界,年中,数字逻辑改变了整个世界,整个世界朝着数字化方向发展。今天我们所熟悉的整个世界朝着数字化方向发展。今天我们所熟悉的计算机在第二次世界大战后才出现在人类世界中。计算机在第二次世界大战后才出现在人类世界中。 表表 1.11.1给出了在计算机和数字逻辑发展历史上的给出了在计算机和数字逻辑发展历史上的重大事件。重大事件。 从该表可以看出数字逻辑设计技术经过了近从该表可以看出数字逻辑设计技术经过了近 400400

年的逐步进化的过程。年的逐步进化的过程。

Page 14: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统设计技术发展历史数字系统设计技术发展历史年代 事件

公元前 3000年 巴比伦王国开发了算盘。这个装置,它使用的线(棍子)上的一列珠子表示数字,今天仍然在远东地区的一些地方使用,用于执行计算。

1614-1617 John Napier ,苏格兰数学家,发明了对数,允许通过加来进行乘法和减进行除法。他发明了棒子或者数支,这样可以通过一种特殊的方法移动棍子来实现对大数的乘或者除。

1623 Wilhelm Schickard “ ”,德国教授,发明了第一个机械式计算器,称为 计算钟 。1630 William Oughtred,英国数学家和牧师,发明了计算尺。1642-1644 Blaise Pascal, 法国数学家,物理学家和宗教哲学家,发明了第一个机械计算器

Pascaline.

1672-1674 Gottfried Wilhelm Von Leibniz,德国数学家,外交官,历史学家,法学家和微分的发明家,发明了一个称为步进式计算器的机械计算器。计算器有一个独一的齿轮 - 莱布尼茨轮,用于机械式的乘法器。尽管没有使用这个计算器,但是该设计对未来的机械式计算器的发展产生了深远的影响。

1823-1839 Charles Babbage,英国数学家和发明家,开始在他的差分机上工作,该机器设计用于自动的处理对数计算。由于有大量来自政府的工作和资金,没有完成差分机。 1834年, Babbage开始在一个功能更强的机器上工作,称为分析机,它被称为第一个通用计算机。在这个时间前的 100年,所要求的精确的机械齿轮,不能在时间上准确的产生,因此没有工作。所以, Babbage “被认为是 计算机之

”父 。

Page 15: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统设计技术发展历史数字系统设计技术发展历史1854 George Boole,英国逻辑学家和数学家,出版了 <<Investigation of the Law of

Thought>>,给出了逻辑的数学基础。1890 Herman Hollerith,美国发明家,使用打孔卡片制表用于 1890年的普查。 1896年,他

成立了打卡机公司,最终于 1924年演变成了 IBM公司。

1906 Lee De Forest,美国物理学家,发明了三极管( 3个电极真空管)。直到 1940年前,这些管子没有用于计算机中。

1936 Alan M. Turing,英国逻辑学家,发表了一篇论文《 On Computable Numbers》,说明任意的计算都可以使用有限状态机实现。 Turing 在第二次世界大战后的,英国早期的计算机研制中扮演了重要的角色。

1937 George Stibitz,贝尔电话实验室的一个物理学家,使用继电器建立了二进制电路,能进行加、减、乘和除。

1938 Konrad Zuse ,德国工程师,构建了 Z1-第一个二进制计算机器。 1941年,完成了 Z3-通用的电子机械式计算机器。

1938 Claude Shannon,基于他在MIT的硕士论文,发表了《 A Symbolic Analysis of Relay and Switching Circuits》,在该著作中,他说明了符号逻辑和二进制数学如何应用到继电器电路中。

1942 John V. Atanasoff , 爱荷华州立大学教授,完成了一个简单的电子计算机器。1943 IBM-Harvard Mark I-一个大的可运行的电子机械式计算器。1944-1945 J.Presper Eckert和 John W.Mauchly,在宾夕法尼亚大学的电气工程摩尔学院,设计和

建立了 EMIAC。它是首个全功能的电子电子计算器。

Page 16: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统设计技术发展历史数字系统设计技术发展历史

1946 John von Neumann, ENIAC项目的顾问,在该工程后,写了一个很有影响力的报告,之后,在普林斯顿高等研究院开始他自己的计算机项目。

1947 Walter Brattain , John Bardeen和William Schockley在贝尔实验室发明了晶体管。

1948 在英国,在Manchester Mark I电子计算机上运行第一个存储程序。1951 发布 -第一个商业制造的计算机, Ferranti Mark I和 UNIVAC。1953 IBM发布了一个电子计算机 -701。1958 Kack kilby,德州仪器公司的一名工程师,建立一个可移相的振荡器,作

为第一个集成电路( Integrated Circuit, IC)。

1959 Robert Noyce, 1958年所建立的仙童半导体公司联合创始人,生产了第一个集成电路平面工艺。这导致实际大规模的生产可靠的集成电路。 1968年, Noyce成立了 Intel公司。

1963 数字设备公司 DEC生产了首个小型计算机。1964 IBM生产了 System/360系列电脑主机。

Page 17: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统设计技术发展历史数字系统设计技术发展历史1965 在电子杂志上, Gordon Moore预测一个集成芯片上的元件数量在每一年

翻“一倍。这就是著名的 摩尔定律”。在 1975年,修改该定律,每两年翻一倍。

1969 IBM的研究人员开发了第一个片上可编程逻辑阵列( Programmable logic array, PLA)。

1971 Marcian E. Hoff, Jr., Intel公司的工程师,发明了第一个微处理器。1975 Intersil生产了第一片现场可编程逻辑阵列( Field Programmable logic array,

FPLA)。1978 单片存储器引入了可编程阵列逻辑( Programmable Array Logic, PLA)。1981 IBM个人电脑诞生。

美国国防部开始开发 VHDL。 VHDL中的 V表示 VHSIC(Very High Speed Integrated Circuit,超高速集成电路 ), HDL代表( Hardware Description Language, HDL) .

1983 Intermetric, IBM和 TI授权开发 VHDL。1984 Xilinx成立,并发明了现场可编程门阵列( Field Programmable Gate Array,

FPGA)。 Gateway设计自动化公司,引入了硬件描述语言 Verilog。1987 VHDL成为 IEEE标准( IEEE 1076)。1990 Cadence Design System收购 Verilog 。1995 Verilog成为 IEEE标准。

Page 18: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

摩尔定律摩尔定律 -“-“ 统治半导体世界的法则”统治半导体世界的法则”

在在 19651965年戈登年戈登 ..摩尔给出了世界上著名的“摩尔定摩尔给出了世界上著名的“摩尔定律”,并且于律”,并且于 19751975年进行了修正,在过去的年进行了修正,在过去的 3535年以年以来,被证明是非常正确的。来,被证明是非常正确的。 该定律的内容是:集成电路上可容纳的晶体管数该定律的内容是:集成电路上可容纳的晶体管数目,约每隔目,约每隔 1818 个月便会增加一倍,性能也将提升一个月便会增加一倍,性能也将提升一倍,当价格不变时;或者说,每一美元所能买到的电倍,当价格不变时;或者说,每一美元所能买到的电脑性能,将每隔脑性能,将每隔 1818 个月翻两倍以上。这一定律成为半个月翻两倍以上。这一定律成为半导体工艺不断发展的指南。导体工艺不断发展的指南。

Page 19: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

摩尔定律摩尔定律 -“-“ 统治半导体世界的法则”统治半导体世界的法则”

图 1.1 摩尔定律与集成电路的发展趋势

Page 20: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统设计技术发展历史数字系统设计技术发展历史

今天你们每个人都离不开一样东西今天你们每个人都离不开一样东西 -“-“ 电脑”,也电脑”,也就就

是“微处理器”,但是以后在坐的各位,你们会发是“微处理器”,但是以后在坐的各位,你们会发现现

你们也离不开另一样东西你们也离不开另一样东西 -“-“ 可编程逻辑器件”,我可编程逻辑器件”,我这这

门课程所介绍的东西。门课程所介绍的东西。 你们也一定很好奇,别着急,听我后面慢慢介你们也一定很好奇,别着急,听我后面慢慢介绍。绍。

Page 21: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

现代数字系统设计发展阶段 现代数字系统设计发展阶段

现在数字系统设计的发展是随着计算机的出现在数字系统设计的发展是随着计算机的出现、集成电路制造水平和电子系统设计方法的发展现、集成电路制造水平和电子系统设计方法的发展而不断发展的,主要经历了:而不断发展的,主要经历了:

计算机辅助设计计算机辅助设计 (CAD,Computer Assist Design)(CAD,Computer Assist Design) 计算机辅助工程设计计算机辅助工程设计 (CAE,Computer Assist Engineerin(CAE,Computer Assist Engineerin

g) g) 电子设计自动化电子设计自动化 (EDA,Electronic Design Automation)(EDA,Electronic Design Automation)

这几个阶段的特点和标志是什么?这几个阶段的特点和标志是什么?

Page 22: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

集成电路芯片的发展历史集成电路芯片的发展历史

集成电路的发展分为了四个主要的阶段:集成电路的发展分为了四个主要的阶段: 11 )在上世纪六十年代早期出现了第一片集成电路,)在上世纪六十年代早期出现了第一片集成电路,其集成的晶体管数量少于其集成的晶体管数量少于 100100 个,该集成电路称为小个,该集成电路称为小

规规模集成电路模集成电路(( Small-Scale Integrated Circuit, SSISmall-Scale Integrated Circuit, SSI ))。。 22 )在上世纪六十年代后期出现了中规模集成电路)在上世纪六十年代后期出现了中规模集成电路(( Medium-Scale Integrated Circuit, MSIMedium-Scale Integrated Circuit, MSI )) ,, 其集成其集成

的的晶体管数量达到几百个。晶体管数量达到几百个。 33 )在上世纪)在上世纪 7070年代中期,出现了大规模集成电路年代中期,出现了大规模集成电路(( Large-Scale Integrated Circuit, LSILarge-Scale Integrated Circuit, LSI ),),其集成的其集成的晶晶

体管数量达到几千个。体管数量达到几千个。

Page 23: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

集成电路芯片的发展历史集成电路芯片的发展历史

44 )在上世纪)在上世纪 8080年代早期,出现了超大规模集成电路年代早期,出现了超大规模集成电路(( Very-large-scale-integrated, VLSIVery-large-scale-integrated, VLSI ),其集成的晶体),其集成的晶体管管

的数量超过了的数量超过了 100,000100,000 个。个。 到上世纪到上世纪 8080年代后期,集成的晶体管数量超过了年代后期,集成的晶体管数量超过了1,000,0001,000,000 个。个。 到上世纪到上世纪 9090年代,集成的晶体管数量超过了年代,集成的晶体管数量超过了10,000,00010,000,000 ,, 而到了而到了 20042004年,这一数量已经超过了年,这一数量已经超过了 100,000,000100,000,000 个。个。现在这一数量突破现在这一数量突破 1,000,000,0001,000,000,000 个。个。

Page 24: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

可编程逻辑器件的发展历史可编程逻辑器件的发展历史

11.第.第 11阶段阶段 上世纪上世纪 7070年代,可编程器件只有简单的可编程只年代,可编程器件只有简单的可编程只读读存储器(存储器( PROMPROM )、紫外线可擦除只读存储器)、紫外线可擦除只读存储器(( EPROMEPROM )和电可擦只读存储器()和电可擦只读存储器( EEPROMEEPROM )) 33 种,种,由于结构的限制,它们只能完成简单的数字逻辑功由于结构的限制,它们只能完成简单的数字逻辑功能。能。

Page 25: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

可编程逻辑器件的发展历史可编程逻辑器件的发展历史

22.第.第 22阶段阶段 上世纪上世纪 8080年代,出现了结构上稍微复杂的可编年代,出现了结构上稍微复杂的可编

程程阵列逻辑阵列逻辑(( PALPAL ))和通用阵列逻辑和通用阵列逻辑(( GALGAL ))器件,器件,正式被称为正式被称为 PLDPLD ,能够完成各种逻辑运算功能。 ,能够完成各种逻辑运算功能。

Page 26: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

可编程逻辑器件的发展历史可编程逻辑器件的发展历史

33.第.第 33阶段阶段 上世纪上世纪 9090年代,年代, XilinxXilinx 和和 AlteraAltera 分别推出了与标准分别推出了与标准

门门阵列类似的阵列类似的 FPGAFPGA 和类似于和类似于 PALPAL结构的扩展性结构的扩展性 CPLDCPLD 。。 4.4. 第第 44阶段阶段 本世纪初,在该阶段出现了本世纪初,在该阶段出现了 SOPCSOPC 技术,是技术,是 PLDPLD 和和ASICASIC 技术融合的结果。可编程逻辑器件厂商也提供了技术融合的结果。可编程逻辑器件厂商也提供了SOPCSOPC 解决方案。解决方案。 典型的,典型的, XilinxXilinx 和和 AlteraAltera 也推出了相应也推出了相应 SOPC FPGASOPC FPGA产品,制造工艺达到产品,制造工艺达到 65nm/40nm/28nm65nm/40nm/28nm 工艺水平,系工艺水平,系统门数也超过百万门。统门数也超过百万门。

Page 27: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统设计方法概论数字系统设计方法概论

传统的数字系统的设计方法是画出逻辑图,这个图传统的数字系统的设计方法是画出逻辑图,这个图包含包含 SSISSI 的门和的门和 MSIMSI 的逻辑功能,然后人工通过真值表的逻辑功能,然后人工通过真值表

和和通过卡诺图进行化简,得到最小的表达式,然后在基于通过卡诺图进行化简,得到最小的表达式,然后在基于TTLTTL 的的 LSILSI 芯片上实现数字逻辑的功能。芯片上实现数字逻辑的功能。

Page 28: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统设计方法概论数字系统设计方法概论

然而从图然而从图 1.11.1 可以看出,到了上世纪可以看出,到了上世纪 8080年代后期和年代后期和 9090

年代早期,这种设计方法遭遇了阻力。为什么呢?年代早期,这种设计方法遭遇了阻力。为什么呢? 问题就是如何能画一个原理图,这个原理图包含成千问题就是如何能画一个原理图,这个原理图包含成千上万个门。正如在新的设计中可编程逻辑设备取代上万个门。正如在新的设计中可编程逻辑设备取代 TTLTTL 芯芯片那样,需要一种新的设计方法来设计数字电路。片那样,需要一种新的设计方法来设计数字电路。 今天,计算机辅助设计工具(今天,计算机辅助设计工具( Computer-aided Tools, Computer-aided Tools, CADCAD ),也称为),也称为 EDAEDA 工具在当今的数字电路设计中是必须工具在当今的数字电路设计中是必须的。的。

Page 29: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统设计方法概论数字系统设计方法概论

在过去数十年越来越清楚的表明,今天的数字系统在过去数十年越来越清楚的表明,今天的数字系统的设计人员是通过写软件来设计数字电路的。这是最的设计人员是通过写软件来设计数字电路的。这是最重要的例子,说明了从传统数字系统设计方法向现代重要的例子,说明了从传统数字系统设计方法向现代的基于的基于 EDAEDA 工具的设计方法的转变工具的设计方法的转变。。

Page 30: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

数字系统设计方法概论数字系统设计方法概论

今天的数字系统设计工程师使用硬件描述语言今天的数字系统设计工程师使用硬件描述语言(( Hardware Description Language, HDLHardware Description Language, HDL )来设计数字系)来设计数字系统。统。 最广泛使用的最广泛使用的 HDLHDL 语言是语言是 VHDLVHDL 和和 Verilog HDLVerilog HDL 。这。这些语言允许设计人员通过写程序描述逻辑电路的行为来些语言允许设计人员通过写程序描述逻辑电路的行为来设计数字系统。设计数字系统。 程序能用来仿真电路的操作和在程序能用来仿真电路的操作和在 CPLDCPLD、、 FPGAFPGA或者专或者专用集成电路用集成电路 ASICASIC 上综合出一个真正的实现。上综合出一个真正的实现。

Page 31: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

SOPSOP 和和 POSPOS 表达式 表达式

术语“乘积”和“和”来自数学,用来描述与(术语“乘积”和“和”来自数学,用来描述与( AANDND ))

和或(和或( OROR )逻辑操作。)逻辑操作。 “ “乘积乘积”定义为多个变量之间的”定义为多个变量之间的 ANDAND 关系。关系。 “ “ 和和”定义为任意数量逻辑变量的”定义为任意数量逻辑变量的 OROR 关系。关系。 任何逻辑系统能用两种逻辑等效的方法表示,即积任何逻辑系统能用两种逻辑等效的方法表示,即积之和(之和( Sum of Product, SOPSum of Product, SOP )形式和和之积)形式和和之积 (Product of (Product of

Sum, POS)Sum, POS)形式形式。。

Page 32: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

SOPSOP 表达式表达式

对于真值表的每一列,能生成一个乘积项,称为最对于真值表的每一列,能生成一个乘积项,称为最小项。小项。 最小项通过对输入变量相关的值“相与”最小项通过对输入变量相关的值“相与” ANDAND 得得

到。到。如果真值表特定的一行的变量值为如果真值表特定的一行的变量值为 11 ,则包含变量的,则包含变量的名名

字,比如字,比如 xx 。如果真值表特定的一行的变量值为。如果真值表特定的一行的变量值为 00 ,,则则包含变量名字的取反,比如包含变量名字的取反,比如 ~x~x

Page 33: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

SOPSOP 表达式表达式

x y 最小项

0 0 m0=~x&~y

0 1 m1=~x&y

1 0 m2=x&~y

1 1 m3=x&y

Page 34: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

SOPSOP 表达式表达式

x y z

0 0 0

0 1 1 m1=~x & y

1 0 1 m2=x & ~y

1 1 0

如果关心输出为‘ 1’ 的行,可以发现当 m1或者m2 为真时,输出 z 为真。因此,可以写 z ,通过简单的 OR 上最小项(这些最小项输出为 1 )。 输出 z 可以表示为: z=m1|m2=(~x&y) | (x&~y)

Page 35: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

SOPSOP 表达式表达式

Page 36: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

POSPOS 表达式 表达式

现在关注的不是真值表输出为现在关注的不是真值表输出为 11 的行,而是关注的的行,而是关注的是真值表输出为是真值表输出为 00 的行。如图的行。如图 1.41.4 所示。所示。

Page 37: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

POSPOS 表达式表达式

注意在这种情况下注意在这种情况下 zz 是非是非 NOTNOT最小项 最小项 m0m0 和非最和非最小小项项 m3m3 ,从前面的最小项的定义,使用德摩根,从前面的最小项的定义,使用德摩根 De De

MorganMorgan 定理,得到: 定理,得到: NOT m0=~m0=~(~x & ~y)=~~(x|y)=x|y NOT m0=~m0=~(~x & ~y)=~~(x|y)=x|y

称称 NOT m0NOT m0 为最大项为最大项 M0M0 。。

Page 38: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

POSPOS 表达式表达式

x y 最小项 最大项

0 0 m0=~x&~y M0=~m0=x|y

0 1 m1=~x&y M1=~m1=x|~y

1 0 m2=x&~y M2=~m2=~x|y

1 1 m3=x&y M3=~m3=~x|~y

得到 z 的 POS 表达式为: z=M0 & M3=(x | y) & ( ~x |

~y)

Page 39: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

POSPOS 表达式表达式

Page 40: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

传统数字系统设计流程 传统数字系统设计流程

传统的数字系统设计基于传统的数字系统设计基于传统的“人工”方式完成,当传统的“人工”方式完成,当设计目标给定后,给出设计设计目标给定后,给出设计目标的真值表描述,然后使目标的真值表描述,然后使用卡诺图对真值表进行化用卡诺图对真值表进行化简,得到最小的表达式,然简,得到最小的表达式,然后使用后使用 TTLTTL 的的 LSILSI 电路实现最电路实现最小的表达式,最后使用调试小的表达式,最后使用调试工具和仪器,对系统进行调工具和仪器,对系统进行调试。 试。

Page 41: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

传统数字系统设计流程传统数字系统设计流程

下面将通过一个例子来说明这个下面将通过一个例子来说明这个传统的设计过程。传统的设计过程。 11 )设计目标:在一个共阳极的)设计目标:在一个共阳极的 77段段数码管上显示相对应的数码管上显示相对应的 0-F0-F 的值。的值。 22 )设计目标的真值表描述:图)设计目标的真值表描述:图 1.21.2

首先给出了七段数码管的符号表示,当首先给出了七段数码管的符号表示,当其是共阳极时,只有相应的段给低电平其是共阳极时,只有相应的段给低电平‘‘0’0’ 时,该段亮,否则灭。时,该段亮,否则灭。

Page 42: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

传统数字系统设计流程传统数字系统设计流程

x3 x2 x1 x0 a b c d e f g x3 x2 x1 x0 a b c d e f g

0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0

0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0

0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0

0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0

0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1

0 1 0 1 0 1 0 0 1 0 0 1 1 0 1 1 0 0 0 0 1 0

0 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0

0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0

Page 43: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

传统数字系统设计流程传统数字系统设计流程

33 )使用卡诺图对真值表进行化简,图)使用卡诺图对真值表进行化简,图 1.31.3给出对于给出对于 77段数码管段数码管 ee段的卡诺图化段的卡诺图化 简过程。 简过程。

得到 得到 ee段的最简单的逻辑表达式:段的最简单的逻辑表达式:e=~x3& x0 | ~x3&x2&~x1 | ~x2&~x1&x0e=~x3& x0 | ~x3&x2&~x1 | ~x2&~x1&x0 。。 按照步骤按照步骤 33 的过程分别得到的过程分别得到 a,b,c,d,f,ga,b,c,d,f,g 的最简逻辑表达的最简逻辑表达式,这些最简表达式使用积之和(式,这些最简表达式使用积之和( Sum of Product, Sum of Product,

SOPSOP )和和之积)和和之积 (Product of Sum, POS)(Product of Sum, POS) 表示。表示。

Page 44: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

传统数字系统设计流程传统数字系统设计流程

44 )使用相应的)使用相应的 TTLTTL 门电路来实现各段的最小门电路来实现各段的最小表表达式。达式。 55 )将这些门电路连接到)将这些门电路连接到 77段数码管的各段,段数码管的各段,

并并进行调试。进行调试。

Page 45: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

传统数字系统设计流程传统数字系统设计流程

从上面的流程可以看出,所有的过程都需要人工完从上面的流程可以看出,所有的过程都需要人工完成,试想对于一个包含上百个逻辑门的多输入变量的结成,试想对于一个包含上百个逻辑门的多输入变量的结构,根本无法使用人工化简卡诺图实现。同时后续的电构,根本无法使用人工化简卡诺图实现。同时后续的电路调试和设计也需要很高的电路布局和布线的技巧,总路调试和设计也需要很高的电路布局和布线的技巧,总而言之,这样的设计对于复杂数字系统来讲效率太低而言之,这样的设计对于复杂数字系统来讲效率太低了。了。 我们需要进一步考虑的问题是,如何使用计算机帮我们需要进一步考虑的问题是,如何使用计算机帮助设计者简化设计过程,自动地化简卡诺图,并且在芯助设计者简化设计过程,自动地化简卡诺图,并且在芯片内部自动实现布局布线。要实现这些要求,就必须使片内部自动实现布局布线。要实现这些要求,就必须使用基于可编程逻辑器件的现代数字系统设计流程。用基于可编程逻辑器件的现代数字系统设计流程。

Page 46: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 从前面的数字系统设计流程中,可以看出使用卡诺从前面的数字系统设计流程中,可以看出使用卡诺图很容易在不超过图很容易在不超过 44 个逻辑变量的布尔函数中找到最少数个逻辑变量的布尔函数中找到最少数目的乘积项。目的乘积项。 然而许多的实际问题是,多于然而许多的实际问题是,多于 44 个逻辑变量,并且卡个逻辑变量,并且卡诺图并不能帮助进行逻辑表达式的化简。诺图并不能帮助进行逻辑表达式的化简。 计算机软件程序能够帮助对多于计算机软件程序能够帮助对多于 44 个逻辑变量的布尔个逻辑变量的布尔函数进行简化。这些计算机方法使用基于表格的技术。函数进行简化。这些计算机方法使用基于表格的技术。这些方法能自动的用机器进行计算。了解这些方法的工这些方法能自动的用机器进行计算。了解这些方法的工作原理,将提供额外的智慧来简化布尔函数。作原理,将提供额外的智慧来简化布尔函数。 在本节所介绍的方法叫做“奎因在本节所介绍的方法叫做“奎因 --麦克斯基(麦克斯基( Quine-Quine-McCluskeyMcCluskey )”方法。还有其它算法比这个算法的化简速)”方法。还有其它算法比这个算法的化简速度更快,但是不能保证生成最优化的化简。度更快,但是不能保证生成最优化的化简。

Page 47: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 ---- 表格表示表格表示

以乘积和形式出现的乘积项,这个乘积项用于表示以乘积和形式出现的乘积项,这个乘积项用于表示布尔函数,称之为蕴含项。这是由于它暗示,如果任何布尔函数,称之为蕴含项。这是由于它暗示,如果任何乘积项为乘积项为 11 时,函数将为时,函数将为 11 。比如,对于这个函数:。比如,对于这个函数: f=x & ~y & z | ~x & ~z | ~x & yf=x & ~y & z | ~x & ~z | ~x & y 其中:其中: x & ~y & zx & ~y & z ,, ~x & ~z~x & ~z 和和 ~x & y~x & y三个乘积项称为三个乘积项称为蕴含项。在这种情况下,第一个乘积项是最小项蕴含项。在这种情况下,第一个乘积项是最小项 m5m5 。如。如果最小项果最小项 55 用二进制数表示为用二进制数表示为 101101 ,这三个二进制数字分,这三个二进制数字分别对应三个变量别对应三个变量 xyz(xyz( 其中其中 11对应的是变量的真值,对应的是变量的真值, 0(~)0(~)对对应的是变量的假值应的是变量的假值 )) 。这样。这样 101101 是是 x & ~y & zx & ~y & z 的另一种描述的另一种描述方式。方式。

Page 48: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 ---- 表格表示表格表示

如果在一个乘积项中不包含一些变量时,插入一个如果在一个乘积项中不包含一些变量时,插入一个破折号“破折号“ -”-” 表示该变量,比如对于表示该变量,比如对于 ~x & ~z~x & ~z 表示为表示为 0-00-0 ,,

~x ~x

& y& y 表示为表示为 01-01- 。。 因此称这这些为表格表示或者表格形式的乘积项。 因此称这这些为表格表示或者表格形式的乘积项。

Page 49: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 ---- 表格表示表格表示

下面例子对图下面例子对图 1.41.4 的卡罗图用表格表示。该例子中在的卡罗图用表格表示。该例子中在44

个圈起来输出为‘个圈起来输出为‘ 1’1’ 的每个乘积项使用了表格进行表示。的每个乘积项使用了表格进行表示。这样很容易对每个圈起来的集合的卡罗图符号得到表格这样很容易对每个圈起来的集合的卡罗图符号得到表格的表示。表格中最开始的两位是行标号,后两位是列标的表示。表格中最开始的两位是行标号,后两位是列标号。如果圈起来的集合覆盖一个特殊位位置的‘号。如果圈起来的集合覆盖一个特殊位位置的‘ 0’0’ 和和‘‘ 1’1’ ,,

该位位置变成‘该位位置变成‘ -’-’ 。。

Page 50: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 ---- 表格表示表格表示

通过扩展卡诺图中所圈通过扩展卡诺图中所圈 11 的集合来产生乘积项是的集合来产生乘积项是可可

能的。比如,任意扩展它将覆盖图中的能的。比如,任意扩展它将覆盖图中的 00 ,然后产生,然后产生乘积项或者蕴含项,叫做本源蕴含项。这样的本源蕴乘积项或者蕴含项,叫做本源蕴含项。这样的本源蕴含项中不能从乘积项中去除变量,并且暗含着逻辑功含项中不能从乘积项中去除变量,并且暗含着逻辑功能。下面将研究如何通过计算机找到这些本源蕴含项能。下面将研究如何通过计算机找到这些本源蕴含项的方法。的方法。

Page 51: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 ---- 本源蕴含项 本源蕴含项

该图中包含两个本源蕴含项 x 和 y & ~z ,其表格表示为 1-- 和 -10 。下面将给出找到本源蕴含项的方法。

Page 52: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 ---- 本源蕴含项本源蕴含项

1. 如表 1.3 所示下面首先列出函数中所有的最小项。这些最小项以递增的顺序排列。在第一栏中划了一条线用来区分最小项里有 1 个 1 ,两个 1 和 3 个 1 .

Page 53: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 ---- 本源蕴含项本源蕴含项

下一步将比较第一栏中的每个最小项,方法是每个最下一步将比较第一栏中的每个最小项,方法是每个最小项和该栏中其它最小项进行比较,这个最小项和其它最小项和该栏中其它最小项进行比较,这个最小项和其它最小项只相差一个数字位。由于以递增的顺序排列最小项,小项只相差一个数字位。由于以递增的顺序排列最小项,因此比较相邻区域的最小项(用线分割)。 因此比较相邻区域的最小项(用线分割)。

Page 54: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 ---- 本源蕴含项本源蕴含项

在这个例子中,所有的找到的本源蕴含项用来产生在这个例子中,所有的找到的本源蕴含项用来产生最小项函数。但并不总是这种情况。有时存在冗余的本最小项函数。但并不总是这种情况。有时存在冗余的本源蕴含项,这些蕴含项不需要覆盖函数中的所有最小源蕴含项,这些蕴含项不需要覆盖函数中的所有最小项。下面将给出一个例子来说明不需要使用所有的本源项。下面将给出一个例子来说明不需要使用所有的本源蕴含项来生成最小项函数。蕴含项来生成最小项函数。

Page 55: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 ---- 必要的本源蕴含项必要的本源蕴含项

考虑图考虑图 1.61.6 表示的布尔函数。下面通过表示的布尔函数。下面通过 Quine-Quine-

McCluskeyMcCluskey 方法来化简这个函数。方法来化简这个函数。

Page 56: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 ---- 必要的本源蕴含项必要的本源蕴含项

Page 57: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 ---- 必要的本源蕴含项必要的本源蕴含项

表表 1.5 1.5 找到必要本源蕴含项的步骤找到必要本源蕴含项的步骤

Page 58: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 ---- 必要的本源蕴含项必要的本源蕴含项

只有那些有一个只有那些有一个 XX 的特殊的蕴含项,用于作为最终的特殊的蕴含项,用于作为最终函数的一部分。称这些本源蕴含项称为必要的本源蕴含函数的一部分。称这些本源蕴含项称为必要的本源蕴含项。项。 注意在表注意在表 1.51.5 中只有两个最小项中只有两个最小项 55 和和 88 ,只有一个,只有一个 XX 。。这些这些 XX对应于两个本源蕴含项对应于两个本源蕴含项 0--10--1 和和 -0-0-0-0 ,这两个蕴含项,这两个蕴含项画“√”,表示其作为必要的本源蕴含项 画“√”,表示其作为必要的本源蕴含项 ..

注意,覆盖了除注意,覆盖了除 1414 和和 1515外的所有最小项,表中清楚外的所有最小项,表中清楚表明了,本源蕴含项表明了,本源蕴含项 111-111- 将覆盖最小项将覆盖最小项 1414 和和 1515 ,因此,因此

将将这个本源蕴含项添加到两个本源蕴含项中,得到最终的这个本源蕴含项添加到两个本源蕴含项中,得到最终的简化函数。简化函数。

Page 59: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

计算机最小化技术 计算机最小化技术 ---- 必要的本源蕴含项必要的本源蕴含项

该最简函数表示为:该最简函数表示为: f=~x & ~z | ~w & z | w & x & yf=~x & ~z | ~w & z | w & x & y

Page 60: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

现代数字系统设计流程 现代数字系统设计流程

如图如图 1.71.7 所示,其设所示,其设计计流程包括流程包括 :: 设计目标、设设计目标、设计输入、功能仿真、综合计输入、功能仿真、综合优化、综合后仿真、实现优化、综合后仿真、实现(( FPGAFPGA 设计)或适配设计)或适配(( CPLDCPLD 设计)、时序仿设计)、时序仿真、设计下载和系统调试真、设计下载和系统调试与验证等步骤 与验证等步骤

Page 61: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

HDLHDL 硬件描述语言概念 硬件描述语言概念

硬件描述语言(硬件描述语言( Hardware Description LanguageHardware Description Language )是)是硬件设计人员和电子设计自动化(硬件设计人员和电子设计自动化( EDAEDA )工具之间的界)工具之间的界面,其主要目的是用来编写设计文件,建立电子系统行为面,其主要目的是用来编写设计文件,建立电子系统行为级的仿真模型。级的仿真模型。 即利用计算机的巨大能力对即利用计算机的巨大能力对 Verilog HDLVerilog HDL或或 VHDLVHDL建模建模的复杂数字逻辑进行仿真,然后再自动综合,生成符合要的复杂数字逻辑进行仿真,然后再自动综合,生成符合要求且在电路结构上可以实现的数字逻辑网表(求且在电路结构上可以实现的数字逻辑网表( NetlistNetlist ),),根据网表和某种工艺的器件自动生成具体电路,最后生根据网表和某种工艺的器件自动生成具体电路,最后生成该工艺条件下这种具体电路的时延模型。仿真验证无误成该工艺条件下这种具体电路的时延模型。仿真验证无误后,该模型可用于制造后,该模型可用于制造 ASICASIC 芯片或写入芯片或写入 CPLDCPLD 和和 FPGAFPGA 器器件中。件中。

Page 62: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

HDLHDL 硬件描述语言概念硬件描述语言概念 在在 HDLHDL 语言出现之前,已有了许多程序设计语言,语言出现之前,已有了许多程序设计语言,如汇编、如汇编、 CC、、 PascalPascal、、 FortranFortran、、 PrologProlog等。等。 它们适合于描述过程和算法,不适合作硬件描述。它们适合于描述过程和算法,不适合作硬件描述。 这些高级语言和这些高级语言和 HDLHDL 语言的一个最重要的本质区别语言的一个最重要的本质区别 :: CC 语言是在语言是在 CPUCPU 上运行的上运行的 , CPU, CPU 的运行是靠程序计数的运行是靠程序计数器推动的器推动的 ,, 当然也是串行执行的。当然也是串行执行的。 HDLHDL 语言最终是要在芯片内生成数字电路语言最终是要在芯片内生成数字电路 , , 数字电路数字电路的工作是靠信号流推动的的工作是靠信号流推动的 , , 信号流是可以并行存在的信号流是可以并行存在的 , , 当当

然然也是并行执行的也是并行执行的 .. 所以所以 , HDL, HDL生成的数字电路工作速度比生成的数字电路工作速度比 CC代码快几十代码快几十倍甚至上百倍倍甚至上百倍 .(.(移位寄存器的移位寄存器的 CC 语言实现和语言实现和 HDLHDL 实现是最实现是最好的例子好的例子 ))

Page 63: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

HDLHDL 硬件描述语言概念硬件描述语言概念

传统的用原理图设计电路的方法已逐渐消失,取而代传统的用原理图设计电路的方法已逐渐消失,取而代之,之, HDLHDL 语言正被人们广泛接受,出现这种情况有以下语言正被人们广泛接受,出现这种情况有以下几点原因:几点原因: (( 11 )电路设计将继续保持向大规模和高复杂度发展的)电路设计将继续保持向大规模和高复杂度发展的趋势。 趋势。 (( 22 )电子领域的竞争越来越激烈,刚刚涉入电子市场)电子领域的竞争越来越激烈,刚刚涉入电子市场的成员要面对巨大的压力:提高逻辑设计的效率,降低设的成员要面对巨大的压力:提高逻辑设计的效率,降低设计成本,更重要的是缩短设计周期。 计成本,更重要的是缩短设计周期。 (( 33 )使用硬件语言描述将使检测各种设计方案变成一)使用硬件语言描述将使检测各种设计方案变成一件很容易、很方便的事情,因为对方案的修改只需要修改件很容易、很方便的事情,因为对方案的修改只需要修改HDLHDL 程序就行了,这比修改原理图要方便得多。程序就行了,这比修改原理图要方便得多。

Page 64: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

HDLHDL 语言特点 语言特点

1. HDL1. HDL 语言既包含一些高层程序设计语言的结构形语言既包含一些高层程序设计语言的结构形式,同时也兼顾描述硬件线路连接的具体构件。式,同时也兼顾描述硬件线路连接的具体构件。 2. HDL2. HDL 语言是并发的,即具有在同一时刻执行多任务语言是并发的,即具有在同一时刻执行多任务的能力。一般来讲编程语言是非并行的,但在实际硬件中的能力。一般来讲编程语言是非并行的,但在实际硬件中许多操作都是在同一时刻发生的,所以许多操作都是在同一时刻发生的,所以 HDLHDL 语言具有并发语言具有并发的特征。的特征。 3. HDL3. HDL 语言有时序的概念。一般来讲,编程语言是没语言有时序的概念。一般来讲,编程语言是没有时序概念的,但在硬件电路中从输入到输出总是有延迟有时序概念的,但在硬件电路中从输入到输出总是有延迟存在的,存在的, HDLHDL 语言需要建立时序的概念。语言需要建立时序的概念。 4. 4. 通过使用结构级或行为级描述可以在不同的抽象层通过使用结构级或行为级描述可以在不同的抽象层次描述设计,次描述设计, HDLHDL 语言采用自顶向下的数字电路设计方语言采用自顶向下的数字电路设计方法,主要包括法,主要包括 33 个领域个领域 55 个抽象层次个抽象层次 ..

Page 65: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

HDLHDL 语言特点 语言特点 --Verilog--Verilog 和和 VHDLVHDL比较 比较

Verilog HDLVerilog HDL 和和 VHDLVHDL 是目前两种最常用的硬件描述语是目前两种最常用的硬件描述语言,同时也都是言,同时也都是 IEEEIEEE标准化的标准化的 HDLHDL 语言。总的来说,它语言。总的来说,它们有一下几点不同:们有一下几点不同: 1. 1. 从推出的过程来看,从推出的过程来看, VHDLVHDL偏重于标准化的考虑,偏重于标准化的考虑,而而 Verilog HDLVerilog HDL则和则和 EDAEDA 工具结合得更为紧密。工具结合得更为紧密。 VHDLVHDL 是为了实现美国国防部是为了实现美国国防部 VHSICVHSIC 计划所推出的各计划所推出的各个电子部件供应商具有统一数据交换格式标准的要求。个电子部件供应商具有统一数据交换格式标准的要求。 Verilog HDLVerilog HDL 的商业气息更浓,它是在全球最大的的商业气息更浓,它是在全球最大的EDA/ESDAEDA/ESDA供应商供应商 CadenceCadence公司的支持下针对公司的支持下针对 EDAEDA 工具专工具专门开发的硬件描述语言。门开发的硬件描述语言。

Page 66: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

HDLHDL 语言特点 语言特点 --Verilog--Verilog 和和 VHDLVHDL比较比较

2. Verilog HDL2. Verilog HDL至今已有至今已有 2020 多年的历史了,因此多年的历史了,因此Verilog HDLVerilog HDL拥有广泛的设计群体,成熟的资源远比拥有广泛的设计群体,成熟的资源远比VHDLVHDL丰富。同时丰富。同时 Verilog HDLVerilog HDL 是从高级设计语言是从高级设计语言 CC 语语

言言发展而来的,相比发展而来的,相比 VHDLVHDL 而言更容易上手,其编码风格而言更容易上手,其编码风格也更为简洁明了,是一种非常容易掌握的硬件描述语也更为简洁明了,是一种非常容易掌握的硬件描述语言。言。

Page 67: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

HDLHDL 语言特点 语言特点 --Verilog--Verilog 和和 VHDLVHDL比较比较

3. 3. 目前版本的目前版本的 Verilog HDLVerilog HDL 和和 VHDLVHDL 在行为级抽象建模在行为级抽象建模的覆盖范围方面也有所不同。的覆盖范围方面也有所不同。 一般认为一般认为 Verilog HDLVerilog HDL 在系统抽象方面比在系统抽象方面比 VHDLVHDL 要强一要强一些些 . .

Verilog HDLVerilog HDL比较适合算法级(比较适合算法级( AlgorithmAlgorithm )、寄存器)、寄存器传输级(传输级( RTLRTL )、逻辑级()、逻辑级( LogicLogic )以及门级()以及门级( GateGate )的设)的设计计 ;;

VHDLVHDL更适合特大型系统级(更适合特大型系统级( SystemSystem )的设计。)的设计。

Page 68: EDA 原理及 VHDL 实现 (该课程为校级精品课程)

习题习题

11、了解数字逻辑发展历史上的重大事件。、了解数字逻辑发展历史上的重大事件。 22、说明现代数字系统设计的发展阶段。、说明现代数字系统设计的发展阶段。 33、说明半导体集成电路和可编程逻辑器件的发展、说明半导体集成电路和可编程逻辑器件的发展阶 阶

段。段。 44、说明、说明 SOPSOP 和和 POSPOS 表达式的定义。表达式的定义。 55、说明传统数字系统设计流程、说明传统数字系统设计流程 --麦克斯基算法进 麦克斯基算法进 行最小化化简的步骤。行最小化化简的步骤。 66、说明现代数字系统设计流程。、说明现代数字系统设计流程。 77、说明、说明 VHDLVHDL 和和 VerilogVerilog 语言的特点。语言的特点。