文档详情

《电子设计自动化EDA》第四章 VHDL的主要描述语句.ppt

发布:2017-05-26约3.04万字共120页下载文档
文本预览下载声明
4.1 VHDL顺序语句 顺序语句是指完全按照程序中书写的顺序执行各语句,并且在结构层次中前面的语句执行结果会直接影响后面各语句的执行结果。 4.1.1 变量赋值语句 4.1.2 信号赋值语句 4.1.3 WAIT语句 WAIT语句在进程中起到与敏感信号一样重要的作用,敏感信号触发进程的执行,WAIT语句同步进程的执行,同步条件由WAIT语句指明。进程在仿真运行中处于执行或挂起两种状态之一。当进程执行到等待语句时,就将被挂起并设置好再次执行的条件。 4.1.4 IF语句 ARCHITECTURE rtl OF dff IS BEGIN PROCESS (clk) BEGIN IF (clk’EVENT AND clk=’1’) THEN q = d; END IF; END PROCESS; END rtl; 4.1.5 CASE语句 例[2] CASE语句使用 4.1.6 LOOP语句 LOOP语句就是循环语句,它可以使包含的一组顺序语句被循环执行,其执行的次数受迭代算法控制。在VHDL中常用来描述迭代电路的行为。 4.1.7 NEXT语句 4.1.8 EXIT语句 (2) EXIT语句不含标号和条件时,表明无条件结束LOOP语句的执行,因此,它为程序需要处理保护、出错和警告状态,提供了一种快捷、简便的调试方法。 4.1.9 返回语句 RETURN RETURN语句是一段子程序结束后,返回主程序的控制语句。它只能用于函数与过程体内,并用来结束当前最内层函数或过程体的执行。 上例是一个对两个输入整数取最大值的功能描述,在结构体的进程中定义了一个取最大值的函数。在函数体中正是通过RETURN语句将比较得到的最大值返回的,并结束该函数体的执行。 4.1.10 NULL语句 NULL语句是空操作语句,不完成任何操作,执行NULL语句只是让程序运行流程走到下一个语句。 4.1.11 过程调用语句(Procedure Call) 与其他高级程序设计语言相似,VHDL提供了子程序的概念。其中在进程、函数和过程中,可以使用过程调用语句,此时它是一种顺序语句。一个过程被调用时将去执行它的过程体。 例: LIBRARY IEEE; USE IEEE. STD_LOGIC_1164.ALL; USE IEEE. STD_LOGIC_UNSIGNED.ALL; ENTITY max IS PORT(in1:IN STD_LOGIC_VECTOR (7 DOWNTO 0); in2:IN STD_LOGIC_VECTOR (7 DOWNTO 0); in3:IN STD_LOGIC_VECTOR (7 DOWNTO 0); q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END max ; 4.1.12断言语句(Assert) 断言语句分为顺序断言语句和并行断言语句,顺序断言语句主要用于进程、函数和过程仿真、调试中的人机对话,它可以给出一个文字串作为警告和错误信息。 在REPORT后面跟着的是设计者写的字符串,通常是说明错误的原因,字符串要用双引号括起来。 ARCHITECTURE rtl OF rsff IS BEGIN PROCESS(s,r) VARIABLE last_state :BIT; BEGIN ASSERT(NOT(s =‘1’AND r =‘1’)) REPORT “Both s and r equal to‘1’.” SEVERITY ERROR; 4.1.13 REPORT 语句 REPORT语句不增加硬件任何功能,但提供顺序断言语句的短格式,在
显示全部
相似文档