有用于检测边缘的信号属性
'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
属性以便它可以获取信号的最后一个值?或者定义了这些预定义属性的位置?有文件或库吗?
答案 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.
...