我想比较两个二进制逻辑向量A和B.但是我的代码不会编译,我不知道为什么我不允许在这里使用比较语句。谁能帮我?我的问题是,我是新来的VHDL和我需要一些技巧如何在VHDL的case语句中使用中缀表达式?
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
--entity declaration of IC74x85 with port definitions
entity IC74x85 is
port( A : in std_logic_vector(3 downto 0); --input A is a 4 bit binary number
B : in std_logic_vector(3 downto 0); --input B is a 4 bit binary number
ALTBOUT : out std_logic; -- A < B
AEQBOUT : out std_logic; -- A = B
AGTBOUT : out std_logic -- A > B
);
end IC74x85;
--architecture of entity
architecture IC74x85_arch of IC74x85 is
begin
process(A,B)
begin
case A is
when (A < B) => ALTBOUT <= '1';
when (A > B) => AGTBOUT <= '1';
when (A = B) => AEQBOUT <= '1';
when others => ALTBOUT, AGTBOUT, AEQBOUT <= '0';
end case;
end process;
end IC74x85_arch;
**错误:C:/用户/史蒂夫/桌面/ ASS1 /事例信号assignment.vhd(21):类型错误解决中缀表达式“<”作为类型ieee.std_logic_1164.STD_LOGIC_VECTOR。
**错误:C:/ Users/Steve/Desktop/Ass1/case signal assignment.vhd(21):CASE语句中的选择备选项必须是本地静态的。
**错误:C:/ Users/Steve/Desktop/Ass1/case signal assignment.vhd(22):类型错误解析中缀表达式“>”,类型为ieee.std_logic_1164.STD_LOGIC_VECTOR。
**错误:C:/ Users/Steve/Desktop/Ass1/case signal assignment.vhd(22):CASE语句中的选择备选项必须是本地静态的。
**错误:C:/ Users/Steve/Desktop/Ass1/case signal assignment.vhd(23):类型错误解析中缀表达式“=”作为类型ieee.std_logic_1164.STD_LOGIC_VECTOR。
**错误:C:/ Users/Steve/Desktop/Ass1/case signal assignment.vhd(23):CASE语句中的选择备选项必须是本地静态的。
**错误:C:/用户/史蒂夫/桌面/ ASS1 /事例信号assignment.vhd(24):近 “”:期待< =或:=
使用的[如果声明】(http://www.nandland.com/vhdl/examples/example-if-statement.html) – Russell
我怎么使用一个case语句里面的if语句? – Steven
您的case语句可以被一系列'if','elseif'和'else'语句完全替换。 – Rob