第10章 VHDL基本语句

合集下载

8.VHDL基本语句和函数

8.VHDL基本语句和函数

4)
格式
IF
条件1 THEN 条件1 顺序语句1 顺序语句1; 条件2 ELSIF 条件2 THEN 顺序语句2 顺序语句2; …… 条件n ELSIF 条件n THEN 顺序语句n; 顺序语句n; ELSE 顺序语句n+1; 顺序语句n+1; IF; END IF;
注意
这类语句可以实现不同类型电路的描述。 这类语句可以实现不同类型电路的描述。 其任一分支顺序语句的执行条件是以上各分支 条件相与, 条件相与,即语句中顺序语句的执行条件具有 向上相与的功能。 向上相与的功能。
注意ቤተ መጻሕፍቲ ባይዱ
•条件句中的选择值必须在表达式的取值范围内; 条件句中的选择值必须在表达式的取值范围内; 条件句中的选择值必须在表达式的取值范围内 •CASE语句中每一条件句的选择只能出现一次,相同 CASE语句中每一条件句的选择只能出现一次 CASE语句中每一条件句的选择只能出现一次, 选择值的条件语句不能重复出现; 选择值的条件语句不能重复出现; •所有表达式的值都必须穷举,不能穷举的值用 所有表达式的值都必须穷举, 所有表达式的值都必须穷举 OTHERS表示 表示。 OTHERS表示。
Library ieee; use ieee.std_logic_1164.all; entity test_06 is port( d: in std_logic; x: out std_logic); end test_06; architecture test_06 of test_06 is signal a: std_logic_vector(3 downto 0); signal b: std_logic_vector(2 downto 0); begin process begin a<="1010"; b<="111"; if(a>b) then x<=d; else x<='0'; end if; end process; end test_06;

VHDL语句

VHDL语句

VHDL的顺序语句和并行语句一、顺序语句顺序语句只能出现在进程(PROCESS)、子程序(过程(PROCEDURE)和函数(FUNCTION))中,其特点与传统的计算机编程语句类似,是按程序书写的顺序自上而下、一条一条地执行。

利用顺序语句可以描述数字逻辑系统中的组合逻辑电路和时序逻辑电路。

VHDL的顺序语句有赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句、空操作语句等六类。

<1>赋值语句赋值语句的功能是将一个值或一个表达式的运算结果传递给某一个数据对象。

(1)变量赋值语句格式:目标变量名:=赋值源(表达式);例如:x:=5.0;(2)信号赋值语句格式:目标信号名<=赋值源;例如:y<=…1‟;说明:该语句若出现在进程或子程序中则是顺序语句,若出现在结构体中则是并行语句。

( 3 )数组元素赋值例如:SIGNAL a,b:STD LOGIC VECTOR(1 TO 4);a<=“1101”;a(1 TO 2)<=“10”;a(1 TO 2)<=b(2 TO 3);<2>流程控制语句通过条件控制开关决定是否执行一条或几条语句,或重复执行一条或几条语句,或跳过一条或几条语句。

流程控制语句共有5种:IF语句CASE语句LOOP语句NEXT语句EXIT语句(1)IF语句1、IF 条件句Then 顺序语句END IF ;2、IF 条件句Then 顺序语句ELSE 顺序语句END IF ;3、IF 条件句Then 顺序语句ELSIF 条件句Then 顺序语句...ELSE 顺序语句END IF4、IF 条件句ThenIF 条件句Then...END IFEND IF例子:8线-3线优先编码器的设计LIBRARY IEEE;USE IEEE.STD LOGIC 1164.ALLENTITY coder ISPORT(a:IN STD LOGIC VECTOR(0 TO 7);y:OUT STD LOGIC VECTOR(0 TO 2));END coder;ARCHITECTURE example2 OF coder ISBEGINPROCESS(a)BEGINIF (a(7)=…0‟)THEN y<=”111”;ELSIF (a(6)=‟0‟) THEN y<=”011”;ELSIF (a(5)=‟0‟) THEN y<=”101”;ELSIF (a(4)=‟0‟) THEN y<=”001”;ELSIF (a(3)=‟0‟) THEN y<=”110”;ELSIF (a(2)=‟0‟) THEN y<=”010”;ELSIF (a(1)=‟0‟) THEN y<=”100”;ELSE y<=”000”;END IF;END PROCESS;END example2;(2)CASE语句格式:CASE 表达式ISWhen 选择值=>顺序语句;When 选择值=>顺序语句;…When OTHERS =>顺序语句;END CASE;说明:“=>”不是运算符,相当“THEN”。

