为什么您在“中”中给出错误=&引用;在我的VHDL代码中 ieee库; 使用ieee.std_logic_1164.ALL; 使用ieee.std_logic_unsigned.ALL; 实体f_4fir_cont为 港口( rst,clk:标准逻辑中; ctrl:OUT std_逻辑 ); 结束f\u 4fir\u cont; f_4fir_cont的架构bhvrl是类型state_enum IS(s0,s1); 信号状态:状态_enum:=s0; 信号nexts:state_enum:=s1; 开始 clkp:过程(clk、rst) 开始 如果(rst=“0”),则 状态

为什么您在“中”中给出错误=&引用;在我的VHDL代码中 ieee库; 使用ieee.std_logic_1164.ALL; 使用ieee.std_logic_unsigned.ALL; 实体f_4fir_cont为 港口( rst,clk:标准逻辑中; ctrl:OUT std_逻辑 ); 结束f\u 4fir\u cont; f_4fir_cont的架构bhvrl是类型state_enum IS(s0,s1); 信号状态:状态_enum:=s0; 信号nexts:state_enum:=s1; 开始 clkp:过程(clk、rst) 开始 如果(rst=“0”),则 状态,vhdl,Vhdl,rst和clk都是std_逻辑,这是一种枚举类型。您正在将它们与数组进行比较。将所有比较更改为单个字符: 如果rst='0',则 等等。字符串文本或字符文本的类型取自上下文(IEEE Std 1076-2008,9.3.2文本,12.5重载解析上下文)。没有实现与用法匹配的相等运算符的函数的可见声明。只需要一个。有一些可见性规则用于根据内部声明区域和范围(12.3可见性、12.1声明区域、12.2声明范围)缩小候选范围。这里没有与use子句可见的重载函数声明相匹配的项。 LIBRARY iee

rst和
clk
都是
std_逻辑
,这是一种枚举类型。您正在将它们与数组进行比较。将所有比较更改为单个字符:

如果rst='0',则

等等。

字符串文本或字符文本的类型取自上下文(IEEE Std 1076-2008,9.3.2文本,12.5重载解析上下文)。没有实现与用法匹配的相等运算符的函数的可见声明。只需要一个。有一些可见性规则用于根据内部声明区域和范围(12.3可见性、12.1声明区域、12.2声明范围)缩小候选范围。这里没有与use子句可见的重载函数声明相匹配的项。
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;

ENTITY f_4fir_cont IS
    PORT (
        rst, clk : IN std_logic;
        ctrl : OUT std_logic
    );
END f_4fir_cont;
ARCHITECTURE bhvrl OF f_4fir_cont IS TYPE state_enum IS (s0, s1);
    SIGNAL state : state_enum := s0;
    SIGNAL nexts : state_enum := s1;

BEGIN
    clkp : PROCESS (clk, rst)
    BEGIN
        IF (rst = "0") THEN
            state <= s0;
        ELSIF (clk'EVENT AND clk = "1" AND
            clk'LAST_VALUE = "0") THEN
            state <= nexts;
        END IF;
    END PROCESS clkp;

    transp : PROCESS (state)

    BEGIN
        CASE state IS
            WHEN s0 => nexts <= s1;
            ctrl <= "0";
            WHEN s1 => nexts <= s0;
            ctrl <= "1";
        END CASE;
    END PROCESS transp;
END bhvrl;