第一章 数字系统硬件设计概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
命名规则和注解的标记
VHDL语句中大小写是没有区别的,所有语句中用大写字母 或小写字母都可以。但有两种情况例外,这就是用单引号括 起来的字符和用双引号括起来的字符串,这时大写字母和小 写字母是有区别的。
在VHDL语言中所使用的名字(名称),如信号名、实 体名,构造体名、变量名等,在命名时应遵守如下规则:
在该例中,JK触发器、D触发器、与门 和或非门都已在库WORK.NEW.ALL中定义 了,这里可以直接引用。例中的构造体直接 描述了它们之间的连接关系。与行为描述比 较RTL方式描述更趋于实际电路的描述。
在把行为方式描述的程序改写为RTL方式描述的程序时,编程人员必须深入了解逻辑 综合工具的详细说明和具体规定,这样才能编写出合格的RTL方式描述的程序。
自下至上的硬件电路设计方法的主要步骤
1、根据系统对硬件的要求,详细编制技术规格书,并画出系 统控制流图; 2、根据技术规格书和系统控制流图,对系统的功能进行细化, 合理地划分功能模块,并画出系统的功能框图;
3、进行各功能模块的细化和电路设计;
4、各功能模块电路设计、调试完成后,将各功能模块的硬件 电路连接起来再进行系统的调试,最后完成整个系统的硬件设 计。
数字系统 vs 模拟系统
• 数字系统与模拟系统相比,具有如下特点。
• ① 稳定性。数字系统所加工处理的信息是离散的数字 量,对用来构成系统的电子元器件要求不高,即能以 较低的硬件实现较高的性能。 • ② 精确性。数字系统中可用增加数据位数或长度来达 到数据处理和传输的精确度。
• ③ 可靠性。数字系统中可采用检错、纠错和编码等信 息冗余技术,以及多机并行工作等硬件冗余技术来提 高系统的可靠性。 • ④ 模块化。把系统分成不同功能模块,由相应的功能 部件来实现,从而使系统的设计、试制、生产、调试 和维护都十分方便。
VHDL语言程序的五个组成部分
库说明
包集合说明
基 本 单 元 库存放已编译的实体、构造体、包 集合、和配置。相当于书库。 包集合存放各设计模块能共享的数据 类型、常数和子程序。相当于书架。 实体用于说明所设计的系统的外部 接口信号。
实体说明 构造体描述
构造体用于描述系统内部的结构和 行为。
配置用于从库中选取所需单元来组成 系统设计的不同版本。
数字系统
• 是对数字信息进行存储、传输、处理的电子系统
• 一般由若干数字电路和逻辑功能部件组成,并由一个 控制部件统一指挥。逻辑部件担负系统的局部任务, 完成子系统的功能。 • 数字系统可以是一个独立的实用装置,如数字表、数 字计算机等;也可以是一个具有特定性能的逻辑部件, 如计算机中的内存板,数字表中的主控板等。不论它 们的复杂程度如何,规模大小怎样,其实质而言仍是 数字逻辑问题。实际上是对数字量的存储、传输和处 理的过程。
VHDL
VHSIC Hardware Description Language Very High Speed Integrated Circuit
• • • •
1980年 美国国防部开始开发 1987 IEEE标准化IEEE-1076-1987 1993 修订IEEE-1076-1993 提供从门级到系统级的硬件建模
Q2
n 1
Q1
n
Q1
n 1
Q0
n
状态方程
• Q0 的输出关系复杂一些,就必须选用JK触发器,并且利用 Q1 、Q2的输出作为约束条件,经组合逻辑电路作为Q0的J 、 K输入。(选择JK触发器的理由:JK触发器具有置0、置1、 保持和翻转功能,在各类集成触发器中,JK触发器的功能最 为齐全。实际应用中,具有很强的通用性)
1.2.1 电原理图表示与VHDL语言描述的比较
二选一选择器
1.2.2 利用HDL语言设计系统硬件的特点
• 采用自上至下(Top Down)的设计方法
• 系统中可大量采用ASIC芯片
• 采用系统早期仿真
• 降低了硬件电路设计难度 • 主要设计文件是用HDL语言编写的源程序
1.2.3 采用自上至下(Top Down)的设计方法 所谓自上至下的设计方法,就是从系统总体要求出 发,自上至下地逐步将设计内容细化,最后完成系统硬 件的整体设计。 在利用HDL的硬件设计方法中,设计者将自上至下 分成3个层次对系统硬件进行设计。 第一层次:行为描述。
第一章
数字系统硬件源自文库计概述
自计算机诞生以来,数字系统设计历来存在两个分枝, 即系统硬件设计和系统软件设计。同样,设计人员也因工作 性质不同,被分成两群:硬件设计人员和软件设计人员。他 们各自从事各自的工作,很少涉足对方的领域。特别是软件 设计人员更是如此。但是,随着计算机技术的发展和硬件描 述语言HDL的出现,这种界线已经被打破。数字系统的硬件 构成及其行为完全可以用HDL语言来描述和仿真。这样,软 件设计人员也同样可以借助HDL语言,设计出符合要求的硬 件系统。不仅如此,利用HDL语言来设计系统硬件与利用传 统方法设计系统硬件相比,还带来了许多突出的优点。它是 硬件设计领域的一次变革,对系统的硬件设计将产生巨大的 影响。在本章将详细介绍这种硬件设计方法的变化。
• 硬件描述语言HDL,是一种用形式化方法描述数字电 路和系统的语言。 • 利用这种语言,数字电路系统的设计可以从上层到下 层逐层描述自己的设计思想,用一系列分层次的模块 来表示极其复杂的数字系统。然后,利用EDA工具, 逐层进行仿真验证,再把其中需要变为实际电路的模 块组合,经过自动综合工具转换到门级电路网表。接 下去,再用专用集成电路ASIC或可编程逻辑器件自动 布局布线工具,把网表转换为要实现的具体电路布线 结构。
基本数字系统结构
1.1 传统的系统硬件设计方法
在计算机辅助电子系统设计出现以前,人们一直采用 传统的硬件电路设计方法来设计系统的硬件。这种硬件设 计方法主要有以下几个主要特征。
• 采用自下至上(Bottom UP)的设计方法 • 采用通用的逻辑元、器件 • 在系统硬件设计的后期进行仿真和调试
• 主要设计文件是电原理图
RTL(Register Translation)方式描述
RTL方式描述称为寄存器传输描述(又称数据流 描述)。如前所述,用行为方式描述的系统结构的程 序,其抽象程度高,是很难直接映射到具体逻辑元件 结构的硬件实现的。要想得到硬件的具体实现,必须 将行为方式描述的VHDL语言程序改写为RTL方式描 述的VHDL语言程序。也就是说,系统采用RTL方式 描述,才能导出系统的逻辑表达式,才能进行逻辑综 合。当然,这里所说的“可以”进行逻辑综合是有条 件的,它是针对某一特定的逻辑综合工具而言的。 下面仍以六进制计数器为例,说明一下如何用 VHDL语言,以RTL方式来描述它的工作特性。
1)名字的最前面应该是英文字母;
2)能使用的字符只有英文字母、数字和短下划线“_” ;
3)不能连续使用“_”符号,在名字的最后也不能使用 “_” 。
4)其注释从两个短划线“--”符号开始到该项末尾(回车、 换 行符)结束。
行为描述举例
该段VHDL语言程序勾 画出了六进制计数器的输入 输出引脚和内部计数过程的 计数状态变化时序和关系。 这实际上是计数器工作模型 的描述。当该程序仿真通过 后,说明六进制计数器模型 是正确的。在此基础上再改 写该程序,使其语句表达式 易于用逻辑元件来实现。这 是第二层次所要做的工作。
第一步,选择逻辑元、器件。我们选择与非门。 第二步,进行电路设计。
列真值表
画卡诺图化简并写出 逻辑函数表达式
画逻辑电路图
组合逻辑电路设计方法(补充)
1. 设计步骤:
(1)建立描述逻辑问题的真值表 ①分析题目所给的条件 ②找出问题的条件与目的及因果关系 ③确定输入、输出变量 ④列出真值表
(2)由真值表写出逻辑函数表达式;(如:用最小项积之和的形 式) (3)对输出逻辑函数进行化简 (4)画出逻辑电路图
在完成编写RTL方式的描述程序以后,再用仿真工具对RTL方式描述的程序进行仿真。 如果通过这一步仿真,那么就可以利用逻辑综合工具进行综合了。
逻辑综合(Logic Synthesis)
逻辑综合这一阶段是利用逻辑综合工具,将RTL 方式描述的程序转换成用基本逻辑元件表示的文件 (门级网络表)。 由逻辑综合工具产生门级网络表后,在最终完成 硬件设计时,还可以有两种选择。第一种是由自动布 线程序将网络表转换成相应的ASIC芯片的制造工艺, 做出ASIC芯片。第二种是将网络表转换成FPGA(现 成可编程门阵列)的编程码点,利用FPGA完成硬件 电路设计。
结论:在用HDL语言设计系统硬件时,无论是设 计一个局部电路,还是设计由多块插件板组成的复杂 系统,上述自上至下的3个层次(的设计步骤是必不 可少的。 第一层次:行为描述。
第二层次:RTL方式描述。
第三层次:逻辑综合。
2. 填写状态转换真值表
3. 次态卡诺图 4. 选定触发器类型求出输出方程、状态方程和驱动方程 5. 画电路图
1.2 利用硬件描述语(HDL)的硬件电路设计方法
硬件描述语言:就是可以描述硬件电路的功能,信 号连接关系及定时关系的语言。它能比电原理图更有 效地表示硬件电路的特性。 代 表 性 的 硬 件 电 路 描 述 语 言 : VHDL 语 言 , Verilog HDL语言。
课本的例子
• 设计一个六进制计数器
画出状态转换图
系统分析
画出状态转换表,发现 Q2 当前的输出是Q1 前一 个状态的输出,而Q1 当 前的输出就是Q0 前一个 状态的输出。
选定触发器类型
• Q2当前的输出是Q1前一个状态的输出,而Q1当前的输出就 是Q0前一个状态的输出。这样,Q2和Q1采用D触发器。
第二层次:RTL方式描述。
第三层次:逻辑综合。
行为描述(Behaviour)
行为描述,实质上就是对整个系统的数学模型的 描述。对系统进行行为描述的目的是试图在系统设计 的初始阶段,通过对系统行为描述的仿真来发现设计 中存在的问题。在行为描述阶段,并不真正考虑其实 际的操作和算法用什么方法来实现。考虑更多的是系 统的结构及其工作过程是否能达到系统设计规格书的 要求。 下面以六进制计数器为例,说明一下如何用VHDL 语言,以行为方式来描述它的工作特性。
从上述设计过程我们可以看到,系统硬件的设计是从选择具体元、器 件开始的,并用这些元、器件进行逻辑电路设计,完成系统各独立功能模 块设计,然后再将各功能模块连接起来,完成整个系统的硬件设计。上述 过程从最底层开始设计,直至到最高层设计完毕,故将这种设计方法称为 自下至上的设计方法。
用自下至上的设计方法设计一个三人表决器
配置语句
VHDL语言程序书写基本格式 LIBRARY 库名; USE 库名.包集合名.项目名; ENTITY 实体名 IS [类属参数说明]; [端口说明]; END ENTITY 实体名; ARCHITECTURE 构造体名 OF 实体名 IS [定义语句] 内部信号,常数,数据类型,函数等的定义; BEGIN [处理语句]; END ARCHITECTURE 构造体名;
JK触发器设计
状态方程 驱动方程
n n
Q0
n 1
JQ 0 K Q 0
J Q 2 Q1
n n
n
K Q 2 Q1
n
1 1 0 0 0 0
0 0 0 1 1 0
JK触发器真值表
Q1
J Q 2 Q1
n n n
K Q 2 Q1
n
驱动方程
原理图
时序逻辑电路设计步骤(补充)
1. 画出状态转换图
电子系统 • 所谓电子系统,通常是指由若干相互联 接、相互作用的基本电路组成的具有特 定功能的电路整体。 • 电子系统有大有小、大到航天飞机的测 控系统、小到出租车计价器,它们都是 电子系统。可以概括地讲,凡是可以完 成一个特定功能的完整的电子装置都可 称为电子系统。
电子系统组成
• 从组成来看,一个电子系统一般包括模拟系 统——传感、高低频放大、模/数、数/模变 换以及执行机构等;数字系统——信息处理、 决策、控制。但是,对于软硬结合的电子系统 而言,它的信息处理、决策与控制部分大部分 可内含有CPU的微处理机(如单片机)的电子系 统来实现。 • 所以从组成来讲,一般可以把电子系统看成由 两大部分组成:模拟子系统和数字子系统。