在使用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。
答案 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,但我相信这是正确的解决方案。