[컴퓨터 구조] MIPS single-cycle 구현(Quarters II, Verilog 코드 이용)
*석*
다운로드
장바구니
소개글
MIPS Single cycle 구현입니다. Quarters II 9.0 버전으로 작성되었고 verilog 코드 이용한것입니다. 영문으로 작성된 레포트가 포함되어 있습니다.
쿼터스에서 실행시 유의점
Assignments 에서 Settings 으로 들어감 -> Simulator Settings 에서 Simulation mode : Functional 로 바꿈
이 코드는 다음 인스트럭션들을 구현한 것입니다.
1. ADD R1, R2, R3
2. ADDI R1, R2, 17
3. SUB R3, R1, R4
4. MULT R3, R1, R2
5. AND R7, R5, R6
6. OR R8, R5, R6
7. SLT R1, R7 ,R8
8. SLT R2, R8, R7
9. BEQ R1, R2, 0x0000379C
10. BEQ R1, R1, 0x0000379C
11. SW R3, 20(R4)
12. LW R1, 20(R4)
13. J 0xA120379C
14. ADD R3, R2, R1
15. SUB R4, R3, R1
레지스터 초기값(vector wave 에서 들어감)
R1 = 4
R2 = 3
R3 = 5
R4 = 4
R5 = 25
R6 = 11
PC(Program counter) = 0xA0000000
각 레지스터의 initial value 값과 인스트럭션 시퀀스는 vector wave 파일에서 들어갑니다.
모듈 이름이나 파일 이름등은 함부로 바꾸시면 안됩니다.
이외에도 영문으로 작성된 레포트가 포함되어 있습니다.
컴파일 실행환경
실행 방법 1. open files 에서 파일 형식을 Project files 로 바꾼 후 프로젝트 파일을 오픈 2. 위 유의점에서 언급했듯이 Simulation mode : Functional 로 바꿔야 합니다. 3. start simulation 을 실행시키면 시뮬레이션 결과를 vector form으로 보실 수 있습니다. 4. 초기값을 바꾸고 싶으시면 파일 열기에서 vector/waveform 형식으로 바꾸신 뒤 나오는 파일을 연 다음에 wave_form 에서 INIT_VALUE 부분을 바꿔주시면 됩니다. 압축파일에 영문 레포트도 포함되어 있습니다.본문내용
※ Single-Cycle MIPS ImplementationThe purpose of this project is to learn the basic structure and operation of the single-cycle MIPS processor. So the single-cycle has to be implemented in this project. Single-cycle form is as following.
The disconnected single-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 single-cycle, eleven instructions are given and must be operated in this single-cycle. Eleven instructions are add, sub, and, or, slt, sw, lw, beq, addi, jump, mult. To operate these instructions, Some special 13 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 single-cycle.
압축파일 내 파일목록
addsum.bsf
addsum.v
addsum.v.bak
alu.bsf
alu.v
alu.v.bak
alu_ctl.bsf
alu_ctl.v
alu_ctl.v.bak
control_single.bsf
control_single.v
control_single.v.bak
mem32.bsf
mem32.v
multiplier.bsf
multiplier.v
PC.bsf
PC.v
pc4addshift.bsf
pc4addshift.v
pcadd.bsf
pcadd.v
pcadd.v.bak
reg_file.bsf
reg_file.v
reg_file.v.bak
Report.hwp
shiftleft2.bsf
shiftleft2.v
shiftpc.bsf
shiftpc.v
shiftpc.v.bak
sign_extend.bsf
sign_extend.v
sign_extend.v.bak
top_level_KSJ.asm.rpt
top_level_KSJ.bdf
top_level_KSJ.done
top_level_KSJ.fit.rpt
top_level_KSJ.fit.summary
top_level_KSJ.flow.rpt
top_level_KSJ.map.rpt
top_level_KSJ.map.smsg
top_level_KSJ.map.summary
top_level_KSJ.pin
top_level_KSJ.pof
top_level_KSJ.qpf
top_level_KSJ.qsf
top_level_KSJ.qws
top_level_KSJ.sim.rpt
top_level_KSJ.sof
top_level_KSJ.tan.rpt
top_level_KSJ.tan.summary
top_level_KSJ.vwf
top_level_KSJ_assignment_defaults.qdf
db/altsyncram_9te1.tdf
db/mult_b011.tdf
db/mux_0oc.tdf
db/mux_5oc.tdf
db/mux_bpc.tdf
db/mux_kpc.tdf
db/mux_rnc.tdf
db/prev_cmp_top_level_KSJ.asm.qmsg
db/prev_cmp_top_level_KSJ.fit.qmsg
db/prev_cmp_top_level_KSJ.map.qmsg
db/prev_cmp_top_level_KSJ.qmsg
db/prev_cmp_top_level_KSJ.sim.qmsg
db/prev_cmp_top_level_KSJ.tan.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.(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.asm.qmsg
db/top_level_KSJ.asm_labs.ddb
db/top_level_KSJ.cbx.xml
db/top_level_KSJ.cmp.bpm
db/top_level_KSJ.cmp.cdb
db/top_level_KSJ.cmp.ecobp
db/top_level_KSJ.cmp.hdb
db/top_level_KSJ.cmp.kpt
db/top_level_KSJ.cmp.logdb
db/top_level_KSJ.cmp.rdb
db/top_level_KSJ.cmp.tdb
db/top_level_KSJ.cmp0.ddb
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.fit.qmsg
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_mem32_70ac2f9.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.tan.qmsg
db/top_level_KSJ.tis_db_list.ddb
db/top_level_KSJ_global_asgn_op.abo
db/wed.wsf
incremental_db/README
incremental_db/compiled_partitions/top_level_KSJ.root_partition.cmp.atm
incremental_db/compiled_partitions/top_level_KSJ.root_partition.cmp.dfp
incremental_db/compiled_partitions/top_level_KSJ.root_partition.cmp.hdbx
incremental_db/compiled_partitions/top_level_KSJ.root_partition.cmp.kpt
incremental_db/compiled_partitions/top_level_KSJ.root_partition.cmp.logdb
incremental_db/compiled_partitions/top_level_KSJ.root_partition.cmp.rcf
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
addsum.v
addsum.v.bak
alu.bsf
alu.v
alu.v.bak
alu_ctl.bsf
alu_ctl.v
alu_ctl.v.bak
control_single.bsf
control_single.v
control_single.v.bak
mem32.bsf
mem32.v
multiplier.bsf
multiplier.v
PC.bsf
PC.v
pc4addshift.bsf
pc4addshift.v
pcadd.bsf
pcadd.v
pcadd.v.bak
reg_file.bsf
reg_file.v
reg_file.v.bak
Report.hwp
shiftleft2.bsf
shiftleft2.v
shiftpc.bsf
shiftpc.v
shiftpc.v.bak
sign_extend.bsf
sign_extend.v
sign_extend.v.bak
top_level_KSJ.asm.rpt
top_level_KSJ.bdf
top_level_KSJ.done
top_level_KSJ.fit.rpt
top_level_KSJ.fit.summary
top_level_KSJ.flow.rpt
top_level_KSJ.map.rpt
top_level_KSJ.map.smsg
top_level_KSJ.map.summary
top_level_KSJ.pin
top_level_KSJ.pof
top_level_KSJ.qpf
top_level_KSJ.qsf
top_level_KSJ.qws
top_level_KSJ.sim.rpt
top_level_KSJ.sof
top_level_KSJ.tan.rpt
top_level_KSJ.tan.summary
top_level_KSJ.vwf
top_level_KSJ_assignment_defaults.qdf
db/altsyncram_9te1.tdf
db/mult_b011.tdf
db/mux_0oc.tdf
db/mux_5oc.tdf
db/mux_bpc.tdf
db/mux_kpc.tdf
db/mux_rnc.tdf
db/prev_cmp_top_level_KSJ.asm.qmsg
db/prev_cmp_top_level_KSJ.fit.qmsg
db/prev_cmp_top_level_KSJ.map.qmsg
db/prev_cmp_top_level_KSJ.qmsg
db/prev_cmp_top_level_KSJ.sim.qmsg
db/prev_cmp_top_level_KSJ.tan.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.(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.asm.qmsg
db/top_level_KSJ.asm_labs.ddb
db/top_level_KSJ.cbx.xml
db/top_level_KSJ.cmp.bpm
db/top_level_KSJ.cmp.cdb
db/top_level_KSJ.cmp.ecobp
db/top_level_KSJ.cmp.hdb
db/top_level_KSJ.cmp.kpt
db/top_level_KSJ.cmp.logdb
db/top_level_KSJ.cmp.rdb
db/top_level_KSJ.cmp.tdb
db/top_level_KSJ.cmp0.ddb
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.fit.qmsg
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_mem32_70ac2f9.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.tan.qmsg
db/top_level_KSJ.tis_db_list.ddb
db/top_level_KSJ_global_asgn_op.abo
db/wed.wsf
incremental_db/README
incremental_db/compiled_partitions/top_level_KSJ.root_partition.cmp.atm
incremental_db/compiled_partitions/top_level_KSJ.root_partition.cmp.dfp
incremental_db/compiled_partitions/top_level_KSJ.root_partition.cmp.hdbx
incremental_db/compiled_partitions/top_level_KSJ.root_partition.cmp.kpt
incremental_db/compiled_partitions/top_level_KSJ.root_partition.cmp.logdb
incremental_db/compiled_partitions/top_level_KSJ.root_partition.cmp.rcf
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