[컴퓨터 구조] MIPS multi-cycle 구현(Quarters II, Verilog 코드 이용)
*석*
다운로드
장바구니
소개글
MIPS Multi cycle 구현입니다. Quarters II 9.0 버전으로 작성되었고 verilog 코드 이용한것입니다.
쿼터스에서 실행시 유의점
Assignments 에서 Settings 으로 들어감 -> Simulator Settings 에서 Simulation mode : Functional 로 바꿈
각 인스트럭션 시퀀스는 memory 블록에서 들어갑니다.
각 레지스터의 initial value 값은 reg_file 블록에서 들어갑니다.
모듈 이름이나 파일 이름등은 함부로 바꾸시면 안됩니다.
이외에도 영문으로 작성된 레포트가 포함되어 있습니다.
목차
이 코드는 다음 인스트럭션들을 구현한 것입니다.1. ADD R1, R2, R3
2. ADDI R2, R1, 17
3. SUB R3, R2, R4
4. AND R7, R5, R6
5. OR R8, R5, R6
6. SLT R1, R7, R8
7. SLT R2, R8 ,R7
8. BEQ R1, R2, 0x00000470
9. BEQ R1, R1, Ox0000049C
10. SW R3, 1692(R4)
11. LW R3, 1692(R4)
12. J 0x00000100
13. ADD R3, R2, R1
14. SUB R4, R3, R1
레지스터 초기값
R1 = 4
R2 = 3
R3 = 5
R4 = 4
R5 = 25
R6 = 11
PC(Program counter) = 0x00000000
실행 방법
1. open files 에서 파일 형식을 Project files 로 바꾼 후 프로젝트 파일을 오픈
2. 위 유의점에서 언급했듯이 Simulation mode : Functional 로 바꿔야 합니다.
3. start simulation 을 실행시키면 시뮬레이션 결과를 vector form으로 보실 수 있습니다.
압축파일에 영문 레포트도 포함되어 있습니다.
본문내용
※ Multi-Cycle MIPS ImplementationThe purpose of this project is to learn the basic structure and operation of the multi-cycle MIPS processor. So the multi-cycle has to be implemented in this project. Multi-cycle form is following.
The disconnected multi-cycle block diagram is given. We have to connect the given block diagram correctly. Also some blocks has incomplete verilog codes. We have to complete these verilog codes too. In this multi-cycle, ten instructions are given and must be operated in this single-cycle. Ten instructions are add, sub, and, or, slt, sw, lw, beq, addi, jump. To operate these instructions, Some special 12 instructions sequences are given and 2 instruction sequences have to be made by ourselves. Register numbers and Initial values are also given. Therefore we have to examine the results about these instruction sequences whether it is correct after finishing implement multi-cycle.
This is the state diagram of the control module. We have to design the control unit according to this state diagram. We just fill in the blanks of three blocks in the source code. The control block is most important part. I just attached missing parts.
1. Control_multi.v
always@(state)
begin
case(state)
S0 :
begin
참고 자료
없음압축파일 내 파일목록
ALU.bsf
ALU.v
ALU_ctl.bsf
ALU_ctl.v
buffer.bsf
buffer.v
BUSMUX2.bsf
BUSMUX2.qip
BUSMUX2.v
BUSMUX3.bsf
BUSMUX3.qip
BUSMUX3.v
BUSMUX4.bsf
BUSMUX4.qip
BUSMUX4.v
BUSTRI.bsf
BUSTRI.v
control_multi.bsf
control_multi.v
control_multi.v.bak
Instruction_Register.bsf
Instruction_Register.v
Instruction_Register.v.bak
memory.bsf
memory.v
memory.v.bak
PC.bsf
PC.v
reg_file.bsf
reg_file.v
reg_file.v.bak
report.hwp
SignExtend.bsf
SignExtend.v
sll_26.bsf
sll_26.v
sll_32.bsf
sll_32.v
top_level_KSJ.bdf
top_level_KSJ.done
top_level_KSJ.flow.rpt
top_level_KSJ.map.rpt
top_level_KSJ.map.summary
top_level_KSJ.qpf
top_level_KSJ.qsf
top_level_KSJ.qws
top_level_KSJ.sim.rpt
top_level_KSJ.vwf
db/altsyncram_55k1.tdf
db/altsyncram_86k1.tdf
db/altsyncram_e1l1.tdf
db/mux_0oc.tdf
db/mux_5oc.tdf
db/mux_bpc.tdf
db/mux_brc.tdf
db/mux_dpc.tdf
db/mux_epc.tdf
db/mux_lpc.tdf
db/mux_rnc.tdf
db/prev_cmp_top_level_KSJ.map.qmsg
db/prev_cmp_top_level_KSJ.qmsg
db/prev_cmp_top_level_KSJ.sim.qmsg
db/top_level_KSJ.(0).cnf.cdb
db/top_level_KSJ.(0).cnf.hdb
db/top_level_KSJ.(1).cnf.cdb
db/top_level_KSJ.(1).cnf.hdb
db/top_level_KSJ.(10).cnf.cdb
db/top_level_KSJ.(10).cnf.hdb
db/top_level_KSJ.(11).cnf.cdb
db/top_level_KSJ.(11).cnf.hdb
db/top_level_KSJ.(12).cnf.cdb
db/top_level_KSJ.(12).cnf.hdb
db/top_level_KSJ.(13).cnf.cdb
db/top_level_KSJ.(13).cnf.hdb
db/top_level_KSJ.(14).cnf.cdb
db/top_level_KSJ.(14).cnf.hdb
db/top_level_KSJ.(15).cnf.cdb
db/top_level_KSJ.(15).cnf.hdb
db/top_level_KSJ.(16).cnf.cdb
db/top_level_KSJ.(16).cnf.hdb
db/top_level_KSJ.(17).cnf.cdb
db/top_level_KSJ.(17).cnf.hdb
db/top_level_KSJ.(18).cnf.cdb
db/top_level_KSJ.(18).cnf.hdb
db/top_level_KSJ.(19).cnf.cdb
db/top_level_KSJ.(19).cnf.hdb
db/top_level_KSJ.(2).cnf.cdb
db/top_level_KSJ.(2).cnf.hdb
db/top_level_KSJ.(20).cnf.cdb
db/top_level_KSJ.(20).cnf.hdb
db/top_level_KSJ.(21).cnf.cdb
db/top_level_KSJ.(21).cnf.hdb
db/top_level_KSJ.(22).cnf.cdb
db/top_level_KSJ.(22).cnf.hdb
db/top_level_KSJ.(23).cnf.cdb
db/top_level_KSJ.(23).cnf.hdb
db/top_level_KSJ.(24).cnf.cdb
db/top_level_KSJ.(24).cnf.hdb
db/top_level_KSJ.(25).cnf.cdb
db/top_level_KSJ.(25).cnf.hdb
db/top_level_KSJ.(26).cnf.cdb
db/top_level_KSJ.(26).cnf.hdb
db/top_level_KSJ.(3).cnf.cdb
db/top_level_KSJ.(3).cnf.hdb
db/top_level_KSJ.(4).cnf.cdb
db/top_level_KSJ.(4).cnf.hdb
db/top_level_KSJ.(5).cnf.cdb
db/top_level_KSJ.(5).cnf.hdb
db/top_level_KSJ.(6).cnf.cdb
db/top_level_KSJ.(6).cnf.hdb
db/top_level_KSJ.(7).cnf.cdb
db/top_level_KSJ.(7).cnf.hdb
db/top_level_KSJ.(8).cnf.cdb
db/top_level_KSJ.(8).cnf.hdb
db/top_level_KSJ.(9).cnf.cdb
db/top_level_KSJ.(9).cnf.hdb
db/top_level_KSJ.cbx.xml
db/top_level_KSJ.cmp.rdb
db/top_level_KSJ.cmp_merge.kpt
db/top_level_KSJ.db_info
db/top_level_KSJ.eco.cdb
db/top_level_KSJ.eds_overflow
db/top_level_KSJ.fnsim.cdb
db/top_level_KSJ.fnsim.hdb
db/top_level_KSJ.fnsim.qmsg
db/top_level_KSJ.hier_info
db/top_level_KSJ.hif
db/top_level_KSJ.lpc.html
db/top_level_KSJ.lpc.rdb
db/top_level_KSJ.lpc.txt
db/top_level_KSJ.map.bpm
db/top_level_KSJ.map.cdb
db/top_level_KSJ.map.ecobp
db/top_level_KSJ.map.hdb
db/top_level_KSJ.map.kpt
db/top_level_KSJ.map.logdb
db/top_level_KSJ.map.qmsg
db/top_level_KSJ.map_bb.cdb
db/top_level_KSJ.map_bb.hdb
db/top_level_KSJ.map_bb.logdb
db/top_level_KSJ.pre_map.cdb
db/top_level_KSJ.pre_map.hdb
db/top_level_KSJ.ram0_memory_e411fb78.hdl.mif
db/top_level_KSJ.ram0_reg_file_c5668544.hdl.mif
db/top_level_KSJ.rtlv.hdb
db/top_level_KSJ.rtlv_sg.cdb
db/top_level_KSJ.rtlv_sg_swap.cdb
db/top_level_KSJ.sgdiff.cdb
db/top_level_KSJ.sgdiff.hdb
db/top_level_KSJ.sim.cvwf
db/top_level_KSJ.sim.hdb
db/top_level_KSJ.sim.qmsg
db/top_level_KSJ.sim.rdb
db/top_level_KSJ.simfam
db/top_level_KSJ.sld_design_entry.sci
db/top_level_KSJ.sld_design_entry_dsc.sci
db/top_level_KSJ.syn_hier_info
db/top_level_KSJ.tis_db_list.ddb
db/wed.wsf
incremental_db/README
incremental_db/compiled_partitions/top_level_KSJ.root_partition.map.atm
incremental_db/compiled_partitions/top_level_KSJ.root_partition.map.dpi
incremental_db/compiled_partitions/top_level_KSJ.root_partition.map.hdbx
incremental_db/compiled_partitions/top_level_KSJ.root_partition.map.kpt
ALU.v
ALU_ctl.bsf
ALU_ctl.v
buffer.bsf
buffer.v
BUSMUX2.bsf
BUSMUX2.qip
BUSMUX2.v
BUSMUX3.bsf
BUSMUX3.qip
BUSMUX3.v
BUSMUX4.bsf
BUSMUX4.qip
BUSMUX4.v
BUSTRI.bsf
BUSTRI.v
control_multi.bsf
control_multi.v
control_multi.v.bak
Instruction_Register.bsf
Instruction_Register.v
Instruction_Register.v.bak
memory.bsf
memory.v
memory.v.bak
PC.bsf
PC.v
reg_file.bsf
reg_file.v
reg_file.v.bak
report.hwp
SignExtend.bsf
SignExtend.v
sll_26.bsf
sll_26.v
sll_32.bsf
sll_32.v
top_level_KSJ.bdf
top_level_KSJ.done
top_level_KSJ.flow.rpt
top_level_KSJ.map.rpt
top_level_KSJ.map.summary
top_level_KSJ.qpf
top_level_KSJ.qsf
top_level_KSJ.qws
top_level_KSJ.sim.rpt
top_level_KSJ.vwf
db/altsyncram_55k1.tdf
db/altsyncram_86k1.tdf
db/altsyncram_e1l1.tdf
db/mux_0oc.tdf
db/mux_5oc.tdf
db/mux_bpc.tdf
db/mux_brc.tdf
db/mux_dpc.tdf
db/mux_epc.tdf
db/mux_lpc.tdf
db/mux_rnc.tdf
db/prev_cmp_top_level_KSJ.map.qmsg
db/prev_cmp_top_level_KSJ.qmsg
db/prev_cmp_top_level_KSJ.sim.qmsg
db/top_level_KSJ.(0).cnf.cdb
db/top_level_KSJ.(0).cnf.hdb
db/top_level_KSJ.(1).cnf.cdb
db/top_level_KSJ.(1).cnf.hdb
db/top_level_KSJ.(10).cnf.cdb
db/top_level_KSJ.(10).cnf.hdb
db/top_level_KSJ.(11).cnf.cdb
db/top_level_KSJ.(11).cnf.hdb
db/top_level_KSJ.(12).cnf.cdb
db/top_level_KSJ.(12).cnf.hdb
db/top_level_KSJ.(13).cnf.cdb
db/top_level_KSJ.(13).cnf.hdb
db/top_level_KSJ.(14).cnf.cdb
db/top_level_KSJ.(14).cnf.hdb
db/top_level_KSJ.(15).cnf.cdb
db/top_level_KSJ.(15).cnf.hdb
db/top_level_KSJ.(16).cnf.cdb
db/top_level_KSJ.(16).cnf.hdb
db/top_level_KSJ.(17).cnf.cdb
db/top_level_KSJ.(17).cnf.hdb
db/top_level_KSJ.(18).cnf.cdb
db/top_level_KSJ.(18).cnf.hdb
db/top_level_KSJ.(19).cnf.cdb
db/top_level_KSJ.(19).cnf.hdb
db/top_level_KSJ.(2).cnf.cdb
db/top_level_KSJ.(2).cnf.hdb
db/top_level_KSJ.(20).cnf.cdb
db/top_level_KSJ.(20).cnf.hdb
db/top_level_KSJ.(21).cnf.cdb
db/top_level_KSJ.(21).cnf.hdb
db/top_level_KSJ.(22).cnf.cdb
db/top_level_KSJ.(22).cnf.hdb
db/top_level_KSJ.(23).cnf.cdb
db/top_level_KSJ.(23).cnf.hdb
db/top_level_KSJ.(24).cnf.cdb
db/top_level_KSJ.(24).cnf.hdb
db/top_level_KSJ.(25).cnf.cdb
db/top_level_KSJ.(25).cnf.hdb
db/top_level_KSJ.(26).cnf.cdb
db/top_level_KSJ.(26).cnf.hdb
db/top_level_KSJ.(3).cnf.cdb
db/top_level_KSJ.(3).cnf.hdb
db/top_level_KSJ.(4).cnf.cdb
db/top_level_KSJ.(4).cnf.hdb
db/top_level_KSJ.(5).cnf.cdb
db/top_level_KSJ.(5).cnf.hdb
db/top_level_KSJ.(6).cnf.cdb
db/top_level_KSJ.(6).cnf.hdb
db/top_level_KSJ.(7).cnf.cdb
db/top_level_KSJ.(7).cnf.hdb
db/top_level_KSJ.(8).cnf.cdb
db/top_level_KSJ.(8).cnf.hdb
db/top_level_KSJ.(9).cnf.cdb
db/top_level_KSJ.(9).cnf.hdb
db/top_level_KSJ.cbx.xml
db/top_level_KSJ.cmp.rdb
db/top_level_KSJ.cmp_merge.kpt
db/top_level_KSJ.db_info
db/top_level_KSJ.eco.cdb
db/top_level_KSJ.eds_overflow
db/top_level_KSJ.fnsim.cdb
db/top_level_KSJ.fnsim.hdb
db/top_level_KSJ.fnsim.qmsg
db/top_level_KSJ.hier_info
db/top_level_KSJ.hif
db/top_level_KSJ.lpc.html
db/top_level_KSJ.lpc.rdb
db/top_level_KSJ.lpc.txt
db/top_level_KSJ.map.bpm
db/top_level_KSJ.map.cdb
db/top_level_KSJ.map.ecobp
db/top_level_KSJ.map.hdb
db/top_level_KSJ.map.kpt
db/top_level_KSJ.map.logdb
db/top_level_KSJ.map.qmsg
db/top_level_KSJ.map_bb.cdb
db/top_level_KSJ.map_bb.hdb
db/top_level_KSJ.map_bb.logdb
db/top_level_KSJ.pre_map.cdb
db/top_level_KSJ.pre_map.hdb
db/top_level_KSJ.ram0_memory_e411fb78.hdl.mif
db/top_level_KSJ.ram0_reg_file_c5668544.hdl.mif
db/top_level_KSJ.rtlv.hdb
db/top_level_KSJ.rtlv_sg.cdb
db/top_level_KSJ.rtlv_sg_swap.cdb
db/top_level_KSJ.sgdiff.cdb
db/top_level_KSJ.sgdiff.hdb
db/top_level_KSJ.sim.cvwf
db/top_level_KSJ.sim.hdb
db/top_level_KSJ.sim.qmsg
db/top_level_KSJ.sim.rdb
db/top_level_KSJ.simfam
db/top_level_KSJ.sld_design_entry.sci
db/top_level_KSJ.sld_design_entry_dsc.sci
db/top_level_KSJ.syn_hier_info
db/top_level_KSJ.tis_db_list.ddb
db/wed.wsf
incremental_db/README
incremental_db/compiled_partitions/top_level_KSJ.root_partition.map.atm
incremental_db/compiled_partitions/top_level_KSJ.root_partition.map.dpi
incremental_db/compiled_partitions/top_level_KSJ.root_partition.map.hdbx
incremental_db/compiled_partitions/top_level_KSJ.root_partition.map.kpt