Differences

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

Link to this comparison view

ac-is:teme-ie:course_project [2026/01/07 19:10]
ionut.pascal [Grading]
ac-is:teme-ie:course_project [2026/01/17 21:40] (current)
ionut.pascal [MARIE - Extend the ISA]
Line 1: Line 1:
 ====== MARIE - Extend the ISA ====== ====== MARIE - Extend the ISA ======
  
-  * Deadline: **17.01.2026**,​ **23:59**+  * Deadline: ​<del>**17.01.2026**,​ **23:​59**</​del>​ **18.01.2026**,​ **11:59**
   * Publish date: **07.01.2026**   * Publish date: **07.01.2026**
-  * Last update: **07.01.2026, ​19:05**+  * Last update: **17.01.2026, ​21:35**
   * History:   * History:
     * 07.01.2026, 19:05     * 07.01.2026, 19:05
       * Assignment published, without the code skeleton and associated tests.       * Assignment published, without the code skeleton and associated tests.
 +    * 14.01.2026, 17:05
 +      * Update the skeleton and provide sanity tests for each instruction;​ Add flags port in the ''​control_unit.v'';​ use it for SkipCond
 +      * Update the implementation section with testing istructions
 +    * 17.01.2026, 21:35
 +      * Typo found in RAM.v for LoadI testcase
 +      * Increase deadline
 +<note important>​**There is no fix provided in skeleton!** Please do a local change as suggested on the forum!</​note>​
 +
  
 ===== Objectives ===== ===== Objectives =====
Line 26: Line 34:
  
  
-===== Implementation =====+===== Implementation ​& Testing=====
 The file to be modified is ''​control_unit.v''​. Several distinct states must be introduced for each instruction to achieve the required functionality. The micro-operations outlined in the simulator should be used as a guide. Each micro-operation should be associated with its own separate state. The file to be modified is ''​control_unit.v''​. Several distinct states must be introduced for each instruction to achieve the required functionality. The micro-operations outlined in the simulator should be used as a guide. Each micro-operation should be associated with its own separate state.
  
 <note important>​In the simulator, you may begin with a basic example. After assembling and executing the program in micro-step mode, you will be able to observe each instruction being carried out step-by-step. Your implementation may follow it!</​note>​ <note important>​In the simulator, you may begin with a basic example. After assembling and executing the program in micro-step mode, you will be able to observe each instruction being carried out step-by-step. Your implementation may follow it!</​note>​
  
-{{ :​ac-is:​teme-ie:​jns.jpg?​link&​700 |}}+{{ :​ac-is:​teme-ie:​jns.jpg?​link&​700 | RTN instruction description using the simulator}} 
 + 
 +For validation purposes, multiple tests were developed to ensure the correctness of the implementation. Test 0 runs by default and is expected to pass. When implementing a specific instruction,​ switch to the corresponding ''​define''​. Each test includes both previously implemented instructions and the instruction under test; therefore, the tasks are independent and have no dependencies on one another. 
 + 
 +<​code>​ 
 +    `define test_legacy ​  ​0 ​                //​legacy test for all the lab implemented instructions 
 +    `define test_subst ​   1                 //​simple test for Subst 
 +    `define test_jns ​     2                 //​simp test for JNS 
 +    `define test_loadI ​   3                 //​simp test for LoadI 
 +    `define test_loadImmi 4                 //​simp test for LoadImmi 
 +    `define test_skipCond 5                 //​simp test for SkipCond 
 +     
 +    parameter test_scenario = `test_legacy;​ //Change the desired test here 
 +</​code>​ 
 + 
 +After the test completes, the first indication of your implementation’s correctness is in the log message (see the images below). If the test passes, great job ^_^ ! If the test fails, debug it step by step by analyzing the waveform and comparing it with the assembly program. The ''​.asm''​ instructions are available in the ''​ram.v''​ file; load them into the MARIE simulator and run them for reference. 
 + 
 +{{ :​ac-is:​teme-ie:​pass_message.jpg?​nolink&​700 | Pass Messaage}} 
 + 
 +{{ :​ac-is:​teme-ie:​fail_message.jpg?​nolink&​700 | Fail Messaage}}
 ===== Notes ===== ===== Notes =====
  
Line 63: Line 90:
   * -1.0 pts.:  incorrect using of continuous assignments ( assign ), procedural blocking ( = ) and non-blocking ( <= ) assignments;​   * -1.0 pts.:  incorrect using of continuous assignments ( assign ), procedural blocking ( = ) and non-blocking ( <= ) assignments;​
   * -0.2 pts.:  other generic implementation issues (/issue);   * -0.2 pts.:  other generic implementation issues (/issue);
-  * -0.1 pts.:  useless code comments.+  * -0.1 pts.:  useless code comments
 +  * +0.5 pts.:  bonus for original implementation.
  
 Even if the test(s) are not passing, each instruction may account for up to 25% of it's associated points if you clearly explain he underlying approach in the README file. The submitted code **must compile successfully**. Even if the test(s) are not passing, each instruction may account for up to 25% of it's associated points if you clearly explain he underlying approach in the README file. The submitted code **must compile successfully**.
  
 +The final score will be scaled in the Grade section according to the weighting defined at the beginning of the course.
 ===== Recourses ===== ===== Recourses =====
   * **MARIE Simulator** ​         - [[https://​marie.js.org |MARIE Sim ]]   * **MARIE Simulator** ​         - [[https://​marie.js.org |MARIE Sim ]]
 +  * **VIVADO Project Files** - {{:​ac-is:​teme-ie:​proj_skel.zip| skel_vivado}}
  
 <ifauth @ac-is> <ifauth @ac-is>
-**VIVADO Project Files** - {{:​ac-is:​teme-ie:​MARIEproject_vivado.zip| skel_vivado}}+
 </​ifauth>​ </​ifauth>​
 ===== Appendix ===== ===== Appendix =====
ac-is/teme-ie/course_project.1767805843.txt.gz · Last modified: 2026/01/07 19:10 by ionut.pascal
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