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