VHDL langague中声明或定义的预定义属性的方式或位置

时间:2016-08-23 16:33:42

标签: vhdl

有用于检测边缘的信号属性 'LAST_VALUE'EVENT,如下面的代码所示:

FUNCTION rising_edge  (SIGNAL s : std_ulogic) RETURN BOOLEAN IS
BEGIN
  RETURN (s'EVENT AND (To_X01(s) = '1') AND
                      (To_X01(s'LAST_VALUE) = '0'));
END;

如何定义'LAST_VALUE属性以便它可以获取信号的最后一个值?或者定义了这些预定义属性的位置?有文件或库吗?

1 个答案:

答案 0 :(得分:1)

这些属性在语言本身中定义。该语言由IEEE 1076-2008标准定义。它被称为Language Reference Manual (LRM)

上述属性在LRM 16.2中定义:

  

16.2预定义属性

     

预定义属性表示与各种命名实体关联的值,函数,类型,子类型,信号和范围。这些属性描述如下。对于每个属性,提供以下信息:

     
      
  • 属性类型:值,类型,子类型,范围,函数或信号
  •   
  • 定义属性的前缀
  •   
  • 参数或参数的描述(如果存在)
  •   
  • 评估属性的结果和结果类型(如果适用)
  •   
  • 适用的任何进一步限制或评论
  •   
     

对于那些表示函数的预定义属性,函数没有命名形式参数;因此,在调用由预定义属性表示的函数时,不能使用命名关联(参见6.5.7.1)。

LRM 16.2.4中列出了信号的属性:

  

16.2.4信号的预定义属性

     

...

S'EVENT        Kind:        Function.
               Prefix:      Any signal denoted by the static signal name S.
               Result type: Type BOOLEAN.
               Result:      A value that indicates whether an event has just
                            occurred on signal S.
                            Specifically:
               For a scalar signal S, S'EVENT returns the value TRUE if an event
               has occurred on S during the current simulation cycle; otherwise,
               it returns the value FALSE.

               For a composite signal S, S'EVENT returns TRUE if an event has
               occurred on any scalar subelement of S during the current simulation
               cycle; otherwise, it returns FALSE.

S'LAST_VALUE   Kind:        Function
               Prefix:      Any signal denoted by the static signal name S.
               Result type: The base type of S.
               Result:      For a signal S, if an event has occurred on S in any
                            simulation cycle, S'LAST_VALUE returns the value of S
                            prior to the update of S in the last simulation cycle
                            in which an event occurred; otherwise, S'LAST_VALUE
                            returns the current value of S.
     

...