Skip to content

Pathfinder1996/computer-architecture-homework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Computer Organization and Design RISC-V

作業學習內容如下:

  1. 使用 RISC-V assembly 實現簡單的 quick sort (Hoare’s partition)。

  2. 使用 Verilog 實現部分指令的 RV64I RISC-V single-cycle processor。

🔗 1131 NTU CSIE Computer Architecture Programming Homework

  • 課程代碼: CSIE3340(三校聯盟課程代碼: 3T1684701)

  • 授課老師: Prof. Shih-Hao Hung(洪士灝 教授)

  • 課程用書: Computer Organization and Design Risc-V Edition: The Hardware Software Interface, by David A. Patterson and John L. Hennessy

📁 壓縮檔內容

🚀 Homework 2 如何使用 (點擊縮圖可放大)

Homework 2 Description Input Output
使用 RISC-V assembly (RV64I) 實現簡單的Quick Sort (Hoare partition),了解組合語言中的陣列與指標,以及遞迴呼叫時堆疊區應該保存的上下文資訊。

資料夾結構如下:

homework_2
├── main.s
├── rars-1.7.jar
└── sort.s

從右側連結 點此下載 下載 RARS 1.7

使用以下指令執行程式:

java -jar rars-1.7.jar rv64 sm main.s sort.s

🚀 Homework 3 如何使用 (點擊縮圖可放大)

Homework 3 Description Output 1 (ALU Wave) Output 2 (Register Wave)
使用 Verilog 設置verilog開發環境,學習基礎verilog語法,按照作業規範實現ALU Design與RISC-V Register File Design,並寫testbench測試邏輯是否正確。

資料夾結構如下:

homework_3
├── ALU.v
├── ALU_tb.v
├── Registers.v
└── Registers_tb.v

設置 verilog environment:

右側連結下載 Icarus Verilog 與 GTKWave 點此下載

使用以下指令執行:

iverilog -o alu ALU.v ALU_tb.v
vvp alu
gtkwave ALU.vcd

以及:

iverilog -o reg Registers.v Registers_tb.v
vvp reg
gtkwave Registers.vcd

🚀 Homework 4 如何使用 (點擊縮圖可放大)

Homework 4 Description CPU Data Path Input Output (CPU Wave)
使用 Verilog 實現部分指令的RV64I RISC-V single-cycle processor,參考The RISC-V Instruction Set Manual並設計出與作業規範相符的single-cycle processor,最後通過助教給的testbench。 instruction.txt

資料夾結構如下:

homework_4
├── ALU.v
├── ALUControl.v
├── CPU.v
├── ImmGen.v
├── instruction.txt
├── Instruction_Memory.v
├── PC.v
├── Registers.v
└── Testbench.v

使用以下指令執行:

iverilog -o CPU.out *.v
vvp CPU.out
gtkwave CPU.vcd

About

1131 NTU CSIE Computer Architecture Homework

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published