Vhdl 附近出现Synth 8-2715语法错误

Vhdl 附近出现Synth 8-2715语法错误,vhdl,Vhdl,我正在设计一个基本的低燃油检测器,当燃油为1/3空或更低时打开。我的代码如下: ENTITY LFDetector_behav IS PORT (Fuel3, Fuel2, Fuel1, Fuel0: IN std_logic; FuelWarningLight: OUT std_logic); END LFDetector_behav; ARCHITECTURE Behavior OF LFDetector_behav IS BEGIN PROCESS (Fuel3, Fuel2

我正在设计一个基本的低燃油检测器,当燃油为1/3空或更低时打开。我的代码如下:

ENTITY LFDetector_behav IS
PORT (Fuel3, Fuel2, Fuel1, Fuel0: IN std_logic;
     FuelWarningLight: OUT std_logic);
END LFDetector_behav;

ARCHITECTURE Behavior OF LFDetector_behav IS
BEGIN
 PROCESS (Fuel3, Fuel2, Fuel1, Fuel0)
 BEGIN
 FuelWarningLight <= [(NOT(Fuel3)) AND (NOT(Fuel2))] OR [(NOT(Fuel1)) AND (NOT(Fuel0))] AFTER 5.8 ns; 
 END PROCESS; 
END Behavior;
实体LFU检测器的行为是
端口(Fuel3、Fuel2、Fuel1、Fuel0:标准_逻辑中;
FuelWarningLight:输出标准(U逻辑);
末端LFU行为;
LFU检测器的体系结构行为
开始
过程(燃料3、燃料2、燃料1、燃料0)
开始

FuelWarningLight我不确定您的错误发生在哪里(synth或sim),但是
之后的
关键字不可合成。我也不确定您是否打算将其完全组合起来

可能尝试以下操作:

ARCHITECTURE Behavior OF LFDetector_behav IS
BEGIN
 PROCESS (Fuel3, Fuel2, Fuel1, Fuel0)
 BEGIN
 FuelWarningLight <= ((not Fuel3) AND (not Fuel2)) OR ((not Fuel1) AND (not Fuel0)); 
 END PROCESS; 
END Behavior;
LFU行为的架构行为是 开始 过程(燃料3、燃料2、燃料1、燃料0) 开始
FuelWarningLight格式相同吗?但为什么格式在这里很重要?我们需要修正它的逻辑,对吗?这里有一个简单的VHDL语法问题。此处不允许使用方括号。您的代码不正确,逻辑看起来也不正确。是燃料3。。。Fuel0二进制编码值?无论是否有过多的冗余括号对或忽略的波形元素延迟时间表达式,提供投影输出波形值的表达式都是不正确的。为真,存在冗余括号;我实际上取代了他的[]。然而,我删除了波形元素延迟,因为我认为这是一个synth问题(基于问题标题)。我不知道Fuel0..Fuel3到底代表什么,所以我没有费心去推断。
ENTITY LFDetector_behav IS
PORT (clk, Fuel3, Fuel2, Fuel1, Fuel0: IN std_logic;
     FuelWarningLight: OUT std_logic);
END LFDetector_behav;

ARCHITECTURE Behavior OF LFDetector_behav IS
BEGIN
 PROCESS (clk)
 BEGIN
  if rising_edge(clk) then
     FuelWarningLight <= ((not Fuel3) AND (not Fuel2)) OR ((not Fuel1) AND (not Fuel0)); 
  end if;
 END PROCESS; 
END Behavior;