VHDL无法确定运算符的定义''='';——找到0个定义 案例状态为 当(状态=0)=> 这里有两个问题: 1.您的案例陈述在语法上不正确。当0=>时使用而不是当(状态=0)=>时使用 2.你能告诉我们状态的声明是什么样子的吗?它看起来像是您将状态声明为标准逻辑向量,但将其与整数0进行比较,或者您将状态声明为整数,并将标准逻辑向量分配给它

VHDL无法确定运算符的定义''='';——找到0个定义 案例状态为 当(状态=0)=> 这里有两个问题: 1.您的案例陈述在语法上不正确。当0=>时使用而不是当(状态=0)=>时使用 2.你能告诉我们状态的声明是什么样子的吗?它看起来像是您将状态声明为标准逻辑向量,但将其与整数0进行比较,或者您将状态声明为整数,并将标准逻辑向量分配给它,vhdl,Vhdl,状态机的基本模板(2个进程样式) 建筑: case state is when (state = 0) => win <= 0; stand <= 0; bust <= 0; hit <=0; state <= "1"; 正文: 进程(时钟) 开始 如果上升沿(时钟),则 如果(重置='1'),则 抱歉,但是你有没有试过看一本VHDL的书或者一些在线教程?此

状态机的基本模板(2个进程样式)

建筑:

case state is  
    when (state = 0) =>     
        win <= 0;
        stand <= 0;
        bust <= 0;
        hit <=0;
        state <= "1";
正文:

进程(时钟)
开始
如果上升沿(时钟),则
如果(重置='1'),则

抱歉,但是你有没有试过看一本VHDL的书或者一些在线教程?此代码远离任何编程语言的任何开关、case或select语句。
type T_STATE is (ST_IDLE, ST_WORKING);

signal State      : T_STATE   := ST_IDLE;
signal NextState  : T_STATE;
process(Clock)
begin
  if rising_edge(Clock) then
    if (Reset = '1') then
      State <= ST_IDLE;
    else
      State <= NextState;
    end if;
  end if;
end process;

process(State, Input)
begin
  NextState    <= State;

  -- default assignments
  Output       <= '0';

  case State is
    when ST_IDLE =>
      if (Input = '1') then
        NextState  <= ST_WORKING;
      end if;

    when ST_WORKING =>
      Output       <= '1';
      NextState    <= ST_IDLE;

  end case;
end process;