当前位置:首页 >> IT/计算机 >>

zxc126413823:第三章——VHDL编程基础_图文

EDA技术及应用
电子信息工程学院 王桔

LOGO

EDA技术及应用

第三章 VHDL编程基础

www.themegallery.com

Company Logo

EDA技术及应用
?3.1 概述 ?3.1.1 什么是VHDL VHDL: VHSIC(Very High Speed Integrated Cricuit) Hardware Description Lauguage

www.themegallery.com

Company Logo

EDA技术及应用
?3.1.2 VHDL的历史 80年代初,由美国国防部在实施超高速集成电路 (VHSIC)项目时开发的。 1987年底, VHDL被IEEE ( The Institute of Electrical and Electronics Engineers)和美国 国防部确认为标准硬件描述语言。 自IEEE公布了VHDL的标准版本(IEEE-1076)之 后,各EDA公司相继推出了自己的VHDL设计环 境。 1993年被更为93标准,即IEEE标准的10761993版本。
www.themegallery.com Company Logo

EDA技术及应用
? 3.1.3 VHDL的作用: 1. VHDL打破软、硬件的界限 传统的数字系统设计分为: 硬件设计(硬件设计人员) 软件设计(软件设计人员) 是电子系统设计者和EDA工具之间的界面。 EDA工具及HDL的流行,使电子系统向集成化、 大规模和高速度等方向发展。

www.themegallery.com

Company Logo

EDA技术及应用
2. VHDL与电路原理图描述的比较: VHDL具有较强的的抽象描述能力,可进行系 统行为级别的描述。描述更简洁,效率更高。 VHDL描述与实现工艺无关。 电路原理图描述必须给出完整的、具体的电 路结构图,不能进行抽象描述。描述复杂,效 率低。电路原理图描述与实现工艺有关。

www.themegallery.com

Company Logo

EDA技术及应用
? 3.1.4 VHDL语言的特点: 1. VHDL具有强大的语言结构,系统硬件描述能力强,设 计效率高,具有较高的抽象描述能力。 2. VHDL语言可读性强,易于修改和发现错误。 3. VHDL具有丰富的仿真语句和库函数,可对VHDL源代 码进行早期功能仿真,有利于大系统的设计与验证。 4. VHDL设计与硬件电路关系不大。 5. VHDL设计不依赖于器件,与工艺无关。 6. 移植性好。 7. VHDL体系符合TOP-DOWN和CE(并行工程)设计 思想。 8. 上市时间快,成本低。 9. 易于ASIC实现。
www.themegallery.com Company Logo

EDA技术及应用
?3.1.5 VHDL设计简述 VHDL主要用于描述数字系统的结构、行为、功 能和接口。 VHDL将一个设计(元件、电路、系统)分为: 外部(可视部分、端口) 内部(不可视部分、内部功能、算法)

www.themegallery.com

Company Logo

EDA技术及应用

www.themegallery.com

Company Logo

EDA技术及应用

www.themegallery.com

Company Logo

EDA技术及应用
? 3.1.6 VHDL程序设计约定 为了便于程序的阅读和调试,本书对VHDL程序设计特 作如下约定: (1) 语句结构描述中方括号“[ ]”内的内容为可选内容。 (2) 对于VHDL的编译器和综合器来说,程序文字的大小 写是不加区分的。本书一般使用大写。 (3) 程序中的注释使用双横线“--”。在VHDL程序的任何 一行中,双横线“--”后的文字都不参加编译和综合。 (4) 为了便于程序的阅读与调试,书写和输入程序时,使 用层次缩进格式,同一层次的对齐,低层次的较高层次 的缩进两个字符。 (5) 考虑到MAX+plusII要求源程序文件的名字与实体名 必须一致,因此为了使同一个VHDL源程序文件能适应 各个EDA开发软件上的使用要求,建议各个源程序文件 的命名均与其实体名一致。
www.themegallery.com Company Logo

EDA技术及应用
?3.2 VHDL程序基本结构 基本结构包括: 库(Library) 程序包(Package) 实体(Entity) 结构体(Architecture) 配置(Configuration)

www.themegallery.com

Company Logo

EDA技术及应用
库、程序包

实体(Entity)
结构体
(ARCHITECTURE)

进程 或其它并行结构

配置(configuration)
www.themegallery.com Company Logo

4.1 设计实体
设计实体总由实体说明和结构体两部分构成
【例4-1】

ENTITY mux21a IS PORT( a, b : IN BIT ; s : IN BIT; y : OUT BIT ) ; END ENTITY mux21a ;

实体说明

ARCHITECTURE one OF mux21a IS BEGIN y <= a WHEN s = '0' ELSE b ; END ARCHITECTURE one ;
2选1多路选择器的VHDL描述
www.themegallery.com

图4-1 mux21a实体

结构体

图4-2 mux21a结构体
Company Logo

EDA技术及应用
?3.2.1 实体(ENTITY) 实体是一个设计实体的表层设计单元,其功 能是对这个设计实体与外部电路进行接口描述。 它规定了设计单元的输入输出接口信号或引脚, 是设计实体经封装后对外的一个通信界面。 实体说明单元的常用语句结构如下:
? ? ? ? ENTITY 实体名 IS [GENERIC(类属表);] [PORT(端口表);] END[ENTITY] 实体名;

www.themegallery.com

Company Logo

EDA技术及应用
?2.类属(GENERIC)说明语句 类属(GENERIC)参量是一种端口界面常数, 常以一种说明的形式放在实体或块结构体前的说 明部分。类属为所说明的环境提供了一种静态信 息通道,类属的值可以由设计实体外部提供。因 此,设计者可以从外面通过类属参量的重新设定 而容易地改变一个设计实体或一个元件的内部电 路结构和规模。

www.themegallery.com

Company Logo

EDA技术及应用
?类属说明的一般书写格式如下: GENERIC([常数名:数据类型[:设定值] {;常数名:数据类型[:设定值 ]}); 类属常用于定义: 实体端口的大小、 设计实体的物理特性、 总路线宽度、 元件例化的数量

www.themegallery.com

Company Logo

EDA技术及应用
? 例: ENTITY MCK IS GENERIC(WIDTH:INTEGER:=16); PORT(ADD_BUS:OUT STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0)) ; ... ? 2输入与门的实体描述。 ENTITY AND2 IS GENERIC(RISEW:TIME:=1 ns; FALLW:TIME:=1 ns); PORT( A1:IN STD_LOGIC; A0:IN STD_LOGIC; Z0:OUT STD_LOGIC); END ENTITY AND2;
www.themegallery.com Company Logo

EDA技术及应用
? 3.PORT端口说明 确定输入输出端口的数目和类型。 实体端口说明的一般书写格式如下: PORT(端口名:端口模式 数据类型; {端口名:端口模式 数据类型}); 端口模式说明:
端口模式 IN OUT BUFFER INOUT
www.themegallery.com

端口模式说明(以设计实体为主体) 输入,只读模式,将变量或信号信息通过该端口读入 输出,单向赋值模式,将信号通过该端口输出 具有读功能的输出模式,可以读或写,只能有一个驱动源 双向,可以通过该端口读入或写出信息
Company Logo

EDA技术及应用
?数据类型: 指端口上流动的数据的数据表达格式。为预先 定义好的数据类型。 如:bit、bit_vectou 例:entity nand2 is port(a,b in bit;);

www.themegallery.com

Company Logo

EDA技术及应用
3.2.4 结构体(ARCHITECTURE) ?结构体是用于描述设计实体的内部结构以及实体 端口间的逻辑关系。结构体内部构造的描述层次 和描述内容一般可以用图3.5来说明。一般地, 一个完整的结构体由两个基本层次组成: ● 对数据类型、常数、信号、子程序和元件等元素 的说明部分。 ● 描述实体逻辑行为的,以各种不同的描述风格表 达的功能描述语句。
www.themegallery.com Company Logo

EDA技术及应用
常数说明 结 构 体 说 明 结 子程序说明 构 体 块语句 结 构 体 功 能 描 述 进程语句 信号赋值语句 子程序调用语句 元件例化语句
www.themegallery.com Company Logo

数据类型说明 信号说明 例化元件说明

EDA技术及应用
? 实体与结构体的关系: 一个设计实体可有多个结构体,代表实体的多种实 现方式。各个结构体的地位相同。 结构体的语句格式如下: ARCHITECTURE 结构体名 OF 实体名 IS [说明语句] BEGIN [功能描述语句] END [ARCHITECTURE] 结构体名; 其中,实体名必须是所在设计实体的名字,而结构体 名可以由设计者自己选择,但当一个实体具有多个结构 体时,结构体的取名不可重复。定义语句中的常数、信 号不能与实体中的端口重名。
www.themegallery.com Company Logo

EDA技术及应用
结构体中错误的信号声明:

www.themegallery.com

Company Logo

EDA技术及应用
例:一个(3bit计数器)描述

www.themegallery.com

Company Logo

EDA技术及应用
?配置(CONFIGURATION) 配置可以把特定的结构体指定给一个确定的 实体。通常在大而复杂的VHDL工程设计中,配 置语句可以为实体指定或配置一个结构体。 配置语句的一般格式如下: CONFIGURATION 配置名 OF 实体名 IS 配置说明 END配置名;

www.themegallery.com

Company Logo

EDA技术及应用
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY NAND IS PORT(A:IN STD_LOGIC; B:IN STD_LOGIC; C:OUT STD_LOGIC); END ENTITY NAND; ARCHITECTURE ART1 OF NAND IS BEGIN C<=NOT (A AND B ); END ARCHITECTURE ART1; ARCHITECTURE ART2 OF NAND IS
www.themegallery.com Company Logo

EDA技术及应用
BEGIN C<= ?1? WHEN (A=?0?) AND(B=?0?) ELSE
?1? WHEN (A=?0?) AND(B=?1?) ELSE ?1? WHEN (A=?1?) AND(B=?0?) ELSE ?0? WHEN (A=?1?) AND(B=?1?) ELSE ?0?;

END ARCHITECTURE ART2;
CONFIGURATION FIRST OF NAND IS
FOR ART1 END FOR;

END FIRST; CONFIGURATION SECOND OF NAND IS
FOR ART2 END FOR;

END SECOND;
www.themegallery.com Company Logo

