第四章-VHDL硬件描述语言重点.ppt
文本预览下载声明
西安邮电学院电信系 罗朝霞 西安邮电学院电信系 罗朝霞 3 标识符 1)保留标识符 2)短标识符 3)扩展标识符 三)数据类型 2、用户自定义数据类型 4、运算操作符 1)算术运算符 2)关系运算符 3)逻辑运算符(Logical) 4)连接运算符 上图表示,若a信号在20ns的时间内不变化,则b信号获取一个布尔‘真’值;否则获取一个布尔‘假’。 (3)signalQUIET(time) 若信号signal在time规定的时间内无变化,则返回一个布尔‘真’值。在此函数中,signal信号用于一个事件处理的触发,如一个中断处理事件。signalQUIET由电平触发。 signal‘STABLE与signal’QUIET不同之处在于:前者用于测信号signal自身的变化,后者用于信号处理其他事务。 (4)signalTRANSACTION 当信号signal有变化,有事务处理时,产生一个数值型变量的变化。信号signal每变化一次,每处理一个事务,其值都要变化一次。在程序包STD_IEEE_1164中,预定义了下面两个函数用来检测时钟沿: FUNCTION rising_edge(SIGNAL s:STD_ULOGIC)RETURN BOOLEAN; FUNCTION falling_edge(SIGNAL s:STD_ULOGIC)RETURN BOOLEAN。 利用这两个函数和信号类届性可以实现时钟信号的边沿检测。可用逻辑表达式(clkEVENT)AND(clk=1)或NOT(clkSTABLE)AND(clk=1)来判断时钟的上升沿是否到来,也可用rising_edge(clk)来检测时钟信号的上升沿;同理,可用逻箱表达式(clkEVENT)AND(clk=0)或NOT(clkSTABLE)AND(clk=0)或falling_edge(clk)来检测时钟信号的下降沿。 一、VHDL的顺序语句 二、VHDL的并行语句 一、VHDL的顺序语句 顺序语句用来定义进程、过程或函数的行为。 顺序语句完全按照程序中出现的顺序执行各条语句,在结构层次中前面语句的执行结果可能直接影响后面语句的结果,而并行语句中仅仅执行被激活的语句,而不是所有的语句. 顺序语句包括: 1、IF语句 2、CASE语句 3、LOOP语句 4、NEXT语句 5、EXIT语句 6、RETURN语句 7、NULL语句 1、IF语句 IF语句是VHDL语言中最常见﹑最基础的语句。IF语句有四种形式。 1) IF 条件 THEN 顺序语句; END IF; 格式 注意 这是一种不完整的IF语句,通常用于产生时序电路。例4-8 2) IF 条件 THEN 顺序语句1; ELSE 顺序语句2; END IF; 格式 注意 这是一种完整的IF语句,通常用于产生组合电路。例4-9 3) IF 条件 THEN IF 条件 THEN 顺序语句; END IF; END IF; 格式 注意 这是一种多重IF语句嵌套式条件句,可以产生较为丰富的条件描述,既可以产生组合电路,又可以产生时序电路,或者产生两者的混合。在使用该语句时应注意,END IF结束句的个数应该与嵌入条件句数量一致。 4) IF 条件1 THEN 顺序语句1; ELSIF 条件2 THEN 顺序语句2; …… ELSIF 条件n THEN 顺序语句n; ELSE 顺序语句n+1; END IF; 格式 注意 这类语句可以实现不同类型电路的描述。其任一分支顺序语句的执行条件是以上各分支条件相与,即语句中顺序语句的执行条件具有向上相与的功能。例4-10 2、CASE语句 CASE 条件表达式 IS
显示全部