22장 vaild/ready
96
7 câu hỏi đã được viết
22장 4m쯤 Module 부분입니다.
s_ready를 보면
m_valid =0이거나
m_ready = 1이면
s_ready가 1이 되도록 되어있습니다.
m_ready가 1일때만을 가지고 s_ready의 값을 결정할 수 있다고 생각했는데
m_ready = 0 & m_valid = 0 인 경우때문인건가요?
이 경우도 유효한 data 값을 가지고 있지 않지만 master가 준비가 되어있지 않기 때문에
s_ready 값을 1로 올리면 안되지않나요?
Câu trả lời 1
0
안녕하세요 🙂
먼저 해당 조건에 대해 반대로 생각해보면, 이해에 도움이 될 거 같아요.
이 수식을 뒤집어 생각해보면 더 명확합니다. (not 을 취해보죠)
assign s_ready = ~m_valid | m_ready; // s_ready 가 0 이 되는 경우를 생각해봅시다.
s_ready가 0이 되는 시점은 m_valid = 1 && m_ready = 0 일 때뿐입니다.
즉, "내가 내보낼 데이터가 꽉 차 있는데(m_valid=1), 다음 녀석이 못 받겠다고 버티는 경우(m_ready=0)" 에만 비로소 앞단에 "나도 더 이상 못 받아!"라고 s_ready = 0을 치는 것이죠.
이것이 바로 Back-pressure의 핵심입니다.
따라서, 원래의 의미로 생각을 해보면,
~m_valid: "내 마지막 칸이 비어있으니, 일단 밀어 넣어라." 또는 ( "|" or 기호 가 있으니까)
m_ready: "내 마지막 칸이 차 있어도, 다음 녀석이 가져갈 거니까 한 칸씩 전진 가능하다. 그러니 밀어 넣어라."
의 의미로 s_ready 가 1 이 됩니다.
이해에 도움이 되셨기를 바래요.
즐공하세요 🙂
[HDL 32장-2부] 참고 링크 관련
0
29
2
[HDL 22장] F/F CE 관련 질문
1
42
2
13강에 언급된 강의 내용 질문
1
60
2
output, reg 선언
1
78
3
gvim
1
61
1
fifo의 stall과 퍼포먼스 드랍
1
57
2
Design Valid I/F
1
73
2
valid/ready 스트림 구조 관련 질문이 있습니다!
1
86
2
IDLE state의 시점관련
1
63
2
skid buffer의 handshake 방향이 반대로 되어 있는 이유
1
108
3
[wdma] AWLEN_w의 값이 1일 경우 r_burst_cnt_w와 AWLEN_w의 async 인한 bready 발행X 이슈?
1
69
2
system verilog 사용이유.
1
130
2
AXI_VIP 사용 시 glitch 발생
1
96
1
왜 배속이 안되요?
1
113
2
다이어그램 이해
1
69
2
27.[프로젝트-1] Mem copy IP를 FPGA에 올려보기
1
73
2
27.[프로젝트-1] Mem copy IP를 FPGA에 올려보기
1
88
3
[HDL 38장: RDMA 코드 실습편] MOR fifo에서 "ARLEN_r" 존재의 이유가 궁금합니다
1
110
2
[HDL 35장 AXI-Stream I/F 실습편] sync_fifo 사용 이유
1
128
1
예외처리 관련 질문
1
75
2
AXI의 ID의 역할은?
1
186
2
28장 강의 AXI 이론편관련질문
0
109
1
37장 Data bit width 질문
1
56
2
SPI, I2C, UART, Ethernet 인터페이스 사용법
1
235
2