EDA技术及应用
?3.2.4 库、程序包 ?库的种类 VHDL程序设计中常用的库有4种。 1) IEEE库 定义了四个常用的程序包: STD_LOGIC_1164、 STD_LOGIC_ARITH、 STD_LOGIC_SIGNED 、 STD_LOGIC_UNSIGNED
www.themegallery.com Company Logo

EDA技术及应用
? 2) STD库 VHDL语言标准定义了两个标准程序包,即 STANDARD和TEXTIO程序包,它们都被收入 在STD库中。 定义最基本的数据类型: Bit,bit_vector,boolean,integer,real,time 3) WORK库 4)VITAL库 面向ASIC的库。
www.themegallery.com Company Logo

EDA技术及应用
?库及程序包的使用 在VHDL语言中,库和程序包的说明语句总 是放在实体单元前面,默认库及程序包可不作说 明。用关键字Library说明要使用的库,用关键 字use说明要使用的程序包。 库及程序包的作用范围:仅限于所说明的设 计实体。 每一个设计实体都必须有自己完整的库及程 序包说明语句USE语句。

www.themegallery.com

Company Logo

EDA技术及应用
库(LIBRARY)的语句格式如下: LIBRARY 库名;

程序包的使用有两种语句格式: USE 库名.程序包名.项目名; USE 库名.程序包名.ALL;

www.themegallery.com

Company Logo

EDA技术及应用
?例如: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE. STD_LOGIC_1164. RISING_EDGE;

www.themegallery.com

Company Logo

EDA技术及应用
例2选1选择器:

www.themegallery.com

Company Logo

EDA技术及应用
例2选1选择器的另外一种描述:

www.themegallery.com

Company Logo

EDA技术及应用
程序包(PACKAGE) 为了使已定义的常数、数据类型、元件调用 说明以及子程序能被更多的VHDL设计实体方便 地访问和共享,可以将它们收集在一个VHDL程 序包中。 库(LIBRARY) 多个程序包构成库。

www.themegallery.com

Company Logo

EDA技术及应用
?程序包说明内容: 常数说明 数据类型说明 元件定义 子程序说明 程序包的内容主要由以上四种基本结构组成,因此 一个程序包中至少应包含以上结构中的一种。 ?程序包的结构包括: 程序包说明(包首) 程序包主体(包体)
www.themegallery.com Company Logo

EDA技术及应用
?定义程序包的一般语句结构如下: --程序包首 PACKAGE 程序包名 IS --程序包首开始 程序包首说明部分 END 程序包名; --程序包首结束 包首声明项可由以下语句组成: Use语句(用来包括其它程序) 程序包的内容主要由如下四种基本类型组成, 常数说明、数据类型说明、元件定义、子程序说 明。
www.themegallery.com Company Logo

EDA技术及应用
? 例程序包首说明。 【例3.7.2】 PACKAGE PAC1 IS TYPE BYTE IS RANGE 0 TO 255; SUBTYPE NIBBLE IS BYTE RANGE 0 TO 15 CONSTANT BYTE_FF :BYTE :=255; SIGNAL ADDEND :NIBBLE; COMPONENT BYTE_ADDER PORT(A,B:IN BYTE; C:OUT BYTE); END COMPONENT ; FUNCTION MY_FUNCTION(A:IN BYTE ) RETURN BYTE; END PAC1;
www.themegallery.com Company Logo

EDA技术及应用
? 程序包包体 程序包的内容,子程序的实现算法。 包体语法: PACKAGE BODY 程序包名 IS --程序包体开始 程序包体说明部分以及包体内容

END 程序包名; --程序包体结束 包体说明项可含: Use语句:子程序说明;子程序主体:类型说明;子类型 说明;常量说明。
www.themegallery.com Company Logo

EDA技术及应用
?程序包首与程序包体的关系
程序包体并非必须,只有在程序包中要说明 子程序时,程序包体才是必须的。 程序包首可以独立定义和使用。如下: Package seven is subtype segments is bit_vector(0to6); type bcd is range 0 to 9; end seven
www.themegallery.com Company Logo

EDA技术及应用
Library work; use work.seven.all; entity decoder is port(input: in bcd; drive:out segment); end decoder; architecture art of decoder is Begin
WITH INPUT SELECT DRIVE<=B“1111110” WHEN 0, B“0110000” WHEN 1,
www.themegallery.com Company Logo

EDA技术及应用
B“1101101” WHEN 2, B“1111001” WHEN 3, B“0110011” WHEN 4, f B“1011011” WHEN 5, B“1011111” WHEN 6, e B“1110000” WHEN 7, B“1111111” WHEN 8, B“1111011” WHEN 9, B“0000000” WHEN OTHERS; END ARCHITECTURE ART;
www.themegallery.com

a

g

b

c

d

Company Logo

EDA技术及应用
?3.3 VHDL语言要素 四类语言要素: 数据对象(data object) 数据类型(data type) 操作数(operands) 操作符(operator)

www.themegallery.com

Company Logo

EDA技术及应用
? VHDL文字规则

1.数字型文字 (1)整数文字:整数文字都是十进制的数,如: 5, 678,0,156E2(=15600), 45_234_287(=45234287) (2) 实数文字:实数文字也都是十进制的数,但必 须带有小数点,如: 188.993, 88_670_551.453_909(=88670551.4 53909),1.0,44.99E-2(=0.4499)
www.themegallery.com Company Logo

EDA技术及应用
(3) 以数制基数表示的文字: 由五个部分组成: 基数#表达的文字#E指数 10#170# --(十进制数表示,等于170) 2#1111_1110# --(二进制数表示,等于254) 16#E#E1 --(十六进制数表示,等于 2#11100000#,等于224)(14*16=224)

www.themegallery.com

Company Logo

EDA技术及应用
(4) 物理量文字(VHDL综合器不接受此类文字)。 如: 60s(60秒),100m(100米),kΩ(千欧姆), 177A(177安培) ?2. 字符串型文字 字符是用单引号引起来的ASCII字符,可以是数 值,也可以是符号或字母,如:‘R?,‘A?, ‘*’,‘Z?。 字符串则是一维的字符数组,须放在双引号中。 VHDL中有两种类型字符串:文字字符串和数位 字符串。
www.themegallery.com Company Logo

EDA技术及应用
? 字符串分为: (1) 文字字符串:文字字符串是用双引号引起来的 一串文字,如: “ERROR”,“BOTH S AND Q EQUAL TO L”,“X”,“BB$CC” (2) 数位字符串:数位字符串也称位矢量,代表的 是二进制、八进制或十六进制的数组,其位矢 量的长度即为等值的二进制数的位数。 格式: 基数符号“数值”
www.themegallery.com Company Logo

EDA技术及应用
其中基数符号有三种: ● B:二进制基数符号 ● O:八进制基数符号,在字符串中的第一个数代表一个 八进制数,即代表一个3位(BIT)的二进制数。 ● X:十六进制基数符号(0~F),代表一个十六进制数, 即代表一个4位的二进制数。 例如: B“1_1101_1110” --二进制数数组,位矢数组长度是9 X“AD0” --十六进制数数组,位矢数组长度是12 O“34” --八进制数数组,位矢数组长度是6
www.themegallery.com Company Logo

EDA技术及应用
?3.标识符 定义常数、变量、信号、端口、子程序或参数的 名字。 基本标识符要求: 以英文字母开头; 不连续使用下划线“_”; 不以下划线“_”结尾; 由26个大小写英文字母、数字0~ 9以及下划线“_”组成的字符串。 VHDL的保留字不能做为标识符。
www.themegallery.com Company Logo

EDA技术及应用
非法标识符如下: _Decoder_1、 2FFT、 Sig_#N、 Not-Ack 、 All_RST_ 、 data_ _BUS 、 return 、 entity 、
www.themegallery.com Company Logo

EDA技术及应用
? 下标名及下标段名 下标名:用于指示数组型变量或信号的某一元素 下标段名:用于指示数组型变量或信号的某一段元 素 格式如下: 数组类型信号名或变量名(表达式 1[TO/DOWNTO 表达式2]); 示例:
A:STD_LOGIC_VECTOR(7 DOWNTO 0); A (7),A(6),…..A(0)
www.themegallery.com Company Logo

EDA技术及应用
? 3.3.2 VHDL数据对象 数据对象有三种: 常量(CONSTANT) 变量(VARIABLE) 信 号(SIGNAL) 三种对象的物理含义: 常量代表数字电路中的电源、地、恒定逻辑值等常数; 变量代表暂存某些值的载体,常用于描述算法; 信号代表物理设计中某一条硬件连接线,包括输入、输出端 口。

www.themegallery.com

Company Logo

EDA技术及应用
?三种对象的特点及场合说明: 信号:全局量 用于architecture、package、entity 变量:局部量 用于process、function、procedure 常量:全局量 可用于上面两种场合

www.themegallery.com

Company Logo

EDA技术及应用
库、程序包

实体(Entity)
结构体
(ARCHITECTURE)

进程 或其它并行结构

配置(configuration)
www.themegallery.com Company Logo

EDA技术及应用
?1.常量(CONSTANT) 常量说明:对某一个常量名赋予一个固定的值。 格式: CONSTANT 常量名:数据类型﹕=表达式; 例如:
CONSTANT FBUS﹕BIT_VECTOR﹕=“01011”; CONSTANT VCC﹕REAL﹕=5.0; CONSTANT DELY﹕TIME﹕=25ns; 常量的数据类型必须与表达式的数据类型一致
www.themegallery.com Company Logo

EDA技术及应用
库、程序包
实体(Entity) 结构体1

进程1
结构体2 进程2

常量是全 局全量, 其作用范围 取决于常量 被定义的位 置

www.themegallery.com

Company Logo

EDA技术及应用
?2.变量(VARIABLE) 变量是一个局部量,只能在进程和子程序中使用。 其作用范围仅限于定义了变量的进程和子程序中。 格式: VARIABLE 变量名:数据类型:=初始值;
例如: VARIABLE A:INTEGER; VARIABLE B,C:INTEGER:=2; 变量的初始值可用于仿真,但综合时被忽略。

www.themegallery.com

Company Logo

EDA技术及应用
? 3. 信号(SIGNAL) 电子硬件系统运行的基本特性: 硬件系统运行的并行性; 信号传输过程中的惯性延时特性; 多驱动源的总线特性; 时序电路中触发器的记忆特性等。 信号是电子系统内部硬件连接和硬件特性的抽象表 示。用来描述硬件系统的基本特性。

www.themegallery.com

Company Logo

EDA技术及应用
格式如下:

