20강(15장) - 밀리 머신 관련하여 질문 드립니다.
65
2 asked
안녕하세요 🙂
[1. 질문 챕터] : 20강(15장) 6분 45초
[2. 질문 내용] : 강사님께서 '양방향 Handshake interface'를 사용할 때 밀리 머신을 사용한다고 하셨는데요, 이때의 양방향 Handshake는 다음 1번 2번 3번 중에 3번만 말씀하신 건지, 2번도 말씀하신 건지 궁금합니다. 제미나이한테 물어보니 2번 3번 둘 다 밀리머신으로 설계한다고 하는데 강사님께 여쭤보고싶어서 남깁니다.
1번: 단방향 데이터 + (No Ready) - Moore (이유: 출력 신호가 깨끗하고 타이밍 설계가 쉬움.)
2번: 단방향 데이터 + 핸드셰이크 - Mealy (이유: Ready에 즉각 반응하여 성능(Throughput)을 유지해야 함.)
3번: 양방향 데이터 + 핸드셰이크 - Mealy (이유: 상호 통신 시 발생하는 레이턴시를 최소화(0-cycle)하기 위함.)
Answer 2
1
안녕하세요 🙂
밀리와 무어에 대해서는 장단점이 있어서요.
어떤 것이 정답이다 말씀드리기는 어려운데요. (둘다 1,2,3 번 가능하기 때문)
근래 제가 다니고 있는 회사에서는 1 cycle 을 더 밀더라도 freq 를 더 높이기 위한 합성 과정이 더 중요하기 때문에, 무어를 더 선호했습니다. cycle 이 중요한 디자인이라면 밀리를 써야겠죠.
요약하자면,
이론적으로는: 핸드쉐이크의 효율을 위해 2, 3번 모두 밀리 머신을 권장합니다.
현실적으로는: 타이밍 마진을 위해 무어 머신을 쓰거나, 밀리 머신 뒤에 Skid Buffer(또는 Register Slice)를 달아서 성능과 타이밍을 모두 잡는 설계를 많이 합니다.
즐공하세요 🙂
0
안녕하세요, 인프런 AI 인턴입니다. qhdbs1000님, 질문 주셔서 감사합니다.
밀리(Moore) 머신의 사용 맥락과 양방향 Handshake 인터페이스:
밀리와 무어(Moore) 머신은 상태 머신의 두 가지 주요 모델입니다. 일반적으로 밀리 머신은 상태의 변화가 입력 신호에 즉각적으로 반응하는 특성을 가지고 있어, 응답 시간이 덜 경직됩니다. 그러므로 핸드셰이크 프로토콜, 특히 즉각적인 데이터 처리와 반응성이 요구되는 양방향 데이터 전송 환경에서는 밀리 머신을 선호하기도 합니다.
질문에서 언급된 세 가지 경우에 대한 설명:
단방향 데이터 + No Ready - Moore 사용:
이 경우는 출력 신호가 클럭에 맞춰 깨끗하게 나오고 타이밍 설계가 비교적 간단해서 Moore 머신이 적합합니다.단방향 데이터 + 핸드셰이크 - Mealy 사용:
질문하신 저의 해석으로, 단방향 데이터에도 ‘Ready’ 신호를 처리해야 한다면 데이터가 전송될 준비가 되었을 때 즉시 반응해야 하므로, 밀리 머신(Mealy)이 더 적합할 수 있습니다.양방향 데이터 + 핸드셰이크 - Mealy 사용:
상호 통신에서 발생할 수 있는 지연 시간을 최소화하는 것이 중요하기 때문에 밀리 머신을 사용하여 수신 쪽에서도 즉각적으로 데이터를 처리하고 응답할 수 있어야 합니다.
강의 내용 참조 및 관련 답변 링크:
당신의 질문은 핸드셰이크 인터페이스를 설계할 때 어떤 방식이 더 적합한지에 대한 이해를 돕기 위해 작성된 것으로 보입니다. 관련된 추가 질문에 대해 아래의 링크를 참고해 보시기 바랍니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
latency 개념 구현
1
84
3
비바도 all os버전
1
68
2
초기화를 reset_n 이 '1'일 때가 아닌 '0' 일 때 실행시키는 이유 질문
1
69
2
다운로드용량
1
69
2
비바도리눅스설치
1
79
2
전체path복사넣기
1
61
2
Vivado 2025.2 리눅스 설치 후 실행 에러와 솔루션 (libxv_commontasks.so)
1
143
2
explorer.exe오류
1
102
3
mobaxterm설치오류
1
87
2
./build시, waveform 'divide color' 사용
1
54
2
Latch와 관련하여 (Time borrowing, Latch-based design)
1
123
2
clean 명령어가 안되는데, 따로 저장해줘야 하는지 궁금합니다.
0
59
1
안녕하세요 설치 관련 질문 드립니다.
1
61
3
16장 mealy 설계.
1
73
2
14장 Cycle 관련, Testbench 코드.
1
64
2
21강(16장) 초기값 설정이 적용되는 시점 질문
1
60
1
build에러 질문
0
55
2
1장 ./build에서 에러가 나요
1
72
2
FPGA 강의 보드 문의 드립니다.
1
105
2
5장 DFF특성에 대한 질문
1
75
3
vivado linux 사용 이유.
1
135
2
메모리의 형태가 전체설계에 미치는 영향이 궁금합니다.
1
103
2
디스코드 멤버쉽 등업 관련 문제
1
92
2
Ubuntu 에서 옆에 라인 수 보는 방법
1
93
1

