좀 Verilog
코드를 쓰는 사람은 알테라의 싸이 클론 II FPGA 보드에 프로그램 될, 나는 키 스위치의 언론에서 활성화해야 always
블록이 있습니다, FSM
reg START;
...
...
always @ (negedge key[3]) begin
if (START != 1) START = 1;
end
필자는 유한 상태 컴퓨터 용 프로그램을 작성하고 있으며이 키를 누르면 사용자가 프로그램을 사용하기 시작하고 초기 상태에서 다음 상태로 이동해야 함을 나타냅니다. 레지스터의 초기화가 합성 가능하지 않기 때문에 START
이 0에서 시작한다고 가정 할 수 없습니다.
일단 보드를 프로그래밍하고 전원을 켜면이 always
블록이 이미 한 번 실행 된 후에 키를 누릅니다. key[3]
에 할당 프로그램 실행시 START
의 값에 대한 검사를 수행했으며 이미 1
입니다. 키가 키를 누를 때만 부정적인면에 있기 때문에 이것이 일어나는 이유를 알 수 없습니다. 이전 상황에서 항상 같은 조건의 블록을 사용 했으므로 문제가 없으므로 초기화가 START
과 관련이 있다고 가정합니다.
흠, 교수님이 합성 할 수 없기 때문에 초기 블록을 사용하지 말라고 명시 적으로 말씀하셨습니다 ... 시뮬레이션에서만 작동합니다. 나는 그것을 쏜다! –
@Ryan McClure 나는 이니셜이 합성 불가능하다고 가정했지만, 오늘날 툴은 자일링스와 알테라 툴을 위해 비트 스트림에서 디폴트 값으로 사용한다. 이 값은 구성시 설정됩니다. – grorel
FPGA의 기본 설정에'initial'이 사용됩니다. ASIC의 경우 비동기 재설정이 일반적으로 사용되기 때문에 재설정은 전원 켜기 재설정 모듈에서 수행됩니다. – Morgan