检测到VHDL数字\u标准元值

检测到VHDL数字\u标准元值,vhdl,ieee,Vhdl,Ieee,所以我在写一些VHDL,我所有的比较都会产生这个错误(其中“=”被我在比较中使用的任何操作符替换) 假设这是由于其中一个值未初始化或无法进行比较造成的,但我真的不明白这是怎么回事。我在下面包含了我的代码(Temp_EA和Temp_EB都是未签名的(7到0) Temp\u EA您的代码不是一个,警告在没有模拟的情况下无法再现。每个进程(包括精心设计的并发赋值语句)在初始化启动模拟期间执行。没有后时间表达式的信号分配更新会导致没有模拟时间提前的增量周期。从分配到Temp_EA、Temp_EB的更新直

所以我在写一些VHDL,我所有的比较都会产生这个错误(其中“=”被我在比较中使用的任何操作符替换)

假设这是由于其中一个值未初始化或无法进行比较造成的,但我真的不明白这是怎么回事。我在下面包含了我的代码(Temp_EA和Temp_EB都是未签名的(7到0)


Temp\u EA您的代码不是一个,警告在没有模拟的情况下无法再现。每个进程(包括精心设计的并发赋值语句)在初始化启动模拟期间执行。没有后时间表达式的信号分配更新会导致没有模拟时间提前的增量周期。从分配到Temp_EA、Temp_EB的更新直到下一个(增量)模拟周期开始才会生效,同时它们的值为默认值(全部为“U”)在初始化过程中,当它们在名称进程中进行评估时,会导致警告。对于这个糟糕的问题,很抱歉,但是如果它的格式不正确,那是因为我没有正确编写它的知识。我对VHDL非常陌生,还没有被教过增量循环。据我所知,这将在模拟中正确运行?我必须rry关于这些警告?这里有两种消除警告的方法。在声明中提供Temp_EA和Temp_EB的初始值(未显示)或者更改名称进程等待事件的位置。敏感度列表将详细说明为最终语句,形式为
等待敏感度列表;
。此处删除敏感度列表,并作为进程的第一个语句添加
等待临时EA,临时EB;
您的理论完整和其他语法逻辑上和语义上正确的(有理由要求)设计规范将按原样运行。它从实现二进制运算符“>”的函数调用中生成警告。因为在临时EA和临时EB上会有事件。可以安全地忽略已理解的警告。作为策略问题消除它们需要更加小心。您已经显示了警告,但没有显示其时间戳。我打赌在临时EA/B分配发生之前是0 ns。请参阅前面关于初始值的注释。。。
WARNING: NUMERIC_STD."=": metavalue detected, returning FALSE
  Temp_EA <= "10001000";
  Temp_EB <= "10000000";
  
  Name : process (Temp_EA, Temp_EB)
  begin
  
    if Temp_EA > Temp_EB then
    
    -- Code
    
    else
    
    -- Code
    
    end if;
    
  end process;