liminfo

Quartus Reference

Intel Quartus 핀 할당/타이밍/SDC 레퍼런스

21개 결과

Quartus Reference 소개

Quartus 레퍼런스는 Intel Quartus Prime FPGA 설계 도구의 명령어와 워크플로우에 대한 검색형 가이드입니다. Tcl 기반 커맨드라인 컴파일 플로우(quartus_sh, quartus_map, quartus_fit, quartus_asm, quartus_sta), I/O 계획을 위한 핀 할당 명령어, SDC(Synopsys Design Constraints) 타이밍 제약 구문, SignalTap II 내장 로직 분석기 설정을 다룹니다. 각 항목에는 Cyclone V, Arria 10, Stratix 10 디바이스 패밀리에 대한 실제 Tcl 명령 구문과 동작하는 예제가 포함됩니다.

이 레퍼런스는 7개 카테고리로 구성됩니다. 프로젝트 설정(프로젝트 생성, 컴파일 플로우, 디바이스/패밀리 선택), 핀 할당(set_location_assignment, I/O 표준, 드라이브 강도, 슬루 레이트, PLL 핀 설정), SDC 타이밍(create_clock, create_generated_clock, set_input_delay, set_output_delay, set_false_path, set_multicycle_path), SignalTap(트리거 설정, 캡처 깊이, 샘플 클럭 선택), Fitter 설정(배치 노력도, 라우팅 최적화, 타이밍 주도 컴파일), 프로그래밍(quartus_pgm JTAG/AS 설정, SOF/POF 파일 생성), 고급 설정(증분 컴파일, Design Partitions, LogicLock 영역, 부분 재구성) 등입니다.

FPGA 설계자, 디지털 하드웨어 엔지니어, 임베디드 시스템 개발자를 위해 제작된 이 도구는 Quartus 전용 Tcl 명령어와 SDC 제약 구문에 즉시 접근할 수 있습니다. 200 MHz 시스템 클럭의 타이밍 제약 설정, 차동 LVDS 핀 쌍 설정, SignalTap으로 신호 무결성 문제 디버깅, 자동화된 컴파일 플로우 스크립팅 등 필요한 정확한 명령 구문과 파라미터 옵션을 빠르게 확인할 수 있습니다. 모든 콘텐츠는 브라우저에서 실행됩니다.

주요 기능

  • quartus_sh, quartus_map, quartus_fit, quartus_asm, quartus_sta 명령어를 포함한 Tcl 커맨드라인 컴파일 플로우 레퍼런스
  • set_location_assignment, I/O 표준(LVDS, SSTL, HSTL, LVCMOS), 드라이브 강도, 슬루 레이트를 다루는 핀 할당 명령어
  • create_clock, create_generated_clock, set_input_delay, set_output_delay 및 타이밍 예외를 위한 SDC 타이밍 제약 구문
  • 트리거 조건, 캡처 깊이, 샘플 클럭, 데이터 필터링 설정을 포함한 SignalTap II 로직 분석기 설정
  • 배치 노력도, 라우팅 최적화, 타이밍 클로저 전략을 위한 Fitter 최적화 설정
  • SOF, POF, JIC 파일 생성과 함께 JTAG 및 Active Serial 모드용 FPGA 프로그래밍 명령어
  • 증분 컴파일, Design Partitions, LogicLock 배치 영역, 부분 재구성 등 고급 기능
  • 7개 카테고리 전체에서 Tcl 코드 구문 강조, 즉시 필터링, 다크 모드 지원

자주 묻는 질문

커맨드라인에서 전체 Quartus 컴파일을 실행하려면 어떻게 하나요?

quartus_sh --flow compile <프로젝트명>으로 전체 플로우(분석 및 합성, Fitter, Assembler, 타이밍 분석)를 실행합니다. 개별 단계는 quartus_map(합성), quartus_fit(배치 및 라우팅), quartus_asm(프로그래밍 파일 생성), quartus_sta(정적 타이밍 분석)를 사용합니다. quartus_sh --prepare로 먼저 프로젝트를 생성합니다. 각 단계의 완전한 명령 구문과 주요 옵션이 이 레퍼런스에 포함되어 있습니다.

시스템 클럭의 SDC 타이밍 제약은 어떻게 작성하나요?

