<aside> πŸ’― This page is live on NOTION, click the following link for better reading experience

https://respected-llama-d66.notion.site/Computer-Organization-Project-Documentation-CPU-Design-02267c04d8cc42b2948275ba1ce84377?pvs=4

</aside>

https://github.com/naivecynics/Computer_Orgnization_Project.git


0. Directory


1. Developers Information


(1οΌ‰Contribution Ratio

WYT 吴雨潼 12213012 3Mker 33.3% QKT η§¦ζΊι€š 12212606 IRONMAN1024 33.3% HLC ι»„ζœ—εˆ 12213009 naivecynics 33.3%

(2οΌ‰Directory Catalog

.(git)
β”œβ”€β”€ README.md
β”œβ”€β”€ .gitignore                  // ignore ip core configuration files
β”‚                               // instruction PDFs
β”œβ”€β”€ CPUε€§δ½œδΈšζ΅‹θ―•θ―΄ζ˜Ž.pdf
β”œβ”€β”€ Computer Orgnization倧作业-cs202-release.pdf
β”œβ”€β”€ Ego1_UserManual_v2.2.pdf
β”œβ”€β”€ Minisysη‘¬δ»Άζ‰‹ε†Œ1.1.pdf
β”œβ”€β”€ RISC-V-Reference-Data.pdf
β”‚
β”œβ”€β”€ Schematic.png               // Schematic of the project
β”œβ”€β”€ Design_DIagram.jpg          // Reference design diagram
β”‚
β”œβ”€β”€ constrs_1                   
β”‚   └── new
β”‚       β”œβ”€β”€ eg01.xdc            // eg01 constrs file
β”‚       └── minisys.xdc         // minisys constrs file
β”œβ”€β”€ new
β”‚   β”‚                           // cpu core module
β”‚   β”œβ”€β”€ ALU.v
β”‚   β”œβ”€β”€ cpu_top.v
β”‚   β”œβ”€β”€ data_memory.v
β”‚   β”œβ”€β”€ datapath.v
β”‚   β”œβ”€β”€ ecall_controller.v
β”‚   β”œβ”€β”€ imm_gen.v
β”‚   β”œβ”€β”€ instr_decoder.v
β”‚   β”œβ”€β”€ main_controller.v
β”‚   β”œβ”€β”€ parameters.v
β”‚   β”œβ”€β”€ pc.v
β”‚   β”œβ”€β”€ reg_file.v
β”‚   β”‚   
β”‚   β”œβ”€β”€ hardware_top            // hardware top module
β”‚   β”‚   β”œβ”€β”€ PS2.v
β”‚   β”‚   β”œβ”€β”€ debounce.v
β”‚   β”‚   β”œβ”€β”€ hardware_top.v
β”‚   β”‚   β”œβ”€β”€ keyboard_debouncer.v
β”‚   β”‚   β”œβ”€β”€ keypad_minisys.v
β”‚   β”‚   β”œβ”€β”€ process_keyboard.v
β”‚   β”‚   └── tube.v
β”‚   β”‚   
β”‚   β”œβ”€β”€ assemble                // assemble test code
β”‚   β”‚   β”œβ”€β”€ lastest.asm
β”‚   β”‚   β”œβ”€β”€ scene1.asm
β”‚   β”‚   β”œβ”€β”€ scene2.asm
β”‚   β”‚   └── text_to_coe.py
β”‚   β”‚   
β”‚   β”œβ”€β”€ bin_to_coe              // final bitstream
β”‚   β”‚   β”œβ”€β”€ a_tailed_risc-v_CPU_CSE.bit
β”‚   β”‚   β”œβ”€β”€ final_1.0.bit
β”‚   β”‚   β”œβ”€β”€ test1.bit
β”‚   β”‚   └── test2.bit
β”‚   β”‚   
β”‚   β”œβ”€β”€ tools                   // toolchains
β”‚   β”‚   β”œβ”€β”€ bin_to_coe.py       // any base to coe 
β”‚   β”‚   β”œβ”€β”€ coe_to_uart_txt.py  // coe to uart txt
β”‚   β”‚   β”œβ”€β”€ riscv32_to_coe.sh   // linux riscv32 to coe
β”‚   β”‚   β”œβ”€β”€ scene1.asm
β”‚   β”‚   β”œβ”€β”€ scene1.coe
β”‚   β”‚   β”œβ”€β”€ scene1.txt
β”‚   β”‚   β”œβ”€β”€ scene2.asm
β”‚   β”‚   β”œβ”€β”€ scene2.coe
β”‚   β”‚   β”œβ”€β”€ scene2.txt
β”‚   β”‚   β”œβ”€β”€ scene2_keyboard.asm
β”‚   β”‚   β”œβ”€β”€ scene2_keyboard.coe
β”‚   β”‚   └── scene2_keyboard.txt
β”‚   β”‚   
β”‚   └── uart                    // uart tools and txt
β”‚       β”œβ”€β”€ GenUBit_RISC_V.bat
β”‚       β”œβ”€β”€ UartAssist.exe
β”‚       β”œβ”€β”€ rars2coe.exe
β”‚       β”œβ”€β”€ scene1.txt
β”‚       β”œβ”€β”€ scene2.txt
β”‚       └── scene2_keyboard.txt
└── sim_1                       // simulation files
β”‚   └── new
β”‚       β”œβ”€β”€ controller_tbc.v
β”‚       β”œβ”€β”€ cpuclk_tbc.v
β”‚       β”œβ”€β”€ keypad_tbc.v
β”‚       β”œβ”€β”€ top_tbc.v
β”‚       └── tube_tbc.v
└── END

2. Development Github Log


$ git log --graph --pretty=format:"%h - %an, %ad : %s" --abbrev-commit --date=short

* cfbbe33 - naivecynics, 2024-06-03 : final
* 0b85c8c - naivecynics, 2024-06-03 : final wind up
* 9ad3ec2 - IRONMAN1024, 2024-06-02 : update
* a19269c - naivecynics, 2024-06-02 : ecall +1
* c6c2c0b - IRONMAN1024, 2024-05-27 : qkt111
* 7178d68 - IRONMAN1024, 2024-06-01 : uart_top
* f5d6612 - naivecynics, 2024-06-01 : keyboard debug
* b10839c - 3Mker, 2024-05-31 : update
* 61ebb2d - Langchu Huang, 2024-05-31 : GNU toolchain added
* f7529a5 - 3Mker, 2024-05-27 : update
* d7eefa7 - 3Mker, 2024-05-27 : update
* 818ab03 - naivecynics, 2024-05-27 : block ecall signal
* 5ec146b - 3Mker, 2024-05-27 : update
* e0b856e - 3Mker, 2024-05-24 : wytnew
* 6b8039e - 3Mker, 2024-05-24 : wyt
* 5f8d2a8 - naivecynics, 2024-05-27 : update so many things
* 6aa1991 - naivecynics, 2024-05-24 : all
* 5f49526 - naivecynics, 2024-05-22 : beq_debug_passed
* 7903d8e - naivecynics, 2024-05-22 : hlc_pc_ecall
*   79de483 - 3Mker, 2024-05-22 : Merge branch 'master'
|\\  
| * 34583b7 - naivecynics, 2024-05-19 : update
| * eefa048 - naivecynics, 2024-05-19 : hardware drive
* | ef86eef - 3Mker, 2024-05-22 : wyt update
|/  
* 044aab3 - 3Mker, 2024-05-19 : preliminary
* 803806d - IRONMAN1024, 2024-05-17 : modified
* 7ffa890 - IRONMAN1024, 2024-05-15 : update
* 3159544 - IRONMAN1024, 2024-05-15 : i_fetch
*   9f38ff1 - 3Mker, 2024-05-15 : Merge branch 'master'
|\\  
| * 4ed4f12 - Langchu Huang, 2024-05-15 : debug: executable
| * 429350b - Langchu Huang, 2024-05-15 : add gitignore
| * d696e3c - Langchu Huang, 2024-05-13 : supplement
| * aae18a1 - naivecynics, 2024-05-13 : 1.ip setting 2. compile passed 3. add instr mem
* | e58b73e - 3Mker, 2024-05-15 : asm
* | 2fe8b4c - 3Mker, 2024-05-15 : add asm sample
|/  
*   0530bc9 - 3Mker, 2024-05-12 : Merge branch 'master' 
|\\  
| * 209217f - IRONMAN1024, 2024-05-12 : datapath finish!
| * e65fdf4 - IRONMAN1024, 2024-05-12 : PC
* | 603b2dc - 3Mker, 2024-05-12 : update_decoder
|/  
* 0a1e25c - naivecynics, 2024-05-12 : 7tube
* 176f4c7 - naivecynics, 2024-05-12 : update
* f84d546 - naivecynics, 2024-05-12 : updatae
*   4f75181 - 3Mker, 2024-05-12 : Merge branch 'master' 
|\\  
| * 75b0698 - IRONMAN1024, 2024-05-07 : ALU
* | 79f601c - 3Mker, 2024-05-12 : update
|/  
* ab2d3d2 - naivecynics, 2024-05-06 : ip core
* ba0e660 - naivecynics, 2024-04-29 : add readme
* 236aa23 - naivecynics, 2024-04-29 : delete trash
* 138b17c - naivecynics, 2024-04-29 : previous cpu design

3. CPU Architecture Design


(1οΌ‰CPU Information Card

CPUζ—Άι’Ÿ CPI CPUε‘¨ζœŸ Pipeline
23MHz 1 ε•ε‘¨ζœŸ nonsupport