AHDL에서 컨트롤 유닛 (UC)을 구현했으며, 시뮬레이트하고 해당 ASM 다이어그램에 정의 된대로 작동하는지 확인해야합니다. 시뮬레이션을 위해 MAX + plus II을 사용했는데 예상대로 작동하지 않지만 실제로 AHDL에 익숙하지 않아서 무엇이 잘못되었는지 말할 수 없습니다. TABLE 부분은 말할 것도 없습니다. 이해가 안 시뮬레이션에서이 상황이 있습니다TABLE은 AHDL에서 어떻게 작동합니까?
SUBDESIGN EXP1_UC ( CLKUC: INPUT; RES: INPUT; N1,N2,M1,M2: INPUT;
CLR1, CLR2, CLR3, EN1, EN2, EN3, SEL: OUTPUT; ) VARIABLE UC: MACHINE OF BITS (CLR1, CLR2, CLR3, EN1, EN2, EN3, SEL) WITH STATES ( s0 = B"1110000", s1= B"0001000", s2= B"0000100", s3= B"0000000", s4= B"0000010", s5= B"0000001", s6= B"0000011" ); BEGIN UC.CLK = CLKUC; UC.RESET = RES; TABLE UC, N1,N2,M1,M2 => UC; s0, 0, 0, X, X => s0; s0, 1, X, X, X => s1; s0, X, 1, X, X => s2; s1, X, X, X, X => s3; s2, X, X, X, X => s3; s3, 0, 0, 0, 0 => s3; s3, 1, X, X, X => s1; s3, X, 1, X, X => s2; s3, X, X, 1, X => s4; s3, X, X, X, 1 => s5; s4, X, X, X, X => s3; s5, X, X, X, X => s6; s6, X, X, X, X => s3; END TABLE; END;
: 여기
내 제어 장치입니다 현재 상태가 S3과 입력이 M1 있습니다1) = 1 M2 = 1이면, 다음 상태는 S6이다. 나는 그것을 보지 못하기 때문에, S5를 먼저 지나치지 않고 S6으로 갈 길이 없다.
2) 현재 상태가 S0이고 입력이 N1 = 1 및 N2 = 1 인 경우 다음 상태는 시뮬레이션에서 "12"로 정의됩니다. 글쎄, 그런 상태가 ...
아무도 도와 줄 수 있습니까? 감사합니다. .
UPDATE : 같은 (이 대학의 서류, 그리고 내가 코드를 작성하지 않았기 때문에 나는 그것을 거의 도구의 최상의 조합 없다하더라도 ADHL 및 MAX + 플러스 II를 사용할 필요가
1) 나는 단지 그것을 시뮬레이션해야한다고 말했고, 나는 그것을 바꿀 수 없다).
먼저 감사합니다. 여기에 내 첫 번째 질문입니다. 그래서 직접 질문에 대답 할 것인지, 아니면 내 질문에 업데이트로 대답 할 것인지 확실하지 않았습니다. 글쎄, 나는 둘 다 할 것이다. 업데이트 1은 현재 VHDL을 배우는 중이지만 AHDL을 사용해야하는 이유에 대해 답변하고 MAX Plus II 대신 자일링스에서 ISE WebPack으로 옮겼습니다. 대답에 대해 모든 입력이 올바르게 동기화되었습니다. 나는 실행의 시간에 대해 걱정하지 않는다. 그래서 나는 상승하는 클럭 에지 이전에 입력의 절반을 시계의 반주기로 설정했고, 그들은 전체 시계 기간 동안 처럼 머무른다. 다른 생각? 다시 한번 감사드립니다. – dsetton