AN 987: 정적 업데이트 부분
재구성 자습서
Intel® ™ Agilex F-시리즈 FPGA 개발 보드에 대한 정적 업데이트 부분 재구성 튜토리얼
이 애플리케이션 노트는 Intel ® F-시리즈 FPGA 개발 보드의 SUPR(정적 업데이트 부분 재구성)을 보여줍니다. 부분 재구성(PR)을 사용하면 Intel FPGA의 일부를 동적으로 재구성하는 동시에 나머지 FPGA는 계속 작동할 수 있습니다. PR은 이 지역 외부 지역의 운영에 영향을 주지 않고 디자인의 특정 지역에 여러 페르소나를 구현합니다. 이 방법론은 다음과 같은 이점을 제공합니다.tag여러 기능이 동일한 FPGA 리소스를 시간 공유하는 시스템에 있습니다.
- 런타임 재구성을 허용합니다.
- 설계 확장성 향상
- 시스템 다운타임 감소
- 설계에서 동적 시간 다중화 기능 지원
- 보드 공간의 효율적인 활용으로 비용 및 전력 소모 감소
정적 업데이트 부분 재구성이란 무엇입니까?
기존 PR에서는 정적 영역을 변경하려면 모든 페르소나를 다시 컴파일해야 합니다. 그러나 SUPR을 사용하면 페르소나를 다시 컴파일하지 않고도 변경을 허용하는 특수 영역을 정의할 수 있습니다. 이 기술은 위험 완화를 위해 변경할 수 있지만 런타임 재구성이 필요하지 않은 설계 부분에 유용합니다.
1.1. 튜토리얼 요구 사항
이 자습서에는 다음이 필요합니다.
- Intel Quartus® Prime Pro Edition FPGA 구현 흐름 및 프로젝트에 대한 기본 지식 files.
- Intel Agilex 장치를 지원하는 Intel Quartus Prime Pro Edition 버전 22.3 설치.
- FPGA 구현의 경우 JTAG 벤치에서 Intel Agilex F-시리즈 FPGA 개발 보드와 연결합니다.
- 레퍼런스 디자인 다운로드 File에스. 관련 정보
- 부분 재구성 사용 설명서
- 부분 재구성 튜토리얼
- 부분 재구성 온라인 교육
인텔사. 판권 소유. 인텔, 인텔 로고 및 기타 인텔 마크는 인텔사 또는 그 자회사의 상표입니다. 인텔은 인텔의 표준 보증에 따라 FPGA 및 반도체 제품의 성능을 최신 사양으로 보증하지만 사전 통지 없이 언제든지 제품 및 서비스를 변경할 수 있는 권리를 보유합니다. 인텔은 인텔이 서면으로 명시적으로 동의한 경우를 제외하고 여기에 설명된 정보, 제품 또는 서비스의 적용 또는 사용으로 인해 발생하는 어떠한 책임도 지지 않습니다. 인텔 고객은 게시된 정보에 의존하고 제품이나 서비스를 주문하기 전에 최신 버전의 장치 사양을 얻는 것이 좋습니다. *다른 이름과 브랜드는 다른 사람의 자산일 수 있습니다.
ISO 9001 : 2015 등록
1.2. 레퍼런스 디자인 오버view
이 참조 디자인은 32개의 50비트 카운터로 구성됩니다. 보드 수준에서 설계는 클록을 XNUMXMHz 소스에 연결한 다음 출력을 보드의 XNUMX개 LED에 연결합니다. 특정 순서로 카운터 비트의 출력을 선택하면 LED가 특정 주파수로 깜박입니다. top_counter 모듈은 SUPR 영역입니다.
그림 1. 플랫 참조 디자인
1.3. 정적 업데이트 영역 종료view
다음 그림은 SUPR 영역을 포함하는 PR 디자인의 블록 다이어그램을 보여줍니다. 블록 A는 Top 정적 영역입니다. 블록 B는 SUPR 지역입니다. 블록 C는 PR 파티션입니다.
그림 2. SUPR 영역을 사용한 PR 디자인
- 최상위 정적 영역 - 변경되지 않는 설계 논리를 포함합니다. 이 지역을 변경하려면 연관된 모든 페르소나를 다시 컴파일해야 합니다. 정적 영역에는 어떤 페르소나에도 변경되지 않는 디자인 부분이 포함됩니다. 이 영역에는 주변 장치 및 핵심 장치 리소스가 포함될 수 있습니다. 정적 영역의 SUPR 및 PR 파티션 간의 모든 통신을 등록해야 합니다. 이 요구 사항은 정적 영역과 관련하여 모든 페르소나의 타이밍 종료를 보장하는 데 도움이 됩니다.
- B SUPR 영역 - 위험 완화를 위해 변경될 수 있는 코어 전용 논리를 포함하지만 런타임 재구성이 필요하지 않습니다. SUPR 영역에는 PR 파티션과 동일한 요구 사항 및 제한 사항이 있습니다. SUPR 파티션에는 핵심 리소스만 포함될 수 있습니다. 따라서 SUPR 파티션은 설계 주변 장치와 시계를 포함하는 최상위 루트 파티션의 하위 파티션이어야 합니다. SUPR 영역을 변경하면 SRAM 개체가 생성됩니다. File (.sof) 기존의 모든 컴파일된 Raw Binary와 호환됨 File (.rbf) filePR 파티션 C의 경우 s
- C PR 파티션 - 컴파일 중에 타이밍 종료에 적합하고 이를 달성하는 모든 설계 로직을 사용하여 런타임에 다시 프로그래밍할 수 있는 임의의 로직이 포함되어 있습니다.
1.4. 레퍼런스 디자인 다운로드 Files
부분 재구성 자습서는 다음 위치에서 사용할 수 있습니다. https://github.com/intel/fpga-partial-reconfig
튜토리얼을 다운로드하려면:
- 복제 또는 다운로드를 클릭합니다.
- ZIP 다운로드를 클릭합니다. fpga-partial-reconfig-master.zip의 압축을 풉니다. file.
- tutorials/agilex_pcie_devkit_blinking_led_supr 하위 폴더로 이동하여 참조 디자인에 액세스하세요.
플랫 폴더는 다음으로 구성됩니다. files:
표 1. 레퍼런스 디자인 Files
File 이름 | 설명 |
맨 위. 세인트 | 최상위 수준 file 디자인의 평면 구현을 포함합니다. 이 모듈은 blinking_led 하위 파티션과 top_counter 모듈을 인스턴스화합니다. |
t op_counter . 세인트 | LED [32]을 직접 제어하는 최상위 1비트 카운터입니다. 카운터의 등록된 출력은 LED [0]을 제어하고 깜박이는_led 모듈을 통해 LED [2] 및 LED [3]에도 전원을 공급합니다. |
깜박임_led. SDC | 프로젝트의 타이밍 제약 조건을 정의합니다. |
깜박임_led. 세인트 | 이 자습서에서는 이 모듈을 상위 PR 파티션으로 변환합니다. 모듈은 LED [2] 및 LED [3]을 제어하는 top_counter 모듈의 등록된 출력을 수신합니다. |
깜박이는_led.qpf | 인텔 Quatus 프라임 프로젝트 file 프로젝트의 모든 개정 목록을 포함합니다. |
깜박이는_led . qs f | Intel Quatus Prime 설정 file 프로젝트에 대한 할당 및 설정을 포함합니다. |
메모: supr 폴더에는 다음의 전체 세트가 포함되어 있습니다. file이 응용 프로그램을 사용하여 생성하는 경우 메모. 이것을 참고하세요 files 둘러보기 중 어느 시점에서나.
1.5. 레퍼런스 디자인 워크스루
다음 단계에서는 플랫 디자인을 사용한 SUPR 구현을 설명합니다.
- 1단계: 시작하기
- 2단계: 디자인 파티션 생성
- 3단계: 배치 및 라우팅 지역 할당
- 4단계: 페르소나 정의
- 5단계: 개정판 작성
- 6단계: 기본 개정판 컴파일
- 7단계: PR 구현 개정 설정
- 8단계: SUPR 논리 변경
- 9단계: 보드 프로그래밍
그림 3. SUPR 컴파일 흐름
1.5.1. 1단계: 시작하기
참조 설계를 복사하려면 files를 작업 환경에 연결하고 blinking_led 플랫 디자인을 컴파일합니다.
- 시작하기 전에 참조 디자인을 다운로드하세요. Files 5페이지.
- 작업 환경에 agilex_pcie_devkit_blinking_led_supr 디렉터리를 생성합니다.
- 다운로드한 tutorials/agilex_pcie_devkit_blinking_led/plat 하위 폴더를 agilex_pcie_devkit_blinking_led_supr 디렉터리에 복사합니다.
- Intel Quatus Prime Pro Edition 소프트웨어에서 다음을 클릭합니다. File ➤ 프로젝트를 열고 /Flat/blinking_led.qpf를 엽니다.
- 기본 디자인을 컴파일하려면 처리 ➤ 컴파일 시작을 클릭합니다. 컴파일이 완료되면 타이밍 분석기 보고서가 자동으로 열립니다. 지금은 타이밍 분석기를 닫아도 됩니다.
1.5.2. 2단계: 디자인 파티션 만들기
부분적으로 재구성하려는 각 지역에 대한 디자인 파티션을 만듭니다. 프로젝트에 독립 파티션이나 PR 영역을 원하는 수만큼 생성할 수 있습니다. u_blinking_led 인스턴스에 대한 디자인 파티션을 PR 파티션으로, u_top_counter 인스턴스를 SUPR 영역으로 생성하려면 다음 단계를 따르세요.
- 프로젝트 네비게이터에서 u_blinking_led 인스턴스를 마우스 오른쪽 버튼으로 클릭하고 Design Partition을 클릭합니다.
➤ 재구성 가능. 파티션으로 설정된 각 인스턴스 옆에는 디자인 파티션 아이콘이 나타납니다.
그림 4. 디자인 파티션 만들기 - 1단계를 반복하여 u_top_counter 인스턴스에 대한 파티션을 만듭니다.
- 할당 ➤ 디자인 파티션 창을 클릭합니다. 창에는 프로젝트의 모든 디자인 파티션이 표시됩니다.
그림 5. 디자인 파티션 창
- 깜박이는_led 파티션 이름 셀을 두 번 클릭하여 이름을 pr_partition으로 바꿉니다. 마찬가지로 top_counter 파티션의 이름을 supr_partition으로 바꿉니다.
또는 blinking_led.qsf에 다음 행을 추가하면 이러한 파티션이 생성됩니다.
set_instance_locationment -name PARTITION pr_partition \ -to u_blinking_led -entity top
set_instance_locationment -name PARTIAL_RECONFIGURATION_PARTITION ON \ -u_blinking_led -엔티티 상단
set_instance_signment -name PARTITION supr_partition \ -to u_top_counter -entity top
set_instance_locationment -name PARTIAL_RECONFIGURATION_PARTITION ON \ -to u_top_counter -엔티티 상단
1.5.3. 3단계: 배치 및 라우팅 영역 할당
생성하는 모든 기본 개정에 대해 컴파일러는 PR 파티션 영역 할당을 사용하여 해당 페르소나 코어를 예약 영역에 배치합니다. 다음 단계에 따라 장치 평면도에서 기본 개정판의 PR 영역을 찾아 할당하십시오.
- 프로젝트 네비게이터 계층 탭에서 u_blinking_led 인스턴스를 마우스 오른쪽 버튼으로 클릭한 다음 논리 잠금 영역 ➤ 새 논리 잠금 영역 생성을 클릭합니다. 해당 영역은 논리 잠금 영역 창에 나타납니다.
- 영역 너비를 5로, 높이를 5로 지정합니다.
- Origin 열에서 u_blinking_led에 대한 배치 영역 좌표를 지정합니다. 원점은 영역의 왼쪽 하단 모서리에 해당합니다. 원점을 X166_Y199로 지정합니다. 컴파일러는 (X170 Y203)을 오른쪽 상단 좌표로 계산합니다.
- 해당 지역에 대해 예약 및 코어 전용 옵션을 활성화합니다.
- 라우팅 영역 옵션을 두 번 클릭합니다. 논리 잠금 라우팅 영역 설정 대화 상자가 나타납니다.
- 라우팅 유형으로 고정(확장 포함)을 선택합니다. 이 옵션은 확장 길이를 자동으로 XNUMX로 할당합니다.
- 이전 단계를 반복하여 u_top_counter 파티션에 다음 리소스를 할당합니다.
• 높이 - 5
• 너비 - 5
• 원점 - X173_Y199
• 라우팅 지역 - 확장 길이가 XNUMX인 확장으로 수정되었습니다.
• 예약됨 - 켜짐
• 코어 전용 - 켜짐
그림 6. 논리 잠금 영역 창
메모: 컴파일러의 라우팅에 추가 유연성을 제공하려면 라우팅 영역이 배치 영역보다 커야 합니다.tage, 컴파일러가 다른 페르소나를 라우팅할 때.
- 배치 영역은 깜박이는_led 로직을 포함해야 합니다. Chip Planner에서 노드를 찾아 배치 영역을 선택하려면 Logic Lock Regions 창에서 u_blinking_led 영역 이름을 마우스 오른쪽 버튼으로 클릭한 다음 노드 찾기 ➤ Chip Planner에서 찾기를 클릭합니다.
- 파티션 보고서에서 보고서 디자인 파티션을 두 번 클릭합니다. 칩 플래너는 해당 영역을 강조 표시하고 색상으로 구분합니다.
그림 7. blinking_led의 칩 플래너 노드 위치
또는 blinking_led.qsf에 다음 줄을 추가하면 다음 영역이 생성됩니다.
세트_인스턴스_할당 - 이름 PARTITION pr_partition -to \ u_blinking_led -엔티티 상단
set_instance_locationment -name PARTIAL_RECONFIGURATION_PARTITION ON \ -u_blinking_led -엔티티 상단
set_instance_locationment -name PARTITION supr_partition -to u_top_counter \ -entity top
set_instance_locationment -name PARTIAL_RECONFIGURATION_PARTITION ON -to \ u_top_counter -엔티티 상단
set_instance_locationment -name PLACE_REGION “X166 Y199 X170 Y203” -to \ u_blinking_led
set_instance_locationment -name RESERVE_PLACE_REGION ON -u_blinking_led로
set_instance_location -name CORE_ONLY_PLACE_REGION ON -u_blinking_led로
set_instance_location -name REGION_NAME pr_partition -u_blinking_led로
set_instance_locationment -name ROUTE_REGION “X165 Y198 X171 Y204” -to \ u_blinking_led
set_instance_locationment -name RESERVE_ROUTE_REGION OFF -u_blinking_led로
set_instance_locationment -name PLACE_REGION “X173 Y199 X177 Y203” -to \ u_top_counter
set_instance_locationment -name RESERVE_PLACE_REGION ON -u_top_counter로
set_instance_location -name CORE_ONLY_PLACE_REGION ON -u_top_counter로
set_instance_location -name REGION_NAME supr_partition -u_top_counter로
set_instance_locationment -name ROUTE_REGION “X172 Y198 X178 Y204” -to \ u_top_counter
set_instance_locationment -name RESERVE_ROUTE_REGION OFF -u_top_counter로
1.5.4. 4단계: 페르소나 정의
이 참조 디자인은 단일 PR 파티션에 대한 세 개의 개별 페르소나와 SUPR 영역에 대한 하나의 SUPR 페르소나를 정의합니다. 이러한 페르소나를 정의하고 프로젝트에 포함하려면 다음 단계를 따르십시오. Intel Quatus Prime Text Editor를 사용하는 경우 추가를 비활성화합니다. file
저장할 때 현재 프로젝트에 files.
- 새로운 깜박이는_led_slow.sv, 깜박이는_led_empty.sv 및 top_counter_fast.sv 생성 SystemVerilog file작업 디렉토리에 있습니다. blinking_led.sv가 이미 작업 디렉터리에 있는지 확인합니다.
- SystemVerilog에 다음 내용을 입력하십시오. files:
표 2. 참조 디자인 페르소나 시스템Verilog
File 이름 설명 암호 깜박이는_led_느린. 세인트 LED가 더 느리게 깜박임 시간 척도 1 ps / 1 ps 'default_nettype 없음
모듈 깜박임_led_slow // 시계
입력 와이어 클럭, 입력 와이어 재설정, 입력 와이어 [31:01 카운터,
// LED 출력선 led_two_on에 대한 제어 신호,
출력선 led_ three_on localparam COUNTER_TAP = 27;
reg led_two_on_r; 다리 led_two_on_r; led_two_on = led_two_on_r 지정; led_ three_on = led_ three_on_r 할당; Always_ff @(posedge 시계) 시작 led_two_on_r <= 카운터[COUNTER_TAP]; led_ three_on_r <= 카운터[COUNTER_TAP]; 엔드 엔드 모듈깜박이는_led_empty. 세인트 LED가 켜져 있음 timescale 1 ps / 1 ps 'default_nettype 없음 모듈 깜박임_led_empty( // 클럭 입력 와이어 clock, 입력 와이어 재설정, 입력 와이어 [31:01 카운터, // LEC- 출력 와이어에 대한 제어 신호 led_two_on, 출력 와이어 led_ three_on 계속되는… File 이름 설명 암호 // LED는 활성화되어 있습니다. low 할당 led_two_on = l'IDO; led_two_on = 11b0을 할당합니다. 엔드모듈 top_counter_fast.sv 두 번째 SUPR '시간 척도 1ps / 1ps 페르소나 Thdefault_nettype 없음 모듈 top_counter_fast // LED 출력 와이어에 대한 제어 신호 led_one_on, 출력 와이어 [31:0] 카운트, // 클럭 입력 와이어 클럭 ) ; localparam 카운터 탭 = 23; reg [31:0] count_d; 할당 개수 = count_d; led_one_on = ount_d 할당[COUNTER_TAP]; Always_ff @(posedge clock) start count_d <= count_d + 2; 끝 .:기준 치수 - 딸깍 하는 소리 File ➤ 다른 이름으로 저장하고 .sv로 저장 file현재 프로젝트 디렉토리에 있습니다.
1.5.5. 5단계: 수정본 만들기
PR 디자인 흐름은 Intel Quartus Prime 소프트웨어의 프로젝트 개정 기능을 사용합니다. 초기 디자인은 FPGA의 정적 영역 경계와 재구성 가능 영역을 정의하는 기본 개정판입니다. 기본 개정에서 추가 개정을 생성합니다. 이러한 개정판에는 PR 지역에 대한 다양한 구현이 포함되어 있습니다. 그러나 모든 PR 구현 개정은 기본 개정의 동일한 최상위 배치 및 라우팅 결과를 사용합니다. PR 디자인을 컴파일하려면 각 페르소나에 대한 PR 구현 개정을 생성합니다. 또한 각 개정에 대해 부분 재구성 – 기본 또는 부분 재구성 – 페르소나 구현 개정 유형을 할당해야 합니다. 다음 표에는 각 개정의 개정 이름과 개정 유형이 나열되어 있습니다. impl_blinking_led_supr_new.qsf 개정판은 SUPR 페르소나 구현입니다.
표 3. 개정 이름 및 유형
개정 이름 | 개정 유형 |
깜박임_LED | 부분적 재구성 – 기본 |
깜박임_led_기본 | 부분 재구성 – 페르소나 구현 |
깜박임_LED_느림 | 부분 재구성 – 페르소나 구현 |
깜박이는_led_empty | 부분 재구성 – 페르소나 구현 |
impl_blinking_led_supr_new | 부분 재구성 – 페르소나 구현 |
1.5.5.1. 기본 개정 설정
깜박이는_led를 기본 개정으로 설정하려면 다음 단계를 따르십시오.
- 프로젝트 ➤ 수정본을 클릭합니다.
- 개정 유형으로 부분 재구성 – 기본을 선택합니다.
이 단계에서는 blinking_led.qsf에 다음을 추가합니다.
##blinking_led.qsf set_global_assignment -이름 REVISION_TYPE PR_BASE
1.5.5.2. 구현 개정 생성
구현 개정을 작성하려면 다음 단계를 따르십시오.
- 수정기호 대화상자에서 < >.
- 개정 이름에서 깜박이는_led_default를 지정하고 개정 기준으로 깜박이는_led를 선택합니다.
- 개정 유형으로 부분 재구성 – 페르소나 구현을 선택합니다.
- 현재 개정으로 설정 옵션을 비활성화합니다.
- 다른 구현 개정에 대한 개정 유형을 설정하려면 2~5단계를 반복합니다.
개정 이름 | 개정 유형 | 개정판을 기반으로 함n |
깜박임_LED_느림 | 부분 재구성 – 페르소나 구현 | 깜박임_LED |
깜박이는_led_empty | 부분 재구성 – 페르소나 구현 | 깜박임_LED |
impl_blinking_led_supr_new | 부분 재구성 – 페르소나 구현 | 깜박임_LED |
그림 8. 구현 개정 작성
각 .qsf file 이제 다음 할당이 포함됩니다.
세트_글로벌_할당 - 이름 REVISION_TYPE PR_IMPL
set_instance_location -name ENTITY_REBINDING place_holder -u_top_counter로
set_instance_location -name ENTITY_REBINDING place_holder -u_blinking_led로
1.5.6. 6단계: 기본 개정판 컴파일
다음 단계에 따라 기본 개정을 컴파일하고 정적 및 SUPR 영역을 내보내 나중에 새 PR 페르소나의 구현 개정에 사용할 수 있습니다.
- 아직 설정되지 않은 경우 깜박이는_led를 현재 개정으로 설정합니다.
- 디자인 파티션 창에서 가장 오른쪽 열에 인접한 (…)를 클릭하고 최종 내보내기 후를 활성화합니다. File 열. 열 순서를 비활성화하거나 변경할 수도 있습니다.
- 각 컴파일 후 PR 구현 디자인 파티션의 최종 스냅샷을 자동으로 내보내려면 최종 내보내기 이후에 다음을 지정합니다. File 루트 및 SUPR 파티션에 대한 옵션. .qdb files 기본적으로 프로젝트 디렉토리로 내보냅니다.
• root_partition —blinking_led_static.qdb
• supr_partition—blinking_led_supr_partition_final.qdb
그림 9. 디자인 파티션 창의 자동 내보내기또는 다음 .qsf 할당은 각 컴파일 후에 파티션을 자동으로 내보냅니다.
세트 인스턴스_할당 - 이름 EXPORT_PARTITION_SNAPSHOT_FINAL \ 깜박임_led_static.qdb -to | -엔티티 상단
세트_인스턴스_할당 -이름 EXPORT_PARTITION_SNAPSHOT_FINAL \ 깜박임_led_supr_partition_final.qdb -u_top_counter \ -엔티티 상단 - blinking_led 기본 개정판을 컴파일하려면 처리 ➤ 시작을 클릭하십시오.
편집. 또는 다음 명령을 사용하여 이 개정판을 컴파일할 수 있습니다.
quartus_sh –flow compile 깜박이는_led -c 깜박이는_led 컴파일이 성공적으로 완료되면 다음이 수행됩니다. files는 프로젝트 디렉토리에 나타납니다.
• 깜박이는_led.sof
• 깜박임_led.pr_partition.rbf
• 깜박임_led.supr_partition.rbf
• 깜박이는_led_static.qdb
• 깜박이는_led_supr_partition_final.qdb
1.5.7. 7단계: PR 구현 개정 설정
장치 프로그래밍을 위한 PR 비트스트림을 생성하려면 먼저 PR 구현 개정을 준비해야 합니다. 이 설정에는 정적 영역 .qdb 추가가 포함됩니다. file 소스로 file 각 구현 개정에 대해. 또한 다음을 지정해야 합니다.
PR 지역의 해당 엔터티. PR 구현 개정을 설정하려면 다음 단계를 따르십시오.
- 현재 개정판을 설정하려면 프로젝트 ➤ 개정판을 클릭하고 개정 이름으로 깜박이는_led_default를 선택한 다음 현재로 설정을 클릭합니다. 또는 기본 Intel Quartus Prime 도구 모음에서 현재 개정판을 선택할 수 있습니다.
- 이 구현 개정의 올바른 소스를 확인하려면 프로젝트 ➤ 추가/제거를 클릭하세요. Files 프로젝트에서. blinking_led.sv가 file 에 나타납니다 file 목록.
- 올바른 소스를 확인하려면 file 구현 개정을 보려면 프로젝트 ➤ 추가/제거를 클릭하세요. file프로젝트에서 다음 소스를 추가합니다. files 구현 수정 사항. 존재하는 경우 프로젝트 목록에서 blinking_led.sv를 제거합니다. files.
I구현 개정 이름 원천 File 깜박이는_led_empty 깜박이는_led_empty.sv 깜박임_LED_느림 깜박이는_led_slow.sv - 깜박이는_led_default를 현재 개정으로 설정합니다.
- .qdb를 지정하려면 file root_partition의 소스로 할당 ➤ 디자인 파티션 창을 클릭합니다. 파티션 데이터베이스를 두 번 클릭합니다. File 셀을 선택하고 blinking_led_static.qdb를 지정합니다. file.
- 마찬가지로, blinding_led_supr_partition_final.qdb를 파티션 데이터베이스로 지정합니다. File supr_partition의 경우.
그림 10.
또는 다음 .qsf 할당을 사용하여 .qdb를 지정합니다.
set_instance_assignment -이름 QDB_FILE_PARTITION \ 깜박임_led_static.qdb -to |
set_instance_assignment -이름 QDB_FILE_PARTITION \ 깜박임_led_supr_partition_final.qdb -u_top_counter로 - 디자인 파티션 창에서 가장 오른쪽 열에 인접한 (…)를 클릭하고 엔터티 리바인딩 열을 활성화합니다.
-
엔터티 리바인딩 셀에서 현재 구현 개정에서 변경하려는 PR 파티션의 새 엔터티 이름을 지정합니다. 깜박이는_led_default 구현 개정의 경우 엔터티 이름은 깜박이는_led입니다. 이 경우 기본 개정 컴파일의 u_blinking_led 인스턴스를 새 엔터티 깜박임_led로 덮어쓰게 됩니다. 다른 구현 개정은 다음 표를 참조하세요.
개정 엔터티 재바인딩 값 깜박임_LED_느림 깜박임_LED_느림 깜박이는_led_empty 깜박이는_led_empty 그림 11. 엔티티 리바인딩
또는 각 개정의 .qsf에서 다음 줄을 사용하여 할당을 설정할 수 있습니다.
##blinking_led_default.qsf
set_instance_locationment -name ENTITY_REBINDING 깜박이는_led \ -u_blinking_led
##blinking_led_slow.qsf
set_instance_locationment -name ENTITY_REBINDING 깜박이는_led_slow \ -u_blinking_led
##blinking_led_empty.qsf
set_instance_locationment -name ENTITY_REBINDING 깜박이는_led_empty \ -u_blinking_led로 - supr_partition에 대한 엔터티 리바인딩 셀에서 place_holder 텍스트를 삭제합니다.
- 디자인을 컴파일하려면 처리 ➤ 컴파일 시작을 클릭합니다. 또는 다음 명령을 사용하여 이 프로젝트를 컴파일합니다: quartus_sh –flow compile 깜박이는_led –c 깜박이는_led_default
- 4~11단계를 반복하여 깜박이는_led_slow 및 깜박이는_led_empty 구현 개정을 준비하고 컴파일합니다.
1.5.8. 8단계: SUPR 논리 변경
SUPR 파티션 내의 논리 기능을 변경하려면 SUPR 파티션 소스를 변경해야 합니다. SUPR 파티션의 u_top_counter 인스턴스를 top_counter_fast 엔터티로 바꾸려면 다음 단계를 완료하십시오.
- SUPR 구현 개정을 현재 개정으로 설정하려면 프로젝트 ➤ 개정을 클릭하고 impl_blinking_led_supr_new를 현재 개정으로 설정하거나
Intel Quartus Prime 기본 도구 모음의 개정판. - 올바른 소스를 확인하려면 file 구현 개정을 보려면 프로젝트 ➤를 클릭하세요.
추가/제거 file프로젝트에서 top_counter_fast.sv가 impl_blinking_led_supr_new 구현 개정의 소스인지 확인합니다. 있는 경우 프로젝트 목록에서 top_counter.sv를 제거합니다. files. - .qdb를 지정하려면 file 루트 파티션과 연결된 경우 할당 ➤ 디자인 파티션 창을 클릭한 다음 파티션 데이터베이스를 두 번 클릭합니다. File blinking_led_static.qdb를 지정하는 셀입니다.
또는 다음 명령을 사용하여 이를 할당합니다. file: 세트_인스턴스_할당 -이름 QDB_FILE_PARTITION \ 깜박임_led_static.qdb -to | - pr_partition에 대한 엔터티 리바인딩 셀에서 적절한 엔터티 이름을 지정합니다. 이 전의 경우amp파일에서 깜박이는_led_empty 엔터티를 지정합니다. 이 경우 기본 개정 컴파일의 u_blinking_led 인스턴스를 새 엔터티 linking_led_empty로 덮어쓰게 됩니다. 이제 .qsf에 다음 줄이 있습니다.
##impl_blinking_led_supr_new.qsf set_instance_locationment -name ENTITY_REBINDING 깜박이는_led_empty \ -to u_blinking_led - supr_partition에 대한 엔터티 리바인딩 셀에서 top_counter_fast 엔터티를 지정합니다. top_counter_fast는 SUPR을 완료할 때 u_top_counter를 대체하는 정적 엔터티의 이름입니다.
##impl_blinking_led_supr_new.qsf set_instance_locationment -name ENTITY_REBINDING top_counter_fast \ -to u_top_counter
- 디자인을 컴파일하려면 처리 ➤ 컴파일 시작을 클릭합니다. 또는 다음 명령을 사용하여 이 프로젝트 개정판을 컴파일하십시오: quartus_sh –flow compileblinking_led –c \ impl_blinking_led_supr_new
1.5.9. 9단계: 보드 프로그래밍
Intel Agilex F-시리즈 FPGA 개발 보드를 연결하고 프로그래밍하려면 다음 단계를 따르십시오.
- Intel Agilex F-시리즈 FPGA 개발 보드에 전원 공급 장치를 연결합니다.
- PC USB 포트와 개발 보드의 USB 프로그래밍 하드웨어 사이에 USB 케이블을 연결합니다.
- Intel Quartus Prime 소프트웨어를 연 다음 도구 ➤ 프로그래머를 클릭합니다. 개발 보드 프로그래밍을 참조하세요.
- 프로그래머에서 하드웨어 설정을 클릭한 다음 USB-Blaster를 선택합니다.
- 자동 검색을 클릭한 다음 AGFB014R24B 장치를 선택합니다.
- 확인을 클릭하세요. Intel Quartus Prime 소프트웨어는 보드에 있는 XNUMX개의 FPGA 장치로 프로그래머를 감지하고 업데이트합니다.
- AGFB014R24B 장치를 선택하고 변경을 클릭합니다. File, 그리고 blinking_led_default.sof를 로드 file.
- 깜박이는_led_default.sof에 대한 프로그램/구성 활성화 file.
- 시작을 클릭하고 진행률 표시줄이 100%에 도달할 때까지 기다립니다.
- 보드의 LED가 깜박이는 것을 관찰하십시오.
- PR 영역만 프로그래밍하려면 깜박이는_led_default.sof를 마우스 오른쪽 버튼으로 클릭하세요. file 프로그래머에서 PR 프로그래밍 추가를 클릭합니다. File. 깜박이는_led_slow.pr_partition.rbf를 선택합니다. file.
- 깜박이는_led_default.sof에 대한 프로그램/구성 비활성화 file.
- 깜박이는_led_slow.pr_partition.rbf에 대한 프로그램/구성 활성화 file을 클릭한 다음 시작을 클릭합니다. 보드에서 LED[0] 및 LED[1]이 계속 깜박이는 것을 관찰합니다. 진행률 표시줄이 100%에 도달하면 LED[2] 및 LED[3]가 더 느리게 깜박입니다.
- PR 영역을 다시 프로그래밍하려면 .rbf를 마우스 오른쪽 버튼으로 클릭하세요. file Programmer에서 Change PR Programing을 클릭합니다. File.
- .rbf를 선택하세요. file다른 두 페르소나가 보드에서 행동을 관찰하도록 합니다. blinking_led_default.pr_partition.rbf 로드 file LED가 원래 주파수로 깜박이고 blinking_led_empty.pr_partition.rbf를 로드합니다. file LED가 계속 켜져 있도록 합니다. 17. SUPR 논리를 변경하려면 위의 7단계를 반복하여 impl_blinking_led_supr_new.sof를 선택합니다. 이것을 변경한 후 file, led[0:1]가 이제 이전보다 더 빠른 속도로 깜박입니다. 다른 PR .rbf files는 새로운 .sof와도 호환됩니다.
메모: 어셈블러가 .rbf를 생성합니다. file SUPR 지역의 경우. 단, 이것을 사용하면 안 된다. file SUPR 파티션은 동결 브리지, PR 영역 컨트롤러 및 전체 시스템의 기타 로직을 인스턴스화하지 않기 때문에 런타임에 FPGA를 재프로그래밍합니다. SUPR 파티션 논리를 변경하면 전체 .sof를 다시 프로그래밍해야 합니다. file SUPR 구현 개정 편집에서.
그림 12. 개발 보드 프로그래밍
1.5.9.1. PR 프로그래밍 오류 문제 해결
Intel Quartus Prime Programmer 및 연결된 하드웨어의 적절한 설정을 보장하면 PR 프로그래밍 중 오류를 방지하는 데 도움이 됩니다.
PR 프로그래밍 오류가 발생하면 Intel Quartus Prime Pro Edition 사용자 가이드: 부분적 재구성의 "PR 프로그래밍 오류 문제 해결"을 참조하여 단계별 문제 해결 팁을 확인하십시오.
관련 정보
PR 프로그래밍 오류 문제 해결
1.5.10. SUPR 파티션 수정
기존 SUPR 파티션을 수정할 수 있습니다. SUPR 파티션을 수정한 후 컴파일하고 .sof를 생성해야 합니다. file, 다른 페르소나를 컴파일하지 않고 보드를 프로그래밍합니다. 예를 들어amp파일에서 더 빠르게 계산되도록 top_counter_fast.sv 모듈을 변경하려면 다음 단계를 따르십시오.
- impl_blinking_led_supr_new를 현재 개정으로 설정합니다.
- top_counter_fast.sv에서 file, count_d + 2 문을 count_d + 4로 바꿉니다.
- 다음 명령을 실행하여 SUPR 블록을 다시 합성하고 새 .sof를 생성합니다. file: quartus_sh –flow 컴파일blinking_led\ -c impl_blinking_led_supr_new
결과 .sof는 이제 새 SUPR 영역을 포함하고 기본(전원 켜기) 페르소나에 대해 blinking_led를 사용합니다.
1.6. AN 987의 문서 개정 내역: 정적 업데이트 부분 재구성 자습서 개정 내역
문서 버전 | 인텔 Quatus 프라임 버전 | 변화 |
2022.10.24 | 22. | 문서의 최초 릴리스. |
Intel® Quartus®Prime Design Suite용 업데이트: 22.3
자주 묻는 질문에 대한 답변:
피드백 보내기
Q 정적 업데이트 부분 재구성이란 무엇인가요?
3페이지의 정적 업데이트 부분 재구성
Q 이 튜토리얼을 진행하려면 무엇이 필요합니까?
3페이지의 튜토리얼 요구 사항
Q 레퍼런스 디자인은 어디서 구할 수 있나요?
참조 디자인 다운로드 File5페이지
Q SUPR 디자인은 어떻게 생성하나요?
6페이지의 참조 설계 둘러보기
Q PR 페르소나란 무엇인가요?
10페이지의 페르소나 정의
Q SUPR 로직은 어떻게 변경하나요? A 16페이지의 SUPR 논리 변경
A 16페이지의 SUPR 논리 변경
Q 보드 프로그래밍은 어떻게 하나요?
18페이지의 보드 프로그래밍
Q PR의 알려진 문제점과 제한사항은 무엇인가요?
Intel FPGA 지원 포럼: PR
온라인 버전
피드백 보내기
아이디: 749443
AN-987
버전: 2022.10.24
문서 / 리소스
![]() |
인텔 Agilex F-시리즈 FPGA 개발 보드 [PDF 파일] 사용자 가이드 Agilex F-시리즈, Agilex F-시리즈 FPGA 개발 보드, FPGA 개발 보드, 개발 보드, 보드 |