맘스터치보단파파이스 2024. 5. 23. 16:52

FIFO MODULE

First In First Out  --> Queue 같다. queue  : 대기줄. 선입선

FIFO + register

ABCD 순으로 들어와있건게 rd_ptr 의 위치에 따라 들어온 순서대로 A B C D 나오게된다.

다 비워지게 되면 empty = 1

FIFO에서 어디를 읽고싶다를 Register로 알려줘야 하기 때문에 raddr : INPUT 

Register도 코드짜는거 보다는 어떻게 사용할 건지가 더 어렵다.

fifo와 rd_ptr, wr_ptr이 필요하다.

mem주소인 0 1 2 3 을 체크하는 ptr.

FIFO 의 모델종류는 다양하다.

clk 두개를 써서 rdata, wdata를 따로 조절하는 FIFO도 존재한다.

 

tb_fifo.sv

 

env, interface, transaction.

 

interface : 전선다발

transaction : rand 준비

 

scoreboard.sv 에서 SW로 queue를 만들어줘야한다.

bit가 8개가 있으니 8개의 공간을 가진 queue를 만든다.

[$] : 무한대가 된다.

[$:8] : 8개

 

queue에 초기값을 넣어야하나? --> 안넣고 진행중.