문서 ID: 000074881 콘텐츠 형태: 문제 해결 마지막 검토일: 2020-02-14

병렬 플래시 로더 인텔® FPGA IP 코어에서 fpga_dclk과 fpga_data 사이에 어떤 타이밍 제약 조건을 사용해야 합니까?

환경

  • 인텔® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    설명

    병렬 플래시 로더 인텔® FPGA IP 사용할 때 fpga_data 및 fpga_dclk의 타이밍 제약은 병렬 플래시 로더의 PFL 타이밍 제한 인텔® FPGA IP 코어 사용 설명서에 설명되어 있습니다. 그러나 문서 버전 2019.02.19 및 이전 버전의 제약 조건은 올바르지 않습니다.

    해결 방법

    fpga_data 및 fpga_dclk의 타이밍을 적절하게 제한하려면 입력 클록과 DCLK 출력 간의 비율에 따라 다음 타이밍 제약 조건 중 하나를 사용합니다.

    [ 입력 클럭과 DCLK 출력의 비율 = 1일 때 ]
    # 시계 생성
    create_clock -name {pfl_clk} -period <pfl_clk period> -waveform { 0.000 <pfl_clk period>/2 } [get_ports {pfl_clk}]
    # 생성된 클럭 생성
    create_generated_clock -name {fpga_dclk} -source [get_ports {pfl_clk}] -master_clock {pfl_clk} -invert [get_ports {fpga_dclk}]
    # 출력 지연 설정
    set_output_delay -add_delay -max -clock [get_clocks {fpga_dclk}] <설정 시간 제약 조건> [get_ports {fpga_data*}]
    set_output_delay -add_delay -min -clock [get_clocks {fpga_dclk}] <보류 시간 제약> [get_ports {fpga_data*}]

    [ 입력 클럭과 DCLK 출력의 비율이 1> 때 ]
    # 시계 생성
    create_clock -name {pfl_clk} -period <pfl_clk period> -waveform { 0.000 <pfl_clk period>/2 } [get_ports {pfl_clk}]
    # 생성된 클럭 생성
    create_generated_clock -name {<DCLK 레지스터 출력의 클럭 이름>} -source [get_ports {pfl_clk}] -divide_by <입력 클록과 DCLK 출력의 비율> -master_clock {pfl_clk} [get_registers {<DCLK 레지스터>} ]
    create_generated_clock -name {<핀fpga_dclk DCLK의 클럭 이름>} -source [get_registers {<DCLK 레지스터>}] -master_clock {<DCLK 레지스터 출력의 클럭 이름>} [get_ports {fpga_dclk}]
    # 출력 지연 설정
    set_output_delay -add_delay -max -clock [get_clocks {<핀에서 DCLK의 클럭 이름>}] -reference_pin [get_ports {fpga_dclk}] <설정 시간 제약> [get_ports {fpga_data*}]
    set_output_delay -add_delay -min -clock [get_clocks {<핀에서 DCLK의 클럭 이름>}] -reference_pin [get_ports {fpga_dclk}] <유지 시간 제약> [get_ports {fpga_data*}]
    # 멀티사이클 경로 설정
    set_multicycle_path -setup -start -from [get_clocks {pfl_clk}] -to [get_clocks {<핀에서 DCLK의 클록 이름>}] < 입력 클록과 DCLK 출력 간의 비율>/2
    set_multicycle_path -hold -start -from [get_clocks {pfl_clk}] -to [get_clocks {<핀에서 DCLK의 클록 이름>}] <입력 클록과 DCLK 출력 간의 비율> -1

    • 이 예에서는 PFL 인텔 FPGA IP 코어의 포트 이름이 사용됩니다.
    • DCLK 레지스터는 pfl_clk 나누는 레지스터입니다. 레지스터 이름은 일반적으로 "fpga_dclk_reg"입니다. Technology Map Viewer 도구를 사용하여 포트에서 소스 대상을 추적하여 레지스터fpga_dclk 찾을 수 있습니다.
    • 인텔은 타이밍 분석기 GUI를 사용하여 주파수를 검증할 것을 권장합니다.

    [예]

    •조건
    o pfl_clk주기 = 20ns(50MHz)
    o 입력 클록과 DCLK 출력 간의 비율 = 2

    • 타이밍 제약

    # 시계 생성
    create_clock -name {pfl_clk} -period 20.000 -waveform { 0.000 10.000 } [get_ports {pfl_clk}]
    # 생성된 클럭 생성
    create_generated_clock -name {fpga_dclk_gen} -source [get_ports {pfl_clk}] -divide_by 2 -master_clock {pfl_clk} [get_registers {pfl:inst|altparallel_flash_loader:altparallel_flash_loader_component|alt_pfl:\PFL_CFI:pfl_cfi_inst|alt_pfl_cfg3:\CFG3:cfg|alt_pfl_cfg_fpga:alt_pfl_cfg_fpga|fpga_dclk_reg}]
    create_generated_clock -name {fpga_dclk_pin} -source [get_registers {pfl_top:pfl_top_inst|altera_parallel_flash_loader:parallel_flash_loader_0|altparallel_flash_loader:altparallel_flash_loader_component|alt_pfl:\PFL_CFI:pfl_cfi_inst|alt_pfl_cfg3:\CFG3:cfg|alt_pfl_cfg_fpga:alt_pfl_cfg_fpga|fpga_dclk_reg}] -master_clock {fpga_dclk_gen} [get_ports {fpga_dclk}]
    # 출력 지연 설정
    set_output_delay -add_delay -max -clock [get_clocks {fpga_dclk_gen}] -reference_pin [get_ports {fpga_dclk}] 5.500 [get_ports {fpga_data*}]
    set_output_delay -add_delay -min -clock [get_clocks {fpga_dclk_gen}] -reference_pin [get_ports {fpga_dclk}] -1.000 [get_ports {fpga_data*}]
    # 멀티사이클 경로 설정
    set_multicycle_path -setup -start -from [get_clocks {pfl_clk}] -to [get_clocks {fpga_dclk_pin}] 1
    set_multicycle_path -hold -start -from [get_clocks {pfl_clk}] -to [get_clocks {fpga_dclk_pin}] 1

    관련 제품

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

    인텔® Cyclone®
    인텔® Stratix®
    인텔® Arria®
    인텔® MAX®

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