SIGNAL 信号名: 数据类型﹕=初始值;
SIGNAL S1:STD_LOGIG﹕=0; SIGNAL S2,S3:BIT; SIGNAL S4: STD_LOGIC_VECTOR(15 DOWNTO 0); 注:综合时初始值被忽略 信号是全局变量。可在结构体、实体、块中说 明和使用信号。 在进程和子程序中只能使用信号,不能说明信号。
www.themegallery.com Company Logo

EDA技术及应用
? 例:进程中信号与变量的使用 Entity ex is Port(…); end ex; architecture arch_ex of ex is singal a,b:std _logic; begin Process(a,b) variable c,d: std _logic; begin C:=a+b; d :=a-b; …………………. end process ; end arch_ex ;
www.themegallery.com Company Logo

EDA技术及应用
? 信号与端口的区别: 除没有方向说明外,信号与实体的“端口(port)”概念 相似。端口是一种隐形的信号。 entity exam is port([singal]a,b:in std _logic; [singal]c: out std _logic); end exam 端口是一种有方向的信号。相对于端口来说,其区别只 是输出端口不能读入数据,输入端口不能被赋值。信号 可以看成是实体内部的端口。 信号本身无方向,可读可写。
www.themegallery.com Company Logo

EDA技术及应用
?3.3.3 VHDL数据类型 VHDL是一种强类型语言,要求设计实体中的每 一个常数、信号、变量、函数以及设定的各种参 量都必须具有确定的数据类型,并且相同数据类 型的量才能互相传递和作用。 VHDL中的数据类型可以分成四大类: 标量型(SCALAR TYPE); 复合类型(COMPOSITE TYPE); 存取类型(ACCESS TYPE); 文件类型(FILES TYPE);
www.themegallery.com Company Logo

EDA技术及应用
又分为: VHDL的预定义数据类型 用户自定义数据类型 1.VHDL的预定义数据类型 1)布尔(BOOLEAN)数据类型 它的取值有FALSE和TRUE两种 常用于逻辑函数,如(=)、比较(<)等中作逻 辑比较。 如:bit值转换为boolean值: boolean_var:=(bit_var=?1?)
www.themegallery.com Company Logo

EDA技术及应用
2) 位(BIT)数据类型 bit表示一位的信号值。放在单引号中,取值只能 是1或0。 3) 位矢量(BIT_VECTOR)数据类型 位矢量只是基于BIT数据类型的数组。 SIGNAL A﹕BIT_VECTOR(7 TO 0); 4) 字符(CHARACTER)数据类型 字符类型通常用单引号引起来。 Character_var:= ?A?
www.themegallery.com Company Logo

EDA技术及应用
5) 整数(INTEGER)数据类型 整数类型的数代表正整数、负整数和零。在 VHDL中,整数的取值范围是-21 473 647~ +21 473 647,即可用32位有符号的二进制 数表示。 VHDL综合器要求对具体的整数作出范围限定,否 则无法综合未限定的整数类型的信号或变量。 如:SIGNAL S ﹕ INTEGER RANGE 0 TO 15;

www.themegallery.com

Company Logo

EDA技术及应用
6) 自然数(NATURAL)和正整数(POSITIVE)数据类型 自然数是整数的一个子类型,非负的整数,即零和正整数; 正整数也是整数的一个子类型,它包括整数中非零和非负的 数值。 定义如下: SUBTYPE NATURAL IS INTEGER RANGE 0 TO INTEGER 'HIGH; SUBTYPE POSITIVE IS INTEGER RANGE 1 TO INTEGER 'HIGH;

www.themegallery.com

Company Logo

EDA技术及应用
7) 实数(REAL)数据类型 VHDL的实数类型类似于数学上的实数,或称浮点数。 取值范围为-1.0E38~+1.0E38。 实数类型仅能在VHDL仿真器中使用,VHDL综合器不 支持实数。 8) 字符串(STRING)数据类型 字符串数据类型是字符数据类型的一个非约束型数组, 或称为字符串数组。字符串必须用双引号标明。如:
VARIABLE STRING_VAR﹕STRING(1 TO 7); … STRING_VAR﹕“ROSEBUD”;
www.themegallery.com Company Logo

EDA技术及应用
9) 时间(TIME)数据类型 时间类型包括整数和物理量单位两部分。 如55 ms,20 ns。 10) 错误等级(SEVERITY_LEVEL) 仿真中用来批示系统的工作状态,共有四种:

四种可能的状态值:NOTE(注意)、 WARNING(警告)、ERROR(出错)、 FAILURE(失败)。
www.themegallery.com Company Logo

EDA技术及应用
2.
1)

IEEE预定义标准逻辑位与矢量
标准逻辑位STD_LOGIC_1164中的数据类型

数据类型STD_LOGIC的定义如下所示: TYPE STD_LOGIC IS ('U','X',‘0?,'1','Z','W','L','H','-');

‘U?--未初始化的,‘X?--强未知的,‘0?--强0,‘1?--强1,‘Z?-高阻态,‘W?--弱未知的,‘L?--弱0,‘H?--弱1, ‘-?--忽 略。 在程序中使用此数据类型前,需加入下面的语句: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
www.themegallery.com Company Logo

EDA技术及应用
2) 标准逻辑矢量(STD_LOGIC_VECTOR)数 据类型 由STD_LOGIC构成的数组。 STD_LOGIC_VECTOR类型定义如下: TYPE STD_LOGIC_VECTOR IS ARRAY (NATURAL RANGE<>) OF STD_LOGIC;
STD_LOGIC_VECTOR是定义在 STD_LOGIC_1164程序包中的标准一维数组,数组 中的每一个元素的数据类型都是以上定义的标准逻辑位 STD_LOGIC。
www.themegallery.com Company Logo

EDA技术及应用
3. 其他预定义标准数据类型 如Synopsys公司在IEEE库中加入的程序包 STD_LOGIC_ARITH中定义了如下的数据类型:无 符号型(UNSIGNED)、有符号型(SIGNED)、小整 型(SMALL _INT)。 1) 无符号数据类型(UNSIGNED TYPE) 定义如下:TYPE UNSIGNED IS ARRAY (NATURAL
RANGE <>) OF STD_LOGIC; 如:UNSIGNED(“1000")

www.themegallery.com

Company Logo

EDA技术及应用
VARIABLE VAR﹕UNSIGNED(0 TO 10); SIGNAL SIG﹕UNSIGNED(5 DOWNTO 0);

其中,变量VAR有11位数值,最高位是 VAR(0),而非VAR(10);信号SIG有6位数值, 最高位是SIG(5)。 2) 有符号数据类型(SIGNED TYPE)

定义如下:
TYPE SIGNED IS ARRAY (NATURAL RANGE<>) OF STD_LOGIC;
www.themegallery.com Company Logo

EDA技术及应用
SIGNED数据类型表示一个有符号的数值,综合 器将其解释为补码,此数的最高位是符号位,例 如:SIGNED(“0101”) 代表+5,5; SIGNED(“1011”) 代表-5。

VARIABLE VAR﹕SIGNED(0 TO 10);
最左位VAR(0)是符号位。

www.themegallery.com

Company Logo

EDA技术及应用
4. 用户自定义数据类型方式 可以有多种,如 枚举类型(ENUMERA-TION TYPE)、 整数类型(INTEGER TYPE)、 数组类型(ARRAY TYPE)、 记录类型(RECORD TYPE)、 时间类型(TIME TYPE)、 实数类型(REAL TYPE)等。
www.themegallery.com Company Logo

EDA技术及应用
? 1) TYPE语句用法 TYPE语句语法结构如下: TYPE 数据类型名 IS 数据类型定义 [OF 基本 数据类型]; 例:TYPE ST1 IS ARRAY(0 TO 15)OF STD_LOGIC; 2) SUBTYPE语句用法 子类型是已定义的类型或子类型的一个子集。
格式如下: SUBTYPE 子类型名 IS 基本数据

TYPE WEEK IS (SUN,MON,TUE,WED,THU, FRI,SAT);

RANGE 约束范围;

www.themegallery.com

Company Logo

EDA技术及应用
例: SUBTYPE DIGITS INTEGER RANGE 0 TO 9;

5. 枚举类型 枚举该类型所有可能的值。格式: TYPE 类型名称 IS (所有可能的值); 如: TYPE M_STATE IS( STATE1,STATE2,STATE3,
STATE4,STATE5); SIGNAL CURRENT_STATE,NEXT_STATE: M_STATE;
www.themegallery.com Company Logo

EDA技术及应用
? 枚举类型的编码 综合器自动实现枚举类型的编码,一般将第一个枚举量 (最左边的量)编码为0,以后的依次加1 。编码用位矢量 表示,位矢的长度将取所需表达的所有枚举元素的最小 值。 如:type colour is(blue , green , yellow , red ); 编码为:blue=“00”; green=“01” ; yellow=“10”; red=“11” ;

www.themegallery.com

Company Logo

EDA技术及应用
? 2.整数类型 整数类型在标准的程序包中已作了定义。 格式:type 类型名 is range 整数范围 例如: type my_integer is range 0 to 9; ? 3.数组类型 数组类型属复合类型,是将一组具有相同数据类型的元素集 合在一起。 多维数组的声明: type byte is array(7 downto 0)of bit; type vector is array(3 downto 0)of byte;

www.themegallery.com

Company Logo

EDA技术及应用
? 限定性数组: 其索引范围有一定的限定。 定义语句格式如下: TYPE 数组名 IS ARRAY (数组范围) OF数据类型; 例:TYPE STB IS ARRAY(7 DOWNTO 0)OF STD_LOGIC; ? 非限定数组:数组索引范围被定义成一个类型范围。 定义语句格式如下: TYPE 数组名 IS ARRAY (数组下标名 RANGE<>) OF 数据类型; 例:TYPE BIT_VECTOR IS ARRAY(INTEGER RANE<>) OF BIT;

www.themegallery.com

Company Logo

EDA技术及应用
?4.记录类型 由已定义的、数据类型不同的对象元素构成的数 组称为记录类型的对象。 格式如下:
TYPE 记录类型名 IS RECORD 元素名 : 元素数据类型; 元素名 : 元素数据类型; … END RECORD [记录类型名];

www.themegallery.com

Company Logo

EDA技术及应用
? 例:costant len:integer:=8; subtype byte_vect is bit_vector(len-1 downto 0); type byte_and_ ix is record byte:byte_vect; ix:integer range 0 to len; end record; signal x, byte_and_ ix ; ……… x.byte<=“11110011”; x.ix<=2;
www.themegallery.com Company Logo

