EDA 第二章 VHDL语言应用基础1(基本结构、数据类型)
VHDL语言基础
VHDL语⾔基础VHDL语⾔基础1 数据对象数据对象包括常量、变量、信号和⽂件四种类型1.1 常量常量是对某⼀常量名赋予⼀个固定的值,⽽且只能赋值⼀次。
通常赋值在程序开始前进⾏,该值的数据类型则在声明语句中指明--定义常量语句:--Constant 常数名:数据类型:=表达式Constant Vcc:real:=5.2; --指定Vcc的数据类型是实数,赋值为5.0VConstant bus_width:integer:=8; --定义总线宽度为常数8常量所赋的值应和定义的数据类型⼀致;常量在程序包、实体、构造体或进程的说明性区域必须加以说明。
定义程序包内的常量课提供所包含的任何实体、构造体所引⽤,定义在实体说明内的常量只能在该实体内可见,定义在进程说明内的常量只能在该实体内可见,定义在进程说明区域中的常量只能在该进程内可见1.2 变量变量只能在进程语句、函数语句和过程语句结构中使⽤。
变量的赋值是直接的,⾮预设的。
变量不能表达“连线”或储存原件,不能设置传输延迟量--定义变量语句--Variable 变量名:数据类型:=初始值;Variable count:integer 0 to 255:=20; --定义count整数变量,变化范围0-255,初始值为20--变量赋值语句--⽬标变量名:=表达式;x:=10.0; --实数变量赋值为10.0Y:=1.5+x; --运算表达式赋值,表达式必须与⽬标变量的数据类型相同A(3 to 6):=("1101") --位⽮量赋值1.3 信号信号表⽰逻辑门的输⼊或输出,类似于连接线,也可以表达存储元件的状态。
信号通常在构造体、程序包和实体中说明--信号定义语句--Signal 信号名:数据类型:=初始值Signal clock:bit:='0'; --定义时钟信号,初始值为0Signal count:BIT_VECTOR(3 DOWNTO 0); --定义count为4位位⽮量--信号赋值语句⽬标信号名<=表达式;x<=9;Z<=x after 5 ns; --在5ns后将x的值赋给z2 数据类型2.1 VHDL的预定义数据类型类型定义说明布尔(Boolean)TYPE BOOLEAN IS (FALSE,TRUE);取值为FALSE和TRUE,不是数值,不能运算,⼀般⽤于关系运算符位(Bit)TYPE BIT IS ('0','1');取值为0和1,⽤于逻辑运算位⽮量(Bit_Vector)TYPE BIT_VECTOR IS ARRAY(Natural range<>)OF BIT;基于Bit类型的数组,⽤于逻辑运算字符(Character)TYPE CHARACTER IS (NUL,SOH,STX,...,'','!',...);通常⽤''引号引起来,区分⼤⼩写字符串(String)VARIABLE string_var:STRING(1 TO 7);string_var:="A B C D";通常⽤""引起来,区分⼤⼩写整数(Integer)variable a:integer range -63 to 63取值范围 -(231 -1)~(231-1)要求⽤RANGE⼦句为所定义的数限定范围,以便根据范围决定此信号或变量的⼆进制位数实数(Real)-取值范围-1.0E38~+1.0E38,仅可⽤于仿真不可综合时间(Time)-物理量数据,完整的包括整数和单位两个部分,⽤⾄少⼀个空格隔开,仅可⽤于仿真不可综合时间(Time)-开,仅可⽤于仿真不可综合错误等级(SeverityLevel)TYPE severity_level IS (NOTE、WARNING、ERROR、FAILURE);表⽰系统状态,仅可⽤于仿真不可⽤于综合类型定义说明2.2 IEEE预定义标准逻辑位与⽮量标准逻辑类型对数字逻辑电路的逻辑特性描述更加完整、真实,因此在VHDL程序中,对逻辑信号的定义通常采⽤标准逻辑类型标准逻辑位(Std_Logic)符号说明'U'Undefined(未初始化)'X'Forcing Unknown(强未知)'0'Forcing 0(强0)'1'Forcing 1(强1)'Z'High Impedance(⾼阻)'W'Weak Unknown(弱未知)'L'Weak 0(弱0)'H'Weak 1(弱1)'-'Don't Care(忽略)标准逻辑位⽮量(Std_Logic_Vector)基于Std_Logic类型的数组使⽤Std_Logic和Std_Logic_Vector要调⽤IEEE库中的Std_Logic_1164程序包;就综合⽽⾔,能够在数字器件中实现的是“-、0、1、Z”四种状态。
VHDL入门
元件声明
y1 : OUT BIT);
END COMPONENT;
1
COMPONENT or_2
位
PORT( i3, i4 : IN BIT;
全
y2 : OUT BIT); END COMPONENT;
加
COMPONENT xor_2
器
PORT( a, b : IN BIT;
c : OUT BIT);
END adder;
2、结构体
ARCHITECTURE <结构体名> OF <实体名> IS
[结构体说明部分]; BEGIN <并行处理语句>; END结构体名;
•ARCHITECTURE a OF adder IS •BEGIN •s<=a XOR b XOR cin; •co<=((a XOR b) AND cin) OR (a AND b); •END a;
体
说
s ,co : OUT BIT);
明
图二 实体说明的描述
u2
cin
=1
s
u1
u3 tmp
END adder; ARCHITECTURE a OF adder IS BEGIN
a
&2
b
=1 tmp
1 u4
u5
结
&
≥1
co
s<=a XOR b XOR cin;
构 体
图三 1位全加器的逻辑图
co<=((a XOR b) AND cin) OR (a AND b);
中,通过调用库 中的元件或已设 计好的模块来对 当前的设计进行
u5:or_2 PORT MAP (tmp2,tmp3,co); 描述。
EDA技术_第二章_VHDL语言ppt课件
❖ 2.熟悉:
▪ VHDL语言的其它数据类型、子程序、包集合及配置
❖ 3.了解:
▪ 标示符:扩展标识符;数据类型转换
❖ 合法标示符:Decoder_1 , FFT , Sig_N , Not_Ack , State0 , Idle
❖ 非法标识符: _Decoder_1 , 2FFT , Sig_#N , Not-Ack ,
❖
RyY_RST_ , data_ _BUS , return
2021/6/11
ppt精选版
❖ 具有全局性特性,可以在以下区域定义和使用:
▪ 实体:作用于该实体中所有的结构体 ▪ 结构体:作用于整个结构体 ▪ 包集合:作用于调用此包集合的所有实体
❖ 除了没有方向说明以外,信号与实体的端口(PORT)概念是一致的。
2021/6/11
ppt精选版
16
VHDL语言客体—信号
LOGO
❖ SIGNAL Sys_clk:bit﹕= ‘0’;
▪ S2<=s1 after 10 ns;
2021/6/11
ppt精选版
17
4、信号、变量、常量的比较
LOGO
❖从硬件电路系统来看
▪ 常量相当于电路中的恒定电平,如GND或VCC 接口
▪ 变量和信号则相当于组合电路系统中门与门间 的连接及其连线上的信号值。
❖从行为仿真和VHDL语句功能上看
▪ 信号可以设置延时量,而变量则不能;
存放各设计模块都能共享的数据类型、常数、子 程序和函数。
库: library
VHDL第二章课件
(6)Character(字符)。
是用单引号括起来的一个字母(A~Z, a~z) 、数字( 0~ 9 )、空格或一些特殊字符(如$、@、%等)。
VHDL语言对大小写英文字母不敏感, 但区分字符量中的大小写。 (‘7A)’S,tr‘inag’(,字‘符串B’),。‘是b用’双, 引都号认括为起是来不的同一的个字字符符。序字列。符 字‘符1’串,区‘分2’大仅、是小符写号字。母。常用于程序的提示和结果说明等。例 如“VHDL”, “STRING”, “MULTI_SCREEN COMPUTER”等。 (8)Time(时间)。时间的取值范围从 -(231-1)~(231 -1)。时间由整数值和时间单位组成。常用的时间单位有: fs、 ns、μs、ms、s、min、hr等。时间类型一般用于仿真,而不用 逻辑综合。时间常用于指定时间延时和标记仿真时刻。
(4) 扩展标识符的界定符两个斜杠之间可以用数字打头。 如:
2.2 数据对象
在VHDL中,凡是可以赋予一个值的客体称为数据对象。常 用的数据对象为常量、变量 、信号和文件,其中文件类型是 VHDL’93标准中新通过的。
对象说明的一般书写格式为:
对象类别 标识符表: 子类型标识[:= 初值];
对象说明举例: CONSTANT T1,T2: time :=30ns,--常量说明 VARIABLE SUM: read; --变量说明
• VHDL语言有两个标准版: VHDL’87版和 VHDL’93版。VHDL’87版的标识符语法规则经 过扩展后,形成了VHDL’93版的标识符语法规则。 前一部分称为短标识符,扩展部分称为扩展标识符。 VHDL’93版含有短标识符和扩展标识符两部分。
2.1.1 短标识符
短标识符规则: 短标识符由字母、数字以及下划线字符组成,且具
VHDL入门教程
VHDL入门教程VHDL(Very High-Speed Integrated Circuit HardwareDescription Language)是一种硬件描述语言,用于设计数字电路和系统。
它是由美国国防部在20世纪80年代早期开发的,并由IEEE 1076标准化。
VHDL可以用于描述电路结构、电路行为和模拟。
一、VHDL概述VHDL是一种硬件描述语言,它允许工程师以更高级的语言编写硬件描述。
它可以描述电路结构、电路行为和模拟。
VHDL可以应用于各种电子系统的设计,从简单的数字逻辑门到复杂的处理器。
二、VHDL基本结构VHDL的基本结构包括实体声明、体声明和结构化代码。
实体声明描述了电路的接口,包括输入和输出。
主体声明描述了电路的行为。
结构化代码定义了电路的结构。
三、VHDL数据类型VHDL提供了多种数据类型,包括标量类型(比如整数和实数)、数组类型和记录类型。
每种类型都有其特定的操作和范围。
四、VHDL信号VHDL中的信号用于在电路中传递信息。
信号可以在过程中赋值,并且具有各种延迟属性。
信号还可以连接到模块的输入和输出端口,以实现电路之间的通信。
五、VHDL实体和体VHDL设计包含实体和体。
实体描述了电路的接口和连接,而体描述了电路的行为。
实体和体之间使用端口来传递信息。
六、VHDL组件VHDL中的组件用于将电路模块化,以实现更高层次的设计和复用。
组件可以在实体中声明,并在体中实例化。
七、VHDL并发语句VHDL中的并发语句用于描述电路中多个同时运行的过程。
并发语句包括并行语句、过程、并行块和并行时钟。
八、VHDL测试VHDL测试包括自动测试和手动测试。
自动测试使用测试工具和仿真器来验证电路的正确性。
手动测试包括使用仿真器进行手工测试和调试。
九、VHDL实例以下是一个简单的VHDL实例,实现了一个4位二进制加法器:```vhdllibrary IEEE;use IEEE.STD_LOGIC_1164.all;entity binary_adder isporta : in std_logic_vector(3 downto 0);b : in std_logic_vector(3 downto 0);sum : out std_logic_vector(4 downto 0);carry : out std_logicend binary_adder;architecture behavior of binary_adder isbeginprocess(a, b)variable temp_sum : std_logic_vector(4 downto 0);variable temp_carry : std_logic;begintemp_sum := ("0000" & a) + ("0000" & b);temp_carry := '0' when temp_sum(4) = '0' else '1';sum <= temp_sum;carry <= temp_carry;end process;end behavior;```上述VHDL代码定义了一个名为`binary_adder`的实体,它有两个4位输入`a`和`b`,一个5位输出`sum`和一个单一位输出`carry`。
VHDL程序基础.ppt
CONFIGURATION 配置名 OF 实体名 IS FOR 选配结构体名
{FOR 元件标号表:元件型号 USE ENTITY 库名.实体名(结构体);
END FOR;}
END FOR;
END 配置名;
CONFIGURATION decode_1 OF decode IS FOR structural FOR u0,u1,u2,u3 :xnor2 use entity ieee.xnor2(behave) END FOR; FOR u4 :and4 use entity ieee.and4(behave) END FOR; END FOR; END decode_1;
u3
2-4u OF decode IS COMPONENT inv PORT( a : IN STD_LOGIC; b : OUT STD_LOGIC); END COMPONENT; COMPONENT and3 PORT(a1,a2,a3 : IN STD_LOGIC; y : OUT STD_LOGIC); END COMPONENT; SIGNAL na0,na1: STD_LOGIC; BEGIN i0: inv PORT MAP (a0, na0); i1: inv PORT MAP (a1, na1); u0: and3 PORT MAP (na0,na1,en, y0); u1: and3 PORT MAP (a0,na1,en, y1); u2: and3 PORT MAP (na0,a1,en, y2); u3: and3 PORT MAP (a0,a1,en, y3); END stru;
例1 一个2输入的与门的逻辑描述 LIBRARY ieee; --库说明语句 USE ieee.std_logic_1164.ALL; --程序包说明语句 ENTITY and2 IS PORT(a,b : IN STD_LOGIC; 实体部分 y : OUT STD_LOGIC); END and2; ARCHITECTURE and2x OF and2 IS BEGIN 结构体部分 y<=a AND b; END and2x;
EDA知识点汇总
EDA知识点汇总
一、VHDL基本概念
1、VHDL概念
VHDL(VHSIC(Very High Speed Integrated Circuit)Hardware Description Language)是用于描述硬件结构的高级语言,也是一种数字
系统设计语言,可以描述系统的逻辑结构,数据流,与特定硬件的映射实现,包括模块化,可重用,可综合和可测试特性,是精密,功能强大,拥
有仿真功能的高级硬件描述语言。
2、VHDL的作用
VHDL是一门语言,用它描述数字系统,使用它可以实现在抽象结构
与物理实现间的转换,也就是说VHDL把模型描述作为数字逻辑设计的一
部分,它把数字电路设计与电路的描述分离,实现了电路的抽象化,VHDL
作为一个设计语言,它既可以描述电路,也可以用于设计新的电路
3、VHDL的基本结构
VHDL由三部分组成,包括类型定义部分,声明部分,以及功能实现
部分;
(1)类型定义部分
类型定义部分提供了VHDL语言中的语法,包括数据类型、常量声明、变量声明、信号声明、类型定义等。
(2)声明部分
声明部分提供了用于定义数据类型和信号的描述,包括定义数据类型、变量声明、信号声明等。
(3)功能实现部分
功能实现部分描述了如何将信号和变量连接起来形成所需的逻辑功能。
第二章 VHDL语言基础
y <= d OR
e
上午6时38分
2.1 VHDL 基本语法
2.1 组合电路描述
【例2-3】 ENTITY mux21a IS PORT ( a, b, s: IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN PROCESS (a,b,s) BEGIN IF s = '0' THEN y <= a ; END IF; END PROCESS; END ARCHITECTURE one ;
端口说明 端口说明是一个设计实体界面的描述,提供外部接口信息。 由保留字PORT引导 格式如下:PORT(端口名:端口方向 数据类型) 例如: PORT (d0:IN std_logic;);
上午6时38分
VHDL的主要构件:实体
Example:写出如下器件的实体描述
ENTITY my_design IS PORT(d:IN std_logic_vector(15 DOWNTO 0); clk,reset,oe:IN std_logic; q:OUT std_logic_vector(15 DOWNTO 0); ad:INOUT std_logic_vector(15 DOWNTO 0); int:BUFFER std_logic; as:OUT std_logic); END my_design;
LIBRARY STD; USE STD.STD_LOGIC.ALL;
LIBRARY STD; USE STD.STD_LOGIC.ALL;
USE STD.STD_ttl.ALL;
ENTITY nand2 IS . . . END nand2;
第2章 VHDL语言基础
End 实体名;
端口名
端口模式
数据类型
(2)ENTITY
端口模式(MODE)有以下几种类型: IN ;OUT;INOUT ;BUFFER 端口模式可用下图说明:(黑框代表一个设计或模块)
IN
OUT
BUFFER
INOUT
二输入与门电路设计范例
Library std; Use std.standard.all;
(4)CONFIGURATION定义区
定义格式: Configuration 配置名 of 实体名 is for 选用的结构体名 end for; end configuration 配置名 ;
二输入与门电路设计范例
a c
b电Leabharlann 真值表abc
0
0
0
1
0
0
0
1
0
1
1
1
二输入与门电路设计范例
Architecture Na of and2 is
‘1’; 符号<=为信号直接赋值符。
End Na;
--结构体Na
Architecture Nb of and2 is
Begin
c <= a and b;
--and 为逻辑与操作
End Nb; --结构体Nb
Library ieee; Use ieee.std_logic_1164.all;
Entity half_adder is Port( x,y : in std_logic;sum,carry : out hlf_adder); End half_adder;
(4)CONFIGURATION定义区
一个完整VHDL电路设计必须有一个实体 和对应的结构体,即实体和结构体对构成一个 完整的VHDL设计。
VHDL主要内容概括
二、VHDL数据对象
数据对象有三种:常量(CONSTANT);
变量(VARIABLE);
信号(SIGNAL)。
三、VHDL数据类型
1. VHDL预定义数据类型(标准数据类型)
• 整数(INTEGER)
• 实数(REAL)
• 位(BIT)
• 位矢量(BIT_VECTOR) ) • 布尔量(BOOLEAN) • 字符(CHARACTER) • 字符串(STRING) • 时间(TIME)
表达式2 WHEN 条件2,
... 表达式n WHEN OTHERS;
六、重要的书写格式
LOOP语句 (1) 单个LOOP语句
[ LOOP标号:] LOOP
顺序语句; END LOOP [ LOOP标号 ]; (2) FOR_LOOP语句 [LOOP标号:] FOR 循环变量 IN 循环次数范围 LOOP
1、并行语句(Concurrent Statements)
并行信号赋值语句(简单信号赋值、条件信号赋值、 选择信号赋值语句) 进程语句(PROCESS) 块语句(BLOCK) 并行语句 元件例化语句 生成语句 子程序调用语句(过程调用、函数调用) REPORT语句 断言语句
顺序语句;
END LOOP [LOOP标号];
六、重要的书写格式
BLOCK 语句 [块标号]: BLOCK [(块保护表达式)] [接口说明;] [类属说明;] BEGIN
并行语句;
END BLOCK [块标号] ;
六、重要的书写格式
生成语句 [标号:] FOR 循环变量 IN 取值范围 GENERATE [说明部分;] BEGIN 并行语句;
六、重要的书写格式
2_EDA技术
硬件描述语言VHDL
eqcomp4.vhd
库 包 实体
--eqcomp4 is a four bit equality comparator
文件名和实体 名一致
Library IEEE; use IEEE.std_logic_1164.all;
entity eqcomp4 is port(a, b:in std_logic_vector(3 downto 0); equal :out std_logic); end eqcomp4; architecture dataflow of eqcomp4 is begin equal <= ‘1’ when a=b else ‘0’; End dataflow;
硬件描述语言VHDL
VHDL的优点
• 用于设计复杂的、多层次的设计。支持设计库和 设计的重复使用 • 与硬件独立,一个设计可用于不同的硬件结构, 而且设计时不必了解过多的硬件细节。 • 有丰富的软件支持VHDL的综合和仿真,从而能 在设计阶段就能发现设计中的Bug,缩短设计时 间,降低成本。 • 更方便地向ASIC过渡 • VHDL有良好的可读性,容易理解。
每行;结尾 关键字end后跟 实体名
构造体
关键字begin
关键字end后跟 构造体名
VHDL 大小写不敏感
硬件描述语言VHDL
• 2.1 库(Library)
– 库是专门存放预编译程序包(Package)的地 方。库的使用方法是:在每个设计的开头声明 选用的库名,用USE语句声明所选中的逻辑单 元 。 – 库的一般格式为
硬件描述语言VHDL
结构体--数据流描述 描述输入信号经过怎样的变换得到输出信号
• architecture dataflow1 of eqcomp4 is • begin • equal <= ‘1’ when a=b else ‘0’; • end dataflow1; • • • • • • •
EDA基础VHDL
其书写顺序无关,在实际 电路中所有并行语句功能 同时实现。
3. 库、程序包和配置 (1) 库
功能: 存储和放置设计单元(元件、程序包等)。
[例1.4.14] WHILE…LOOP应用举例
abcd: WHILE (i<10) LOOP sun:=i+sum; i=i+1; END LOOP abcd;
(6)NEXT语句 满足条件时中止 格式: NEXT [WHEN 条件]; 当前循环,开始 下一次循环。 [例1.4.15] NEXT语句举例
函数名(实际参数表);
函数的参数只能是方式为IN的输入信号,函数 只能有一个返回值。 [例1.4.17] 比较器函数形式的程序设计实例
用并行语句形式描述设计 单元功能
并行语句类型
进程语句(PROCESS) 块描述语句(BLOCK) 信号赋值语句 子程序调用语句 元件例化语句
ARCHITECTURE 结构体名 OF 实体名 IS [结构体说明语句] BEGIN [功能描述语句] END 结构体名;
[例1.4.2] 2 输入与门的结构体描述。
常用资源库 含IEEE认可和某些公司提供的如: VHDL标准库 STD库 STD_LOGIC_1164 程序包 存放:STANDARD的程序集合 STD_LOGIC_ARITH算术运算包 VHDL库 ASIC库 资源库 集合定义了多种常用的数据类型 存放:和各种逻辑门一一对应的 实体 WORK库 当前作业库 存放:当前设计项目生成的全部文 用户自定义库 资源库 件目录 存放:用户自己创建定义的非 库说明语句格式: 标准程序包集合和实体。
VHDL语言入门教程
VHDL语言入门教程VHDL是一种硬件描述语言,主要用于设计数字电路和系统。
它是由美国国防部门于1980年代初开发的,目的是为了改进电子设计自动化(EDA)工具的开发效率和设计文档的可重复性。
VHDL广泛应用于数字信号处理(DSP)、嵌入式系统、通信系统和各种ASIC(专用集成电路)和FPGA(现场可编程门阵列)的设计。
本教程将介绍VHDL的基础知识,包括语法、数据类型和常见的建模技术。
一、VHDL的语法VHDL的语法由标识符、关键字、运算符和分隔符组成。
其中,标识符用于给变量、信号和实体命名,关键字用于定义语言特定的操作,运算符用于数学和逻辑运算,分隔符用于分隔语句。
VHDL中的代码以一个实体(entity)的声明开始,然后是体(architecture)的声明,最后是信号声明和进程(process)的描述。
以下是一个简单的例子:```vhdlentity AND_gate isportA, B: in std_logic;C: out std_logicend entity AND_gate;architecture Behavior of AND_gate isbeginC <= A and B;end architecture Behavior;```在这个例子中,我们声明了一个名为AND_gate的实体,它有两个输入信号A和B,一个输出信号C。
然后我们定义了一个名为Behavior的体,它描述了AND门的行为:C等于A与B的逻辑与运算结果。
二、VHDL的数据类型VHDL支持许多数据类型,包括标量类型、数据类型、自定义类型和引用类型。
标量类型包括bit、bit_vector、integer、real、std_logic和std_ulogic等。
其中,bit_vector是一组连续的位,std_logic和std_ulogic用于表示单个信号。
数据类型是由标量类型和数组类型组成的。
数组类型可以是一维、二维或更高维的,用于存储多个数据。
第二章-VHDL语言程序的基本结构PPT课件
-
5
二选一电路的VHDL语言描述
entity mux is
architecture connect of mux is
实 generic(m: time :=1 ns); signal tmp: bit;
体 port(d0,d1,sel: in bit; begin
说 明
q: out bit);
每个构造体必须有一个名称:
命名要符合命名规则
命名可根据设计者 采用何种描述方式 来描述模 块的功能来命名,给阅读程序的人带来方便。 如:
beh (行为描述,基本设计单元的数学模型描述)
rtl (寄存器传输描述,数据流描述)
str (结构描述,逻辑元件的连接)
例: architecture str of mux2_1 is
entity mux is port(d0,d1,sel: in bit; q: out bit);
end entity mux;
architecture dataflow of mux is signal q0,q1:bit; begin
q0 <= d0 and sel; q1 <= not sel and d1; q <= q0 or q1; end architecture dataflow;
一句也可以写若干行; 在一句结束后,可以在“--”符号后接说明文字,
有助于理解程序,不会对编译产生影响; 单词之间必须使用空格; 并列信号间使用逗号; 根据不同的层次关系最好设定不同的缩进。
-
9
2)类属参数说明格式:
generic([类属常量名:类型 [:=静态表达式]; ……
[类属常量名:类型 [:=静态表达式]);
精品课件-EDA技术应用基础-第2讲 VHDL程序基本结构及语言要素
fs: 单位
ps=1000 fs :
--飞秒,VHDL中的最小时间 --皮秒
ns=1000 ps:
--纳秒
EDA技术
讲授:课题组教师
二、 VHDL语言要素
3. VHDL数据类型
2)IEEE预定义标准逻辑位与矢量
(1)标准逻辑位STD_LOGIC数据类型
数据类型STD_LOGIC的定义如下所示:
TYPE
▪ 教学方法:讲授法、计算机辅助法。
▪ 课时计划:2学时
▪ 使用教材:EDA技术及应用.谭会生等.西安:西安电子 科技大学出版社
▪ 主要参考文献: [1] 徐光辉等.CPLD/FPGA的开发和应用[M].北京:
电子工业出版社 [2] 侯伯亨等.VHDL硬件描述语言与数字逻辑电路
设计[M].西安:西安电子科技大学出版社
在程序中使用此数据类型前,需加入下面的语句:
EDA技术
讲授:课题组教师
二、 VHDL语言要素
3. VHDL数据类型 3)其它预定义标准数据类型矢量
VHDL综合工具配备的扩展程序包中,定义了一 些有用的类型。如 Synopsys公司在IEEE库中加入的程序 包 STD_LOGIC_ARITH 中 定 义 了 的 数 据 类 型 有 : 无 符 号 型 ( UNSIGNED ) , 有 符 号 型 ( SIGNED ) , 小 整 型 (SMALL_INT)。 在程序包STD_LOGIC_ARITH中的类型定义如下: TYPE UNSIGNED IS ARRAY(NATURAL RANGE <> ) OF STD_LOGIC; TYPE SIGNED IS ARRAY(NATURAL RANGE<> = 0F STD_LOGIC;
STD_LOGIC
VHDL语言应用基础1(基本结构、数据类型)
常见的HDL工具
Renoir 通过画框图来完成PLD/FPGA的系统设计, 可自动生成部分VHDL/VerilogHDL源代码文件, 亦可由VHDL/VerilogHDL源代码生成原理框图。 Renoir(输入),Leonardo.Spectrum(综合)和 Modelsim(仿真)构成了Mentor公司引以为豪的 VHDL/VerilogHDL完整开发系统:FPGA Advantage
5.CONFIGURATION定义区
2. ENTITY DECLARATION
• 功能:描述设计模块的输入/输出信号或引脚,并给出
设计模块与外界的接口。实体类似一个“黑盒”,实体 描述了“黑盒”的输入输出口。
• 格式:
ENTITY 实体名 IS [GENERIC(类属表);] [PORT(端口表);]
常见的HDL工具
• NC-Verilog/NC-VHDL:Cadence公司 出品,很好的Verilog/VHDL仿真工具, 其中NC-Verilog 的前身是著名的Verilog 仿真软件:Verilog-XL
StateCAD 状态机设计软件,通过画框图可自 动生成状态机的VHDL,VerilogHDL,或AHDL源 代码文件。对熟练掌握HDL的人,实用价值不 高
ENTITY nand_2 IS ---------------定义一个实体 PORT( a, b: IN STD_LOGIC; --描述输入输出
y: OUT STD_LOGIC); ------信号
END nand_2;
ARCHITECTURE rtl OF nand_2 IS
BEGIN
-------------结构体说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 实际上,对VHDL而言,大写小写都一 视同仁,不加区分。只是为了阅读方便, 我们常常做一些区分。
(1)The name of the entity
• 实体名实际上是器件名,最好根据相应的电路 功能确定。如4位2进制计数器用counter4b;8 位加法器用add8b;3/8译码器用ym_38。
EXAMPLE
ENTITY black_box IS Generic ( constant width : integer := 7;); PORT ( 关键字 clk, rst: IN std_logic; 类属参量IN std_logic_vector(width d: 端口定义 DOWNTO 0); q: OUT std_logic_vector(width DOWNTO 0); 黑盒 co: OUT std_logic); rst 端口模式 端口数 END black_box; d[7:0] 据类型
实体名必须以字母开头,不能以下划线结尾。 实体名必须与文件名相同,否则无法编译。
实体名不能用工具库中定义好的元件名。 实体名不能用中文,也不能用数字开头。
(2)GENERIC
类属表:用以将信息参数传递到实体。
类属表的一般格式为: GENERIC(常数名:数据类型[:=设定值] ……) GENERIC(awidth : INTEGER:=3; timex: time ); 其中:常数名由设计者确定;数据类型通常取 INTEGER或time等;在表中提供时间参数、 总线宽度等信息。
Quartus II 是Altera公司的综合性PLD开发软件, 支持原理图、VHDL、VerilogHDL以及AHDL等 多种设计输入形式,内嵌自有的综合器以及仿真 器,可以完成从设计输入到硬件配置的完整PLD 设计流程。
常见的HDL工具
• Synplify : VHDL/VerilogHDL综 合软件。Synplicity公司出品。 Active HDL VHDL/VerilogHDL 仿真软件,简单易用。Aldec公司 出品 Modelsim : VHDL/VerilogHDL 仿真软件,功能比ActiveHDL强 大,使用比ActiveHDL复杂。 Mentor公司出品。
• 1984: first version of the language defined, based on ADA (which in turn is based on PASCAL)
• 1987: revised version became IEEE standard 1076 • 1993: revised IEEE standard • VHDL有过两个标准: – IEEE Std 1076-1987 (called VHDL 1987) – IEEE Std 1076-1993 (called VHDL 1993) • more recently: VHDL-AMS: includes analog modeling
常见的HDL工具
Renoir 通过画框图来完成PLD/FPGA的系统设计, 可自动生成部分VHDL/VerilogHDL源代码文件, 亦可由VHDL/VerilogHDL源代码生成原理框图。 Renoir(输入),Leonardo.Spectrum(综合)和 Modelsim(仿真)构成了Mentor公司引以为豪的 VHDL/VerilogHDL完整开发系统:FPGA Advantage
第二章 VHDL语言应用基础
参考书目及网络资源
• 《VHDL硬件描述语言与数字逻辑电路设计》, 侯伯亨,西安电子科技大学出版社。 • 《VHDL与数字电路设计》卢毅 科学出版社 • 《Verilog HDL 硬件描述语言》清华大学出版社 • 《CPLD技术及应用》宋万杰等 西安电子科技 大学出版社 • 《可编程逻辑系统的VHDL设计技术》Kevin Skahill 东南大学出版社 • 《 ALTERA可编程器件及其应用》刘宝琴 清华大 学出版社 • 《Xinlinx数字系统现场集成技术》朱明程东南 大学出版社
(学术科学/电 路设计与调试版) /club/default.asp /2/default.asp?name=di ckhou
常见的HDL工具
• NC-Verilog/NC-VHDL:Cadence公司 出品,很好的Verilog/VHDL仿真工具, 其中NC-Verilog 的前身是著名的Verilog 仿真软件:Verilog-XL
StateCAD 状态机设计软件,通过画框图可自 动生成状态机的VHDL,VerilogHDL,或AHDL源 代码文件。对熟练掌握HDL的人,实用价值不 高 X-HDL: 可实现VHDL和Verilog语言的相互自动 转化
VERILOG
• VERILOG语言最早由GATEWAY设计自动化公 司于1981年提出,并提供相应的VERILOG仿真 器。1985年,仿真器增强版VERILOG-XL推出。 CADENCE公司于1989年收购GATEWAY公司,并 于1990年把VERILOG语言推向市场,而保留了 VERILOG-XL的所有权。1995年, VERILOG成 为IEEE 1364标准。
VHDL
• VHDL语言最初于1981年由美国国防部为解决所有电 子产品存档而提出的一种统一标准语言,1983年至 1985年,由IBM、TI等公司对VHDL进行细致开发,1987 年成为IEEE 1076‟87标准。1993年,修订版IEEE 1076‟93出台。随后,IEEE分别提出IEEE 1076 .3(可综 合标准)和IEEE 1076.4(VITAL标准),以解决可 综合VHDL描述在不同EDA厂商之间的移植问题,以及 ASIC/FPGA的门级库描述问题。
• VHDL for a 2-to-1 multiplexer
q d1 sel d0 sel
由上面的例子可以看出,实体说明是二选一器件 外部引脚的定义;而构造体则描述了二选一器件的逻 辑电路和逻辑关系。
一、VHDL的基本结构
LIBRARY IEEE;------------------IEEE库说明 USE IEEE.STD_Logic_1164.ALL; ----自定义元件库 ENTITY nand_2 IS ---------------定义一个实体 PORT( a, b: IN STD_LOGIC; --描述输入输出 y: OUT STD_LOGIC); ------信号 END nand_2; ARCHITECTURE rtl OF nand_2 IS BEGIN -------------结构体说明 y<=NOT(a AND b); END rtl;
(3)PORT
端口表:指明实体的输入、输出信号极其模式。 端口表的一般格式为: PORT(端口名:端口模式 数据类型…… ) 端口模式:共四种: IN(输入)、 OUT (输出)、 INOUT(双向端口) 、 BUFFER (输出并向内部反馈) 数据类型:VHDL作为一种强类型语言,必 须对数据对象(常量、变量、信号)规定取值 范围,即对传输或存储数据的类型作明确的界 定。
常见的HDL工具
• FPGA Express:
VHDL/VerilogHDL综合软件,简单易用,但 有人反映其对VerilogHDL的支持不够强, Synopsys公司出品。 VHDL/VerilogHDL综 合软件,Synopsys公司出品
FPGA CompilerII
Quartus :
2. ENTITY DECLARATION
• 功能:描述设计模块的输入/输出信号或引脚,并给出
设计模块与外界的接口。实体类似一个“黑盒”,实体 描述了“黑盒”的输入输出口。
• 格式:
ENTITY 实体名 IS [GENERIC(类属表);] [PORT(端口表);] END [ENTITY] [实体名]
2.1 VHDL语言设计的基本单元及其构成
• A circuit or subcircuit described with VHDL code is called a design entity。 • The general structure of an entity has two main parts: the entity declaration, which specifies the input and output signals for the entity, and the architecture, which gives the circuit details .
• 一个完整的VHDL语言程序通常包含实体 (Entity)、构造体(Architecture)、配置 (Configuration)、包集合(Package)和库 (Library)5个部分。
• 实体用于描述所设计的系统的外部接口信号; • 构造体用于描述系统内部的结构和行为; • 包集合存放各设计模块都能共享的数据类型、 常数和子程序等; • 配置用于从库中选取所需单元、构造体、包集合和 配置。
PART 1
HDL
VHDL具有强大的行为描述能力,丰富的仿真语 句和库函数,对设计的描述也具有相对独立性 Verilog 最大特点就是易学易用,语法比较自由 ABEL一种早期的硬件描述语言支持逻辑电路的多 种表达形式,其中包括逻辑方程,真值表和状态 图。 AHDL(Altera HDL) 是ALTERA公司发明的HDL, 特点是非常易学易用,学过高级语言的人可以在 很短的时间(如几周)内掌握AHDL。它的缺点 是移植性不好,通常只用于ALTERA自己的开发 系统。
VHDL & VERILOG
就标准而言,两种语言并无优劣、先后可言。 至于设计者采用哪种语言,与设计者的习惯、喜 好以及目前EDA、FPGA行业的支持有关。由于 VHDL在系统设计方面的语法支持,各FPGA厂商对 VHDL语言的支持明显多于Verilog,这可从各厂 商所提供的设计开发包中得到明证。而Verilog 由于在门级描述上的优势,从而被众多的IC设计 人员所采用。