5-VHDL主要描述语句(并行语句).ppt
《5-VHDL主要描述语句(并行语句).ppt》由会员分享,可在线阅读,更多相关《5-VHDL主要描述语句(并行语句).ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句第五章第五章 VHDL主要描述语句主要描述语句第二部分第二部分并行语句并行语句5.2.1 进程语句进程语句5.2.2 BLOCK 语句语句5.2.3 并行过程调用语句并行过程调用语句5.2.4 元件例化语句元件例化语句 5.2.5 并行断言并行断言语句语句 5.2.6 生成语句生成语句第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句5.2 并行语句并行语句相对于传统的软件描述语言,并行语句结构是最具相对于传统的软件描述语言,并行语句结构是最具VHDL特色的。在特色的。在VHDL中,并行语句具有多种语句格式,各种中,
2、并行语句具有多种语句格式,各种并行语句在结构体中的执行是同步进行的,或者说是并行并行语句在结构体中的执行是同步进行的,或者说是并行运行的,其执行方式与书写的顺序无关。在执行中,并行运行的,其执行方式与书写的顺序无关。在执行中,并行语句之间可以有信息往来,也可以是互为独立、互不相关、语句之间可以有信息往来,也可以是互为独立、互不相关、异步运行的异步运行的(如多时钟情况如多时钟情况)。每一并行语句内部的语句运行方式可以有两种不同的方式,每一并行语句内部的语句运行方式可以有两种不同的方式,即并行执行方式即并行执行方式(如块语句如块语句)和顺序执行方式和顺序执行方式(如进程语句如进程语句)。因此,。因
3、此,VHDL并行语句勾画出了一幅充分表达硬件电路并行语句勾画出了一幅充分表达硬件电路的真实的运行图景。的真实的运行图景。第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句如下图所示的是在一个结构体中各种并行语句运行的示意如下图所示的是在一个结构体中各种并行语句运行的示意图。这些语句不必同时存在,在每一语句模块都可以独立图。这些语句不必同时存在,在每一语句模块都可以独立异步运行,模块之间并行运行,并通过信号来交换信息。异步运行,模块之间并行运行,并通过信号来交换信息。生生成成语语句句条条件件信信号号赋赋值值语语句句元元件件例例化化语语句句并并行行信信号号赋赋值值语语句句块块语语句句
4、进进程程语语句句并并行行过过程程调调用用语语句句信号信号信号信号信号信号信号信号信号信号信号信号ARCHITECTUREEND ARCHITECTURE第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句VHDL中的并行运行有多层含义,即模块间的运行方式中的并行运行有多层含义,即模块间的运行方式可以有同时运行、异步运行、非同步运行等方式,从电可以有同时运行、异步运行、非同步运行等方式,从电路的工作方式上可以包括组合逻辑运行方式、同步逻辑路的工作方式上可以包括组合逻辑运行方式、同步逻辑运行方式和异步逻辑运行方式等。运行方式和异步逻辑运行方式等。并行语句在结构体中的使用格式如下:并行语
5、句在结构体中的使用格式如下:ARCHITECTURE 结构体名结构体名 OF 实体名实体名 IS 说明说明(定义)语句;定义)语句;BEGIN并行语句;并行语句;并行语句;并行语句;END ARCHITECTURE 结构体名结构体名;第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句5.2.1 进程语句进程语句进程进程(PROCESS)语句是最具语句是最具VHDL语言特色的语句,因为它语言特色的语句,因为它提供了一种用算法提供了一种用算法(顺序语句顺序语句)描述硬件行为的方法。描述硬件行为的方法。进程进程实际上是用顺序语句描述的一种进行过程,也就是说进程实际上是用顺序语句描述的一
6、种进行过程,也就是说进程用于描述顺序事件。用于描述顺序事件。PROCESS语句结构包含了一个代表语句结构包含了一个代表着设计实体中部分逻辑行为的、独立的顺序语句描述的进着设计实体中部分逻辑行为的、独立的顺序语句描述的进程。一个结构体中可以有多个并行运行的进程结构,而每程。一个结构体中可以有多个并行运行的进程结构,而每一个进程的内部结构却是由一系列顺序语句来构成的。一个进程的内部结构却是由一系列顺序语句来构成的。PROCESS语句的表达格式如下:语句的表达格式如下:进程标号:进程标号:PROCESS(敏感信号参数表敏感信号参数表)IS进程说明部分进程说明部分;BEGIN顺序描述语句;顺序描述语句
7、;END PROCESS进程标号进程标号;第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句 PROCESS 组成组成 PROCESS语句结构是由三个部分组成的,即进程说明语句结构是由三个部分组成的,即进程说明部分、顺序描述语句部分和敏感信号参数表。部分、顺序描述语句部分和敏感信号参数表。(1)进程说明部分主要定义一些局部量,可包括数据类进程说明部分主要定义一些局部量,可包括数据类型、常数、属性、子程序等。但需注意,在进程说明部分型、常数、属性、子程序等。但需注意,在进程说明部分中不允许定义信号和共享变量。中不允许定义信号和共享变量。(2)顺序描述语句部分顺序描述语句部分是一段顺
8、序执行的语句,描述该是一段顺序执行的语句,描述该进程的行为。进程的行为。PROCESS中规定了每个进程语句在它的某中规定了每个进程语句在它的某个敏感信号个敏感信号(由敏感信号参量表列出由敏感信号参量表列出)的值改变时都必须立的值改变时都必须立即完成某一功能行为。即完成某一功能行为。它它可分为赋值语句、进程启动语句、可分为赋值语句、进程启动语句、子程序调用语句、顺序描述语句和进程跳出语句等。子程序调用语句、顺序描述语句和进程跳出语句等。(3)敏敏感感信信号号参参数数表表需需列列出出启启动动本本进进程程要要读读入入的的信信号号名名(当有当有WAIT语句时例外语句时例外)。第五章第五章 VHDL主要
9、描述语句主要描述语句-并行语句并行语句例例ARCHITECTURE art OF stat IS BEGIN P1:PROCESS -该进程未列出敏感信号,进程需靠该进程未列出敏感信号,进程需靠WAIT语句来启动语句来启动 BEGIN WAIT UNTIL CLOCK;-等待等待CLOCK激活进程激活进程 IF(driver=1)THEN -当当driver为高电平时进入为高电平时进入CASE语句语句CASE output ISWHEN s1=output output output output=s1;END CASE;END IF;END PROCESS P1;END ARCHITECTU
10、RE art;第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句例例SIGNAL cnt4:INTEGER RANGE 0 TO 15;-注意注意CNT4的数据类型的数据类型.PROCESS(clk,clear,stop)-该进程定义了该进程定义了3个敏感信号个敏感信号 clk,clear,stop -当其中任何一个改变时,都将启动进程的运行当其中任何一个改变时,都将启动进程的运行BEGIN IF clear=0 THEN cnt4=0;ELSIF clkEVENT AND clk=1THEN -如果遇到时钟上升沿,则如果遇到时钟上升沿,则 IF stop=0THEN -如果如果
11、stop为低电平,则进行加法计数,否则停止计数为低电平,则进行加法计数,否则停止计数 cnt4=cnt+1;END IF;END IF;END PROCESS;第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句 进程设计要点进程设计要点 进程的设计需要注意以下几方面的问题:进程的设计需要注意以下几方面的问题:1.虽然同一结构体中的进程之间是并行运行的,但同一进程中虽然同一结构体中的进程之间是并行运行的,但同一进程中的逻辑描述语句则是顺序运行的,因而在进程中只能设置顺的逻辑描述语句则是顺序运行的,因而在进程中只能设置顺序语句。序语句。2.进程的激活必须由敏感信号表中定义的任一敏感信
12、号的变化进程的激活必须由敏感信号表中定义的任一敏感信号的变化来启动,否则必须有一个显式的来启动,否则必须有一个显式的WAIT语句来激活。语句来激活。3.结构体中多个进程之所以能并行同步运行,一个很重要结构体中多个进程之所以能并行同步运行,一个很重要的原因是进程之间的通信是通过传递信号和共享变量值的原因是进程之间的通信是通过传递信号和共享变量值来实现的。来实现的。4.进程是重要的建模工具。进程结构不但为综合器所支持,进程是重要的建模工具。进程结构不但为综合器所支持,而且进程的建模方式将直接影响仿真和综合结果。而且进程的建模方式将直接影响仿真和综合结果。第五章第五章 VHDL主要描述语句主要描述语
13、句-并行语句并行语句进程语句是进程语句是VHDL程序中使用最频繁和最能体现程序中使用最频繁和最能体现VHDL语言语言特点的一种语句,其原因是由于它的并行和顺序行为的双重特点的一种语句,其原因是由于它的并行和顺序行为的双重性,以及其行为描述风格的特殊性。为了使性,以及其行为描述风格的特殊性。为了使VHDL的软件仿的软件仿真与综合后的硬件仿真对应起来,应当将进程中的所有输入真与综合后的硬件仿真对应起来,应当将进程中的所有输入信号都列入敏感表中。不难发现,在对应的硬件系统中,一信号都列入敏感表中。不难发现,在对应的硬件系统中,一个进程和一个并行赋值语句确实有十分相似的对应关系,并个进程和一个并行赋值
14、语句确实有十分相似的对应关系,并行赋值语句就相当于一个将所有输入信号隐性的列入结构体行赋值语句就相当于一个将所有输入信号隐性的列入结构体监测范围的监测范围的(即敏感表的即敏感表的)进程语句。进程语句。综综合合后后的的进进程程语语句句所所对对应应的的硬硬件件逻逻辑辑模模块块,其其工工作作方方式式可可以以是是组组合合逻逻辑辑方方式式的的,也也可可以以是是时时序序逻逻辑辑方方式式的的。例例如如在在一一个个进进程程中中,一一般般的的IF语语句句,综综合合出出的的多多为为组组合合逻逻辑辑电电路路(一一定定条条件件下下);若若出出现现WAIT语语句句,在在一一定定条条件件下下,综综合合器器将将引引入入时序
15、元件,如触发器时序元件,如触发器。第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句例例LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cnt10a IS PORT(clr:IN STD_LOGIC;in1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);out1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END cnt10a;ARCHITECTURE art OF cnt10a IS BEGIN PROCESS(in1,clr)
16、BEGIN IF(clr=1 OR in1=1001)THEN out1=0000;-有清零信号,或计数已达有清零信号,或计数已达9,out1输出输出0,ELSE -否则作加否则作加1操作操作 out1=in1+1;END IF;END PROCESS;END art;第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句 组合电路型十进制加法器组合电路型十进制加法器cnt10a综合后的综合后的RTL硬件结构图硬件结构图第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句例例LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE
17、.STD_LOGIC_UNSIGNED.ALL;ENTITY cnt10b ISPORT(clr:IN STD_LOGIC;Clk:IN STD_LOGIC;Cnt:Buffer STD_LOGIC_VECTOR(3 DOWNTO 0);END CNT10b;ARCHITECTURE actv of cnt10b ISBEGINPROCESSBEGINWAIT UNTIL clkEVENT AND clk=1;-等待时钟等待时钟clk的上沿的上沿IF(clr=1 OR cnt=1001)THENcnt=0000;-有清零信号,或计数已达有清零信号,或计数已达9,out1输出输出0,ELSE -
18、否则作加否则作加1操作操作cnt=cnt+1;END IF;END PROCESS;END actv;第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句组合电路型十进制加法器组合电路型十进制加法器cnt10b综合后的综合后的RTL硬件结构图硬件结构图(增加了增加了D触发器触发器)第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句块块(BLOCK)语句是一种将结构体中的并行描述语句进行组合语句是一种将结构体中的并行描述语句进行组合的方法,它的主要目的是改善并行语句及其结构的可读性,的方法,它的主要目的是改善并行语句及其结构的可读性,或是利用或是利用BLOCK的保护表达
19、式关闭某些信号。的保护表达式关闭某些信号。BLOCK语句的格式语句的格式:块标号:块标号:BLOCK(块保护表达式块保护表达式)类属子句类属子句类属接口表类属接口表端口子句端口子句 端口接口表端口接口表BEGINEND BLOCK 块标号块标号;5.2.2 BLOCK 语句语句第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句类类属属子子句句和和类类属属接接口口表表为为接接口口说说明明,它它有有点点类类似似于于实实体体的的定定义义部部分分,它它可可包包含含由由关关键键词词PORT、GENERIC、PORT MAP和和GENERIC MAP引引导导的的接接口口说说明明等等语语句句,
20、对对BLOCK的接口设置以及与外界信号的连接状况加以说明。的接口设置以及与外界信号的连接状况加以说明。块块的的类类属属说说明明部部分分和和接接口口说说明明部部分分的的适适用用范范围围仅仅限限于于当当前前BLOCK。所所以以,所所有有这这些些在在BLOCK内内部部的的说说明明对对于于这这个个块块的的外外部部来来说说是是完完全全不不透透明明的的,即即不不能能适适用用于于外外部部环环境境,但但对对于于嵌嵌套套于于内内层层的的块块却却是是透透明明的的。块块的的说说明明部部分分可可以以定定义义的的项项目目主主要要有有:USE语语句句、子子程程序序、数数据据类类型型、子子类类型型、常常数数、信号、元件。信
21、号、元件。块块中中的的并并行行语语句句部部分分可可包包含含结结构构体体中中的的任任何何并并行行语语句句结结构构。BLOCK语语句句本本身身属属并并行行语语句句,BLOCK语语句句中中所所包包含含的的语语句句也是并行语句。也是并行语句。第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句BLOCK的的应应用用可可使使结结构构体体层层次次鲜鲜明明,结结构构明明确确。利利用用BLOCK语语句句可可以以将将结结构构体体中中的的并并行行语语句句划划分分成成多多个个并并列列方方式式的的BLOCK,每每一一个个BLOCK都都像像一一个个独独立立的的设设计计实实体体,具具有有自自己己的的类类属属参
22、参数数说说明明和和界界面面端端口口,以以及及与与外外部部环环境境的的衔衔接接描述。描述。下例描述了一个具有块嵌套方式的下例描述了一个具有块嵌套方式的BLOCK语句结构。语句结构。第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句例例ENTITY gat IS GENERIC(L_time:TIME;S_time:TIME);-类属说明类属说明 PORT(b1,b2,b3:INOUT BIT);-结构体全局端口定义结构体全局端口定义 END ENTITY gat;ARCHITECTURE art OF gat IS SIGNAL a1:BIT;-结构体全局信号结构体全局信号a1定义
23、定义 BEGIN blk1:BLOCK -块定义,块标号名是块定义,块标号名是BLK1GENERIC(gb1,gb2:time);-定义块中的局部类属参量定义块中的局部类属参量GENERIC MAP(gb1=L-time,gb2=S-time);-局部端口参量设定局部端口参量设定 PORT(pb1:IN BIT;pb2:INOUT BIT);-块结构中局部端口定义块结构中局部端口定义POTR MAP(pb1=b1,pb2=a1);-块结构端口连接说明块结构端口连接说明CONSTANT delay:time:=1 ms;-局部常数定义局部常数定义SIGNAL s1:BIT;-局部信号定义局部信号
24、定义BEGIN s1=pb1 AFTER delay;pb2=s1 AFTER gb1;END BLOCK blk1;END ARCHITECTURE art;第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句块中定义的所有的数据类型、数据对象块中定义的所有的数据类型、数据对象(信号、变量、常量信号、变量、常量)和子程序等都是局部的;对于多层嵌套的块结构,这些局部和子程序等都是局部的;对于多层嵌套的块结构,这些局部定义量只适用于当前块,以及嵌套于本层块的所有层次的内定义量只适用于当前块,以及嵌套于本层块的所有层次的内部块,而对此块的外部来说是不可见的。部块,而对此块的外部来说是不
25、可见的。下例是一个含有三重嵌套块的程序,从此例能很清晰地下例是一个含有三重嵌套块的程序,从此例能很清晰地了解上述关于块中数据对象的可视性规则。它实际描述的是了解上述关于块中数据对象的可视性规则。它实际描述的是如下图所示的两个相互独立的如下图所示的两个相互独立的2输入与门:输入与门:SS第五章第五章 VHDL主要描述语句主要描述语句-并行语句并行语句例例b1:BLOCK -定义块定义块b1 SIGNAL s:BIT;-在在b1块中定义块中定义s BEGIN s=a AND b;-向向b1中的中的s赋值赋值 b2:BLOCK -定义块定义块b2,套于套于b1块中块中 SIGNAL s:BIT;-定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 主要 描述 语句 并行
限制150内