EDA技术及应用
?5.数据类型转换 由于VHDL是一种强类型语言,不同类型的数 据对象必须经过数据类型转换,才能相互操作。 1) 类型转换函数方式 类型转换函数的作用就是将一种属于某种数据类 型的数据对象转换成属于另一种数据类型的数据 对象。

www.themegallery.com

Company Logo

EDA技术及应用
? 例:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY CNT4 IS PORT(CLK﹕IN STD_LOGIC; P﹕INOUT STD_LOGIC_VECTOR(3 DOWNTO 0); END CNT4; LIBRARY DATAIO; USE DATAIO.STD_LOGIC_OPS.ALL ARCHITECTURE BEHV OF CNT4 IS BEGIN
www.themegallery.com Company Logo

EDA技术及应用
PROCESS(CLK) BEGIN IF CLK=?1?AND CLK'EVENT THEN P<=TO_VECTOR(2,TO_INTEGER(P)+1); END IF END PROCESS;

END BEHV; ?2) 直接类型转换方式 直接类型转换仅限于非常关联(如整型、浮点 型)的数据类型之间,可进行直接类型的。
www.themegallery.com Company Logo

EDA技术及应用
格式:

数据类型标识符(表达式)
如:variable a, b:real; variable c,d:integer;

…….. a:=real(c); d:= integer ( a);
www.themegallery.com Company Logo

EDA技术及应用
3.3.4 VHDL操作符

表达式由操作数和操作符组成,完成算术逻辑运 算。 1.操作符
逻辑操作符(Logical Operator)、 关系操作符(Relational Operator) 、 算术操作符(Arithmetic Operator) 、 重载操作符(Overloading Operator) 、
www.themegallery.com Company Logo

EDA技术及应用
?逻辑操作符(Logical Operator) 要求操作类型必须相同。可为如下类型: bit、bit_vector、std_logic、 std_log_vector、boolean 数组操作数的维数和大小必须相同。 注:当有两个以上的逻辑表达式时,左右没有优先 级别,突出优先级时必须使用括号,如: X<=(a and b)or (not c and d); 例外,当逻辑表达式中只有“and”、“or”等运 算符时,可以省略括号。
www.themegallery.com Company Logo

EDA技术及应用
如:a<=b and c and d and e; a<=b or c or d or e; a<=b xor c xor d xor e; ?关系操作符 6种:=、/=、<、<=、>= 用于比较相同父类的两个操作数,返回boolean 值。 ?加减操作符: 加操作符:+,减操作符:www.themegallery.com Company Logo

EDA技术及应用
串联(并置)操作符:& 串联操作符“&”通过联接操作数来建立新的数组。操作数 可以是一个数组或数组中的一个元素。 例: singal a,b:bit_vector(3downto0)

singal d,c,g:bit_vector(1downto0) singal e:bit_vector(2downto0) singal f,h,i:bit;

a<=not d&not c; b<=not e&not f; d<=not h&not i;
www.themegallery.com

Company Logo

EDA技术及应用
?一元操作符 仅有一个操作数的操作符。包括:“+”,“-” ?乘除操作符 用于整数类型:“*”、“/”、 “mod“、”rem“ 综合的限制: “/”、“mod“、”rem“三种操 作符的右操作数必须为2的正整数幂,实际电路 用用移位实现。

www.themegallery.com

Company Logo

EDA技术及应用
?操作数 操作符进行运算时所需的数据。 操作数的种类: 标志符;集合;属性;表达式;函数调用;索引名; 文字;限定表达式;记录和域;片段名;类型转 换 ?重载操作符 VHDL允许用户对原有的基本操作符重新定义, 赋予新的含义和功能,从而建立一种新的操作符, 这就是重载操作符。
www.themegallery.com Company Logo

EDA技术及应用
算术运算符仅对integer类型有效。逻辑运算符仅 对bit类型有效。 例:variable a,b,c:integer; variable x,y,z:bit; c:=a+b; z:=x and y; 程序包STD_LOGIC_UNSIGNED中已经为许 多类型的运算重载了算术运算符和关系运算符。

www.themegallery.com

Company Logo

EDA技术及应用
? 例: Library iEEE; use ieee.std_logic_1164.all; use ieee.std_logic_unsigend.all; entity overload is port(a:in std_logic_vector(3 downto 0); b:in std_logic_vector(3 downto 0); c: in integer range0 to 15; sum1:out std_logic_vector(4 downto 0); sum2:out std_logic_vector(4 downto 0)); end overload;
www.themegallery.com Company Logo

EDA技术及应用
architecture example of overload is begin sum1:=a+b; sum2:=a+c; end example;

www.themegallery.com

Company Logo

EDA技术及应用
? 练习: 1. VHDL语言的基本结构有哪些? 2. 编程:设计一个4选1选择器,结构体部分内部 逻辑可以不用编,只写出概框。要求:端口的 数据类型为STD_LOGIC。

www.themegallery.com

Company Logo

EDA技术及应用
? 3.4 VHDL顺序语句 ENTITY
ARCHITECTURE Process Process
ports ports

component

硬件执行:并发执行(VHDL本质) 仿真执行:顺序执行 分为两大类:顺序描述语句 并发描述语句
www.themegallery.com Company Logo

EDA技术及应用
?顺序描述语句 每一条顺序语句的执行(指仿真执行)顺序是与它 们的书写顺序基本一致的。顺序语句只能出现在 进程(Process)和子程序中。可以描述逻辑系 统中的组合逻辑、时序逻辑或它们的综合体。 常用的顺序描述语句: 赋值语句;转向控制语句;等待语句;子程序调 用语句;返回语句;空操作语句。

www.themegallery.com

Company Logo

EDA技术及应用
3.4.1 赋值语句 赋值语句的功能就是将一个值或一个表达式的运算结果 传递给某一数据对象,如信号或变量,或由此组成的数 组。 1.信号和变量赋值 赋值语句有两种,即信号赋值语句和变量赋值语句。 变量赋值语句和信号赋值语句的语法格式如下: 变量赋值目标:= 赋值源; 信号赋值目标:<= 赋值源; 要求:表达式的值必须与对象的类型、宽度一致。
www.themegallery.com Company Logo

EDA技术及应用
2.信号和变量赋值

变量与信号的差异:
1. 赋值方式的不同: 变量:=表达式; 信号:<=表达式; 2. 硬件实现 的功能不同:

信号代表电路单元、功能模块间的互联,代表实际的硬 件联线;
变量代表电路单元内部操作,代表暂存的临时数据。
www.themegallery.com Company Logo

EDA技术及应用
3. 有效范围的不同: 信号:程序包、实体、结构体:全局量。 变量:进程、子程序:局部量。 ARCHITECTURE {signal declarations} Label 1:process {variable declarations} . . . Label 2:process {variable declarations}
www.themegallery.com Company Logo

EDA技术及应用
4. 赋值行为的不同: 信号赋值延迟更新数值、时序电路; 变量赋值立即更新数值、组合电路。 5. 信号的多次赋值 a.一个进程,最后一次赋值有效 b.多个进程: 多源驱动 线与、线或、三态等不同结果

www.themegallery.com

Company Logo

EDA技术及应用
? 例:信号的多次赋值 architecture rtl of ex is singal a:std_logic; begin process(…) begin a<=b; … a<=c; end process end rtl

architecture rtl of ex is singal a:std_logic; begin process(…) begin a<=b; … end process process(…) begin a<=c; … end process end rtl
Company Logo

www.themegallery.com

EDA技术及应用
? 信号赋值与变量赋值的比较:
Signal s1,s2: std_logic; Signal svec : std_logic_vector(0 to 7); … Process(s1,s2) is Variable v1,v2: std_logic; Begin v1:=?1?; v2:=?1?; s1<=?1?; s2<=?1?; svec(0)<=v1; svec(1)<=v2; svec(2)<=s1; svec(3)<=s2; v1:=?0?; v2:=?0?; s2:=?0?; svec(4)<=v1; svec(5)<=v2; svec(6)<=s1; svec(7)<=s2; End process

www.themegallery.com

Company Logo

EDA技术及应用
3.4.2 转向控制语句 转向控制语句通过条件控制开关决定是否执行 一条或几条语句,或重复执行一条或几条语句, 或跳过一条或几条语句。 转向控制语句共有五种:

IF 语句、CASE 语句、LOOP 语句、NEXT 语
句和EXIT 语句。
www.themegallery.com Company Logo

EDA技术及应用
? 1.IF语句 IF语句是一种条件语句,它根据语句中所设置的一种或多 种条件,有选择地执行指定的顺序语句,其语句结构如 下:
IF 条件句 THEN 顺序语句 {ELSIF 条件句 THEN 顺序语句}; [ELSE 顺序语句]; END IF

IF语句中应至少有一个条件句,条件句必须由布尔表达式 构成。根据条件句产生的判断结果TRUE或FALSE,有 条件地选择执行其后的顺序。
www.themegallery.com Company Logo

EDA技术及应用
?例: if (ean=?1?) then q<=d; end if; ?二选一电路:

www.themegallery.com

Company Logo

EDA技术及应用
architecture mux_arch of mux21 is begin process(a,b,s) begin if (s=?1?) then y<=a; else y<=b; end if; end process; end mux_arch ;
www.themegallery.com Company Logo

EDA技术及应用
?2. CASE 语句 CASE语句根据满足的条件直接选择多项顺序语句 中的一项执行。 CASE语句的结构如下:
? CASE 表达式 IS ? WHEN 选择值 =>顺序语句; ? WHEN 选择值 =>顺序语句;

[ WHEN OTHERS =>顺序语句;] … ? END CASE;
Company Logo

www.themegallery.com

EDA技术及应用
选择值可以有四种不同的表达方式: ① 单个普通数值,如4;

② 数值选择范围,如(2 TO 4),表示取值2、3或
4;

③ 并列数值,如3 | 5,表示取值为3或者5;
④ 混合方式,以上三种方式的混合。
www.themegallery.com Company Logo

EDA技术及应用
使用CASE语句需注意以下几点: (1) 条件句中的选择值必须在表达式的取值范围内。 (2) 除非所有条件句中的选择值能完整覆盖CASE 语句中表达式的取值,否则最末一个条件句中的 选择必须用“OTHERS”表示。 这一点对于定义为STD_LOGIC和 STD_LOGIC_VECTOR数据类型的值尤为重要。

