Vhdl 连接到多个驱动程序或同步描述错误的问题

Vhdl 连接到多个驱动程序或同步描述错误的问题,vhdl,xilinx,Vhdl,Xilinx,我只想让我的观点(SQ_X2,SQ_Y2)在2D平面上移动(在TFT-LCD中)。 下面是我代码的一部分 如果我按下PSW(按钮开关),点在x或y方向移动5。还有一个问题,当我将下面的代码合并到一个进程语句中时,出现了一个错误“那个糟糕的同步描述”。 但为了避免这个问题,我声明了4个进程语句,还有另一个错误,信号SQ_X2或SQ_Y2连接了多个驱动程序。 我现在进退两难。。请帮帮我,我要买一个比萨饼 PROCESS (PSW(3)) BEGIN IF (rising_edge(PSW(3

我只想让我的观点(SQ_X2,SQ_Y2)在2D平面上移动(在TFT-LCD中)。 下面是我代码的一部分

如果我按下PSW(按钮开关),点在x或y方向移动5。还有一个问题,当我将下面的代码合并到一个进程语句中时,出现了一个错误“那个糟糕的同步描述”。 但为了避免这个问题,我声明了4个进程语句,还有另一个错误,信号SQ_X2或SQ_Y2连接了多个驱动程序。 我现在进退两难。。请帮帮我,我要买一个比萨饼

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;
过程(PSW(3))
开始
如果(上升沿(PSW(3)),则

SQ_Y2您不能在多个进程中分配一个信号(更准确地说,您可以通过多种方式分配信号,但您不想在这里分配信号)。另外,一个进程只能包含一个
if rising_edge()then
语句,因为不可能合成对多个上升沿作出反应的硬件


您需要做的是了解同步设计,在系统中添加时钟,并在一个进程中完成所有工作。您可能想看看,尤其是顺序逻辑设计部分

时钟信号在哪里?查找同步设计。