인텔® Arria® 10 장치의 초기화 단계에서 사용자 출력 핀이 예기치 않은 상태로 전환되는 것을 볼 수 있습니다.
이는 사용자 로직과 사용자 I/O 핀이 초기화 단계에서 동시에 활성화되는 것이 아니라 점진적으로 활성화되기 때문입니다.
아래에 예가 나와 있습니다. ( 예시 그림 )
- 사용자 입력 핀은 레지스터의 낮은 활성 세트 포트에 연결됩니다.
- 이 사용자 입력 핀은 전원을 켤 때부터 사용자 모드까지 낮게 유지됩니다.
- 레지스터의 데이터 출력 포트는 사용자 출력 핀에 연결됩니다.
사용자 I/O 핀은 구성 단계 및 초기화 상태에서 풀업이 약한 입력 트라이 상태에 있고 레지스터는 사용자 모드에서 설정된 포트에 의해 높게 설정될 것으로 예상되기 때문에 사용자 출력 핀은 높게 유지될 것으로 예상됩니다.
그러나 사용 로직 및 사용자 I/O 핀은 초기화 단계에서 점진적으로 활성화됩니다. 레지스터 및 사용자 출력 핀이 입력 포트보다 빠르게 활성화되고 레지스터의 초기 상태가 로우인 경우 출력 핀은 입력 포트가 활성화되고 레지스터의 설정 포트가 로우가 될 때까지 레지스터에서 로우로 전파됩니다.
외부 장치가 인텔 Arria 10 장치의 출력을 모니터링할 때 초기화 단계 중 예기치 않은 상태가 외부 장치의 동작에 영향을 줄 수 있습니다.
이 문제를 해결하려면 다음 방법 중 하나를 사용하십시오.
- 해결 방법 1: 핀이 높아질 때까지 외부 장치가 사용자 출력 핀의 상태를 무시하도록 INIT_DONE(해결 방법 1 그림)
- 해결 방법 2: 핀이 높아질 때까지 외부 논리를 사용하여 외부 장치에 대한 입력 상태를 적절하게 유지INIT_DONE(해결 방법 2 그림)
- 해결 방법 3: 내부 INIT_DONE 신호가 높아질 때까지 사용자 논리를 사용하여 Arria 10 디바이스의 출력 상태를 유지합니다(해결 방법 3 그림).
다음 WYSIWYG 인스턴스화와 함께 내부 INIT_DONE 신호를 사용할 수 있습니다.
Verilog >> <<
twentynm_controller u1 ( .initdonecore(<내부 INIT_DONE 와이어 이름>) );
VHDL >> <<
구성 요소 twentynm_controller는 다음과 같습니다.
포트( initdonecore: out STD_LOGIC );
끝 구성 요소;
U1 : twentynm_controller
포트 맵( initdonecore => <내부 INIT_DONE 와이어 이름> );