vhdl基本语法 ifdef

vhdl基本语法 ifdef

VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,用于描述数字电路和系统。

它是由美国国防部(DOD)于20世纪80年代初期的VHSIC(Very High Speed Integrated Circuits)项目中开发的。

VHDL的基本语法包括一些常用的关键字和结构,其中ifdef是其中之一。

ifdef是VHDL中的一个条件编译指令,用于根据给定的条件来判断是否包含某段代码。

在VHDL中,ifdef语句的基本语法如下:```vhdl`ifdef condition-- code to be included if condition is true`else-- code to be included if condition is false`endif```在上面的代码中,condition是一个条件表达式,可以是一个参数、宏定义或者其他已经定义过的条件。

如果condition为真,则会编译`ifdef和`endif之间的代码;如果condition为假,则会编译`else和`endif之间的代码。

使用ifdef可以让我们根据不同的条件来控制代码的编译和包含,这在一些复杂的项目中非常有用。

下面是使用ifdef的一个简单示例:```vhdl`ifdef DEBUGreport "Debug mode is enabled";`elsereport "Debug mode is disabled";`endif```在上面的代码中,如果DEBUG宏被定义了,那么report语句"Debug mode is enabled"将被编译进去;否则将编译进去"Debug mode is disabled"。

除了`ifdef语句外,VHDL还提供了一些其他的条件编译指令,如`ifndef(如果给定条件为假则编译)、`elsif(如果前面的条件为假则继续判断下一个条件)、`elsif和`endif。

VHDL基本语句

VHDL基本语句
表达式可以是一个整数或枚举类型的值或数组 选择值有四种表达方式: ● 单个数值 , 如 :6 ● 数值选择范围, 如: (2 TO 4)表示取值为2,3,4。 ● 并列数值 如: 3 5 表示取值为3或着5 ● 混合方式 以上三种方式的混合

ARCHITECTURE example OF mux4 IS BEGIN PROCESS (sel) 注 BEGIN ●CASE中的选择值必须在表达式的取值范围内; CASE sel IS WHEN 0=> q <= d0 ; ●CASE语句是无序的,所有表达式值都是并行 WHEN 1=> q <= d1 ; 处理;而IF语句是有序的,最起始、最优先 WHEN 2=> q<= d3 ; WHEN 3=> q<= d4 ; 的先处理; WHEN others => NULL; ●可以有很多分支,但OTHERS分支只能有一个, END CASE; 且只能位于最后;用来使所有选择值能涵盖表 END PROCESS; END example; 达式的所有取值,以免插入不必要的锁存器
3、用于多选控制的IF语句:
格式 IF 条件1 THEN
<顺序处理语句1>;
ELSIF 条件2 THEN <顺序处理语句2>; : ELSIF 条件n-1 THEN <顺序处理语句n-1>; ELSE <顺序处理语句n>; END IF;
P1: PROCESS (clk) BEGIN
IF (clk‘ event and clk=‗1‘ ) THEN
顺序语句
赋值语句
VHDL设计实体内的数据传递以及对端口界面外部数据的读写 都必须通过赋值语句的运行来实现。 功能是将一个值或表达式的运算结果传递给某一数据对象。 赋值语句有两种: 信号赋值语句和变量赋值语句 区别

第10章 VHDL基本语句-ST

第10章 VHDL基本语句-ST
1. 过程调用
15
10.1 顺 序 语 句
10.1.9 RETURN语句
过程 函数
返回语句仅用于子程序
16
10.1 顺 序 语 句
10.1.10 NULL语句 空操作语句不完成任何操作,常用于CASE语句。
17
10.2 VHDL并行语句
结构体中可综合并行语句:
18
10.2 VHDL并行语句
10.2.1 并行信号赋值语句 赋值目标必须都是信号
28
10.2 VHDL并行语句
10.2.6 REPORT语句 REPORT语句用来报告计算的有关信息,本身不可综合,仅用于仿真。
29
10.2 VHDL并行语句
10.2.7 断言语句 断言语句也不可综合,仅用于仿真
30
10.3 属性描述与定义语句
1. 信号类属性
2. 数据区间类属性
'RANGE [(n)]
EDA技术实用教程
第10章 VHDL基本语句
1
10.1 顺 序 语 句
顺序语句的特点:(仿真)执行顺序与其书写顺序是一致的 进程与子程序(函数、过程) 10.1.1 赋值语句
信号赋值 赋值目标 <= 赋值源 变量赋值 赋值目标 := 赋值源 注意赋值符号左右两端数据类型一致,以及与=>的区别 10.1.2 IF语句
32
10.1.3 CASE语句 单个普通数值数、数值选择范围、并列数值、混合方式
IF语句中条件句逐项顺序执行,具有向上相与的逻辑功能 CASE语句中条件句的次序不重要,其执行过程接近于并行方式
2
10.1 顺 序 语 句
10.1.3 CASE语句
3
10.1 顺 序 语 句

VHDL语言的基本语法

VHDL语言的基本语法

B:二进制基数符号,表示二进制数位0或1。 二进制基数符号,表示二进制数位0 O:八进制基数符号。 八进制基数符号。 X:十六进制基数符号(0~F) 。 十六进制基数符号(0~ (0 例如: 1_1101_1110 1_1101_1110” 例如:B“1_1101_1110 --二进制数数组,位矢数组长度是9 --二进制数数组,位矢数组长度是9 二进制数数组 AD0 X“AD0” AD --十六进制数数组,位矢数组长度是12 --十六进制数数组,位矢数组长度是12 十六进制数数组
4、下标名及下标段名 下标名用于指示数组型变量或信号的某一 下标名用于指示数组型变量或信号的某一 元素, 元素,如:a(2) , b(n) 下标段名则用于指示数组型变量或信号的 下标段名则用于指示数组型变量或信号的 某一段元素,其语句格式如下: 某一段元素,其语句格式如下:
数组类型信号名或变量名(表达式 表达式2]); 数组类型信号名或变量名 表达式1 [TO/DOWNTO 表达式 ; 表达式
信号的使用和定义范围是实体、结构体和程序包 信号的使用和定义范围是实体、结构体和程序包.
在程序中: 在程序中 (1) 信号值的代入采用“<=”代入符,而且信号 信号值的代入采用“ ”代入符, 代入时可以附加延时。 代入时可以附加延时。 (2) 变量赋值时用“:=”,不可附加延时。 变量赋值时用“ ” 不可附加延时。 (3) 信号的初始赋值符号仍是“:=”。 信号的初始赋值符号仍是“ ” 例: X<=Y AFTER 10 ns; ; --X,Y都是信号,且Y的值经过 都是信号, 的值经过10ns延 , 都是信号 的值经过 延 时以后才被代入X。 时以后才被代入 。
(1) 赋值语句右方的表达式必须是一个与目标变量有相同 数据类型的数值。 数据类型的数值。 (2) 变量不能用于硬件连线和存储元件。 变量不能用于硬件连线和存储元件。 (3) 变量的适用范围仅限于定义了变量的进程或子程序中。 变量的适用范围仅限于定义了变量的进程或子程序中。 (4) 若将变量用于进程之外,必须将该值赋给一个相同的 若将变量用于进程之外, 类型的信号,即进程之间传递数据靠的是信号。 类型的信号,即进程之间传递数据靠的是信号。

VHDL基本语句

VHDL基本语句

PROCESS(a, b) BEGIN y<=a AND b; WAIT ON a, b; END PROCESS;
- - 错误语句
WAIT UNTIL表达式; WAIT UNTIL((x*10)<100); 建立一个隐式的敏感信号量表 一个隐式的敏感信号量表
WAIT FOR 时间表达式 WAIT FOR 20 ns; WAIT FOR (a*(b+c));
例:
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux4 IS PORT(a,b,i0,i1,i2,i3: IN STD_LOGIC; q: OUT STD_LOGIC); END mux4; ARCHITECTURE mux4_behave OF mux4 IS SIGNAL sel: INTEGER RANGE 0 TO 3; BEGIN B: PROCESS(a,b,i0,i1,i2,i3) BEGIN
LIBRARY IEEE; USE IEEE. STD_LOGIC_1164.ALL; ENTITY dff IS PORT (clk,d: IN STD_LOGIC; q: OUT STD_LOGIC); END dff; ARCHITECTURE rtl OF dff IS BEGIN PROCESS(clk) BEGIN IF(clk′EVENT AND clk=′1′) THEN q<=d; END IF; END PROCESS; END rtl;
顺序语句
· WAIT语句; · 断言语句; · 信号代入语句; · 变量赋值语句; · IF语句; · CASE语句; · LOOP语句; · NEXT语句; · EXIT语句; · 过程调用语句; · NULL语句。

第10章VHDL基本语句

第10章VHDL基本语句
a := a+1; EXIT L2 WHEN a >10 ; -- 当a不小于10时跳出循环
END LOOP L2; ...
11
11
10.1.4 LOOP语句
(2) FOR_LOOP语句,语法格式如下: [LOOP标号:] FOR 循环变量 IN 循环次数范围 顺序语句
LOOP
END LOOP [LOOP标号];
SIGNAL tmp :STD_LOGIC ;
BEGIN
奇校验就是看2进制数旳1旳个数为奇数
PROCESS(a)
就在校验位填0 偶数就填1 使1旳个数
BEGIN
变成奇数个. 偶校验相反 把1旳个数变
tmp <='0';
成偶数.
FOR n IN 0 TO 7 LOOP 然后传送数据,接受后在做相应旳奇偶
FOR后旳”循环变量”是一种临时变量,属LOOP语句旳局 部变量,不必事先定义. 这个变量只能作为赋值源,不能被赋值,它 由LOOP语句自动定义. 使用时应该注意,在LOOP语句范围内不 要再使用其他与此循环变量同名旳标识符.
“循环次数范围”要求LOOP语句中旳顺序语句被执行次数. 循环变量从范围初值开始,每执行完一次顺序增1,直至最大值.
第 10 章 VHDL基本语句
1
1
10.1 顺序语句
VHDL有6种基本顺序语句:赋值语句、流程控制语句、等待 语句、子程序调用语句、返回语句、空操作语句.
10.1.1 赋值语句
信号赋值语句
10.1.2 IF语句
10.1.3 CASE语句
变量赋值语句
多条件选择
值体现式旳 4种形式
单个一般数值,如6。
数值选择范围,如(2 TO 4)。

VHDL语言

VHDL语言
PORT (a, b : IN STD_LOGIC; co,so : OUT STD_LOGIC); END h_adder;
VHDL语言的基本结构
实体结构
ENTITY 实体名 IS PORT ( 端口名1,端口名2,…端口名n :方向 数据类型名; … 端口名a,端口名b,…端口名m :方向 数据类型名);
80年代初,产生VHDL(Very high speed IC HDL)语言。 1987.12 ,作为IEEE标准(87版)。 1993 ,经修改的VHDL再次被IEEE标准认证(93版)。 1995 ,中国国家技术监督局推荐为国家标准。
VHDL语言的优点
支持自上而下的设计方法(整体描述)
半加器描述事例: WHEN “00” => so<=‘0’; co<=‘0’ ; WHEN “01” => so<=‘1’; co<=‘0’ ; WHEN “10” => so<=‘1’; co<=‘0’ ; WHEN “11” => so<=‘0’; co<=‘1’ ;
P.42 表3-3
VHDL语言的基本结构
实体 用以描述外部端口
构造体 用以描述内部结构及行为
实体结构
ENTITY 实体名 IS PORT ( 端口名1,端口名2,…端口名n :方向 数据类型名; … 端口名a,端口名b,…端口名m :方向 数据类型名);
END 实体名;
半加器实体说明举例 ENTITY h_adder IS
。 l任何标识符必须以英文字母开头。 l必须是单一下划线“_”,且其前后都必须有英文字母或数字。 l标识符中的英语字母不分大小写。 l允许包含图形符号(如回车符、换行符等),也允许包含空格符。

VHDL基本语句

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'; --输入初始值

vhdl 基础语法

vhdl 基础语法

vhdl 基础语法VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,用于描述数字系统的行为和结构。

以下是VHDL的基础语法:1. 实体(Entity):用于描述模块的接口和端口。

实体的语法如下:```entity entity_name isport (-- 输入端口input_name : in data_type;-- 输出端口output_name : out data_type);end entity_name;```2. 架构(Architecture):用于描述模块的内部行为和逻辑。

架构的语法如下:```architecture architecture_name of entity_name issignal signal_name : data_type;begin-- 逻辑实现end architecture_name;```3. 信号(Signal):用于在模块内部传递数据。

信号的语法如下:```signal signal_name : data_type;```4. 过程(Process):用于描述模块的并发行为。

过程的语法如下:```process (sensitivity_list)begin-- 逻辑实现end process;```5. 语句(Statement):用于描述模块的具体操作。

常见的语句包括:- 赋值语句:```signal_name <= value;```- 选择语句:```case expression iswhen value1 =>-- 逻辑实现1when value2 =>-- 逻辑实现2when others =>-- 默认逻辑实现end case;```- 循环语句:```for i in range loop-- 逻辑实现end loop;```这些是VHDL的基础语法,可以用于描述数字系统的行为和结构。

VHDL基本语句用法

VHDL基本语句用法

10.2.4 元件例化语句
COMPONENT 元件名 IS 1)格式: GENERIC (类属表); -- 元件定义(说明)语句 PORT (端口名表); END COMPONENT 文件名;
例化名 :元件名 PORT MAP( [端口名 =>] 连接端口名,...) ; - - - - 元件例化(调用)语句。 (1) 元件声明语句用于调用已生成的元件,这些元件可能在库中, 也可能是预先编写的元件实体描述.; (2) 元件语句可以在ARCHITECTURE,PACKAGE和BLOCK的说明部分.
--输入初始值 ----当sel=0时选中 当sel为1或3时选中 当sel为2、4、5、6或7时选中 当sel为8~15中任一值时选中
CASE 语句病句举例
【例10.2】
10.1.4 LOOP语句
1 、单个LOOP语句 格式: [ LOOP标号:] LOOP 顺序语句 END LOOP [ LOOP标号 ]; 2、FOR_LOOP语句 格式:
第10章
VHDL基本语句
一:主要内容:VHDL基本语句讲解 ① 顺序语句 ② 并行语句 二:重点掌握:常用VHDL基本语句及应用
10.1 顺序语句
10.1.1 赋值语句
信号赋值语句
变量赋值语句 • 变量赋值语句:
•信号代入语句:
格式: 目的信号变量<=信号变量表达式 例: a<=b;
格式: 目的变量:=表达式 例: c:=a+d
IF 条件 THEN … END IF; 10.1.3 CASE语句
1) CASE语句的结构:
CASE 表达式 IS When 选择值 => 顺序语句; When 选择值 => 顺序语句; ... 【WHEN OTHERS =>】; END CASE ;

VHDL基本语法

VHDL基本语法

一、数据类型A. 标准数据类型1)整数类型(INTEGER)VARIBLE A:INTEGER RANGE -128 TO 128范围-(231-1)~ +(231-1)2#11111111# --binary,=255D8#377#16#FF#2)实数类型和浮点类型(REAL & FLOATING)实数范围-1.0E+38 ~ +1.0E+38大多数EDA工具不支持浮点类型16#0F#E+016#FF.FF#E-13)位类型(BIT)TYPE BITIS(‘0',‘1')4)位矢量类型(BIT_VECTOR)位矢量(bit_vector)类型实际上就是位(bit)的一位数组,它的表示方法是用双引号将一组位数据括起来。

例如:"11010111"。

不难看出,采用位矢量可以很方便地表示电路描述中的总线状态,这在VHDL程序中经常用到。

B"1111-1100" --长度为8X"FBC" --长度为12,=B"1111-1011-1100"O"371" --长度为9,=B"011-111-001"5)布尔类型(BOOLEAN)6)字符类型(CHARACTER)‘A',‘a',‘B',大小写不敏感。

7)字符串类型(TRING)"VHDL","MULTI_SCREEN"8)物理类型(physical)--时间类型--The physics unit time is a predefined typeTYPE time IS RANGE -1E18 TO 1E18UNITSfs; -- Femto-secondps = 1000 fs;ns = 1000 ps;us = 1000 ns;ms = 1000 us;sec = 1000ms;min = 60 sec;END UNITS--another--DISTANCE TYPETYPE distance IS RANGE 0 TO 1E16UNITSA;nm = 10A;um = 1000nm;mm = 1000um;cm = 10mm;m = 1000 mm;km = 1000m;END UNITS;9)错误类型(NOTE,WARNING,ERROR,FAILURE)10)自然数、正整数类型(NATURAL & POSITIVE)ENTITY_compare ISPORT(a,b:INTEGER RANGE 0 to 9:=0;c:out Boolean);END compare;B. 自定义数据类型1)枚举类型(ENUMERATED)TYPE PCI_BUSstate IS(Idle,busbusy,write,read,Back off); --PCI总线状态机变量TYPEstd_ulogic IS('U',‘X',‘1',‘0',‘Z',‘W',‘L',‘H',‘-‘);TYPE boolean IS(false,true);TYPE BITIS(‘0',‘1');2)整数类型(INTEGER)TYPE digit IS INTEGER RANGE -128 TO 1283)实数类型和浮点类型(REAL & FLOATING)4)数组类型(ARRAY)TYPE MYARRAY IS ARRAY(INTEGER 0 TO 9)OFstd_LOGIC5)存取类型(ACCESS)TYPE line IS ACCESS string; --Line是指向字符串的指针6)文件类型(FILES)TYPE text IS FILE OF string;TYPE input-type IS FILE OF character;7)记录类型(RECODE)--RECORD适于描写总线,通讯协议TYPE PCI_BUS IS RECORDADDR:std_LOCIG_VECTOR(31 DOWNTO 0);DATA:std_LOGIC_VECTOR(31 DOWNTO 0);END RECORD;SEGINAL DECODE1,DECODE2:PCI_BUS;PCI_DEVICE1 <= DECODE1.ADDR;PCI_DEVICE1RAM <= DECODE1.DATA;8)时间类型(TIME)9)VHDLstd_logic在VHDL中,设计人员经常使用的数据类型是枚举类型std_ulogic和它的子类型std_logic,它们都是一个九值逻辑系统。

EDA 技术:VHDL语句总结

EDA 技术:VHDL语句总结

begin
if sel = "0001" then output <= in1(0) ; output2<=‘1’;
elsif (sel = "0010") then
output <= in1(0) xor in1(1) ; output2 <= ‘0’ ;
elsif sel = "0100" then
sel: in std_logic_vector(3 downto 0); output: out std_logic; output2: out std_logic); end ifexample1;
architecture arch of ifexample1 is
begin
process(in1, sel)
begin case (din) is when “00” => dout <=“0001” ; when “01” => dout <= “0010” ; when “10” => dout <=“0100” ; when “11” => dout <=“1000” ; end case;
end rtl ;
使用变量能获得比较好的综合结果,有利于优化, 但 需要锁存中间结果时必须使用信号。
❖ 初值(有三种形式,前两种综合忽略)
1、type states is (IDLE,S0,S1,S2); signal state:states; --信号state默认值为IDLE
2、signal Z : bit_vector(3 downto 0) :=“0000” ;
end if; end process; end rtl;

(完整word版)vhdl基本语法

(完整word版)vhdl基本语法

VHDL 基础语法篇——VHDLVHDL硬件描述语言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程序实例,先介绍整体的程序结构,再逐步介绍程序中的语法概念。

vhdl语句

vhdl语句

vhdl语句
VHDL是一种硬件描述语言,用于描述数字电路和系统的行为和结构。

以下是VHDL中的一些基本语句:
1.实体(Entity):用于声明一个电路或系统的接口,包括输入、输
出和输入/输出端口。

2.结构体(Architecture):用于描述电路或系统的实现,包括元件的
连接和行为描述。

3.信号赋值语句:用于在进程中给信号赋值,例如“a <= b;”。

4.条件赋值语句:用于根据条件给信号赋值,例如“IF condition THEN
a <=
b ELSE a <=
c END IF;”。

5.选择信号赋值语句:用于根据选择信号的值给信号赋值,例如
“SELECT CASE a WHEN value1 THEN b WHEN value2 THEN c WHEN OTHERS THEN d END CASE;”。

6.进程语句:用于描述电路或系统的行为,包括顺序执行和并行执
行。

7.元件例化语句:用于实例化一个元件,并将其连接到其他元件上。

8.生成语句:用于生成多个相同类型的元件实例。

9.子程序调用语句:用于调用一个子程序。

10.顺序语句:在仿真意义上具有一定顺序性,并不意味着这些语句
对于的硬件结构也有相同的顺序性。

所有门电路是并行地工作,并没有先后之分。

11.并行语句:在仿真运行中总处于两种状态:执行或者挂起。

当执
行到wait语句时,运行程序将被挂起,直到满足此语句设置的结束挂起条件后,将重新开始执行进程中的程序。

以上只是VHDL中的一些基本语句,实际上VHDL还支持更多的高级功能和描述方式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10.1 顺 序 语 句
10.1.7 WAIT语句 语句
10.1 顺 序 语 句
10.1.8 子程序调用语句
1. 过程调用
模式的实参值赋给欲调用的过程中与它们对应的形参; (1)将IN和INOUT模式的实参值赋给欲调用的过程中与它们对应的形参; ) 和 模式的实参值赋给欲调用的过程中与它们对应的形参 (2)执行这个过程。 )执行这个过程。 模式的形参值返回给对应的实参。 (3)将过程中 和INOUT模式的形参值返回给对应的实参。 )将过程中IN和 模式的形参值返回给对应的实参
实验与设计
10-2 等精度频率 脉宽/占空比 相位多功能测试仪设计 等精度频率/脉宽 占空比 脉宽 占空比/相位多功能测试仪设计
(1)实验目的: )实验目的: (2)实验原理: )实验原理:
实验与设计
10-2 等精度频率 脉宽/占空比 相位多功能测试仪设计 等精度频率/脉宽 占空比 脉宽 占空比/相位多功能测试仪设计
(1)实验目的: )实验目的: (2)实验原理: )实验原理:
实验与设计
10-2 等精度频率 脉宽/占空比 相位多功能测试仪设计 等精度频率/脉宽 占空比 脉宽 占空比/相位多功能测试仪设计
(1)实验目的: )实验目的: (2)实验原理: )实验原理:
实验与设计
10-2 等精度频率 脉宽/占空比 相位多功能测试仪设计 等精度频率/脉宽 占空比 脉宽 占空比/相位多功能测试仪设计
实验与设计
10-1. 直流电机综合测控系统设计
(1) 实验目的: 实验目的: (2))实验原理: )实验原理: (3) 实验内容 : 实验内容1: (4) 实验内容 : 实验内容2: (5) 实验内容 : 实验内容3: 基于5E+系统的示例演示文件: 基于 系统的示例演示文件: 系统的示例演示文件 /KX_7C5EE+/EXPERIMENTs/EXP28_DC_MOTO/PW1。 /KX_7C5EE+/EXPERIMENTs/EXP28_DC_MOTO/PW1。
10.2.3 并行过程调用语句
10.2 VHDL并行语句 并行语句
10.2.3 并行过程调用语句
10.2 VHDL并行语句 并行语句
10.2.3 并行过程调用语句
10.2 VHDL并行语句 并行语句
10.2.4 元件例化语句
10.2 VHDL并行语句 并行语句
10.2.5 生成语句
10.2 VHDL并行语句 并行语句
10.1 顺 序 语 句
10.1.8 子程序调用语句
1. 过程调用
接下页
10.1 顺 序 语 句
10.1.8 子程序调用语句
1. 过程调用 接上页
10.1 顺 序 语 句
10.1.8 子程序调用语句
1. 过程调用
10.1 顺 序 语 句
10.1.8 子程序调用语句
2.函数之处是, 函数调用与过程调用十分相似,不同之处是,调用函数 将返回一个指定数据类型的值,函数的参量只能是输入值。 将返回一个指定数据类型的值,函数的参量只能是输入值。
10.3 属性描述与定义语句
3. 数值类属性
‘LEFT、 ’RIGHT、 ‘HIGH 、 'LOW
10.3 属性描述与定义语句
4. 数组属性 数组属性'LENGTH
10.3 属性描述与定义语句
5. 用户定义属性


10-1 进程有哪几种主要类型?不完全组合进程是由什么原因引起的?有什么特点? 进程有哪几种主要类型?不完全组合进程是由什么原因引起的?有什么特点? 如何避免? 如何避免? 10-2 给触发器复位的方法有哪两种?如果时钟进程中用了敏感信号表,哪种复位方 给触发器复位的方法有哪两种?如果时钟进程中用了敏感信号表, 法要求把复位信号放在敏感信号表中? 法要求把复位信号放在敏感信号表中? 10-3 详细讨论并用示例说明 详细讨论并用示例说明WITH_SELECT_WHEN语句和 语句和CASE语句的异同点。 语句的异同点。 语句和 语句的异同点 语句描述4个 位至 位至1个 位输出的 位输出的4选 多路选择器 多路选择器。 用WITH_SELECT_WHEN语句描述 个16位至 个16位输出的 选1多路选择器。 语句描述 10-4 为什么说一条并行赋值语句可以等效为一个进程?如果是这样的话,该语句怎 为什么说一条并行赋值语句可以等效为一个进程?如果是这样的话, 样实现敏感信号的检测? 样实现敏感信号的检测? 10-5 用两种方法设计比较器,比较器的输入是两 位数 用两种方法设计比较器,比较器的输入是两8位数 位数A[7..0]和B[7..0],输出是 D、 和 , 、 E、F。当A=B时D=1;当A>B时E=1;当A<B时F=1。第一种设计方案是常规的 、 。 时 ; 时 ; 时 。 比较器设计方法,即直接利用关系操作符进行编程设计; 比较器设计方法,即直接利用关系操作符进行编程设计;第二种设计方案是利用 减法器来完成,通过减法运算后的符号和结果来判别两个被比较值的大小。 减法器来完成,通过减法运算后的符号和结果来判别两个被比较值的大小。对两 种设计方案的资源耗用情况进行比较并给以解释。 种设计方案的资源耗用情况进行比较并给以解释。 10-6 设计 设计VHDL程序,产生 至100间的随机数,其中小于 的数的比例是 程序, 间的随机数, 的数的比例是70%。 程序 产生0至 间的随机数 其中小于50的数的比例是 。
10.2 VHDL并行语句 并行语句
10.2.7 断言语句
2. 并行断言语句
10.3 属性描述与定义语句
1. 信号类属性
2. 数据区间类属性
'RANGE [(n)] 'REVERSE_RANGE[(n)]
10.3 属性描述与定义语句
3. 数值类属性
‘LEFT、 ’RIGHT、 ‘HIGH 、 'LOW
实验与设计
10-1. 直流电机综合测控系统设计
(1) 实验目的: 实验目的: (2))实验原理: )实验原理: (3) 实验内容 : 实验内容1: (4) 实验内容 : 实验内容2: (5) 实验内容 : 实验内容3: 基于5E+系统的示例演示文件: 基于 系统的示例演示文件: 系统的示例演示文件 /KX_7C5EE+/EXPERIMENTs/EXP28_DC_MOTO/PW1。 /KX_7C5EE+/EXPERIMENTs/EXP28_DC_MOTO/PW1。
10.2.5 生成语句
10.2 VHDL并行语句 并行语句
10.2.5 生成语句
10.2 VHDL并行语句 并行语句
10.2.5 生成语句
10.2 VHDL并行语句 并行语句
10.2.5 生成语句
10.2 VHDL并行语句 并行语句
10.2.5 生成语句
接下页
10.2 VHDL并行语句 并行语句
EDA技术实用教程 技术实用教程
第10章 10章 VHDL基本语句 基本语句
10.1 顺 序 语 句
10.1.1 赋值语句
10.1.2 IF语句 语句
10.1.3 CASE语句 语句
10.1 顺 序 语 句
10.1.3 CASE语句 语句
10.1 顺 序 语 句
10.1.3 CASE语句 语句
10.1 顺 序 语 句
10.1.9 RETURN语句 语句
10.1 顺 序 语 句
10.1.9 RETURN语句 语句
10.1 顺 序 语 句
10.1.10 NULL语句 语句
10.2 VHDL并行语句 并行语句
10.2 VHDL并行语句 并行语句
10.2.1 并行信号赋值语句
1. 简单信号赋值语句
(1)实验目的: )实验目的: (2)实验原理: )实验原理:
实验与设计
10-2 等精度频率 脉宽/占空比 相位多功能测试仪设计 等精度频率/脉宽 占空比 脉宽 占空比/相位多功能测试仪设计
(1)实验目的: )实验目的: (2)实验原理: )实验原理:
实验与设计
10-2 等精度频率 脉宽/占空比 相位多功能测试仪设计 等精度频率/脉宽 占空比 脉宽 占空比/相位多功能测试仪设计
10.2.5 生成语句
接上页
10.2 VHDL并行语句 并行语句
10.2.5 生成语句
10.2 VHDL并行语句 并行语句
10.2.6 REPORT语句 语句
10.2 VHDL并行语句 并行语句
10.2.7 断言语句
10.2 VHDL并行语句 并行语句
10.2.7 断言语句
1. 顺序断言语句
实验与设计
10-1. 直流电机综合测控系统设计
(1) 实验目的: 实验目的: (2))实验原理: )实验原理: (3) 实验内容 : 实验内容1: (4) 实验内容 : 实验内容2: (5) 实验内容 : 实验内容3: 基于5E+系统的示例演示文件: 基于 系统的示例演示文件: 系统的示例演示文件 /KX_7C5EE+/EXPERIMENTs/EXP28_DC_MOTO/PW1。 /KX_7C5EE+/EXPERIMENTs/EXP28_DC_MOTO/PW1。
(1)实验目的: )实验目的: (2)实验原理: )实验原理:
接下页
接上页
实验与设计
10-2 等精度频率 脉宽/占空比 相位多功能测试仪设计 等精度频率/脉宽 占空比 脉宽 占空比/相位多功能测试仪设计
(1)实验目的: )实验目的: (2)实验原理: )实验原理:
接下页
接上页
实验与设计
10-2 等精度频率 脉宽/占空比 相位多功能测试仪设计 等精度频率/脉宽 占空比 脉宽 占空比/相位多功能测试仪设计
10.1.6 EXIT语句 语句
10.1 顺 序 语 句
相关文档
最新文档