티스토리 뷰

728x90
반응형

외부
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으로 계속 할당됨.

728x90
반응형
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함