Quartus® II Tcl 예: 자동 스크립트 실행

author-image

기준

Quartus® II 소프트웨어 버전 4.0부터 컴파일하는 동안 다양한 지점에서 자동으로 실행하도록 스크립트를 구성할 수 있습니다. 이 기능을 사용하여 사용자 지정 보고를 수행하고 특정 할당을 수행하며 다른 많은 작업을 수행하는 스크립트를 자동으로 실행할 수 있습니다.

스크립트의 자동 실행을 제어하는 세 가지 글로벌 할당이 있습니다. 스크립트가 실행될 때와 함께 여기에 나열됩니다.

•	PRE_FLOW_SCRIPT_FILE - before a flow starts
•	POST_MODULE_SCRIPT_FILE - after a module finishes
•	POST_FLOW_SCRIPT_FILE - after a flow finishes

POST_FLOW_SCRIPT_FILE 및 POST_MODULE_SCRIPT_FILE 할당은 버전 4.0부터 지원되며 PRE_FLOW_SCRIPT_FILE 할당은 버전 4.1부터 지원됩니다.

모듈은 흐름에서 한 단계를 수행하는 Quartus® II 실행 파일입니다. 예를 들어, 두 개의 모듈은 분석 및 합성(quartus_map)과 타이밍 분석(quartus_tan)입니다.

흐름은 Quartus® II 소프트웨어가 미리 정의된 옵션으로 실행되는 일련의 모듈입니다. 예를 들어, 설계 컴파일은 일반적으로 다음 단계(표시된 모듈에 의해 수행됨)로 구성된 흐름입니다.

  1. 분석 및 합성(quartus_map)
  2. Fitter(quartus_fit)
  3. 어셈블러(quartus_asm)
  4. 타이밍 분석기(quartus_tan)

다른 흐름은 execute_flow Tcl 명령에 대한 도움말에 설명되어 있습니다. 또한 Quartus® II GUI의 시작(처리 메뉴)의 대부분의 명령은 흐름에 해당합니다.

할당 만들기

스크립트를 자동으로 실행하도록 할당하려면 다음 양식을 사용하여 할당합니다.

set_global_assignment -name <assignment name> <executable>:<script name>

할당 이름은 다음 중 하나입니다.

•	PRE_FLOW_SCRIPT_FILE
•	POST_MODULE_SCRIPT_FILE
•	POST_FLOW_SCRIPT_FILE

실행 파일은 Tcl 통역사를 포함하는 Quartus® II 명령줄 실행 파일의 이름입니다.

•	quartus_cdb
•	quartus_sh
•	quartus_sim
•	quartus_stp
•	quartus_tan

스크립트 이름은 Tcl 스크립트의 이름입니다.

스크립트 실행

Quartus® II 소프트웨어는 여기에 표시된 대로 스크립트를 실행합니다.

<executable> -t <script name> <flow or module name> <project name> <revision name>

quartus(args) 변수에 전달된 첫 번째 인수는 사용 중인 할당에 따라 실행 중인 흐름 또는 모듈의 이름입니다. 두 번째 인수는 프로젝트의 이름이며, 세 번째 인수는 개정의 이름입니다.

POST_MODULE_SCRIPT_FILE 할당을 사용할 때, 지정된 스크립트는 흐름의 모든 실행 후 자동으로 실행됩니다. 모듈 이름과 문자열 비교(스크립트에 전달된 첫 번째 인수)를 사용하여 스크립트 처리를 특정 모듈로 격리할 수 있습니다.

실행 예

이 예에서는 자동 스크립트 실행이 전체 흐름에서 어떻게 작동하는지 보여 줍니다. rev_1 라는 현재 개정판이 있는 상단이라는 프로젝트가 있고 프로젝트에 대한 Quartus® II 설정 파일(QSF)에 다음 할당이 있다고 가정합니다.

set_global_assignment -name PRE_FLOW_SCRIPT_FILE quartus_sh:first.tcl
set_global_assignment -name POST_MODULE_SCRIPT_FILE quartus_sh:next.tcl
set_global_assignment -name POST_FLOW_SCRIPT_FILE quartus_sh:last.tcl

프로젝트를 컴파일할 때 PRE_FLOW_SCRIPT_FILE 할당을 수행하면 컴파일이 시작되기 전에 다음 명령이 실행됩니다.

quartus_sh -t first.tcl compile top rev_1

다음으로 Quartus® II 소프트웨어는 분석 및 합성을 통해 컴파일을 시작하며 quartus_map 실행 파일에서 수행합니다. 분석 및 합성이 완료되면 POST_MODULE_SCRIPT_FILE 할당으로 인해 다음 명령이 실행됩니다.

quartus_sh -t next.tcl quartus_map top rev_1

그런 다음 Quartus® II 소프트웨어는 quartus_fit 실행 파일에서 수행하는 피터와 함께 컴파일을 계속합니다. 피터가 완료되면 POST_MODULE_SCRIPT_FILE 할당으로 인해 다음 명령이 실행됩니다.

quartus_sh -t next.tcl quartus_fit top rev_1

해당 명령은 컴파일의 다른 단계 후에 실행됩니다. 마지막으로 컴파일이 끝난 후 POST_FLOW_SCRIPT_FILE 할당으로 인해 다음 명령이 실행됩니다.

quartus_sh -t last.tcl compile top rev_1

처리 제어

POST_MODULE_SCRIPT_FILE 할당으로 인해 모든 모듈 이후에 스크립트가 실행됩니다. 모든 모듈 이후에 실행되는 스크립트와 동일하기 때문에 스크립트의 처리를 특정 모듈로 제한하는 일부 조건부 문을 포함해야 할 수도 있습니다.

예를 들어 타이밍 분석이 수행된 후에만 실행하려는 스크립트가 있는 경우 다음 예에 있는 것과 같은 조건부 테스트를 포함해야 합니다. 스크립트에 첫 번째 인수로 전달된 흐름 또는 모듈 이름을 확인하고 모듈이 quartus_tan 때 코드를 실행합니다.

set module [lindex $quartus(args) 0]

if [string match "quartus_tan" $module] {

    # Include commands here that are run
    # after timing analysis
    post_message "Running after timing analysis"
}

메시지 표시

Quartus II 소프트웨어가 자동으로 스크립트를 실행하는 방식 때문에 풋 명령 대신 post_message 명령을 사용하여 메시지를 표시해야 합니다. 이 요구 사항은 이 페이지 상단에 나열된 세 가지 과제가 실행하는 스크립트에만 적용됩니다.

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