2017-11-26 19 views
0

내 포인트 (SQ_X2, SQ_Y2)를 2D 평면 (TFT-LCD에서)으로 이동시키고 싶습니다. 다음은 내 코드의 일부입니다.여러 드라이버 또는 잘못된 동기 설명에 연결된 문제

PSW (푸시 버튼 스위치)를 누르고 점을 x 또는 y로 5 회 움직입니다. 그리고 하나의 프로세스 문에서 다음 코드를 병합 할 때 "그 잘못된 동기 설명"오류가있는 문제가 있습니다. 하지만이 문제를 피하기 위해 4 Process 문을 선언했습니다. Signal SQ_X2 또는 SQ_Y2가 여러 드라이버에 연결되어 있다는 오류가 있습니다. 지금 딜레마에서 오전 에 .. PLZ 도와 그리고 당신은 더 정확하게, 당신은 그렇게 할 수있는 방법이 있습니다 (여러 프로세스에서 하나 개의 신호를 할당 할 수 없습니다

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; 
+0

클럭 신호는 어디에 있습니까? 동기식 디자인을 찾으십시오. – JHBonarius

답변

1

피자를 살 것이다,하지만 당신은 원하지 않는다 그것을 여기에서하는 것). 또한 하나의 프로세스는 하나의 if rising_edge() then 문만 포함 할 수 있습니다. 여러 개의 상승 에지에 반응하는 하드웨어를 합성 할 수 없으므로 ...

동기 설계에 대해 알아보고 시스템에 시계를 추가하고 수행하십시오. 한 번에 모든 것을 처리 할 수 ​​있습니다. this tutorial, 특히 순차 논리 설계 섹션을 살펴볼 수 있습니다.