连接到多个驱动程序或错误同步描述的问题
problems that Connected to multiple drivers or bad synchronous description
我只是想让我的观点(SQ_X2,SQ_Y2)在二维平面(在TFT-LCD)中移动。
以下是我的代码的一部分。
如果我按下 PSW(按钮开关),点在 x 或 y 方向移动 5。并且有问题,当我在一个过程语句中合并以下代码时,出现错误 "that bad synchronous description"。
但是为了避免这个问题,我声明了4个Process语句,还有一个错误是Signal SQ_X2 or SQ_Y2 is connected Multiple drivers。
我现在进退两难..请帮助我,我会买一个披萨
PROCESS (PSW(3))
BEGIN
IF (rising_edge(PSW(3))) then
SQ_Y2 <= SQ_Y2 - std_logic_vector(to_unsigned(5,10));
END IF;
END PROCESS;
PROCESS (PSW(2))
BEGIN
IF (rising_edge(PSW(2))) then
SQ_Y2 <= SQ_Y2 + std_logic_vector(to_unsigned(5,10));
END IF;
END PROCESS;
PROCESS (PSW(1))
BEGIN
IF (rising_edge(PSW(1))) then
SQ_X2 <= SQ_X2 - std_logic_vector(to_unsigned(5,10));
END IF;
END PROCESS;
PROCESS (PSW(0))
BEGIN
IF (rising_edge(PSW(0))) then
SQ_X2 <= SQ_X2 + std_logic_vector(to_unsigned(5,10));
END IF;
END PROCESS;
您不能在多个进程中分配一个信号(更准确地说,您可以通过多种方式做到这一点,但您不想在这里这样做)。此外,一个进程只能包含一个 if rising_edge() then
语句,因为不可能合成对多个上升沿做出反应的硬件...
您需要做的是了解同步设计,为您的系统添加一个时钟并在一个进程中完成所有工作。您可能想看看 this tutorial,尤其是时序逻辑设计部分。
我只是想让我的观点(SQ_X2,SQ_Y2)在二维平面(在TFT-LCD)中移动。 以下是我的代码的一部分。
如果我按下 PSW(按钮开关),点在 x 或 y 方向移动 5。并且有问题,当我在一个过程语句中合并以下代码时,出现错误 "that bad synchronous description"。 但是为了避免这个问题,我声明了4个Process语句,还有一个错误是Signal SQ_X2 or SQ_Y2 is connected Multiple drivers。 我现在进退两难..请帮助我,我会买一个披萨
PROCESS (PSW(3))
BEGIN
IF (rising_edge(PSW(3))) then
SQ_Y2 <= SQ_Y2 - std_logic_vector(to_unsigned(5,10));
END IF;
END PROCESS;
PROCESS (PSW(2))
BEGIN
IF (rising_edge(PSW(2))) then
SQ_Y2 <= SQ_Y2 + std_logic_vector(to_unsigned(5,10));
END IF;
END PROCESS;
PROCESS (PSW(1))
BEGIN
IF (rising_edge(PSW(1))) then
SQ_X2 <= SQ_X2 - std_logic_vector(to_unsigned(5,10));
END IF;
END PROCESS;
PROCESS (PSW(0))
BEGIN
IF (rising_edge(PSW(0))) then
SQ_X2 <= SQ_X2 + std_logic_vector(to_unsigned(5,10));
END IF;
END PROCESS;
您不能在多个进程中分配一个信号(更准确地说,您可以通过多种方式做到这一点,但您不想在这里这样做)。此外,一个进程只能包含一个 if rising_edge() then
语句,因为不可能合成对多个上升沿做出反应的硬件...
您需要做的是了解同步设计,为您的系统添加一个时钟并在一个进程中完成所有工作。您可能想看看 this tutorial,尤其是时序逻辑设计部分。