Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

4. Cvičení - Zadání semestrálního projektu


První semestrání projekt - odevzdání v 10. týdnu

Kompletní znění zadání prvního semestrálního projektu: 01_semester_project.pdf

Hodnocení projektu:

Počet bodů
Přepis simulovaného programu do jazyka symbolických adres 1
Vyjádření programu v strojovém kódu s ukázkou kódování alespoň dvou instrukcí 1
Popis systému v jazyce Verilog 4
Simulace (ověření funkčnosti návrhu) 3
Úprava, komentáře k řešení a popis činnosti systému 1
Celkem: 10


Pro úspěšné odevzdání projektu je potřeba dosáhnout alespoň 6 bodů (včetně).


Je možné používat překladač jazyka C mips-elf-gcc, program pro překlad jazyka symbolických adres mips-elf-as a program pro relokaci a skládaní aplikací (linker) mips-elf-ld.

Manuálně stáhnout balíčky binutils-mips-elf_2.20.51-1_amd64.deb a gcc-mips-elf_4.4.4-1_amd64.deb

Provést instalaci

sudo dpkg -i Downloads/binutils-mips-elf_2.20.51-1_amd64.deb
sudo dpkg -i Downloads/gcc-mips-elf_4.4.4-1_amd64.deb


Užitečné odkazy:
QtSpim - MIPS Simulator: http://pages.cs.wisc.edu/~larus/spim.html
MipsIt - MIPS Simulator: http://www.bostream.nu/mats.brorsson/mipsit/
Compiler: https://sites.google.com/site/lccretargetablecompiler/
Compiler Win: http://code.google.com/p/micron-sysv3/downloads/detail?name=mips-elf-gcc.rar&can=2&q=
MIPS Environment over Cygwin on Windows: http://faculty.cs.tamu.edu/bettati/Courses/410/2006C/Projects/gxemulcygwin.html
MIPS Cross-compiler: https://eng.ucmerced.edu/soe/computing/il/collaboratory/collab-software/compilers-and-interpreters/mips-cross-compiler-package


Můžete použít následující popis pro datovou a instrukční paměť (pro naše účely postačující) - berte jako inspiraci:

module dmem (input clk, we,
             input [31:0] a, wd,
             output [31:0] rd);
 
  reg [31:0] RAM[127:0];
 
  assign rd = RAM[a[7:2]]; // word aligned
 
  always@(posedge clk)
    if(we) RAM[a[31:2]] <= wd;
 
endmodule

module imem (input [5:0] a,
             output [31:0] rd);
 
  // The "a" is the address of instruction to fetch, what
  // for our purpose can be taken from ProgramCounter[7:2]
 
  reg [31:0] RAM[127:0];
 
  initial  $readmemh ("memfile.dat",RAM);
 
  assign rd <= RAM[a]; // word aligned
 
endmodule


courses/b4m35pap/tutorials/04/start.txt · Last modified: 2017/11/03 13:36 by pisa