www.themegallery.com

Company Logo

EDA技术及应用
(3) CASE语句中每一条件句的选择只能出现一次, 不能有相同选择值的条件语句出现。 (4) CASE语句执行中必须选中,且只能选中所列 条件语句中的一条。这表明CASE语句中至少要 包含一个条件语句。

www.themegallery.com

Company Logo

EDA技术及应用
? 例:case语句的误用: signal value:integer range 0 to 15; signa out_1:bit; case value is end case; case value is when 0 =>our_1<=?1?; when 1 =>our_1<=?0?; end case; case value is when 0 to 15=>our_1<=?1?; when 5 to 15=>our_1<=?0?; end case;

www.themegallery.com

Company Logo

EDA技术及应用
? 【例3.4.9】 用CASE语句描述4选1多路选择器。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX41 IS PORT(S1,S2: IN STD_LOGIC; A,B,C,D:IN STD_LOGIC; Z: OUT STD_LOGIC); END ENTITY MUX41; ARCHITECTURE ART OF MUX41 IS SIGNAL S :STD_LOGIC_VECTOR(1 DOWNTO 0);
www.themegallery.com Company Logo

EDA技术及应用
BEGIN S<=S1 & S2; PROCESS(S1,S2,A,B,C,D) BEGIN CASE S IS WHEN "00"=>Z<=A; WHEN "01"=>Z<=B; WHEN "10"=>Z<=C; WHEN "11"=>Z<=D; WHEN OTHERS =>Z<='X'; END CASE; END PROCESS; END ART;
www.themegallery.com Company Logo

EDA技术及应用
? 3. LOOP语句 LOOP语句就是循环语句,它可以使所包含的一组顺序语句 被循环执行,其执行次数可由设定的循环参数决定,循环 的方式由 NEXT和EXIT语句来控制。其语句格式如下: [LOOP 标号:] [重复模式] LOOP 顺序语句 END LOOP [LOOP 标号]; 重复模式有两种:WHILE 和FOR,格式分别为: [LOOP 标号:] FOR 循环变量 IN 循环次数范围 LOOP --重复次数已知 [LOOP 标号:]WHILE 循环控制条件 LOOP --重复次数未知
www.themegallery.com Company Logo

EDA技术及应用
?… L2: LOOP A:=A+1; EXIT L2 WHEN A>10; 出循环 END LOOP L2; …

--当A大于10时跳

www.themegallery.com

Company Logo

EDA技术及应用
?【例3.4.12】 FOR_LOOP语句的使用(8位奇 偶校验逻辑电路的VHDL程序)。
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY P_CHECK IS PORT (A:IN STD_LOGIC_VECTOR(7 DOWNTO 0); Y:OUT STD_LOGIC); END P_CHECK; ARCHITECTURE ART OF P_CHECK IS SIGNAL TMP: STD_LOGIC;
www.themegallery.com Company Logo

EDA技术及应用
BEGIN PROCESS(A) BEGIN TMP <=?0?; FOR N IN 0 TO 7 LOOP TMP <=TMP XOR A(N); END LOOP; Y<= TMP; END PROCESS; END ART;
www.themegallery.com Company Logo

EDA技术及应用
?WHILE_LOOP语句的使用。 sum=0; i=0; abcd:while(i<10)loop sum:=sum+i; i:=i+1; end loop abcd; 注:循环变量i需事先定义、赋初值。并指其变化方 式。一般综合工具不支持while_loop。
www.themegallery.com Company Logo

EDA技术及应用
? 4.NEXT 语句 NEXT语句主要用在LOOP语句执行中有条件的或无 条件的转向控制。它的语句格式有以下三种: NEXT [LOOP 标号] [WHEN 条件表达式]; NEXT; 1)LOOP标号缺省时,无条件终止当前的循环,跳回到本 次循环LOOP语句开始处,开始下一次循环 NEXT [LOOP 标号] ; 2) 有LOOP标号时,跳转到指定标号的LOOP语句开始 处,重新开始执行循环操作。 NEXT [LOOP 标号] [WHEN 条件表达式]; 3)若WHEN子句出现并且条件表达式的值为TRUE,则 执行NEXT语句,进入跳转操作,否则继续向下执行。
www.themegallery.com Company Logo

EDA技术及应用
? 【例3.4.18】 … L_X: FOR CNT IN 1 TO 8 S1:A(CNT):=?0?; K:=0; L_Y:LOOP S2:B(k):=?0?; NEXT L_X WHEN (E>F): S3:B(k+8):=?0?; K:=K+1; NEXT LOOP L_Y; NEXT LOOP L_X; …
www.themegallery.com

LOOP

Company Logo

EDA技术及应用
? 5.EXIT语句 EXIT语句将结束循环状态。 格式如下: EXIT [LOOP 标号] [WHEN 条件表达式]; 区别:NEXT语句是跳向LOOP 语句的起始点, 而EXIT语句则是跳向LOOP语句的终点。

www.themegallery.com

Company Logo

EDA技术及应用
?【例3.4.19】一个两元素位矢量值比较程序。 SIGNAL A,B:STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL A_LESS_B:BOOLEAN; … A_LESS_B<=FLASE; --设初始值 FOR I IN 1 DOWNTO 0 LOOP IF (A(I)=?1? AND B(I)=?0?) THEN A_LESS_B<=FALSE; EXIT;
www.themegallery.com Company Logo

EDA技术及应用
ELSIF (A(I)=?0? AND B(I)=?1?) THEN A_LESS_B<=TRUE; --A<B EXIT; ELSE; NULL; END IF; END LOOP;

www.themegallery.com

Company Logo

EDA技术及应用
? 3.4.3 WAIT 语句 进程在仿真时的两各个状态: 执行或挂起 进程状态的变化受WAIT语句或敏感信号量变化的 控制。 可设置不同的条件: WAIT 未设置停止挂起条件的表达式,表示 永远挂起。 WAIT ON 信号表 敏感信号等待语句 WAIT UNTIL 条件等待语句
www.themegallery.com Company Logo

EDA技术及应用
? 1.WAIT ON 语句 格式:WAIT ON 信号表 ; 例:以下两种描述是完全等价的: process(a,b) process begin begin y<=a and b; wait on a,b; y<=a and b; end process end process

敏感信号列表和wait语句只能任选其一,两者不能同时使 用。
www.themegallery.com Company Logo

EDA技术及应用
?2.WAIT UNTIL 语句(可综合) 格式: WAIT UNTIL 条件表达式; 当表达式的值为“真”时,进程被启动,否 则进程被挂起。 WAIT_UNTIL语句有以下三种表达方式:
WAIT UNTIL 信号=VALUE; WAIT UNTIL 信号'EVENT AND 信号=VALUE; WAIT UNTIL NOT 信号‘STABLE AND 信号 =VALUE;
www.themegallery.com Company Logo

EDA技术及应用
?如果设CLOCK为时钟信号输入端,以下四条 WAIT语句所设的进程启动条件都是时钟上升沿: WAIT UNTIL CLOCK =?1?; WAIT UNTIL RISING_EDGE(CLOCK); WAIT UNTIL NOT CLOCK'STABLE AND CLOCK='1'; WAIT UNTIL CLOCK=?1? AND CLOCK?EVENT; 以上描述可以实现相同的硬件电路结构。
www.themegallery.com Company Logo

EDA技术及应用
? 【例3.4.21】求平均电路: PROCESS BEGIN
WAIT UNTIL CLK?EVENT AND AVE<=A; WAIT UNTIL CLK?EVENT AND AVE<=AVE+A; WAIT UNTIL CLK?EVENT AND AVE<=AVE+A; WAIT UNTIL CLK?EVENT AND AVE<=(AVE+A)/4; CLK= ?1?; CLK= ?1?; CLK= ?1?; CLK= ?1?;

END PROCESS;
www.themegallery.com Company Logo

EDA技术及应用
? 3.4.6 空操作语句(NULL) 空操作语句的语句格式如下: NULL; ? 3.4.7 其他语句和说明 1.属性(ATTRIBUTE)描述与定义语句 属性是某一对象的特征表示,是一个内部预定义函数。格式: 属性测试项目名’属性标识符 其中综合器支持的属性有:LEFT、RIGHT、HIGH、 LOW、RANGE、REVERSE_RANGE、LENGTH、 EVENT和STABLE等。

www.themegallery.com

Company Logo

EDA技术及应用
? 1) 信号类属性 信号类属性中,最常用的当属EVENT。 格式:属性测试项目名’EVENT 发生事件:信号电平发生变化 对当前的一个极小的时间段△内发生的事件的情况 进行检测。如发生事件,则返回true,否则返回 false。 CLOCK'EVENT AND CLOCK=?1? clock?event
clock=?0? clock?event
www.themegallery.com Company Logo

clock=?1?

