硬件描述语言
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014-4-22 1
第3章 硬件描述语言
3.VHDL语言的特点
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
( 1 ) VHDL 具有更强的行为描述能力,从而决定了他成为系 统设计领域最佳的硬件描述语言。强大的行为描述能力是 避开具体的器件结构,从逻辑行为上描述和设计大规模电 子系统的重要保证。 (2 )VHDL 丰富的仿真语句和库函数,使得在任何大系统的 设计早期就能查验设计系统的功能可行性,随时可对设计 进行仿真模拟。 ( 3 ) VHDL 语句的行为描述能力和程序结构决定了他具有支 持大规模设计的分解和已有设计的再利用功能。符合市场 需求的大规模系统高效,高速的完成必须有多人甚至多个 代发组共同并行工作才能实现。 (4)对于用VHDL完成的一个确定的设计,可以利用EDA工具 进行逻辑综合和优化,并自动的把VHDL描述设计转变成门 级网表。 ( 5 ) VHDL 对设计的描述具有相对独立性,设计者可以不懂 硬件的结构,也不必管理最终设计实现的目标器件是什么, 而进行独立的设计。
2014-4-22
7
第3章 硬件描述语言
常数、变量、信号所描述的对象
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
VHDL 语言中,可以赋予一个值的对象就称为客体或对象。 信号(SIGNAL): 对应物理意义上是实际电路连接线。 变量(VARIABLE): 相当于暂存寄存器,变量值不是最终结果。 常数(CONSTANT): 如电源、地等,用来描述固定的值。 ★信号量和变量的区别: ① 信号量是全局量(只能在进程、函数中使用和定义) 变量是局部量(只能在构造体、子程序中定义,而不 能在进程、过程、函数中定义) ② 信号赋值用“<=”,而变量用“:=”。 ③ 信号和变量可以相互代入。 如:a 是变量,b是信号,则a:=b;b<=a; ④ 变量是立即赋值的,而信号量是在进程结束时赋值的。
3
第3章 硬件描述语言
② RTL ( Register transfer Level ):即寄存器传输级 描述,也称为数据流描述。既显示地表示了设计单元 的行为,又隐含该设计单元的结构。
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
描述电路的功能和结构 调用特殊的硬件 用于综合
Input 1
2014-4-22 5
第3章 硬件描述语言
3.2 VHDL语言基本结构
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
一.VHDL 语言的基本结构: 库说明+包集合+实体+构造体+(配置) 库(library):用来存放已经编译的实体、构造体、包集 合和配置,库一般可由用户产生或者由ASIC芯片制造商提 供。 包集合(package):存放各设计模块都能共享的数据类 型、常数和子程序。 实体(Entity):系统的外部接口关系。 构造体(Architecture):描述系统内部的结构和行为。 配置(configuration):用于从库中选取所需的单元, 来组成系统设计的不同版本。
2014-4-22 2
第3章 硬件描述语言
4.VHDL语言描述方式
① Behavioral (行为级描述):就是对整个系统的数学 模型进行描述。只表示输入/出之间的转换行为,不包 含任何结构信息,无需关注设计功能的门级实现。其 抽象程度比 RTL 描述方式和结构描述方式更高。 在程 序中大量采用算术运算、 关系运算、 惯性延时、 传 输延时等难以进行逻辑综合和不能进行逻辑综合的 VHDL语句。
第3章 硬件描述语言
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
③ Superlog 集合了Verilog的简洁、C语言的强大、功能验证和系统 级结构设计等特征,是一种高速的硬件描述语言。由 Phil Moorby 与 Peter Flake 和 一 家 叫 做 Co - Design Automat - ion 的 EDA 公司合作,在 Verilog 语言的基础 上,结合高级语言 C 、 C ++甚至 Java 等语言的特点, 进行扩展,于 1999 年发布了 Superlogtm 系统设计语言, 同时开发了两个工具 :SystemSimtm( 用于系统开发 ) 和 SystemExtm(用于高级验证)。 ④ SystemC 由 Synopsys 和 Coware 合作为满足 SOC 要求开发的(在系 统芯片各个设计中,像系统定义、软硬件的划分、设 计实现等)一种能同时实现较高层次的软件和硬件描 述的系统级设计语言。著名公司Cadence也于2001年加 入了SystemC联盟。
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
Input1…N
IF input1 THEN FOR j IN high DOWNTO low LOOP shift(j) := shift(j); END LOOP; output1 <= shift AFTER 5ns 2014-4-22
Output1…N
2014ຫໍສະໝຸດ Baidu4-22
signal variable variable
9
第3章 硬件描述语言
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
signal a, b, c, x, y : signal a, b, x, y : integer integer process(a, b, c) process(a, b, c) begin variable c : c <= a; integer; x <= c + 2; begin c <= b; c := a; y <= c + 4; end process; x <= c + 2;
Output 1
底层元件 底层元件
Input n
2014-4-22 4
第3章 硬件描述语言
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
③ Structural Level (结构级描述):描述该设计单元的 硬件结构、把已有的设计单元方便地用到新的设计中, 使用元件例化语句及配置语句来描述元件的类型及元件 的互联关系。结构描述方式的基本框架为用COMPONENT语 句指明电路中所用的已生成的模块,用PORTMAP()语句 将模块连接起来。 元件描述—用于声明端口类型和数据类型 COMPONENT <低层设计名称> IS PORT ( <端口名称> : <端口类型> <数据类型>; ….. <端口名称> : <端口类型> <数据类型>; END COMPONENT; 元件配置—用于映射端口 <实例名称> : <低层设计名称>PORT MAP( <低层端口名称> => <本层端口名称>; … ; <低层端口名称> => <本层端口名称>;)
2
a b
+ +
x
y
4
2 b
c := b;
y <= c + 4; end process;
4
2014-4-22
+
x
+
y
10
2014-4-22
6
第3章 硬件描述语言
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
2:实体说明 ENTITY 实体名字 IS PORT (端口名,…); END 实体名; 说明: 1:实体名可用英文字母、数字、下划线表示 ,名 字开头只能为英文字母,结尾不能用下划线。 2:PORT(端口名:方向 数据类型); 端口名与实体名命名规则相同。 方向: IN 表示输入 OUT 表示输出(构造体内部不能再使用) INOUT 表示输入输出 BUFFER 表示输出端带有反馈类型。(构造体内 部可再使用)
2014-4-22 8
第3章 硬件描述语言
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
相同点:值可变,可综合为逻辑或线 不同点:变量赋值有立即性,且只用于process,
subprogram中(VHDL-1076-87),而信号除此之外,还可
用于并行语句中 • 应用: 简单计算 复杂计算 中间结果
第3章 硬件描述语言
3.VHDL语言的特点
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
( 1 ) VHDL 具有更强的行为描述能力,从而决定了他成为系 统设计领域最佳的硬件描述语言。强大的行为描述能力是 避开具体的器件结构,从逻辑行为上描述和设计大规模电 子系统的重要保证。 (2 )VHDL 丰富的仿真语句和库函数,使得在任何大系统的 设计早期就能查验设计系统的功能可行性,随时可对设计 进行仿真模拟。 ( 3 ) VHDL 语句的行为描述能力和程序结构决定了他具有支 持大规模设计的分解和已有设计的再利用功能。符合市场 需求的大规模系统高效,高速的完成必须有多人甚至多个 代发组共同并行工作才能实现。 (4)对于用VHDL完成的一个确定的设计,可以利用EDA工具 进行逻辑综合和优化,并自动的把VHDL描述设计转变成门 级网表。 ( 5 ) VHDL 对设计的描述具有相对独立性,设计者可以不懂 硬件的结构,也不必管理最终设计实现的目标器件是什么, 而进行独立的设计。
2014-4-22
7
第3章 硬件描述语言
常数、变量、信号所描述的对象
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
VHDL 语言中,可以赋予一个值的对象就称为客体或对象。 信号(SIGNAL): 对应物理意义上是实际电路连接线。 变量(VARIABLE): 相当于暂存寄存器,变量值不是最终结果。 常数(CONSTANT): 如电源、地等,用来描述固定的值。 ★信号量和变量的区别: ① 信号量是全局量(只能在进程、函数中使用和定义) 变量是局部量(只能在构造体、子程序中定义,而不 能在进程、过程、函数中定义) ② 信号赋值用“<=”,而变量用“:=”。 ③ 信号和变量可以相互代入。 如:a 是变量,b是信号,则a:=b;b<=a; ④ 变量是立即赋值的,而信号量是在进程结束时赋值的。
3
第3章 硬件描述语言
② RTL ( Register transfer Level ):即寄存器传输级 描述,也称为数据流描述。既显示地表示了设计单元 的行为,又隐含该设计单元的结构。
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
描述电路的功能和结构 调用特殊的硬件 用于综合
Input 1
2014-4-22 5
第3章 硬件描述语言
3.2 VHDL语言基本结构
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
一.VHDL 语言的基本结构: 库说明+包集合+实体+构造体+(配置) 库(library):用来存放已经编译的实体、构造体、包集 合和配置,库一般可由用户产生或者由ASIC芯片制造商提 供。 包集合(package):存放各设计模块都能共享的数据类 型、常数和子程序。 实体(Entity):系统的外部接口关系。 构造体(Architecture):描述系统内部的结构和行为。 配置(configuration):用于从库中选取所需的单元, 来组成系统设计的不同版本。
2014-4-22 2
第3章 硬件描述语言
4.VHDL语言描述方式
① Behavioral (行为级描述):就是对整个系统的数学 模型进行描述。只表示输入/出之间的转换行为,不包 含任何结构信息,无需关注设计功能的门级实现。其 抽象程度比 RTL 描述方式和结构描述方式更高。 在程 序中大量采用算术运算、 关系运算、 惯性延时、 传 输延时等难以进行逻辑综合和不能进行逻辑综合的 VHDL语句。
第3章 硬件描述语言
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
③ Superlog 集合了Verilog的简洁、C语言的强大、功能验证和系统 级结构设计等特征,是一种高速的硬件描述语言。由 Phil Moorby 与 Peter Flake 和 一 家 叫 做 Co - Design Automat - ion 的 EDA 公司合作,在 Verilog 语言的基础 上,结合高级语言 C 、 C ++甚至 Java 等语言的特点, 进行扩展,于 1999 年发布了 Superlogtm 系统设计语言, 同时开发了两个工具 :SystemSimtm( 用于系统开发 ) 和 SystemExtm(用于高级验证)。 ④ SystemC 由 Synopsys 和 Coware 合作为满足 SOC 要求开发的(在系 统芯片各个设计中,像系统定义、软硬件的划分、设 计实现等)一种能同时实现较高层次的软件和硬件描 述的系统级设计语言。著名公司Cadence也于2001年加 入了SystemC联盟。
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
Input1…N
IF input1 THEN FOR j IN high DOWNTO low LOOP shift(j) := shift(j); END LOOP; output1 <= shift AFTER 5ns 2014-4-22
Output1…N
2014ຫໍສະໝຸດ Baidu4-22
signal variable variable
9
第3章 硬件描述语言
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
signal a, b, c, x, y : signal a, b, x, y : integer integer process(a, b, c) process(a, b, c) begin variable c : c <= a; integer; x <= c + 2; begin c <= b; c := a; y <= c + 4; end process; x <= c + 2;
Output 1
底层元件 底层元件
Input n
2014-4-22 4
第3章 硬件描述语言
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
③ Structural Level (结构级描述):描述该设计单元的 硬件结构、把已有的设计单元方便地用到新的设计中, 使用元件例化语句及配置语句来描述元件的类型及元件 的互联关系。结构描述方式的基本框架为用COMPONENT语 句指明电路中所用的已生成的模块,用PORTMAP()语句 将模块连接起来。 元件描述—用于声明端口类型和数据类型 COMPONENT <低层设计名称> IS PORT ( <端口名称> : <端口类型> <数据类型>; ….. <端口名称> : <端口类型> <数据类型>; END COMPONENT; 元件配置—用于映射端口 <实例名称> : <低层设计名称>PORT MAP( <低层端口名称> => <本层端口名称>; … ; <低层端口名称> => <本层端口名称>;)
2
a b
+ +
x
y
4
2 b
c := b;
y <= c + 4; end process;
4
2014-4-22
+
x
+
y
10
2014-4-22
6
第3章 硬件描述语言
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
2:实体说明 ENTITY 实体名字 IS PORT (端口名,…); END 实体名; 说明: 1:实体名可用英文字母、数字、下划线表示 ,名 字开头只能为英文字母,结尾不能用下划线。 2:PORT(端口名:方向 数据类型); 端口名与实体名命名规则相同。 方向: IN 表示输入 OUT 表示输出(构造体内部不能再使用) INOUT 表示输入输出 BUFFER 表示输出端带有反馈类型。(构造体内 部可再使用)
2014-4-22 8
第3章 硬件描述语言
路 漫 漫 其 修 远 兮 吾 将 上 下 而 求 索
相同点:值可变,可综合为逻辑或线 不同点:变量赋值有立即性,且只用于process,
subprogram中(VHDL-1076-87),而信号除此之外,还可
用于并行语句中 • 应用: 简单计算 复杂计算 中间结果