Het doel van dit labo is om uiteindelijk een werkende RISC-V processor te maken, ook al is het in een simpele vorm. In dit OPO gaan we de beschrijving uiteraard wel maken in VHDL.
Eén van de componenten die in iedere processor zit is een Arithmetic Logic Unit (ALU). Een ALU neemt 2 (of 1) input(s) en voert hier een bepaalde instructie mee uit. Deze instructie kan een logische operatie zijn zoals AND, OR, XOR,.. of een wiskundige operatie zoals een optelling of een verschil.
De ALU die gebruikt wordt in de RISC-V processor, biedt de mogelijkheid om 10 verschillende instructies uit te voeren. De operatie die uitgevoerd wordt, wordt omgeschreven als f(x,y).
f(x,y) = | Omschrijving |
---|---|
x+y | Het resultaat is de som van x en y |
x-y | Het resultaat is het verschil van x en y |
f(x,y) = | Omschrijving |
---|---|
x&y | Het resultaat is x AND y |
x|y | Het resultaat is x OR y |
x^y | Het resultaat is x XOR y |
x<<y | Het resultaat is x, y posities naar links geschoven en aangevuld met 0-en |
x>>y | Het resultaat is x, y posities naar rechts geschoven en aangevuld met 0-en |
x>>y | Het resultaat is x, y posities naar rechts geschoven (mét tekenbehoud) |
(x<y) | Het resultaat is 1 als x<y, anders 0 |
(x<y)U | Het resultaat is 1 als x<y, anders 0. X en y worden gezien als unsigned |