EDA技术及应用教程 讲义
王 建 波
2002年 9月
EDA 讲义 王建波
第一章 EDA发展综述
? 1,1 CAD与 EDA
? 计算机辅助设计技术( Computer Aided
Design)
? 电子设计自动化( Electronic Design
Automation)
可以说 EDA是 CAD的高级阶段
EDA 讲义 王建波
EDA发展趋势
自顶
向下
设计
CAE
CAD
1975 1980 1985 1990 1995
逻辑综合 HDL
参数分析自动
测试设计
电路图输入
逻辑模拟
PCB版 LSI布线设计
EDA 讲义 王建波
1,2 EDA技术与器件的发展
? 1,CAD阶段 60-80年代以 PCB制作为主
? 2,CAE阶段 80-90年代以电路仿真、分
析为代表
? 3,EDA阶段 90年代以后以复杂电路设
计,可编程器件设计为代表。可以应
用 IP核,制作 ASIC器件。
EDA 讲义 王建波
1,3 EDA特征与工具
? 特征:自顶向下 TOP DOWN
? 工具, 物理工具 ( PCB制作等)
逻辑工具 ( PLD器件设计)
特别是 ISP( In System Programmability)
和 CPLD( Complex Programmable Logic
Device) 的使用!
EDA 讲义 王建波
1,4 可编程数字 ASIC
? ASIC( Application Specific Integrated
Circuit)
定制淹膜 门阵列 标准单元 PLD
PLD( PROM,PAL,GAL,EPLD,CPLD、
FPGA等等)
EDA 讲义 王建波
?发展特点
? 价格不断降低
? 集成度不断提高
? 向系统级发展
? 全新的 PLD平台
? 绿色 CPLD出现
EDA 讲义 王建波
1,5 可编程模拟 PLD
? Lattice公司于 1992年提出 ISP技术并于
1999年 11月推出模拟 PLD。
? 主要用于:
? 1、信号调理
? 2、信号处理
? 3、信号转换
EDA 讲义 王建波
1,6 结构化的硬件描述语言 HDL
? HDL( Hardware Description Language)
ABEL AHDL Verilog HDL VHDL
EDA 讲义 王建波
第二章 可编程逻辑器件发展趋势
? 2,1 片上系统( System-On-a-Chip)
? 1,系统集成
? 2、系统存储
? 3、同步时序
? 4、系统接口
EDA 讲义 王建波
2,2 片上系统的设计问题
? 1,IP( Intelligent Property) 核重用
? 2、形式验证
? 3、测试基准
? 4、可再配置计算
? 5、布局规划
? 6、核心设计
EDA 讲义 王建波
2,3基于 IP模块的片上系统设计技术
? 1、片上系统和 IP模块
? 2、片上系统设计方法的发展趋势
? 3、硬件 IP模块
? 4、系统芯片展望
EDA 讲义 王建波
2,4可编程模拟器件
2,5混合可编程器件
? 1、混合信号 SOC
? 2,实际存在的问题
? 3、新创意、新思想
EDA 讲义 王建波
第三章 可编程逻辑器件基本原理
3,1概述
PLD( Programmable Logic Device)
一、基本结构
? 1、结构,由与、或阵列和 I/O结构等组成。
(见图 P3,1)
? 2,PLD单元电路表示(见图 P3,2)
二,PLD分类
EDA 讲义 王建波
? 1、按照与、或阵列可编程分类
A,与门固定、或门可编程
B,或门固定、与门可编程
C,与门、或门均可编程
? 2、按照集成度分类
? 3、按照编程工艺分类
A,熔丝和反熔丝工艺器件
B,浮栅编程器件
C,SRAM编程器件
EDA 讲义 王建波
3,2 PAL器件
一、概述 PAL( Programmable Array Logic)
二、内部电路结构
三,PAL器件的开发
EDA 讲义 王建波
3,3 GAL器件
一,GAL器件概述( Generic Array Logic)
1,器件特点
可以反复编程使用
2、分类与参数
二、普通型 GAL器件
1、内部电路结构
2、输出逻辑宏单元( OLMC)
OLMC( Output Logic Macro Cell)
可以实现软件进行的多种配置输出形式
EDA 讲义 王建波
三,OLMC的输出结构类型
? 1、简单模式
? 2、复合模式
? 3、寄存器模式 (时序电路基本结构)
四,GAL器件的开发与编程
1、硬件条件:编程器和计算机
2、软件条件:可编程器件编译软件
如,ABEL,FUSEMAP等等
EDA 讲义 王建波
第四章,Lattice 公司可编程器件介绍
4,1 ISP器件概述
4,2高密度 ISP-PLD器件
一,ispLSI器件结构原理
1、集总布线区 GRP( Global Routing Pool)
完成信号互连
2,万能逻辑块 GLB( Generic Logic Block)
可编程阵列
3,输出布线区 ORP( Output Routing Pool)
输出配置区
EDA 讲义 王建波
4、输入输出单元 IOC( I/O Cell)
5,巨型块( Megablock)
包括 8个 GLB,1个 ORP,16个 IOC和两个专用 I/O
6,时钟分配单元
二、在系统编程
1、各种状态
2、实现方式
3、编程组态与接口
EDA 讲义 王建波
4,3低密度 ISP-PLD原理
4,4 ISP-GDS原理
一,ispGDS( Generic Digital Switch) 器件介绍
用于灵活配置连接状态的器件
二,ispGDS器件编程与使用
语言描述 软件编译 编程、使用
EDA 讲义 王建波
4,5 ispGDX在系统可编程开关阵列
用于复杂数字电路的快速连接
4,6 ispPAC可编程模拟器件
一、基本组成和特点
二、结构
三、应用
用于模拟信号调理、放大、选频、数学运算等等。
EDA 讲义 王建波
4,7Lattice公司 ISP-PLD器件的性能
4,8Lattice/Vantis公司 CPLD简介
EDA 讲义 王建波
第 8章硬件描述语言
8,1 HDL概述
一,HDL概述
? HDL( Hardware Description Language)
ABEL AHDL Verilog HDL VHDL
EDA 讲义 王建波
二、语言特点
1、自顶向下 TOP DOWN
2,采用 ASIC芯片
3、预测仿真
4、降低设计难度
三,HDL语言优点
8,2 VHDL与 Verilog HDL 的比较
EDA 讲义 王建波
第 9 章 VHDL
9,1 VHDL语言基础
一、基本语法
1、源文件由各种语句构成
2、关键字、标识符、常量之间至少要一个空格
隔开
3、常数要区分大小写
4、每行换行有结束标志。
5、注释文字以双划线,--”开始,直到行结尾
EDA 讲义 王建波
二、标识符、数据对象、数据类型和属性
1、标识符(分短标识符和扩展标识符)
语法规定:
? 必须以英文字母开头
? 英文字母、数字( 0-9)和下划线都是有效字符
? 标识符不区分大小写
? 下划线,_”的前后都必须有英文或者数字
合法标识符举例
S_ABCD,sig17,abc_efg
非法标识符举例
S-ABCD,17sig,abc_,_now
EDA 讲义 王建波
2、数据对象
包括常量( CONSTANT),变量( VARIABLE),信号
( SIGNAL) 和文件( FILE) 四种
( 1)常量( CONSTANT),在文件中对某常数赋予一个
固定的值。通常在程序开始处赋值,数据类型在说明
语句中说明。其格式为:
CONSTANT 常数名:数据类型,=表达式;
例如:
CONSTANT VCC,REAL,=5.0;
CONSTANT Fbus,BIT_VECTOR,=“1011”;
CONSTANT Delay,TIME,10ns;
它的使用范围取决于它定义的位置,可以用于全局、局
部结构体等等。
EDA 讲义 王建波
( 2)变量( VARIABLE)
程序中的立即赋值量,它只能在进程和子程序中使用,
不能带出当前单元且赋值立即生效。其格式为:
VARIABLE 变量名:数据类型:约束条件,=初始值;
例如:
VARIABLE n,INTEGER RANGE 0 TO 15,=2;
也可以在语句后面紧跟变量赋值语句。格式为:
目标变量名,=表达式;
例如:
VARIABLE a,b,=REAL;
VARIABLE x,y,BIT_VECTOR( 0 TO 7);
则可以有以下合法赋值语句:
EDA 讲义 王建波
x,=y; --运算表达式赋值
b,=a+1;
a,=100; --实数型赋值
y,=“0101101” --位矢量赋值
x( 2 TO 4),=( ‘ 1’,‘ 0’,‘ 1’ ); --段赋值
x( 0 TO 2),=y( 5 TO 7);
x( 6),=‘ 1’; --位赋值
( 3)信号( SIGNAL)
信号是电路内部连接的抽象。作为实体信息交流的通道。
定义格式为:
SIGNAL 信号名:数据类型:约束条件,=表达式;
例如,SIGEAL gnd,BIT,=‘ 0’;
定义一个单值信号 gnd,数据类型是位 BIT,信号初始值
为 0。
EDA 讲义 王建波
SIGNAL data,STD_LOGIC_VECTOR( 7 DOWENTO 0);
该句定义一个位矢量信号(总线) data,数据类型是标
准位矢量 STD_LOGIC_VECTOR,共有 8个元素。
定义完信号类型和表达方式后,还可以对信号进行赋值。
其格式为:
目标信号名 <=表达式;
例如:
x<=y;
a<=‘ 1’ ;
s1<=s2 AFTER 10 ns; --关键字 AFTER后面是延迟时间
( 4)信号和变量的区别
? 信号赋值有延时,变量没有
? 进程对变量敏感而对信号不敏感
? 信号在硬件中有对应的关系,而变量没有
EDA 讲义 王建波
3、数据类型
( 1)基本数据类型(表 9,1)
A,整数型( INTEGER)
代表正整数、负整数和零,与算术整数相似,可以
进行,+”,,-”,,*”,,/” 运算,不能用于
逻辑运算。
例如:
10E4 --10进制整数
12456 --10进制整数
16#E8# --16进制整数
2#010110# --2进制整数
8#746# --8进制整数
EDA 讲义 王建波
B,实数( REAL)
类似于数学的实数,或称浮点数,书写要有小数点。
2.0 --10进制实数
535.78 --10进制实数
8#65.6#e+4 --8进制实数
36.5e-4 --10进制实数
C,位 ( BIT)
通常是表示信号,取值,1”或者,0”
D,位矢量( BIT_VECTOR)
用双引号括起来的一组位数据,使用时必须注明位宽度
例如,SIGNAL a,BIT_VECTOR( 7 TO 0)
表明是一个 8位宽度、高位在前的矢量
EDA 讲义 王建波
E,布尔量( BOOLEAN)
表示真假的数据
定义布尔量的格式为:
TYPE BOOLEAN IS ( FALSE,TRUE)
F,字符 ( CHARACTER)
用单引号‘’引起来的符号,如‘ K?,‘ 9’等等
G,字符串( STRING)
用双引号“”引起来的字符序列,如,ABCD”
H,时间 ( TIME)
这是 VHDL中唯一预先定义的物理量。
比如,342 ns( 至少要隔开 1个空格)
I,错误等级 ( SEVERITY LEVEL)
用于表征系统的状态,一共有四种可能:
EDA 讲义 王建波
NOTE( 注意)
WARNING( 警告)
ERROR( 错误)
FAILUER( 失败)
( 2)用户自定义数据类型
? 枚举类型( ENUMERATED)
? 整数类型( INTEGER)
? 数组类型( ARRAY)
? 纪录类型( RECORD)
? 存取类型( ACCESS)
? 文件类型( FILE)
? 时间类型( TIME)
? 实数类型( REAL)
EDA 讲义 王建波
4、属性
表示数值、信号、数据格式、数据范围及函数等属性的。
三、运算符(操作符)见表 9,2
使用中注意数据类型要匹配,且注意优先级关系:
运算符 优先级
N O T, A B S, **
*, /, M OD, RE M
+ (正号),- (负号)
+, -, &
S LL, S LA, S RL, S RA, ROL, ROR
=, /=, <, >, <=, >=
A N D, OR, N A N D, N OR, XOR, XNO R


