EDA 课件ch10 VHDL基本语句(打印)
第10章_VHDL基本语句PPT课件
注意:赋值语句和赋值源的数据类型必须严格一致
2021/2/10
5
1. 信号赋值语句 ❖格式: 目的信号量<=信号量表达式; ❖两边信号量的类型和位长度应该是一致的。
2. 变量赋值语句 ❖格式: 目的变量 :=表达式; ❖两者类型必须相同,目的变量的类型、范围、 初值应事先给出。
2021/2/10
2021/2/10
12
10.1.4 LOOP语句
❖ LOOP语句的格式一般有三种: 1. 单个LOOP语句
❖ 格式: [标号]:LOOP 顺序处理语句; END LOOP [标号];
❖ 例1 ……
L2: LOOP a:=a+1; EXIT L2 WHEN a>10;
END LOOP L2; 说明:当a大于10时结束循环执行a:=a+1 。
❖ 例:CASE sel IS WHEN 0=> q <=i0 ; WHEN 1=> q <=i1 ; WHEN 2=> q <=i2 ; WHEN 3=> q <=i3 ; END CASE;
2021/2/10
9
注意:
❖ 条件句的选择值必须在表达式的取值范围之内。
❖ 除非所有条件句中的选择值能完整覆盖CASE语句中表达式 的取值,否则最末一个条件句中的选择必须用“OTHERS” 表示。
第10章 VHDL基本语句
✓顺序语句和并行语句是程序设计中两类基本描 述语句。 ✓在逻辑系统设计中,这些语句能从多个侧面完 整描述数字系统的硬件结构和基本逻辑功能。
10.1 顺序语句
顺序语句的特点:
顺序语句的执行顺序(指仿真执行),与它们的书写顺序基 本一致;
EDA技术_第二章_VHDL语言ppt课件
▪ VHDL语言的其它数据类型、子程序、包集合及配置
❖ 3.了解:
▪ 标示符:扩展标识符;数据类型转换
2020/4/26
.
2
VHDL语言程序通常包含5部分:
LOGO
实体说明:
entity:
描述所设计系统的外部接口信号,是可见的。
构造体: architecture 配置: configuration
2020/4/26
.
9
§2.2 VHDL的数据类型及运算操作符 LOGO
❖ VHDL语言同其它语言一样有多种数据类型和运算符, 且它们的定义也大多相同。VHDL语言的特点是用户 可以自己定义数据类型。
▪ 如:type count is integer RANGE 0 to 10;
2020/4/26
2020/4/26
.
8
2.1.5 段名
LOGO
❖ 段名是多个下标名的组合,对应数组中某一段的元素
▪ 格式:标示符(表达式 方向 表达式) ▪ 方向:TO 或 DOWNTO
▪ SIGNAL a ,z :BIT_VECTOR(0 TO 7) ;
▪ Signal b:bit_vector(4 downto 0); ▪ z(0 TO 3)<= a(4 TO 7) ;--z(0)<= a(4)、z(1)<= a(5)…
LOGO
VHDL的语言要素包含
客体(或对象) 数据类型 运算操作符
操作数
VHDL规定: (1)不区分大小写(“”和‘’内的字符除外); (2)每条语句以一个分号;结束; (3)不是所有语句前都可以加标号; (4)一条语句后可以加注释,在注释内容前加两个短划线。
推荐 EDA教程教学课件-第四章 VHDL语言的主要描述语句 精品
顺序执行语句sequential statement
Wait语句 书写格式 wait;--无限等待 wait on [信号列表] --等待信号变化 wait until [条件];--等待条件满足 wait for [时间值];--等待时间到 功能wait语句使系统暂时挂起(等同于end process),此时,信号值开始更新。条件满足后, 系统将继续运行。
第四章 VHDL语言的主要描述语句
顺序执行语句sequential statement
Wait语句 assert语句 If 语句 case语句 for loop语句 while 语句 EXIT 语句 RETURN语句 NULL语句 REPORT语句
顺序执行语句sequential statement
顺序执行语句sequential statement
LOOP语句
P1:PROCESS(a) VARIABLE tmp:STD_LOGIC; tmp :='0'; i := 0; WHILE (i < 8) LOOP tmp := tmp XOR a(i); i := i+1; END LOOP; y <= tmp; END PROCESS P1;
顺序执行语句sequential statement
LOOP语句
LOOP语句使程序能进行有规则的循环,循环 次数受迭代算法控制。LOOP语句常用来描述 位片逻辑及迭代电路的行为。 循环变量的值在每次循环中都会发生变化。 离散范围表示循环变量在循环过程中的取值 范围。
LOOP语句
CASE语句
《VHDL语言与数字逻辑电路设计》EDA基础 ppt课件
ppt课件
1
第1讲 EDA基础
电子设计自动化EDA(Electronic Design Automation)技术是新一代 的自动辅助电子设计工具,近年来在电子设计与制造领域,EDA技术越 来越受到重视,已形成强劲的发展势头。专用集成电路ASIC (Application Specific Integrated Circuit)、片上系统SoC(System on Chip)、可编程片上系统SoPC(System on Programmable Chip)是当前 各种电子高科技产品的核心部分。ASIC、 SoC 和SoPC的设计必须借助 于EDA工具,而ASIC、 SoC 和SoPC的改进又对EDA工具提出更高的要 求,从而促进了EDA技术的发展。
ppt课件
9
第1讲 EDA基础
1.2 可编程逻辑器件基础
一、可编程逻辑器件(PLD)的分类
1. 按可编程的部位分类:
PROM PLA PAL GAL
与阵列 固定 可编程 可编程 可编程
或阵列 可编程 可编程 固定 固定
输出电路 固定 固定 固定 可组态
ppt课件
10
第1讲 EDA基础
1.2 可编程逻辑器件基础
ppt课件
2
第1讲 EDA基础
1.1 EDA技术的发展及技术特色
EDA技术的发展从60年代中期至今经历了三个阶段。 • 电子线路CAD是EDA发展的初级阶段(60年代中期~80年代初)。 • 电子线路CAE是EDA发展的中级阶段(80年代初~90年代初)。 • ESDA是EDA发展的高级阶段(90年代以来)
13
第1讲 EDA基础
1.2 可编程逻辑器件基础
vhdl基本语法(简略共34页)
vhdl基本语法(简略共34页)VHDL硬件描述语言1.1 VHDL概述1.1.1 VHDL的特点VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述能力强的特点,由于VHDL语言来源于C、Fortran等计算机高级语言,在VHDL语言中保留了部分高级语言的原语句,如if语句、子程序和函数等,便于阅读和应用。
具体特点如下:1. 支持从系统级到门级电路的描述,既支持自底向上(bottom-up)的设计也支持从顶向下(top-down)的设计,同时也支持结构、行为和数据流三种形式的混合描述。
2. VHDL的设计单元的基本组成部分是实体(entity)和结构体(architecture),实体包含设计系统单元的输入和输出端口信息,结构体描述设计单元的组成和行为,便于各模块之间数据传送。
利用单元(componet)、块(block)、过程(procure)和函数(function)等语句,用结构化层次化的描述方法,使复杂电路的设计更加简便。
采用包的概念,便于标准设计文档资料的保存和广泛使用。
3. VHDL语言有常数、信号和变量三种数据对象,每一个数据对象都要指定数据类型,VHDL的数据类型丰富,有数值数据类型和逻辑数据类型,有位型和位向量型。
既支持预定义的数据类型,又支持自定义的数据类型,其定义的数据类型具有明确的物理意义,VHDL是强类型语言。
4. 数字系统有组合电路和时序电路,时序电路又分为同步和异步,电路的动作行为有并行和串行动作,VHDL语言常用语句分为并行语句和顺序语句,完全能够描述复杂的电路结构和行为状态。
1.1.2 VHDL语言的基本结构VHDL语言是数字电路的硬件描述语言,在语句结构上吸取了Fortran和C等计算机高级语言的语句,如IF语句、循环语句、函数和子程序等,只要具备高级语言的编程技能和数字逻辑电路的设计基础,就可以在较短的时间内学会VHDL语言。
但是VHDL毕竟是一种描述数字电路的工业标准语言,该种语言的标识符号、数据类型、数据对象以及描述各种电路的语句形式和程序结构等方面具有特殊的规定,如果一开始就介绍它的语法规定,会使初学者感到枯燥无味,不得要领。
VHDL基本语法PPT课件
OR 、 AND 、 NAND 、 NOR 和 XOR 。常用的是前 3 种。
参加逻辑运算的 变量或者信号必 须有相同的数据类型和数据长度。逻 辑运算符适用的数据类型为
std_ logic
第1页/共59页
例:
SIGANL a,b,e,f:STD_LOGIC; SIGANL c,d: STD_LOGIC_VECTOR(7 DOWNTO 0);
a AND b; c AND d; a AND c;
a OR b; NOT a --正确
c XOR d;
NOT C --正确
--错误 , 因为数据类型不同
第2页/共59页
• 除了 not 运算符的优先级最高外 , 其余逻辑运算符的优先级相同 , 运算从左到 右展开。 因此要注意加括号 , 如 : (a AND b) OR (e AND f) 不能写成 a AND b OR e AND f
信号映射表中的各项用的书写顺序必须和por句映射的元件的端口名书写顺序一致种映射方式第52页共59页设计一个与或门实现的功能为andorresulta1anda2a4a1a2a3a4andorresultop1op2op1op2andresultorresult第53页共59页低层的设计实体andgate它将两个输入信号op1op2进行出信号andresult低层的设计实体orgate它将两个输入信号op1op2进行出信号orresult参见程序例8第54页共59页顶层设计实体andorgate它把两个低层设计实体当作元件引用
VHDL的层次结构设计
第39页/共59页
层次结构设计是设计较大规模硬件 的必要手段 , 也是 VHDL 的重要优 点。
EDA部分课件 VHDL基本语句
(3=> E, 4=>F, 2 =>G(1),1=>G(2) ):= H;--名 字关联方式赋值 ,示例中的信号赋值语句属位置关 联赋值方式,其赋值结果等效于: A <=„0‟;B <=„1‟;C <=„0‟ ;D <=„0‟;示例中的 变量赋值语句属名字关联赋值方式,赋值结果等效 于:G(2) := H(1) ;G(1) := H(2) ; E := H(3) ;F := H(4) ;
IS
Y<=input (0); Y<=input (1); Y<=input (2); Y<=input (3);
IF语句不仅可用于选择器设计,还可用于比较 器,译码器等进行条件控制的逻辑设计。IF语句 中至少应有一个条件句,条件句必须由布尔表达 式构成,条件表达式中能使用关系运算操作及逻 辑运算操作的组合表达式。 IF语句颠倒条件判别次序,会引起在综合时逻辑 功能的变化,即IF语句判别条件不可颠倒。 IF语句中,先处理最起始的条件;如果不满足, 再处理下一个条件。一般把条件约束最多的作为 起始条件。
标识符赋值目标是以简单的标识符作为被赋
值的信号或变量名。 数组单元素赋值目标的表达形式为:
数组类信号或变量名(下标名)
下标名可以是一个具体的数字,也可以 是一个文字表示的数字名,它的取值范围
在该数组元素个数范围内。下标名若是未
明确表示取值的文字(不可计算值),则在 综合时,将耗用较多的硬件资源,且一般 情况下不能被综合。
0
1 0 1 0 1
0
0 1 1 0 0
0
0 0 0 1 1
x
0
0
1
1
1
1
1
1
EDA技术与数字系统设计第4章 VHDL语言基础幻灯片PPT
第4章 VHDL语言基础
ARCHITECTURE choice OF mux41 IS
--结构体说明
SIGNAL able:STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
able<=sel;
PROCESS(able) --进程
BEGIN
CASE able IS
WHEN "00"=> p<=a;
第4章 VHDL语言基础
4.1 VHDL 概 述
4.1.1 VHDL语言的起源 VHDL语言起源于1983年,1986年IEEE标准化组织开始工
作,讨论VHDL语言标准。1987年12月IEEE接受VHDL为 标准HDL,这就是IEEE Std.l076-1987(LRM87)。1993年 IEEE对VHDL重新修订,增加了一些功能,公布了新的 标准版本IEEE Std.1076-1993 (LRM93)。
实 体 (E N T IT Y ) 结 构 体 (A R C H IT E C T U R E )
进 程 (P R O C E S S ) 或其他结构
配 置 (C O N F IG U R A T IO N )
图4.1 VHDL程序的基本结构示意图
第4章 VHDL语言基础
从例4.1的描述可以看出,一个最基本的VHDL程序由三部 分组成:库说明(LIBRARY)、实体说明(ENTITY)和结构 体说明(ARCHITECTURE),其它的结构层次可根据需要 选用。一个程序只能有一个实体,但可以有多个结构 体。
并且可以并入设计库。其功能是对设计实体与外部电路 进行接口描述,例如它可以对一个门电路、一个芯片、 一块电路板乃至整个系统进行接口描述。
《VHDL程序设计基础》课件
语法格式
library library_name; use library_name.packag e_name.item;
库的使用
在程序中引用库中的函 数、过程、数据类型等 。
示例
library IEEE; use IEEE.STD_LOGIC_116 4.ALL;
程序包(Package)
01 程序包描述
并行赋值语句
同时对多个信号进行赋值操作。
生成语句
用于生成多个相似的电路结构, 如多路选择器、译码器等。
04 VHDL设计方法
自顶向下设计方法
总词
从整体到局部的设计方法
详细描述
自顶向下设计方法是一种从整体到局部的设计方法,首先确定系统的整体结构 和功能,然后逐步细化各个模块的设计,最终完成整个系统的设计。这种方法 有助于提高设计的层次性和模块化,便于设计和调试。
状态机设计
总结词
通过实例演示如何使用VHDL设计状态机。
详细描述
介绍状态机的基本概念和设计方法,包括状态图的绘制、状 态转移的实现等。通过具体的VHDL代码实现一个有限状态机 ,并解释代码中的各个部分。
06 VHDL仿真与验证
仿真工具与流程
仿真工具
ModelSim、Vivado Simulation等常用的 VHDL仿真工具,支持多种仿真算法和精度 。
02 语法格式
03 包的内容
04 包的使用
05 示例
程序包是库的子集,用于 组织相关的函数、过程、 数据类型等。
package package_name is
在包中声明函数、过程、 数据类型等。
在其他程序中引用包中的 内容。
package logic_operators is function AND (A, B: in std_logic) return std_logic; function OR (A, B: in std_logic) return std_logic; end logic_operators;
VHDL基本语句
-- 输入初始值
IF (s1 ='1') THEN sel <= sel+1 ;
ELSIF (el <= sel+2 ;
ELSIF (s3 ='1') THEN sel <= sel+4 ;
ELSIF (s4 ='1') THEN sel <= sel+8 ;
ELSE NULL;
8ENEDNDacPtRiOvCE;SS ;
-- 当sel=0时选中 -- 当sel为1或3时选中 -- 当sel为2、4、5、6或7时选中 -- 当sel为8~110中任一值时选中
K 康芯科8技 X
10.1 顺序语句
10.1.3 CASE语句
【例10-2】 SIGNAL value : INTEGER RANGE 0 TO 110; SIGNAL out1 : STD_LOGIC ;
FOR后的”循环变量”是一个临时变量,属LOOP语句的局 部变量,不必事先定义. 这个变量只能作为赋值源,不能被赋值,它 由LOOP语句自动定义. 使用时应当注意,在LOOP语句范围内不 要再使用其他与此循环变量同名的标识符.
一般地,综合后对相同的逻辑功能,CASE语句比IF语句的描述 耗用更多的硬件资源,不但如此,对于有的逻辑,CASE 语句无法 描述.
10
10
10.1.4 LOOP语句
(1) 单个LOOP语句,其语法格式如下: [ LOOP标号:] LOOP 顺序语句 END LOOP [ LOOP标号 ];
... L2 : LOOP
-- 注意,这里使用了空操作语句
END IF ;
z1<='0' ; z2<='0'; z3<='0'; z4<='0'; --输入初始值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《EDA技术及应用》第10章VHDL基本语句
10.1 顺序语句
顺序语句(Seguential statements)是相对于并行语句而言的。
顺序语句的特点是,每一条顺序语句的执行(指仿真执行)顺序是与它们的书写顺序基本一致的。
顺序语句只能出现在进程和子程序中,子程序包括函数和过程。
2
六类顺序语句
•赋值语句
•流程控制语句
•等待语句
•子程序调用语句
•返回语句
•空操作语句
3
赋值语句
•信号赋值语句
•变量赋值语句
变量具有局部特征,对于它的赋值是立即发生的,即是一种时间延迟为零的赋值行为。
信号具有全局性特征,不带可以作为一个设计实体内部各单元之间数据传送的载体,而且可以通过信号与其他的实体进行通信。
4
IF 语句
详见第四章及第六章。
5
CASE语句
•选择值[ |选择值]
–单个普通数值,如6。
–数值选择范围,如(2 TO 4)。
–并列数值,如3|5。
–混合方式,以上三种方式的混合。
6
10.2并行语句
•并行信号赋值语句(Concurrent Signal Assignments)•进程语句(Process Statements)
•块语句(Block Statements)
•条件信号赋值语句(Selected Signal Assignments)
•元件例化语句(Component Instantiations)
•生成语句(Generate Statements)
•并行过程调用语句(Concurrent Procedure Calls)
20
并行信号赋值语句
•简单信号赋值语句
•条件信号赋值语句
•选择信号赋值语句
22
生成语句产生的8
个相同的电路模块
29
THE END。