Differences

This shows you the differences between two versions of the page.

Link to this comparison view

apm:laboratoare:02:exercitii [2024/10/12 14:51]
laura_elena.nicoara
apm:laboratoare:02:exercitii [2025/10/21 20:23] (current)
stefan.maruntis
Line 12: Line 12:
 Dacă implementați complet instrucțiunile necesare, în urma simulării //​checker_view.v//​ toate semnalele vor fi verzi. Codul se află într-o memorie ROM, așadar pentru orice schimbare în cod tot designul trebuie resimulat. Dacă implementați complet instrucțiunile necesare, în urma simulării //​checker_view.v//​ toate semnalele vor fi verzi. Codul se află într-o memorie ROM, așadar pentru orice schimbare în cod tot designul trebuie resimulat.
 </​note>​ </​note>​
- 
-<​hidden>​ 
-**Task 0** (1p) Inspectați scheletul laboratorului,​ identificați modulele din schema de mai sus și găsiți răspunsuri pentru următoarele întrebări:​ 
- 
-  - (0.2p) Cum se numește parametrul ce definește lățimea instrucțiunilor (Nr. biți) ? 
-  - (0.2p) Care e lățimea registrelor ? (Nr. bytes) 
-  - (0.2p) Câți bytes poate stoca memoria rom folosită pentru instrucțiuni ? 
-  - (0.2p) Cu se stagiu al pipeline-ului se ocupă ''​alu.v''​ ? 
-  - (0.2p) Care este valoarea inițială a registrului r4 ?  
-</​hidden>​ 
- 
  
 **Task 00**  Descărcați {{:​apm:​laboratoare:​02:​lab02.zip| scheletul de laborator}}. **Task 00**  Descărcați {{:​apm:​laboratoare:​02:​lab02.zip| scheletul de laborator}}.
  
-Urmatoarele ​task-uri ​necesita modificari in mai multe fisiere ​din arhivaCautati ​TODO-urile din fisierele ​**decode_unit.v** (pentru etapa de ID), **alu.v** (pentru etapa de EXEC), **control_unit.v** (pentru etapa de WB).+Următoarele ​task-uri ​necesită modificări în mai multe fișiere ​din arhivăCăutați ​TODO-urile din fișierele ​**decode_unit.v** (pentru etapa de ID), **alu.v** (pentru etapa de EXEC), **control_unit.v** (pentru etapa de WB).
  
 **Task 01** (1p) Implementați instrucțiunea NOP. **Task 01** (1p) Implementați instrucțiunea NOP.
  
 **Task 02** (1p) Implementați instrucțiunea NEG. **Task 02** (1p) Implementați instrucțiunea NEG.
- 
-<​hidden>​ 
-<​note>​Pentru instrucțiunea NEG, flag-ul H se calculează astfel: H = R3 + ~Rd3 (În [[http://​ww1.microchip.com/​downloads/​en/​devicedoc/​atmel-0856-avr-instruction-set-manual.pdf|AVR Instruction Set Manual]] e un typo.)</​note>​ 
-Update: manualul ISA AVR folosit in laboratoare e updatat - https://​ocw.cs.pub.ro/​courses/​_media/​apm/​laboratoare/​atmel-0856-avr-instruction-set-manual.pdf 
-</​hidden>​ 
  
 **Task 03** (2p) Implementați instrucțiunea ADD. **Task 03** (2p) Implementați instrucțiunea ADD.
Line 44: Line 28:
  
 **Task 06** (2p) Implementați instrucțiunea OR. **Task 06** (2p) Implementați instrucțiunea OR.
 +
 +<note important>​
 +
 +Pentru instrucțiunile care nu modifică în mod explicit valoarea unui bit din registrul SREG, acel bit trebuie setat pe 0!
 +
 +Mai exact:
 +
 +  * Pentru NOP, **toți biții** registrului SREG trebuie setati pe 0
 +  * Pentru toate celelalte instructiuni,​ **biții I** (Interrupt) si **T** (Timer) trebuie setați pe 0
 + 
 +</​note>​
apm/laboratoare/02/exercitii.1728733885.txt.gz · Last modified: 2024/10/12 14:51 by laura_elena.nicoara
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0