200 MHz 클럭의 경우 create_clock -name sys_clk -period 5.0 [get_ports clk_in]을 사용합니다. PLL에서 생성된 클럭은 소스 클럭을 참조하는 create_generated_clock을 사용합니다. 인터페이스 타이밍은 set_input_delay와 set_output_delay로 설정합니다. 비동기 클럭 도메인 크로싱에는 set_false_path, 멀티사이클 경로에는 set_multicycle_path를 사용합니다. 일반적인 FPGA 타이밍 시나리오의 완전한 SDC 제약 예제가 포함되어 있습니다.

Quartus에서 핀과 I/O 표준은 어떻게 할당하나요?

핀 배치는 set_location_assignment PIN_XX -to <신호명>, I/O 표준 선택은 set_instance_assignment -name IO_STANDARD "LVDS" -to <신호명>을 사용합니다. CURRENT_STRENGTH_NEW로 드라이브 강도, SLEW_RATE로 출력 슬루를 제어합니다. 차동 쌍은 양극과 음극 핀을 모두 할당합니다. LVCMOS, LVDS, SSTL, HSTL 표준에 대한 모든 I/O 할당 명령 예제가 포함되어 있습니다.

SignalTap II 디버깅은 어떻게 설정하나요?

SignalTap II는 Tcl 명령 또는 GUI로 설정합니다. 주요 파라미터로는 샘플 클럭(설계 내 프리러닝 클럭), 캡처 깊이(일반적으로 1K~128K 샘플), 트리거 조건(기본, 고급, 상태 기반), 신호 선택이 있습니다. SignalTap 인스턴스 추가, 트리거 설정, 캡처 버퍼 구성, 자동화된 디버그 워크플로우를 위한 캡처 데이터 읽기 Tcl 명령이 포함되어 있습니다.

주요 Fitter 최적화 설정에는 무엇이 있나요?

PLACEMENT_EFFORT_MULTIPLIER(기본 1.0, 증가 시 더 나은 배치), ROUTER_TIMING_OPTIMIZATION_LEVEL(NORMAL, MAXIMUM), FITTER_EFFORT(STANDARD_FIT, AUTO_FIT), OPTIMIZE_HOLD_TIMING(홀드 타임 수정)이 중요합니다. PHYSICAL_SYNTHESIS_EFFORT를 활성화하면 레지스터 리타이밍과 로직 복제가 수행됩니다. 타이밍 중시 설계에서는 OPTIMIZE_POWER_DURING_FITTING = OFF로 속도를 우선합니다.

FPGA 설정 파일은 어떻게 생성하고 프로그래밍하나요?

quartus_asm을 실행하면 JTAG 프로그래밍용 SOF(SRAM Object File)가 생성됩니다. 플래시 기반 프로그래밍에는 quartus_cpf로 POF(Programmer Object File) 또는 JIC(JTAG Indirect Configuration)로 변환합니다. JTAG 프로그래밍은 quartus_pgm -m JTAG -o "P;output.sof", Active Serial 모드는 quartus_pgm -m AS를 사용합니다. 파일 형식 변환, 다중 디바이스 JTAG 체인, 프로그래밍 케이블 설정이 포함되어 있습니다.

증분 컴파일이란 무엇이고 어떻게 사용하나요?

증분 컴파일은 설계를 독립적으로 컴파일 가능한 파티션으로 분할하여 변경되지 않은 파티션의 배치 및 라우팅 결과를 보존합니다. set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE로 파티션을 정의하고 LogicLock 영역으로 배치를 제약합니다. 로컬 변경 시 컴파일 시간을 줄이고 타이밍 클로저를 보존하는 데 도움이 됩니다. 파티션 설정, LogicLock 설정, 내보내기/가져오기 플로우가 포함되어 있습니다.

클럭 도메인 크로싱의 타이밍 제약은 어떻게 설정하나요?

비동기 클럭 도메인 크로싱에는 적절한 동기화 로직이 있다는 가정 하에 set_false_path -from [get_clocks clk_a] -to [get_clocks clk_b]로 타이밍 분석에서 제외합니다. 알려진 위상 관계의 관련 클럭에는 set_multicycle_path를, 크로싱 경로의 최대 지연에는 set_max_delay -datapath_only를 사용합니다. FIFO 기반 및 핸드셰이크 기반 크로싱 등 일반적인 CDC 시나리오의 예제가 포함되어 있습니다.