inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

[FPGA 22장] 프로젝트 Fully Connected Layer 설계 - 실습편

Retiming 관련 질문입니다.

127

tony0895

작성한 질문수 3

1

[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.

[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂

[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.)

 

안녕하세요 맛비님, 훌륭한 강의 정말 잘 듣고 있습니다.

 

다만 강의를 듣던 중, 헷갈리는 부분이 생겨 질문 남기게 되었습니다. 답변 해주시면 정말 감사하겠습니다.

 

FPGA 22장 21분 쯤 Retiming에 관해 설명해주셨는데, 이 부분에서 중간에 F/F를 추가함으로써 timing violation을 해결하는 과정을 Retiming이라고 하셨습니다. 그런데 Retiming에 대해 공부를 하던 중, Retiming은 레지스터의 위치를 변경시키는 방법이고, 레지스터를 추가시키는 것은 pipielining이라는 글을 보게 되었습니다. 맛비님께서 설명해주신 것처럼 F/F을 추가하여도 Retiming인지 여쭈어 보고 싶습니다.

훌륭한 강의 정말 감사합니다. 답변해 주시면 감사하겠습니다.

fpga 임베디드

답변 2

1

설계독학맛비

안녕하세요 🙂

"Combinational 로직의 타이밍을 조정하기 위해 F/F을 추가하거나 F/F 위치를 이동하여 주파수(frequency)를 높이는 과정을 retiming이라고 합니다."

즐공하세요!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. tony0895님, 강의를 애청해 주셔서 감사합니다! Retiming과 관련하여 헷갈리는 부분이 있으신 것 같습니다. Retiming과 관련된 용어 정리에 도움을 드리겠습니다.

Retiming의 개념

Retiming은 기본적으로 기존의 레지스터 위치를 변경하여 회로의 성능을 최적화하는 과정입니다. 이 과정은 보통 시퀀셜 회로에서 주파수를 높이거나 페이즈 간의 타이밍 차이를 조정하여 시간 위반 문제를 해결하는 데 사용됩니다.

Pipielining과의 차이

  1. Retiming: 앞서 말씀드린 대로 레지스터의 위치를 기존 회로 내에서 조정하는 것입니다. 목표는 가능한 높은 클럭 속도로 회로를 작동시키면서도 신뢰성을 유지하는 데 있습니다.

  2. Pipelining: 레지스터를 추가하여 데이터 경로를 여러 스테이지로 나누어 처리 속도를 높이는 기술입니다. 이 방법을 사용하면 각 스테이지에서 수행하는 계산이 간소화되어 클럭 속도를 높일 수 있습니다.

Retiming과 Pipelining은 모두 회로 최적화 기술이지만, 레지스터를 ‘추가’하는 경우는 일반적으로 Pipelining으로 간주합니다. 따라서, Retiming에서는 주로 기존 레지스터의 위치 변경이 이루어집니다.

아래는 여러분의 이해를 도울 수 있는 유사한 답변 링크입니다:
- Retiming과 관련한 유사 질문
- FPGA에서 Retiming과 Pipelining의 차이에 대한 유사 질문

이 부분이 tony0895님의 이해에 조금이라도 도움이 되었기를 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

UART0, 1 중 선택

1

49

2

datamoverbram모듈질문

1

61

2

vitis 설치엣 alveo kria versal 등 옵션을 끄고 설치를 했습니다.

1

96

2

vitis 설치 관련 질문 있습니다!

1

84

2

FPGA 공식문서 읽는법

1

95

2

보드 추가의 클릭창이 없습니다.

1

70

2

Edit in IP Packager에서 코드 수정 후 IP 수정하면 simulation에서 수정된 코드로 작동이 안됩니다

1

81

2

BRAM의 Read / Write를 다 수행했는지 확인할 때 사용되는 num_cnt / i_num_cnt 관련 질문

1

106

1

Vitis 코드 작성

1

130

2

vivado 및 vitis 리눅스 환경 설치 관련 질문드립니다.

1

288

3

[9장 led 점등 시간 제어 불가]

1

81

2

Platform Invalid 오류

1

145

3

WSL 설치 관련 문의드립니다!!

1

96

2

Vivado 툴, 파일 질문드립니다!

1

150

2

9장 LED 점등 안됨

1

109

3

Edit in IP Packager 이후에

1

82

1

Fpga 로직

1

89

2

pmu-fw is not running

1

126

2

Create Project에 대해서 궁금해요

1

89

2

장치관리자 USB 포트

1

98

2

FPGA 7장 AXI_LITE I/F질문

1

89

1

bram mover에서 합성할때

1

77

2

타이밍 위반 질문

1

78

2

rvalid 초기화

1

66

2