EDA 讲义 王建波
9,2 VHDL语句
包括顺序处理语句和并行处理语句
? 并行语句作为一个整体运算,程序中被激活的语句都
执行。
? 顺序语句则按照程序书写顺序来执行。顺序语句只能
用于进程或子程序中,用来定义进程或子程序的算法。
顺序语句可以进行算术、逻辑运算,信号和变量的赋
值,子程序的调用,可以进行条件控制和迭代。
一、常用顺序处理语句
1、变量赋值语句
格式为:变量赋值目标,=赋值表达式
EDA 讲义 王建波
例如:
SIGNAL s:BIT,=?0?;
PROCESS (S)
VARIABLE count,INTEGER,=?0?; --变量说明
BEGIN
count,=count+1;
END PROCESS;
2,信号带入语句
作为全局信号带入的语句,其格式为:
目标信号量 <=信号量表达式
3,IF语句(流程控制语句)
有 3种表示结构
EDA 讲义 王建波
? IF条件 THEN顺序语句
END IF
如,IF( SET=?1?) THEN
C<=B
END IF;
? IF 条件 THEN顺序语句
ELSE 顺序语句
END IF
如:二选一电路,.....
IF(sel=?1?)THEN
c<=a;
ELSE
c<=b;
END IF
EDA 讲义 王建波
? IF 条件 1THEN顺序语句 1
ELSIF条件 2 THEN顺序语句 2
......
ELSIF 条件 n THEN顺序语句 n
ELSE顺序语句 n+1
END IF
4,选择语句 CASE
格式,CASE 表达式 IS
WHEN条件表达式 =>顺序语句
......
WHEN别的条件表达式 =>顺序语句
END CASE;
EDA 讲义 王建波
5,LOOP语句
两种格式
( 1) FOR循环变量
[标号 ],FOR 循环变量 IN循环次数范围 LOOP循环处理语

