single cycle cpu 구현
- 최초 등록일
- 2014.04.15
- 최종 저작일
- 2013.04
- 31페이지/ MS 워드
- 가격 3,000원
목차
1. Introduction
2. Design details
A. Module design description
B. Integrated design description
3. Design verification strategy and results
A. Verification strategy
B. Verification results
4. Discussion and Conclusion
5. Source code comment
본문내용
(1) PC(Program counter)
Text file(machine code)을 읽고 실행할 instruction을 저장한다.
(2) IM(Instruction memory)
저장되어 있는 instruction중 몇 번째 instruction을 실행할 것인지 결정한다.
(3) Adder
PC가 다음 instruction을 가리키도록 주소 값 4를 더해주는 연산을 한다.
∙ Register file, ALU, Data memory, sign extend, mux로 구성된 Datapath 2
(4) RF(Register file)
32개의 register를 갖고 있다.
(5) ALU(Arithmetic logic unit)
Register에 저장된 값이나 immediate값으로 and, or, add, sub, slt 등의 연산을 한다.
(6) DM(Data memory)
data값을 저장한다.
<중 략>
왜냐하면 각각의 값들에 대해서 clock이 없는 것이 combination unit에서는 연산이 빠를 것이라는 생각이 지배적이었으니 말이다. 만약 clock이 data memory에 들어가지 않았다. 라고 가정을 한다면 각각의 값들은 ALU를 거치고 MUX를 거친 뒤 바로 값에 대한 read와 write 가 진행 될 것이며 따라서 모든 값들은 always 구문을 이용한 입력 값의 변화로 충분히 값에 대한 2가지 기능을 성실히 수행할 것이다. 이 것은 많이 생각해 봐야할 듯하다. clock이 들어감으로써 동기화를 유도하여 정확한 값을 유도할 것인지 아니면 clock을 제거함으로써 더 빠른 연산이 가능하지만 동기화 기능을 상실함으로써 불완전하다면 불완전한 값을 제공할 것인지. 만약 register file도 clock이 들어가지 않았다라고 가정을 한다면 data memory에 대한 값의 read, write는 오작동 할지도 모른다. 하지만 이번 과제에서는 clock를 register file에 입력 signal로 넣어주기 때문에 아마도 data memory는 clock이 존재하지 않아도 충분히 정상작동 하였을 것이라고 생각된다.
참고 자료
없음