문서 ID: 000077247 콘텐츠 형태: 문제 해결 마지막 검토일: 2007-08-28

Quartus II 소프트웨어가 양방향 핀을 출력 전용 핀으로 변환하는 이유는 무엇입니까?

환경

BUILT IN - ARTICLE INTRO SECOND COMPONENT
설명

Quartus® II 소프트웨어 버전 6.0 이상은 VHDL 방향 신호를 보다 엄격하게 합성합니다. VHDL 규칙을 적용하기 때문에 Quartus II 소프트웨어는 잘못 코딩된 양방향 버퍼를 출력 핀으로 변환합니다.

예를 들어, 다음 코드와 같이 양방향 버퍼를 구현하는 경우 Quartus II 소프트웨어는 출력 핀(버전 6.0부터 시작)을 합성합니다.

process(mdio_out,mdio_oe)
begin
if (mdio_oe = '1') then
mac_mdio <= mdio_out;
else
mac_mdio <= 'Z';
end if
end process;

mdio_oe <= NOT(mdio_oe_n);
test_out <= mac_mdio and test;
mii_mdio <= mac_mdio;

mac_mdio이 신호이고 mii_mdio가 양방향 포트인 경우 위의 마지막 할당은 방향성입니다. 기록된 대로 데이터가 mii_mdio에서 mac_mdio 흐르는 것은 불가능합니다. 버전 6.0부터 Quartus II 소프트웨어는 mac_mdio와 mii_mdio 사이에 버퍼를 삽입하여 이 VHDL 할당의 방향성을 적용합니다. 이 버퍼는 RTL 뷰어에 3중 상태 버퍼와 직렬로 방향성 버퍼로 표시되며 의도한 mii_mdio(양방향 핀)은 출력으로만 합성됩니다.

이전 버전의 Quartus II 소프트웨어는 이러한 유형의 할당에 방향성을 적용하지 않고 위의 코드를 양방향 핀으로 합성합니다.

VHDL 표준을 준수하려면 위의 예에서 마지막 신호 할당 문을 제거하고 다음과 같이 코드를 작성하십시오.

process(mdio_out,mdio_oe)
begin
if (mdio_oe = '1') then
mii_mdio <= mdio_out;
else
mii_mdio <= 'Z';
end if;
end process;

mdio_oe <= NOT(mdio_oe_n);
test_out <= mii_mdio and test;

관련 제품

이 문서는 다음 항목에 적용됩니다. 1 제품

인텔® 프로그래밍 가능 장치

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.