다음 조건이 충족되는 경우 Quartus II 소프트웨어 버전 4.1 및 4.1 SP1의 문제로 인해 제어 로직이 잘못 생성됩니다.
- 합성 중 HDL 코드에서 lpm_counter 메가 기능 또는 lpm_counter 메가 기능 추론
- 설계의 카운터는 비동기 사전 설정과 동기식 명확한 신호를 모두 사용합니다.
- Stratix, Stratix® GX, Cyclone, MAX® II 또는 Hardcopy Stratix® 장치를 대상으로 하는 설계를 컴파일합니다.
잘못된 동작은 lpm_counter 메가 기능의 클리어 박스 구현에 문제가 발생합니다. 비동기 사전 설정과 동기화된 명확한 신호를 모두 사용하는 카운터가 있는 경우 문제를 방지하려면 <Quartus II 설치 디렉토리>\libraries\megafunctions 디렉토리에서 lpm_counter.tdf 파일을 프로젝트 디렉토리에 복사합니다.
이 문제는 Quartus II 소프트웨어 버전 4.2부터 해결됩니다.
다음은 Quartus II 소프트웨어 버전 4.1 및 4.1 SP1에서 잘못 구현된 코드 예입니다. 이 예 clr
에서는 최종 구현에서 신호가 제거됩니다.
process (clk, clr, preset) is
begin
if (preset = '0') then
counter <= (others => '1');
elsif rising_edge(clk) then
if (clr = '1') then
counter <= (others => '0');
else
counter <= counter 1;
end if;
end if;
end process;