使用numeric_std键入转换

时间:2014-10-20 10:36:47

标签: type-conversion vhdl

在使用std_logic_unsigned后,我正在将一些VHDL文件转换为numberic_std。一些线条给了我悲伤。例如,我有以下不想正确转换的代码片段:

elsif (reg(7) = '0' and reg(2 downto 0) > PKG_VAR) then

我尝试了各种转换尝试,但没有这样的运气:

elsif (unsigned(reg(7) = '0' and unsigned(reg(2 downto 0)) > unsigned(PKG_VAR)

elsif (resize(unsigned(reg(7),3) = '0' and unsigned(reg(2 downto 0)) > unsigned(PKG_VAR)

有没有人有任何想法如何在VHDL LRM之后转换它?我正在使用VHDL 2002。

1 个答案:

答案 0 :(得分:1)

很抱歉没有提供信号的定义和常量! reg和PKG_VAR都是std_logic类型。

我相信我找到了解决我的困境的方法。使用numeric_std时,将行更改为如下所示:

elsif (reg(7) = '0' and unsigned(reg(2 downto 0)) > unsigned(PKG_VAR)) then  

我发现Cadence Incisive编译此行没有错误或警告,代码按预期模拟。

我还没有合成这段代码并运行Formality,但我相信这是正确的解决方案。