数电实验:将二进制码转换成0-E的七段译码器

这个问题该怎么改啊/(ㄒoㄒ)/~~ sos.
连续16行都一样。
Error (10500): VHDL syntax error at 4_2.vhd(12) near text "="; expecting "(", or "'", or "."

img

该回答引用ChatGPT4与博主@晓码自在合作编写:

这段VHDL代码有语法错误,具体在第12行,应该是:

vhdl
when "0001" => dis_out <= "0000001";  --显示1

但是这里使用了"=>"而不是正确的"<=",所以报错VHDL syntax error。

修复方法很简单,只需要将所有的"=>"替换为"<="即可。VHDL是一门硬件描述语言,用于描述数字电路,它使用"<="来表示信号的赋值,而不是普通的"="。

所以,正确的代码应该是:

vhdl
library IEEE;  
use IEEE.STD_LOGIC_1164.ALL;  
entity exp4_2 is  
    port(data_in:in std_logic_vector(3 downto 0);
         dis_out:out std_logic_vector(6 downto 0));   
end exp4_2;

architecture fwm of exp4_2 is  
begin     
    process(data_in) 
    begin       
        case data_in is  
            when "0000" => dis_out <= "0000001";  --显示0  
            when "0001" => dis_out <= "0000001";  --显示1 
            when "0010" => dis_out <= "0100100";  --显示2
            when "0011" => dis_out <= "0110000";  --显示3 
            when "0100" => dis_out <= "0011001";  --显示4
            when "0101" => dis_out <= "0010001";  --显示5  
            when "0110" => dis_out <= "0000110";  --显示6  
            when "0111" => dis_out <= "1111000";  --显示7 
            when "1000" => dis_out <= "0000000";  --显示8
            when others => dis_out <= "1111111";  
        end case;
    end process;
end fwm;

修复后的代码已经没有语法错误,可以正常编译通过。

vhdl作为一门硬件描述语言,其语法规则比较严格,所以编写vhdl代码时需要格外注意。"="和"<="就是一个很常见的错误用法。