1. 일단 state = 0일 때, read시에 어떻게 해야 할 것인가?


state == 0일 때, cyc, stb signal이 1로 오면서 read를 요구한다.

이 때, cyc, stb는 같이 1이 되고, ack를 받아서 바로 core쪽으로 주면 안된다.

일단 ack를 받게 되면, core쪽에는 0으로 hold 시켜 놓고, 

ack를 decrypt start signal로 사용하여 decrypt를 진행시킨다.

그리고 decrypt가 끝나면 dec_done signal이 1이 될 것이다.

그러면 이 dec_done signal을 core쪽으로 보내는 ack 신호로 사용하면 된다.

(이거 완료신호 1clk만 1로 주면 되겠지?)


2. state가 1일 때, read를 할 것이다.

이 때도 state = 0일 때와 동일하게 ack를 받으면 core쪽에는 0으로 hold 시켜 놓고

ack를 decrypt start signal로 사용하여 i_wb_dat_i 를 decrypt 시킨다.

그리고 decrypt_done signal이 1이 되는 것을

state를 2로 보내는 signal로 사용하면 된다.


3. state == 2일 때, write를 할 것이다.

state가 2를 encrypt start signal로 사용한다.

그래서 바로 encrypt를 시작한다. ( 1 clk만 되도록 해야됨 )

그리고 encrypt_done signal이 들어오면 stb, cyc, we_o를 1로 준다..

여기서 ack가 들어오면 다시 state를 0으로 보내준다.

+ Recent posts