EDA技术及应用
? 时钟信号上升沿的描述: CLOCK'EVENT AND CLOCK=?1? ? 时钟信号下降沿的描述: CLOCK'EVENT AND CLOCK=?0? 【例3.4.29】上升沿触发器的VHDL描述。 PROCESS(CLOCK) BEGIN IF(CLOCK'EVENT AND CLOCK=?1?) THEN Q<=DATA; END IF; END PROCESS;
www.themegallery.com Company Logo

EDA技术及应用
?上升沿触发器的VHDL另一描述。 PROCESS BEGIN WAIT UNTIL CLOCK'EVENT AND CLOCK=?1? Q<=DATA; END PROCESS;

www.themegallery.com

Company Logo

EDA技术及应用
?属性STABLE

属性STABLE的测试功能恰与EVENT相反,它是
信号在Δ时间段内无事件发生,则返还TRUE值。 以下两语句的功能是一样的。 NOT(CLOCK'STABLE ) AND CLOCK=?1? CLOCK'EVENT AND CLOCK=?1?

www.themegallery.com

Company Logo

EDA技术及应用
? 3.5 VHDL并行语句 相对于传统的软件描述语言,并行语句结构是最具VHDL特色的。 ? 并行语句主要有7种: ● 并行信号赋值语句(CONCURRENT SIGNAL ASSIGNMENTS)。 ● 进程语句(PROCESS STATEMENTS)。 ● 块语句(BLOCK STATEMENTS)。 ● 条件信号赋值语句(SELECTED SIGNAL ASSIGNMENTS)。 ● 元件例化语句(COMPONENT INSTANTIATIONS)。 ● 生成语句(GENERATE STATEMENTS)。 ● 并行过程调用语句(CONCURRENT PROCEDURE CALLS)。

www.themegallery.com

Company Logo

EDA技术及应用
? 3.5.1 进程语句 进程(PROCESS)语句是最具VHDL语言特色的语 句。因为它提供了一种用算法(顺序语句)描述硬 件行为的方法。 特点: 1. 进程与进程,或其它并发语句之间的并发性; 2. 进程内部的顺序性; 3. 进程的启动与挂起; 4. 进程与进程,或其它并发语句之间的通信;
www.themegallery.com Company Logo

EDA技术及应用
? 1.PROCESS语句格式 PROCESS语句的表达格式如下: [进程标号:]PROCESS[(敏感信号参数表)][IS] [进程说明部分] BEGIN 顺序描述语句 END PROCESS[进程标号]; 敏感信号列表:进程内要读取的所有敏感信号(包 括端口)的列表。每一个敏感信号的变化都将启 动进程。
www.themegallery.com Company Logo

EDA技术及应用
? 敏感信号表的特点: 1. 同步进程的敏感信号表中只有时钟信号: 如:process(clk) begin if (clk?event and clk=?1?)then if rest=?1? then data<=“00”; else data<=in_data; end if; end if; end process;
www.themegallery.com Company Logo

EDA技术及应用
2. 异步进程的敏感信号表中除时钟信号外,还有 其它信号: 例:process(clk,rest) begin if rest=?1? then data<=“00”; else if (clk?event and clk=?1?)then data<=in_data; end if; end process;
www.themegallery.com Company Logo

EDA技术及应用
3. 如果有WAIT语句,则不允许有敏感信号列表。 process(a,b) begin … end process; process begin … wait on(a,b) end process;
www.themegallery.com Company Logo

EDA技术及应用
? 【例3.5.3】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT(CLR: IN STD_LOGIC; IN1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); OUT1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END CNT10; ARCHITECTURE ART OF CNT10 IS

www.themegallery.com

Company Logo

EDA技术及应用
BEGIN PROCESS (IN1,CLR) BEGIN IF (CLR= ?1? OR IN1= "1001") THEN OUT1<=“0000”; ELSE OUT1<=IN1+1; ENG IF END PROCESS; END ART;
www.themegallery.com Company Logo

EDA技术及应用
? 3.5.2 块语句 块(BLOCK)语句是一种将结构体中的并行描述语句进行 组合的方法,它的主要目的是改善并行语句及其结构的 可读性,或是利用BLOCK的保护表达式关闭某些信号。 1.BLOCK语句的格式
BLOCK语句的表达格式如下: 块标号:BLOCK [(块保护表达式)] 接口说明 类属说明 BEGIN 并行语句 END BLOCK [块标号];
www.themegallery.com Company Logo

EDA技术及应用
? BLOCK语句的应用,包括其中的类属说明和端口定义, 都不会影响对原结构体的逻辑功能的仿真结果。例如, 下两例的仿真结果是完全相同的。 ? A1:OUT <=?1? AFTER 3 NS;
A2:OUT<=?1? AFTER 3 NS; A3:OUT<=?0? AFTER 2 NS; A1:OUTL<=?1? AFTER 2 NS; BLK1: BLOCK BEGIN A2:OUT 2<=?1? AFTER 3 NS; A3:OUT 3<=?0? AFTER 2 NS; END BLOCK BLK1;

www.themegallery.com

Company Logo

EDA技术及应用
? 嵌套块:块中定义的所有的数据类型、数据对象(信号、 变量、常量)和子程序等都是局部的,对于多层嵌套块, 这些局部量只适用于当前块。 【例3.5.11】 … B1:BLOCK --定义块B1 SIGNAL S: BIT; --在B1块中定义S BEGIN S<=A AND B; --向B1中的S赋值 B2:BLOCK --定义块B2,套于B1块中 SIGNAL S: BIT; --定义B2块中的信号S BEGIN S<=C AND D; --向B2中的S赋值
www.themegallery.com Company Logo

EDA技术及应用
B3 :BLOCK BEGIN Z<= S; END BLOCK B3; END BLOCK B2; Y<= S; END BLOCK B1;

--此S来自B2块

--此S来自B1块

www.themegallery.com

Company Logo

EDA技术及应用
? 3.5.3 并行信号赋值语句

并行信号赋值语句有三种形式:
简单信号赋值语句、 条件信号赋值语句 选择信号赋值语句。

www.themegallery.com

Company Logo

EDA技术及应用
? 共同点是: 1. 赋值目标必须都是信号,所有赋值语句与其他 并行语句一样,在结构体内的执行是同时发生 的,与它们的书写顺序和是否在块语句中没有 关系。 2. 每一信号赋值语句都相当于一条缩写的进程语 句,而这条语句的所有输入(或读入)信号都被隐 性地列入此过程的敏感信号表中。

www.themegallery.com

Company Logo

EDA技术及应用
? 1. 简单信号赋值语句 语句格式如下: 信号赋值目标<=表达式 例:以下两种描述等价。 architecture behav of a_var is begin output<=a(i); end behav; architecture behav of a_var is begin process(a,i) begin output<=a(i); end process; end behav; 一个简单并行信号赋值语句,是一个进程的缩写。
www.themegallery.com Company Logo

EDA技术及应用
? 以下两种描述不等价。 architecture behav of a_var is begin c<=a and b; y<=c; end behav; architecture behav of a_var is begin process(a,b,c) begin c<=a and b; y<=c; end process; end behav;
www.themegallery.com Company Logo

EDA技术及应用
? 正确的描述: architecture behav of a_var is signal c: std_logic begin process1:process(a,b) begin c<=a and b end process process1 ; process2:process(c) begin y<=c end process process2 ; end behav;
www.themegallery.com Company Logo

EDA技术及应用
? 2.条件信号赋值语句
表达方式如下: 赋值目标 <= 表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE … 表达式;

在结构体中,条件信号赋值语句的功能与在 进程中的多选择if语句等价。每一赋值条件是按 书写的先后逐项测定的,一旦发现赋值条件为 TRUE,立即将表达式的值赋给赋值目标。
www.themegallery.com Company Logo

EDA技术及应用
例: q<=a when sela=?1? else b when selb=?1? else c; process(sela,selb,a,b,c) begin if(sela=?1?)then q<=a; elseif(selb=?1?)then q<=b; else q<=c; end if; end process;

www.themegallery.com

Company Logo

EDA技术及应用
? 用信号赋值语句描述4选1多路选择器。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX41 IS PORT(S1,S2: IN STD_LOGIC; A,B,C,D:IN STD_LOGIC; Z: OUT STD_LOGIC); END ENTITY MUX41; ARCHITECTURE ART OF MUX41 IS SIGNAL S :STD_LOGIC_VECTOR(1 DOWNTO 0);
www.themegallery.com Company Logo

EDA技术及应用
BEGIN S<=S1 & S2; Z<=A WHEN S ="00" ELSE B WHEN S = "01" ELSE C WHEN S = "10" ELSE D WHEN S = "11" ELSE 'X'; END ART;

www.themegallery.com

Company Logo

EDA技术及应用
? 3.选择信号赋值语句 选择信号赋值语句格式如下: WITH 选择表达式SELECT 赋值目标信号<=表达式WHEN选择值 表达式WHEN选择值 … 表达式WHEN选择值; 注:1.不能有重叠的条件分支。 2.最后条件可为others,其它条件必须能包涵表 达式的所有可能的值。 3.选择信号赋值语句与进程中的case语句等价。
www.themegallery.com Company Logo

EDA技术及应用
? 选择信号赋值语句与进程中的case语句等价。 ? 例: with s select process(s,a,b,c,d) q<=a when “00”, begin b when “01”, case s is c when “10”, when “00”=> d when others; q<=a ; when “01” => q<=b; when “10” => q<=c; when others => q<=d; end case; end process
www.themegallery.com Company Logo

EDA技术及应用
3.5.5 元件例化语句 元件例化语句由两部分组成,前一部分是将一个现 成的设计实体定义为一个元件的语句,第二部分 则是此元件与当前设计实体中的连接说明,它们 的语句格式如下:
? -- 元件定义语句 ? COMPONENT 例化元件名 IS
? GENERIC (类属表) ? PORT(例化元件端口名表)

? END COMPONENT 例化元件名; 元件的声明类似于实体的声明。
www.themegallery.com Company Logo

EDA技术及应用
?例:元件声明: component and2 port(a,b:in bit; c:out bit); end component ; 可以在以下部分声明元件: 结构体、程序包、块。 被声明元件的来源: VHDL的设计实体。
www.themegallery.com Company Logo

EDA技术及应用
?3.元件例化: 把低层元件安装(调用)到当前层次设计实体内 部的过程。 包括:类属参数传递、元件端口映射。 ? 元件例化语句 ? 元件例化名:例化元件名 PORT MAP( ? [例化元件端口名=>] 连接实体端口名,…);

www.themegallery.com

Company Logo

EDA技术及应用
?端口映射方式: 名字关联方式:例化元件端口名与连接实体端口名 的对应式。 例:or2 port map(o=>n6,i1 =>n3,i2=>n1) 位置关联方式:要求连接实体端口名的排列方式与 所需例化的元件端口定义中的端口名一一对应。 例: or2 port map(n3,n1,n6)

www.themegallery.com

Company Logo

EDA技术及应用
? 例3.5.18中首先完成了一个2输入与非门的设计,然后利 用元件例化产生了如图3.21所示的由3个相同的与非门连 接而成的电路。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ND2 IS PORT(A,B:IN STD_LOGIC; C:OUT STD_LOGIC); END ND2; ARCHITECTURE ARTND2 OF ND2 IS BEGIN C<=A NAND B; END ARCHITECTURE ARTND2;
www.themegallery.com Company Logo

EDA技术及应用
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ORD41 IS PORT(A1,B1,C1,D1:IN STD_LOGIC; Z1:OUT STD_LOGIC); END ORD41; ARCHITECTURE ARTORD41 OF ORD41 IS COMPONENT ND2 PORT(A,B:IN STD_LOGIC; C:OUT STD_LOGIC); END COMPONENT; SIGNAL s1,s2 :STD_LOGIC; BEGIN
U1:ND2 PORT MAP (A1,B1,s1); U2:ND2 PORT MAP (A=>C1,C=>s2,B=>D1); U3:ND2 PORT MAP (s1,s2,C=>Z1); --位置关联方式 --名字关联方式 --混合关联方式

END ARCHITECTURE ARTORD41;
Company Logo

www.themegallery.com

EDA技术及应用
A U1 B ND2

A1 B1

C S1 A U3 B ND2 C

Z1

C1 D1

A U2 B ND2

C S2

图3.21 ORD41逻辑原理图
Company Logo

www.themegallery.com

EDA技术及应用
? 3.5.6 生成语句 生成语句的语句格式有如下两种形式: [标号:]FOR 循环变量 IN 取值范围 GENERATE
? ? ? ? 说明 BEGIN 并行语句 END GENERATE[标号];

www.themegallery.com

Company Logo

EDA技术及应用
[标号:]IF 条件 GENERATE
? ? ? ? 说明 BEGIN 并行语句 END GENERATE[标号];

www.themegallery.com

Company Logo

EDA技术及应用
COMP INPUT OUTPUT

A[0 ]

B[0 ]

A[1 ]

INPUT

COMP OUTPUT


B[1 ]

A[7 ]

INPUT

COMP OUTPUT

B[7 ]

图3.22 生成语句产生的8个相同的电路模块

www.themegallery.com

Company Logo

EDA技术及应用
? 【例3.5.19】生成语句产生的8个相同的电路模块 … COMPONENT COMP PORT (X:IN STD_LOGIC;Y: OUT STD_LOGIC); END COMPONENT; SIGNAL A,B:STD_LOGIC_VECTOR (0 TO 7); … GEN: FOR I IN A'RANGE GENERATE U1:COMP PORT MAP (X=> A(I), Y=>B(I)); END GENERATE GEN; …
www.themegallery.com Company Logo

EDA技术及应用
? 3.6 子程序(SUBPROGRAM) 子程序是一个VHDL程序模块,它是利用顺序语句来定义 和完成算法的,应用它能更有效地完成重复性的设计工作。 定义的位置: 程序包、结构体、进程语句。 子程序和进程的区别: 子程序不能从所在的结构体的其他块或进程结构中直接读 取信号值或者向信号赋值,而只能通过子程序调用及与子 程序的界面端口进行通信。
Company Logo

www.themegallery.com

EDA技术及应用
?子程序每一次调用都将在硬件结构中产生具有相 同结构的不同的模块,这一点与在普通的软件中 调用子程序有很大的不同。 因此,在面向VHDL的实用中,要密切关注和严 格控制子程序的调用次数,每调用一次子程序都

意味着增加了一个硬件电路模块。

www.themegallery.com

Company Logo

EDA技术及应用
?子程序有两种类型,即过程(PROCEDURE)和函 数(FUNCTION)。 ?过程:0个或多个in、out、inout参数,可获得 多个返回值。 ?函数:0个或多个in参数,可获得一个(return) 返回值。 过程一般被看作一种语句结构,而函数通常是表 达式的一部分。过程可以单独存在,而函数通常 作为语句的一部分调用。
www.themegallery.com Company Logo

EDA技术及应用
函数(FUNCTION)声明: FUNCTION 函数名(参数表) RETURN 数据类型; --函数首 FUNCTION 函数名(参数表) RETURN 数据类型 IS --函数体开始 [说明部分]; BEGIN 顺序语句; END FUNCTION 函数名; --函数体结束
www.themegallery.com Company Logo

EDA技术及应用
?函数首的声明: FUNCTION FOUC1(A,B,C:REAL) RETURN REAL; FUNCTION AS2(SIGNAL IN1,IN2:REAL) RETURN REAL;

www.themegallery.com

Company Logo

EDA技术及应用
? 函数体: ENTITY FUNC IS PORT ( A:IN BIT_VECTOR(0 TO 2); M:OUT BUT_VECTOR (0 TO 2)); END ENTITY FUNC; ARCHITECTURE ART OF FUNC IS FUNCTION SAM(X,Y,Z:BIT)RETURN BIT IS

--定义函数SAM,该函数无函数首 BEGIN RETURN (X AND Y) OR Z; END FUNCTION SAM;
www.themegallery.com Company Logo

EDA技术及应用
BEGIN PROCESS(A) BEGIN
M(0)<=SAM (A(0),A(1),A(2)); M(1)<=SAM (A(2),A(0),A(1)); M(2)<=SAM (A(1),A(2),A(0)); END PROCESS;

END ARCHITECTURE ART;

www.themegallery.com

Company Logo

EDA技术及应用
? 3.6.3 过程(PROCEDURE)
过程的语句格式是: PROCEDURE 过程名(参数表); PROCEDURE 过程名(参数表) IS [说明部分]; BEGIN 顺序语句; END PROCEDURE 过程名;
--过程首 --过程体开始

--过程体结束

过程由过程首和过程体两部分组成,过程首不是 必须的,过程体可以独立存在和使用。
www.themegallery.com Company Logo

EDA技术及应用
?1.过程首
PROCEDURE PRO1(VARIABLE A,B:INOUT REAL); PROCEDURE PRO2 (CONSTANT A1:IN INTEGER; VARIABLE B1:OUT INTEGER); PROCEDURE PRO3 (SIGNAL SIG:INOUT BIT)

www.themegallery.com

Company Logo

EDA技术及应用
? 2.过程体 过程体是由顺序语句组成的,过程的调用即启动了对过程 体的顺序语句的执行。 ? 【例3.6.6】 PROCEDURE PRG1(VARIABLE VALUE:INOUT BIT_VECTOR(0 TO 7)) IS
BEGIN CASE VALUE IS ? WHEN“0000” => VALUE:=“0101”; ? WHEN“0101” => VALUE:=“0000”; ? WHEN OTHERS => VALUE:“1111”; END CASE; END PROCEDURE PRG1;
www.themegallery.com Company Logo

EDA技术及应用
? 3.6.2 重载函数 VHDL允许以相同的函数名定义函数,即重载函数。但这 时要求函数中定义的操作数具有不同的数据类型,以便调 用时用以分辨不同功能的同名函数。 例:type small is range 0 to 100; type large is range 0 to 10000; function is_odd(num:small)return boolean; function is_odd(num:large)return boolean; signal a_number:small; signal b:boolean; … b<=is_odd(a_number);
www.themegallery.com Company Logo

EDA技术及应用
? 3.6.4 重载过程 两个或两个以上有相同的过程名和互不相同的参数数 量及数据类型的过程称为重载过程。对于重载过程,也是 靠参量类型来辨别究竟调用哪一个过程。 【例3.6.8】 PROCEDURE CAL(V1,V2:IN REAL; SIGNAL OUT1:INOUT INTEGER); PROCEDURE CAL(V1,V2:IN INEGER; SIGNAL OUT1:INOUT REAL); … CAL(20.15,1.42,SIGN1); CAL(23,320,SIGN2); …
www.themegallery.com Company Logo

EDA技术及应用

www.themegallery.com

Company Logo

EDA技术及应用

www.themegallery.com

Company Logo

EDA技术及应用
? 函数和过程的声明(放在程序包中) package pkg is type byte is array(7 downto 0) of bit; type nibble is array(3 downto 0) of bit; function is_even(num:in integer) return boolean; Procedure byte_to_nibble(b:in byte; upper:out nibble ; lower:out nibble ; end pkg;
Company Logo

www.themegallery.com

EDA技术及应用
?子程序的调用: Use work.pkg.all; … Singal int:integer; … Variable even:boolean; … int<=7; even:=is_even(int);
www.themegallery.com Company Logo

EDA技术及应用

www.themegallery.com

Company Logo

EDA技术及应用

www.themegallery.com

Company Logo

EDA技术及应用
? 用选择信号赋值语句描述4选1多路选择器。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX41 IS PORT(S1,S2: IN STD_LOGIC; A,B,C,D:IN STD_LOGIC; Z: OUT STD_LOGIC); END ENTITY MUX41; ARCHITECTURE ART OF MUX41 IS SIGNAL S :STD_LOGIC_VECTOR(1 DOWNTO 0);
www.themegallery.com Company Logo

EDA技术及应用
BEGIN S<=S1 & S2; WHITH S SELECT Z<=A WHEN S =“00”, B WHEN S = “01”, C WHEN S = “10” , D WHEN S = “11” , 'X? WHEN OTHERS; END ART;
www.themegallery.com Company Logo

EDA技术及应用

www.themegallery.com

Company Logo

EDA技术及应用

www.themegallery.com

Company Logo

EDA技术及应用

www.themegallery.com

Company Logo

EDA技术及应用

www.themegallery.com

Company Logo


以下是今天幸运会员获奖名单

tao2,wwwyh1857com,m80526666com,622139,qw5354,wwwyh538dddcom,www.k666999.com,yh.6175.com,www.508tyc.com,www.bm9940.com,www089666com,55608a

https1234567890OoLlIi. c,wwwzjg111com,www.g432.com,anqvye,ww224588Coml,893634com,www.ttt811.com,www733555lcom,wwwcs7776com,wwwhg6072com,www0683ccom,yingmei,www38pj8com,www.lhj.cc,www.jsc22.com,mmmm4444,853926com,www.399.net,www.yh4477.cc,zhuangshaoyo,aisedao12.com,WWW.M785.COM,www.578cf.com,www.48ckck.com,ks1798.vip,623568.com,7777123,www.hk6228.com,jianianhuan.com,fh113.com,yb2496com,mg9700.com,44445k,www.a7892906.com,yabo2332com,v240,www73077com,mg2522.com,yabovip7412com,148888,lzyq88,196868,wxj1,zhangzecai,www.bbb67.com,wwwjufu22com,liaojun1983,jp145818,www.808kj.com,wwwbwin88com,xpj8298com,www.ty4466.com,web.renxingbense.com,www.9993615.com,xj488888.com,aaa6816a,wsxg1988,wwwb865net,ks401.com,www.k8222.com,y9298路cn,elvistang,qqq1024,finance.21cn.com,www.vns6672.com,stevenyang,5555kp.com,www.js03111.com,www.72365365.com,9984066.com,hg878com,www33227158com,www.sb012.com,www.wv.29ff.com,886dog,www.8977zz.com,wwwvip009com,fff24631411,wwwxk080com,wwwty888zrcom,www0011mtcom,papalu视频,www.4676.com,wwwxdl2888com,wwwgg2055com,www.wwwbet006.com,qy6011vip,66777.com,www222882com,www.hk8228.com,ag6856com,www. 4hhav.com,WWW.1423.COM,k88869.com,wwwbet3652bet,www.bbb721.com,www.bobagg.com,www.kx81788.com,888sasa.com,qy088.com,www.gbt039.com,www.mumu59.com,ag5648vip,9056cc,8040sss.com,www.m8xu.com,www.66sdsd.com,wwwsxtcshopcom,vns7146com,212喷奶完整版,36399.com,13111547286,www.bg8888.cc,fafa744,www.inggn,yabovip2470com,954652671@qq.com,www.aaa.404com,www0848com,www.dhy88888.com,yy50505,wwwmgm9com,ximiemoyan,www8hao1com,22ye cc,loadcai.com,155171995,2699kcom,js363cc,www.000711.com,1pondo.fun,ll358,6011com,lizhao42,www.3067w.com,ag84584,feicai054.com,www.7166.con,WWW.BOLE888.COM,wei3334,13223,m.dy1234.net,www.118365.com,30658888com,808552com,www.912tv .com,addblcom,www.js2355.com,www.88184,www.7893w70.com,pj5939com,78771g.com,www.1713v.com,cgjd147369,gg644.com,youle281.com,60ppp.net,www.188515.com,yyh7.ne,www.k2244.com,www.km70.com,www.h8868.net,www18883015com,fafa514,76168com,www.43969.com,lxh5042,js104com|

hg67855.com,www.jscwt2.com,333333ss. com,wee1949,yabovip9856com,7627cc,weiwei321,www.f118cp.com,www.jsgjdc11.com,lm861,WWW.ADDBL.COM,www.xpj9868.com,www.p555.net,www.6446055.com,hg5004.com,977988.com,www.hg7188.net,zbl1234,xyyl002.co,wwwbet588com,495888.com,www.y111111.com,yhbet05.com,www.5555yinhe.com,www.GG9399,www483089com,www.34390.com,sjcp799com,cp7377com,c2494904783,www.504xx.com,2888.taiyang005,5751w.com,748029com,www.ks8619.com,www.6668m.com,397345.com,www.35442333.com,www888rbcom,ag7056com,sook,gm007.com,ka.953www.com,ag7559com,www.51se,WWW.FENG.COM,www.5556857.com,www.932399230@qq.com,www204456com,mingtian123,www.ag181.com,caocao,www9835com,agent.454694.com,www6699b.com,www.3344fb.com,103326924@qq.com,www3732pw,www.188337.com,50hgcom,www.ynews.org,www3579cc2com,www.678623.com,jg5555,hzl123,610tu. com,mg3695.vip,www.meiwyd.com,www68886com,www.ttt611.com,yabovip9346com,443999.com,liuliu6,WWW.28365365.HK,443739,2894.com,w30666.com,wwwvnsr2277com,41111com,long6489com,zgh520,www.om.cn,996987.com,www.598hh.com,801584com,WWW9922789COM,www22220169com,tfnv2012,zyq211,www335184com,www.337502.com,bo.kkbokk.com,wb8887com,df590com,fhxdysys,7758999,www.5566919.com,9mmtvcom,c978.com,meansys网站在线观看,www.yh5060.com,sun88com,ag8645com,www.bbn.com.cn,www.1088689.com,www.gao190.com,wwwjbp05com,www.91kk91.com,80689.com,www.298001.com,somama.com,lianxiaozhon,xpj1510com,pu860cm在线观看,67496.com,yabet7253com,www.00022.com,373008.com,wwwblg034com,www.se423.com,bet36557365u.net,2419709556@qq.com,christianclips.com,点击进入http://www.jiuooxx7.xyz,by1327鲍鱼,www.bet0200.com,www.9886399.com,wwwcombbb,jbo82,www.946hh,www.jl99999.net,www.832078.com,ping,wwwg06617com,www.338tt.com,518bo.com,www.634876.com,liao338000,www.222423.net,wwwb-168com,anna123,m131419,923333.com,hg0228.com,yb1858com,huangkai,www.615678.com,www.www.6365a.com,www.drf0935.com,5411666com,781000.com,WWW.D4FF.COM,www.kzwcjr.com,www.345007.com,www.4565.co m,lcguo8,zhengdongqin,meeitx.com,www.401212..com,wwwhg9181com,jiannan1,k频道导航kpd33,840cc,sdzbcuib@126.com,61986com,WWW774297COM,www.g0811.com,15197401655|

ag6850com,www.9727bet.com,www.940777.com,www.sports.cn,WWW.DC0003.COM,www.xld6611.com,www.drcp888.com,www.1313ee.com,www.y357.cc,tk67.com,www.xunlei60.com,www.cc3377.com,www.00773k.com,xin948.com,kkyyww,www99245com,lch113,wwwvns06000com,mg7604.vip,c78877.com,www576209com,4hu. yv,1557713586@qq.com,www.hg4887.com,hrththg8@sohu.com,www.21819f.com,353316591,www.850llcom,81189w5com,15878354754,cxsad,www.drf9555.com,wwwcf444444com,ks279.com,culei123,www.007yh.com,37770744.com,278699.com,www100bjcbco,www.01416.com,www 231se com,lymacc,wwwpjdc1688com,www.321e.net,www.383,97618j.com,wwwarksixcom,www.hj0588.com,www.44yuyu.com,li1352855118,www.234022.com,www.707654.com,ag2149com,hgw00888.com,www.koubei.com,4866c83,www.hg3088cm.com,www.188msc.com,288880biz,www.toutouyao.vom,897333com,game baofeng.cn,www.gtzw.net,bb8586.com,www138548com,586777.com,www55817xcom,www.5a5e.com,7196n,wwwbm3604com,www.hg4809.com,wwwxpjwt5com,www.13349.com,77aa,www858385com,www.66119e.com,wwwk368com,ayss18.com,cqwe546,z8029.com,wwwflb0011com,WWW.V9066.COM,www.pao53,www.464747.com,www.728yy.com,678kankan,jun1998jun@126.com,489499392,www7117com,56534bcom,qq44442.com,www.yeji633.com,houhou,www65577com,www.7770033.com,mtc5555.com,www.yh2306.com,www.18787i.com,www.www.80666t.com,www.77ppqq.com,7720g.com,xuyang0258,5818ka.com,wwwbet5194com,www.dasanba7.com,www.ms33888.com,2061256,cheng785,dalong88,www.4102n.com,www.356658.com,yabet8810com,wwwihao6888com,www.9611zz.com,147888.com,wwwcnxycmcom,www700138com,www8a88042com,www.344sz.com,ag3844com,daili.si0m.aai789.com,jbo13,www.hg99960.com,www.desheng333.com,mg0.cc,www.096sb.com,zcc112,98ktt,www.w45638.com,58399s,wwwrf004com,222avtb,yanlun,www.664mz,www3532com,2061398,mk3338.com,www.742gg.com,www991105com,2631851,www.xpj7760.com,www388488.com,www.1928t.com,qq6587785,ppp111.com,www.758801.cc,www.2016kh.com,pu266.com,ip8888,www.983bb.com,www.bzd88.com,www.340366.com,55tk.com,www.75995.com,www232348com,www.sl005.com,zhengweibin,www.hm6088.com,www.8234737.com,www247111com,www.969877.com,www.17933z.com,www.h5f3.com,www924991com,59599g.com,2426.bet,www.crsedh.com,www.0967009.com|

www.3040550.com,www.365889.com,WWW.OZRCBN.COM,sd87656965,c1303387123,www2741120com,www.663aa.com,临清青年办事处共有多少所小,hghg87.com,www.477234.com,www.by2282com,893909com,wwwabetcom,wwwbet2962com,www.sun8088.com,www.316ff.com,www.jkwy,www.18717e.com,wwwkckc773com,wap,zb 070.com,dafa222.net,wan2245.com,www.hrcambid,wwwa2a000net,www.1394000.com,www.kfc.com.cn,20772424.com,ag6882cn,7ylg.com,ag84842.com,狂按空姐嫩v.274yy.com,8124.com,chinese mom mature,www.319999.net,www.vns26.com,js3909com,202455com,www.81166.com,304sihu.com,www.64686.com,www23463955com,www.3666ke.com,6626yy.com,7340ycom,wwwyzeinfo,sao808.com,www.69993ff.com,ww-188555com,www.1141.com,c978com,890821com,pp919vip,ygf333,fa7969.com,www.xhtd1985.com,js6014com,www.se747.com,www.km877 .com,WWW.98998.COM,888w999.com,wwwmyiphonefilecom,sTTAV,www.jsc4444.com,www.jj242.com,www.xed44.com,www.djkk.com,7777zk. com,taitai123,www.kk39.com,www.419222.com,www.mgm86866.com,iv.com,www.8861tt.com,www.27776.com,www.sese75.com,www692000com,6199aa.com,wwwsexjiqirencom,1095597490,www328998com,,www.sb8811.com,www.a282.com,WWW.2701.COM,wwwg4353com,www.7979.com,www.184333.com,a777888999,www.1iiii.com,0573333com,www84588,9256.com,www.31399005.com,www.99006633.com,www.bet6089.com,tyc838com,www.h4408.com,www19ttcom,wwwcr40com,www.955866n.com,ll120,帐号,www30452211com,www.hg4415.com,81876.com,lianglufen,www.55suncity.net,www.4289m.com,1016304.com,www.558928.com,www.733555g.com,jux222.com,sdtzyxgscom,sw001,www.1896.com,wwwbm7217com,wwwmeijutt.com,q2524437470,4260099.com,hg7039.com,xzcd274,yabo8709.com,yf5551com/?aff=148255,www.ww960,WWW.090977.COM,4753com,ksbi7d62oz,6088uu,https://www.ab,476823239an,wwwptcc77com,jbo66,www.00cp5.com,www.kmsoudao.com,06612c.com,www.777tk.com,www.k1088.com,k8599,WWW.WWW.356MSC.COM,wwww97jiedu,yihp22,hjj12345,www.577778.com,www610678com,www.bet787f.com,WWW80SUNBETCOM,wwwyyy2007com,www.911386.com,www.69afa.com,wwwsun6008com,ag84643,liu9908,www.862222.com,kb6375com,d28365365.com,www44opuscom,wwwgsq520com,www.2-cjass.covn,WWW.810108.COM,www.shdt56.com,www.kxm2555.com,86333w,yb8600com,1005rrr.com,czll1234,www.6992.com,www.72aaa.com,zhaohai2010|

以上会员名单排名不分前后