( 2) WHILE条件
[标号 ],WHILE条件 LOOP顺序处理语句;
END LOOP[标号 ];
6,NEXT语句
用于 LOOP语句中用以跳出本次循环至标号所在位置。格
式为:
NEXT[标号 ][WHEN 条件 ];
7,EXIT语句
EDA 讲义 王建波
用于 LOOP语句中用以跳出本次循环至标号所在位置。格
式为:
EXIT[标号 ][WHEN 条件 ];
8,NULL语句
空语句,引入至下一个语句用
格式,NULL;
9,RETURN语句
子程序结束返回主程序的语句,有两种格式:
? RETURN --第一种格式
? RETURN 表达式 --第二种格式
10,REPORT语句
11,ASSERT语句
12、过程调用语句
EDA 讲义 王建波
13,WAIT语句
也是条件控制语句。见 P181
包括四种情况:
WAIT; --无限等待
WAIT ON; --敏感信号量变化
WAIT UNTIL; --条件满足
WAIT FOR; --时间到
二、子程序
可以用于重复性的设计任务。子程序被调用时,首
先要初始化,执行处理功能后,将处理结果传递个主
程序。子程序内部值不能保持。
子程序有两种类型:
过程( PROCEDURE) 和函数( FUNCTION)
EDA 讲义 王建波
1,过程( PROCEDURE) 子程序
A,过程的说明格式(仅限于这一局部有效)
PROCEDURE 过程名(接口表);
例如:
PROCEDURE convt ( zin,IN STD_LOGIC_VECTOR;
qout,INOUT INTEGER);
.......
B,过程体的编写
格式:
PROCEDURE 过程名(接口名) IS
[说明语句 ];
BEGIN
顺序处理语句;
END 过程名;
EDA 讲义 王建波
2、函数( FUNCTION )子程序
VHDL中有现成的函数库,也可以用户定义,定义后可以
反复使用。
A,函数说明格式:
FUNCTION 函数名(接口表) RETURN 数据类型;
例如,FUNCTION max( a,STD_LOGIC_VECTOR;
b,STD_LOGIC_VECTOR )
......
B,函数体的格式
FUNCTION 函数名(接口表) RETURN 数据类型 IS
[说明语句 ];
BEGIN
顺序处理语句;
END 函数名;
EDA 讲义 王建波
四,VHDL并行语句
并行语句在结构体执行是同时并发进行的,其书写次序
与执行顺序没有关系。
并行语句在结构体里面的位置是:
ARCHITECTURE 结构体名 OF 实体名 IS
说明语句
BEGIN
并行语句
END ARCHITECTURE 结构体名;
EDA 讲义 王建波
主要的并行语句有:
PROCESS --进程语句
CONCURRENT SIGNAL ASSIGNMENT --并行信号带入语句
CONDITIONAL SIGNAL ASSIGNMENT --条件信号带入语句
SELECTIVE SIGNAL ASSIGNMENT --选择信号带入语句
CONCURRENT PROCEDURE CALL --并发过程调用语句
BLOCK --块语句
ASSERT --并行断言语句
GENERATE --生成语句
COMPONENT_INSTANT --元件例化语句
1、并行信号带入语句
语法格式:
信号量 <=敏感信号量表达式;
A,并发信号带入语句
EDA 讲义 王建波
例如:
......
PROCESS(a,b)
BEGIN
OUT1<=a+b;
END PROCRSS
B,条件信号带入语句
格式:(见书)
? 当 WHEN的条件为真时,将表达式赋给目标信号
? 条件表达式结果应为布尔值
? 如果有多个条件赋值语句,每一赋值条件按照书写的
先后顺序逐项执行
? 最后一项条件表达式可以不跟条件子句,即上面条件
都不满足时,自动赋值给它。
EDA 讲义 王建波
C,选择信号赋值语句
格式:(见书)
注意:
? 该语句不能在进程中使用,为并发执行语句
? 不允许出现条件重叠的现象
? 选择不允许出现条件涵盖不全的现象
2、进程语句
特点:
? 多进程之间并行执行,并可以存取实体或者结构体中
定义的信号
? 各进程之间通过信号传递进行通信
? 进程结构内部所有语句都是顺序执行的
? 进程启动是由敏感信号表中信号的变化激活的。或者
WAIT语句激活。
EDA 讲义 王建波
结构格式:
[进程标号 ],PROCESS( [敏感信号表 ])
[说明语句 ];
BEGIN
顺序语句;
END PROCESS[进程标号 ]
例如:
......
P1,PROCESS
BEGIN
WAIT ON a;
WAIT ON b;
WAIT FOR 10 ns;
WAIT ;
END ARCHITECTURE
EDA 讲义 王建波
在上面的例子中,当执行完毕后如果敏感信号发生变化
或者 WAIT的条件再次满足时,程序将重复执行。
3、并行断言语句
主要用于程序仿真、调试中的人机对话。
书写格式为:
ASSERT 条件 [REPORT 报告信息 ] [SEVERITY 出错级别 ]
条件为真,则执行下一语句,否则给出指定的提示信息。
注意:
? 报告信息必须用“”括起来的字符串
? 出错级别只能是四种( P180)
? REPORT的默认报告信息为 ASSERT VIOLATION
SEVERITY的默认报告信息为 ERROR
? 并行语句可以放在实体、结构体和进程中。放在任何
一个需要观察、调试的地方
EDA 讲义 王建波
4、生成语句( GENERATE)
生成多个相同的结构,如块阵列、元件例化或进程
两种书写格式:
A,[标号,]FOR 循环变量 i IN 取值范围 GENERATE
说明部分;
BEGIN
并行语句
END GENERATE;
B,[标号,]IF 条件 GENERATE
说明部分;
并行语句
END GENERATE;
见 P184例
EDA 讲义 王建波
5、块语句
将许多并行语句包装在一起,成为一个块。
格式为:( P185)
举例:( P185)
五、包集合的编写
程序包是为了使已经定义的常数,数据类型、元件
调用说明以及子程序能够被更多的 VHDL访问实体方便
的访问和共享。
程序包由两部分构成:程序包首和程序包体。
包首定义接口,声明包中的类型、元件、函数和子程序。
包体定义程序包实际功能。
六、元件及元件调用
EDA 讲义 王建波
9,3 VHDL程序设计基础
一,VHDL的基本结构
包括实体( ENTITY)
结构体( ARCHITECTURE)
配置( CONFIGURATION)
包集合( PACKAGE)
库( LIBRARY)
EDA 讲义 王建波
(一 )库说明 LIBRARY
1,库的使用
放在实体单元的前面,每一个实体对应一个
库说明。通常库以程序包集合的方式存在。,
具体调用的是程序包的内容。
库应用格式:(一般和 USE语句连用)
LIBRARY 库名;
USE语句说明库中的程序包,这样所说明的
实体就可以访问或者调用。
USE语句的应用格式:
USE库名,程序包名,项目名;
USE库名,程序包名,ALL;
EDA 讲义 王建波
? 第一种语句格式作用是向本设计实体开放指定
库中的特定程序包内的所选定项目。
? 第二种语句格式的作用是向本设计实体开放指
定库中的特定程序包内所有的内容。
例如,LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_1164.STD_ULOGIC;
在第一个语句中表明打开 IEEE库中的
STD_LOGIC_1164程序包,并向后面的实体全部
开放。
第二个语句开放了 STD_LOGIC_1164程序包里面的
STD_ULOGIC数据类型。
EDA 讲义 王建波
当一个程序中有两个及以上的实体时,库说
明语句应该重复书写。
2、库的分类
A,IEEE库
包括 STD_LOGIC_1164,NUMERIC_BIT,
NUMERIC_STD等程序包。
另外 STD_LOGIC_ARITH,STD_LOGIC_SIGNED和
STD_LOGIC_UNSIGNED
B,STD库
包括 STANDARD和 TEXTIO程序包
对于 STANDARD程序包 VHDL中不用声明直接使用
对于 TEXTIO程序包必须先声明如下:
EDA 讲义 王建波
LIBRARY STD;
USE STD.TEXTIO.ALL
C,面向 ASIC的库(如 VITAL库等等)
D,WORK库
现行正在使用的库,不需声明。
E,用户自行定义的库
用户自行建立的公共包集合,使用时需要声明
(二)实体说明 ENTITY
作用:描述设计实体与外部电路接口的表层单元。
通常用于信号名、管脚的说明。
EDA 讲义 王建波
实体结构:
ENTITY 实体名 IS
[GENERIC( 类属表); ]
[PORT( 端口表); ]
[实体说明部分 ]
END ENTITY 实体名;
这是程序中不可缺少的部分
1、类属说明( GENERIC)
它为实体组织中的可选项,位于端口说明之前。
格式为:
GENERIC [CONSTANT] 名字表,[IN]子类型标志
[,=静态表达式,...]
EDA 讲义 王建波
例如:
GENERIC( trise,tfall,TIME,=1 ns;
addrwidth,INTEGER,=16);
PORT( a0,a1,IN STD_LOGIC;
......
2,端口说明( PORT)
通信接口描述。也可以被赋值,也可以当作变量
用在逻辑表达式中。
书写格式:
PORT( 端口名:端口模式 数据类型;
端口名:端口模式 数据类型;
......);
EDA 讲义 王建波
数据类型有,布尔型( BOOLEAN),位型( BIT)、
位矢量( BIT_VECTOR) 和整数型( INTEGER)
端口模式有:
端口模式说明
方向定义
含义
IN 输入
O U T 输出 (构造体内部不能再使用)
I N O U T 双向
B U FF E R 输出 (构造体内部可以再使用)
L I N K A G E 不指定方向,无论哪个方向都可以连接
EDA 讲义 王建波
(三)结构体 ARCHITECTURE
? 作用:又称构造体,具体指明基本设计单元的
行为、元件及内部连接关系。
? 结构体对其基本设计单元的输入和输出关系可
以用三种方式进行描述:
即行为描述 BEHAVIORAL( 基本设计单元的数学
模型)、寄存器传输描述 DATAFLOW( 数据流
描述)、结构描述 STRUCTURE( 逻辑元件连
接描述)
? 每个实体可以有多个结构体分别描述不
同的内容
EDA 讲义 王建波
结构体语句格式:
ARCHITECTURE 结构体名 OF 实体名 IS
[定义语句 ]
BEGIN
[功能描述语句 ]
END 结构体名;
1、结构体名
通常用 BEHAVIORAL( 行为)、
DATAFLOW( 数据流),STRUCTURE( 结构)
命名。这样阅读理解方便。
EDA 讲义 王建波
2、结构体定义语句
必须放在关键字 ARCHITECTURE和 BEGIN之
间,对于结构体内部要使用的信号、常数、数
据类型、元件、函数和过程等加以说明。
3、功能描述语句
必须位于关键字 BEGIN和 END之间,具体
描述了构造体的行为及连接关系。可以采用 5
种不同类型的描述语句来描述:
? 块语句( BLOCK)
? 进程语句( PROCESS)
? 信号赋值语句
? 子程序调用语句
? 元件例化语句
EDA 讲义 王建波
(四)配置
作用:描述层与层之间的连接关系以及实体与结
构体之间的连接关系。
基本格式:
CONFIGURATION 配置名 OF 实体名 IS
配置说明
END 配置名;
1、配置类型
A,默认配置
默认配置选用不含有块( BLOCK) 和元件
( COMPONENT) 安装语句的设计程序。
其书写格式为:
EDA 讲义 王建波
CONFIGURATION 配置名 OF 实体名 IS
FOR 选配构造体名
END FOR;
END 配置名;
2、块配置
对于含有块语句的结构体进行配置。书写格式:
CONFIGURATION 配置名 OF 实体名 IS
FOR 结构体名
FOR 块名
END FOR;
END FOR;
END 配置名;
EDA 讲义 王建波
3、结构体配置
4、直接例化
二、基本电路单元设计
(一)组合逻辑电路
1、基本门电路
2,比较器、数据选择器、编码译码器
3、加法器和算术逻辑运算单元
EDA 讲义 王建波
(二)时序电路设计
1、时钟信号 (两种情况 )
2、时钟信号的描述
A,用进程 PROCESS语句描述格式:
PROCESS( 时钟信号 [,其它敏感信号 ])
BEGIN
IF 时钟信号边沿表达式 THEN
{语句; }
END IF;
END PROCESS;
CLK=‘1’
CLK`EVENT
CLK`LAST_EVENT=‘0’
CLK=‘0’
CLK`EVENT
CLK`LAST_EVENT=‘1’
EDA 讲义 王建波
B,用 WAIT语句
格式:见 P213
注意:
? 无论是 IF语句还是 WAIT ON语句,对时钟边沿的描述
一定要说明是上升沿还是下降沿。
? WAIT ON语句,只能放在进程的最后面或者最前面。
? 当时钟信号作为进程敏感信号时,敏感信号表中不能
出现一个以上的时钟信号。(复位或其它信号除外)
3、复位信号
A,同步复位
见 P213
B,异步复位
见 P214
EDA 讲义 王建波
? 首先,在进程敏感信号表中加入复位信号
? 其次,用 IF语句描述复位条件
? 最后,利用 ELSE段描述时钟边沿条件
(二)基本触发器
(三)计数器
四、状态机的设计