1. write에 대해 분석한 것을 바탕으로 모듈을 제작 했는데 안됨
2. 안되서, isim에서 파형을 보려고 했음
3. 아예 프로그램이 돌아가지 않으면 파형이 안나옴
4. 다시 원래 파일을 받아서 그것에서 파형을 봤음
5. 거기서 hello-world.dis 어셈블리어의 순서를 보고, store, load, push, pop등을 찾아 waveform을 확인함.
6. 확인한 결과, 시뮬레이션과 실제로 스파르탄을 써서 할 때에, 사용하는 캐쉬(sram)가 다름....
7. 그래서 현재 메모리에서 read를 해와서 그것을 다시 write하는 방법으로 회귀를 함 그리고 보다가 이상한 것을 발견.
8. 11972.5ns에서 이상한 것을 찾음. write하겠다고 하자마자 바로 ack가 뜸...
9. main_mem와 wishbone_arbiter를 확인해보려고 각각 waveform을 보려고 했는데 segmentation fault가 뜸.
10. 하나하나 올려서 확인해봤는데 ack가 assign으로 연결되어 있어서 그렇다고 생각됨. 그럼 이제 이상한 것이 뭐냐면..
11.
=============================
state가 0인 상태...
이 상태는 그냥 계속 read만 하고 있는 상태이다.
이 상태에서 cyc, stb, we 가 모두 1이 되면 state를 1로 바꿔준다.
state가 1인 상태...
이 상태에서는 다른 것은 모두 그대로 인데, we만 0으로 바꾸어 준다.
이 상태에서, ack가 1이 되면, state 2로 이동한다.
state가 2인 상태..(read를 해왔고 write를 해야 되는 상태)
이 상태에서는 들어오는 sel을 보고, data를 치환해서 밖으로 내보내준다.
이 상태에서는 we는 1로 넘겨주고 ack가 1이면 state를 0으로 바꿔준다.
'수업 > 졸업논문-Amber' 카테고리의 다른 글
| 일단 simulation 모두 완료 후 FPGA에 올리기 -(1) (0) | 2015.10.27 |
|---|---|
| 버전2_read, write시에 잠시 정지시켰다가 enc/dec완료 신호가 오면 진행 (0) | 2015.10.13 |
| 메모리에서 read하고 write 하는 것.. 버전1이라 생각하면 됨. (0) | 2015.10.13 |
| 모듈 만들기 (0) | 2015.09.15 |
| cache에 쓰는 128bits를 그대로 encryption해서 메모리에 쓰기 (0) | 2015.09.14 |