티스토리 뷰
외부
wb 포트
// between controller
input wb_start
output wb_done
// between directory
input [31:0] wb_address
input [31*8:0] wb_cache_line
// between sram
output req_valid;
output [31:0] req_data;
output req_wren;
output [31:0] req_addrss;
input req_ready;
wb 기능
1. controller에서 wb_start가 들어오면 일련의 동작을 시작한다.
2. 캐시 디렉토리로부터 wb_address와 wb_cache_line을 통해 값을 전달받는다.
3. 4바이트 단위로 Sram에 데이터를 8번 반복해서 전달한다.
4. controller에 wb_done 신호를 보낸다.
* wb_start가 1이면 동작을 시작하고 0이 되면 초기 상태로 되돌아 간다.
내부
wb state
IDLE, EXEC
wb state transition
IDLE -> IDLE : !(start == 1 && cnt < 8)
IDLE -> EXEC : start == 1 && cnt < 8
EXEC -> EXEC : req_ready == 0
EXEC -> IDLE : req_ready == 1
req_ready == 1일 때 카운트
wb output
IDLE : req_valid = 0;
EXEC : req_valid = 1; req_address = wb_address + cnt*4 ; req_data = wb_cache_line[cnt*32+31 : cnt*32]; req_wren = 1;
wb operation
start == 1 이고 cnt >= 8 이면 done == 1 나머지 경우에는 done == 0
start == 0 이면 cnt가 0으로 계속 할당됨.
- Total
- Today
- Yesterday
- 베릴로그
- 애니메이션
- 구현
- 이분법
- 영어 어휘
- 메이플스토리
- 너비우선탐색
- 영화
- 취미
- 재귀함수
- BOJ
- 스택
- 정렬
- 백트래킹
- 이진탐색
- C언어
- 건이의 특제 떡국 끓이기
- 알고리즘
- 완전탐색
- Verilog
- gem5
- 큐
- Push
- recursive
- 구조체
- BFS
- backtracking
- Git
- C++
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |