Differences

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

Link to this comparison view

ac-is:lab-ie:lab03 [2023/11/24 17:02]
ionut.pascal q
ac-is:lab-ie:lab03 [2023/11/24 20:15] (current)
ionut.pascal [Lab practice]
Line 5: Line 5:
   - Starting from the interface of **sequential_multiplier**,​ inplement a finite state machine that use the module **register** with different sizes. The implementation shall follow the next rules:   - Starting from the interface of **sequential_multiplier**,​ inplement a finite state machine that use the module **register** with different sizes. The implementation shall follow the next rules:
     * When the ''​write''​ signal is high, write each register (A and B) with the proper inputs;     * When the ''​write''​ signal is high, write each register (A and B) with the proper inputs;
-    * When the ''​execute''​ signal is high, the values from the input registers are extracted (read), execute the operation and save (write) the result in the corresponding register +    * When the ''​execute''​ signal is high, the values from the input registers are extracted (read), execute the operation and save (write) the result in the corresponding register; 
-    * When the ''​display''​ signal high, put the values at the output of the module (read the result) +    * When the ''​display''​ signal high, put the values at the output of the module (read the result); 
-    * The priorities are in order ''​write-execute-display''​ i.e. if ''​write''​ and ''​execute''​ are 1 in the same time, the ''​execute''​ signal is ignored and the module enters WRITE stage+    * The priorities are in order ''​write-execute-display''​ i.e. if ''​write''​ and ''​execute''​ are 1 in the same time, the ''​execute''​ signal is ignored and the module enters WRITE stage.
     * //Hint//: Study the connections between the modules.     * //Hint//: Study the connections between the modules.
     * //Hint//: Write and read can be controlled through ''​we''​ and ''​oe'';​ go again through lab2 exercises.     * //Hint//: Write and read can be controlled through ''​we''​ and ''​oe'';​ go again through lab2 exercises.
Line 13: Line 13:
  
 ==== Home assignment ===== ==== Home assignment =====
-  - (6p) Sequential ALU +  - (5pModify the **Sequential ALU** to allow both ADD and SUB operations. To enable this feature, add a new input port you can call it how you want it, let's say operation - which selects ​the operation ​that is performed in the EXECUTE stage. Add the proper stimuli in the _test file to execute both ADD and SUB on the same input values. 
-    ​(3p) Add the operation ​input to the module ​''​op'' ​and modify the scenario in order to exercise this new feature +    * //Hint//: Notice ​the ''​alu'' ​module; it has already a operation port inside. The new port shall only be connected. 
-    - (3pExplain ​the given test scenario ​and answer ​the questions +    ​* //Hint//: You can notice the behavior of the state machine by adding some more stimuli sets, to see how your state machine behaves - specially when more than one command is triggered in the same time. 
-  Pedestrian Semaphore ​ +  ​- (5pImplement a pedestrian semaphore FSM. For the pedestrians,​ the timing is: 60 timeunits for the red colour, 30 timeunits for the green colour. Analyse the state machine from the picture below. 
-  +    * //Hint//: There are two steps of the implementation:​ instantate ​and connect ​the modules between them in the //​trecere.v//​ file and implement the functionality in //​trecere_fsm.v//​ 
 +    * //Hint//: Analyse the counter.v implementation. It resembles the counter implemented in lab2, however it is not the same. You must use it in your implementation. 
 +    * //Hint//: Search for ToDo's inside  
 +{{:ac-is:​lab-ie:​trecere_iec.png?​700|}} 
 + 
 +{{:​ac-is:​lab-ie:​semaphore_iec.png?​700|}}
 ===== Resources ===== ===== Resources =====
   * {{ac-is:​lab-ie:​lab3_xilinx.zip|XILINX lab files}}   * {{ac-is:​lab-ie:​lab3_xilinx.zip|XILINX lab files}}
ac-is/lab-ie/lab03.1700838177.txt.gz · Last modified: 2023/11/24 17:02 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