우선은 기본조건으로 cygwin과 modelSIM(이외의 시뮬레이터는 없는 관계로...)이 설치되었다는 가정하에 시작합니다.
해당 모델심 프로그램들(vsim,vlog)의 path는 환경변수에 이미 저장되어있다고 가정합니다.(설치하실때 path추가 물어보는 부분에서 no하지 않으셨다면 이상없습니다.)
아... 그리고 압축파일내에 .bashrc가 들어있으니 자신만의 환경을 가지신 분들은 다른 폴더에서 풀어서 path부분만 추가하시면 됩니다.
기본적으로 제가 만든 .bashrc에서는 or32-elf폴더가 사용자의 최상위 폴더(~/)에 있는 것으로 가정하였습니다. (압축파일을 해당 폴더에서 풀어버리시면 문제없습니다.)
또하나, vi의 경우 gvim.exe를 사용합니다. gvim 7.2를 기본폴더에 설치하셨다면 cygwin에서 gvim사용하시게 됩니다. (불편하신 분은 alias vi=~~~~~부분을 지우시면 됩니다.)
사용법>
1. 우선 압축파일을 사용자의 최상의 폴더로 복사합니다. (아마 c:cygwinhome[사용자명] 일껍니다.)
2. 압축해제후 MOF_~~~.sh를 실행합니다. (툴체인 및 or1ksim 그리고 리눅스 커널등등을 받아서 설치합니다.)
2-1. 식사나 휴식을 취하세요.^^ (조금 걸리네요...)
3. test_or1200/sim에 들어가셔서 ./run.sh를 실행하시면 waveform까지 떠야 정상입니다. (rtl 폴더의 파일을 사용합니다)
3-1. 혹시 우분투에 깔려있던대로 실행을 하시려면 ./run.sh old 로 실행하시면 됩니다. (rtl_old 폴더의 파일을 사용합니다.)
3-2. ./run2.sh의 경우는 ./run.sh와 마찬가지로 ./run2.sh old로 실행하실 경우 rtl_old폴더의 파일을 사용하게 됩니다. 대신 쉘파일 뒤에 웨이브폼으로 보고싶은 파형의 모듈을 지정해 주면 해당 모듈의 파형을 열어줍니다. ex) ./run2.sh or1200_genpc ---> or1200_genpc 모듈의 파형을 열어줍니다.
3-3. 파형을 지정후 시뮬레이션을 하시려면 해당 스크립트 파일을 열으신후 vsim ~~~ 에서 -do 이후에 있는 부분을 지워주시면 됩니다.
3-4. 파형은 hex 포멧으로 열게 되어있습니다.
4. 크로스컴파일의 경우 제대로 동작하는지 확인하려면 test_or1200/sw폴더로 들어가셔서 make all을 해보시면 됩니다. 문제가 없다면 sim폴더에 memory.txt가 정상적으로 만들어져야 합니다.
수정 및 추가 부분>
1. rtl 폴더에 있는 soc.v 파일은 기존 우분투 이미지에서 추출한 soc.v에서 or1200이하 부분을 떼어낸 파일입니다. rtl_old에 있는 soc.v파일과는 다릅니다.
2. bench 폴더에 있는 CPUboard_tb.v 파일에서 $finish() 앞에 $stop()을 추가하였습니다.
3. 해당 보드 구현 파일에 설정되어있는대로 or1200_define.v에 있는 wishbone WB_B3부분을 활성화 시켰습니다.
4. sw폴더에서 생성하는 memory.txt파일의 생성장소를 sim폴더로 수정하였습니다.
5. 다른부분이 있을지도 모르겠습니다만....(적어놓은게 이정도네요..ㅠ_ㅠ) 아마 이게 다일 껍니다. (엔지니어가 아마????)
etc.>
1. 귀찮아서 더 이상은 못 만들겠습니다. make잘 쓰시는 분이나 쉘스크립트 잘 짜시는 분의 도움 부탁드립니다.
2. waveform window의 설정을 깨끗하게 해주시는 분이 계시다면 감사하겠습니다만... 그정도까지는 안해도 되겠죠? ^^;
3. 다되어있는 파일의 경우 50MB가 넘네요. 스크립트와 중요파일만 올려드립니다. 혹시 전체 파일 받고 싶으신 분은 따로 연락주세요.
4. 문제있는 부분이 있다면 댓글이나 메일 부탁드립니다.
4-1 현재 완벽하게 같다는 부분은 확인하지 못하였습니다. simulation에 문제가 있을수도 있으니 예전 파형을 보고 싶으신 분은 ./run.sh old 또는 ./run2.sh old 로 실행해 주세요.
5. 폴더명 변경의 경우 bench와 rtl 또는 rtl_old의 이름을 변경시에는 스크립트도 같이 변경해주시면 됩니다.
6. 아.. 모델심이 유료툴이므로 못구하시는 분들은 Iverilog와 Gtkwave를 사용하셔도 됩니다만 만들어놓은 스크립트가 modelsim기반입니다.
혹시 문제가 되는 분이 있으시다면 연락부탁드립니다. 해당 프로그램으로 수정하죠.. ^^;;;
7. 다른 컴퓨터에서 확인하지는 못했습니다. 집에 있는 컴퓨터에 재설치후 만들고 압축한 것이라서 혹시 문제있으면 연락부탁드립니다.
ps. 머리가 나빠서 얼레벌레 시간이 꽤 걸렸네요. 다른 분들이시라면 금방하셨을텐데... ㅠ_ㅠ
댓글 3
.
친절한 현철님..ㅋㅋㅋ