본문 바로가기
Knowledge/Basic

[SDC] create_clock

by VIR&US 2023. 7. 1.
반응형

 

목차


    SDC 작성에는 다양한 명령어들이 사용되며, 그 중 하나가 바로 create_clock 명령어입니다.

    create_clock

    현재 디자인에 클럭 객체를 생성하고 그 파형을 정의하는 역할을 합니다. 

    SYNTAX

    status create_clock
        [-name clock_name]
        [-add]
        [source_objects]
        [-period period_value]
        [-waveform edge_list]
        [-comment comment_string]
    

    Data Types

    clock_name         string
    source_objects     list
    period_value       float
    edge_list          list
    comment_string     string
    

    ARGUMENTS

    create_clock 명령어는 여러 인수를 사용하여 클럭을 생성하고 정의합니다. 각 인수의 역할은 다음과 같습니다:

    name clock_name

    생성되는 클럭의 이름을 지정합니다. 이 옵션을 사용하지 않으면 클럭은 source_objects에서 지정한 첫 번째 클럭 소스와 동일한 이름을 가집니다. source_objects를 사용하지 않는 경우, 이 옵션을 사용해야 하며, 이는 포트나 핀과 연결되지 않은 가상 클럭을 생성합니다.

     

    add

    이 클럭을 기존 클럭에 추가할 것인지, 아니면 기존 클럭을 덮어쓸 것인지를 지정합니다. 이 옵션을 사용하면 동시에 다른 클럭 파형으로 분석해야 하는 경우에 동일한 소스에 여러 클럭을 지정할 수 있습니다.

     

    [source_objects]

    이 클럭을 적용할 핀 또는 포트의 목록을 지정합니다. 이 옵션을 사용하지 않는 경우, -name clock_name을 사용해야 하며, 이는 포트나 핀과 연결되지 않은 가상 클럭을 생성합니다.

     

    period period_value

    클럭 파형의 주기를 라이브러리 시간 단위로 지정합니다.

     

    waveform edge_list

    클럭의 전체 주기 동안의 상승 엣지와 하강 엣지 시간을 라이브러리 시간 단위로 지정합니다.

     

    comment comment_string

    클럭에 대한 주석을 추가합니다.

     

    DESCRIPTION

    create_clock 명령어는 현재 디자인에 클럭 객체를 생성하는 역할을 합니다. 이 명령어는 지정된 source_objects를 현재 디자인의 클럭 소스로 정의합니다. 핀 또는 포트는 단일 클럭의 소스가 될 수 있습니다. source_objects가 지정되지 않고 clock_name만 주어진 경우, 가상 클럭이 생성됩니다. 가상 클럭은 입력 또는 출력 지연 사양을 위한 오프 칩 클럭을 나타내는 데 사용될 수 있습니다.

    클럭 객체는 클럭 네트워크에 영향을 주는 속성을 가지고 있습니다. 이러한 속성에는 dont_touch_network, fix_hold, propagated_clock 등이 포함됩니다. 기존 클럭 객체에 create_clock를 사용하면 클럭 객체에 이전에 설정된 속성이 덮어씌워집니다. create_clock 명령어는 또한 클럭의 파형을 정의합니다. 클럭은 주기당 여러 펄스를 가질 수 있습니다.

    기본적으로, 클럭에 대해 새로운 경로 그룹이 생성됩니다. 이는 이 클럭과 관련된 엔드포인트를 비용 함수 계산을 위해 함께 그룹화합니다. 클럭을 할당된 그룹에서 제거하려면, group_path 명령어를 사용하여 클럭을 다른 그룹 또는 기본 경로 그룹에 재할당할 수 있습니다.

    새로운 클럭은 이상적인 타이밍을 가지므로, 클럭 네트워크를 통한 전파 지연이 가정되지 않습니다. 클럭 네트워크를 통한 전파 지연을 활성화하려면, set_propagated_clock 명령어를 사용합니다. 이상적인 파형에 스큐나 불확실성을 추가하려면, set_clock_latency 또는 set_clock_uncertainty 명령어를 사용합니다.

    디자인의 모든 클럭 소스에 대한 정보를 보려면, report_clock 명령어를 사용합니다. 클럭 소스 목록을 얻으려면, get_clocks 명령어를 사용합니다. 주어진 클럭과 관련된 순차 셀을 반환하려면, all_registers 명령어를 사용합니다. create_clock를 취소하려면, remove_clock 명령어를 사용합니다.

     

    EXAMPLES

    다음 예제는 포트 CLK1에 10.0의 주기, 5.0에서 상승, 9.5에서 하강하는 클록을 생성합니다:

    prompt> create_clock "CLK1" -period 10 -waveform {5.0 9.5}

     

    다음 예제는 핀 clkgen/A에 CLK라는 이름의 클럭을 생성하고, 주기는 20, 0에서 하락, 5에서 상승, 10에서 하락, 15.0에서 상승, 20에서 하락합니다:

    prompt> create_clock "clkgen/A" -name "CLK" -period 20 -waveform {5 10 15 20}

     

    다음 예제에서는 주기가 20이고 8에 상승하고 12에 하강하는 CLK2라는 가상 시계를 만듭니다:

    prompt> create_clock -name "CLK2" -period 10 -waveform {8 12}

     

    다음 예제에서는 여러 소스(clkgen/A, clkgen/B, clkgen/C)와 복잡한 파형을 가진 클록을 생성합니다:

    prompt> create_clock -name "clk2" -period 10 -waveform {0.0 2.0 4.0 6.0} \
            {clkgen/A clkgen/B clkgen/C}

     

     

    728x90
    반응형

    'Knowledge > Basic' 카테고리의 다른 글

    IP-XACT란?  (0) 2023.07.03
    Big Endian, Little Endian  (0) 2023.07.02
    ASIC?  (0) 2023.06.25
    Open-drain/Open-collector  (0) 2023.06.24
    Shadow Register란?  (0) 2023.06.21