VHDL中的分辨函数
分辨函数(resolved function)是VHDL语言中具有代表性的一类函数,本例是一个线或(WiredOr)分辨函数。
- 分辨函数的功能
根据驱动器件工艺的不同,有多个驱动源的信号可以表现为竞争信号的“或”关系或者“与”关系,分辨函数就是为了解决这一问题而设计的。
分辨函数的功能是从一个信号的多个驱动源中选择一个作为实际的输出结果。因为是线或,所以如果驱动源有一个‘1’ ,则返回‘1’ ,否则根据七值逻辑的强度大小来决定返回结果。
分辨函数的参数是一个七值逻辑的位向量,参数位向量中各位都是要返回的结果信号的驱动的源,而返回结果则是一个七值逻辑位,这一位就是参数中位向量的一位。 - VHDL语言描述方法及语法分析
分辨函数是用户定义的函数,它返回带有多个驱动源信号的单一值。分辨函数用于实现适当的冲突仲裁。在每一个模拟周期内,对应的欲分辨信号活跃时,分辨函数被隐含地调用。即不论何时对有多个驱动源的信号的驱动源赋值,必须调用分辨函数来决定实际的结果。用户不能控制该函数调用的发生。
函数WiredOr
function WiredOr(V: MVL7_VECTOP) return MVL7 is
--线或函数的真值表
constant tb1_WIREDOR : MVL7_TA