Differences

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

Link to this comparison view

soc:laboratoare:04:dfa_skel [2024/03/10 22:20]
maria_teona.olteanu
soc:laboratoare:04:dfa_skel [2026/03/22 16:41] (current)
robert_fabian.tudor
Line 5: Line 5:
     // Ieșiri     // Ieșiri
     // ------------------------------------------------------------     // ------------------------------------------------------------
-    output wire Output ​,+    output wire o_w_out ​,
     // ------------------------------------------------------------     // ------------------------------------------------------------
     // Intrări     // Intrări
     // ------------------------------------------------------------     // ------------------------------------------------------------
-    input wire Clock +    input wire i_w_clk ​
-    input wire Reset +    input wire i_w_reset ​
-    input wire A , +    input wire i_w_in ​,
-    input wire B ,+
     // ------------------------------------------------------------     // ------------------------------------------------------------
     );     );
Line 19: Line 18:
     // Codificarea stărilor     // Codificarea stărilor
     // --------------------------------------------------------------------     // --------------------------------------------------------------------
-    localparam STATE_Initial = 3d0 , +    localparam STATE_Initial = 3'd0 , 
-    STATE_1 = 3d1 , +    STATE_1 = 3'd1 , 
-    STATE_2 = 3d2 , +    STATE_2 = 3'd2 , 
-    STATE_3 = 3d3 , +    STATE_3 = 3'd3 , 
-    STATE_4 = 3d4 , +    STATE_4 = 3'd4 , 
-    STATE_5_PlaceHolder = 3d5 , +    STATE_5_PlaceHolder = 3'd5 , 
-    STATE_6_PlaceHolder = 3d6 , +    STATE_6_PlaceHolder = 3'd6 , 
-    STATE_7_PlaceHolder = 3d7;+    STATE_7_PlaceHolder = 3'd7 ;
     // --------------------------------------------------------------------     // --------------------------------------------------------------------
  
Line 33: Line 32:
     // Regiștri pentru memorarea stărilor     // Regiștri pentru memorarea stărilor
     // --------------------------------------------------------------------     // --------------------------------------------------------------------
-    reg [2:0] CurrentState ​+    reg [2:0] l_r_currentState ​
-    reg [2:0] NextState ​;+    reg [2:0] l_r_nextState ​;
     // --------------------------------------------------------------------     // --------------------------------------------------------------------
  
Line 41: Line 40:
     // --------------------------------------------------------------------     // --------------------------------------------------------------------
     // ieșire pe 1 bit     // ieșire pe 1 bit
-    assign ​Output ​= ( CurrentState ​== STATE_4 );+    assign ​o_w_out ​= ( l_r_currentState ​== STATE_4 );
  
-    // ieșiri pe mai mulți biți (aici doar Status) 
-    always@ ( * ) begin 
-        Status = 3’b000 ; 
-        case ( CurrentState ) 
-            STATE_2 : begin 
-                Status = 3’b010 ; 
-            end 
-            STATE_3 : begin 
-                Status = 3’b011 ; 
-            end 
-        endcase 
-    end 
-    // -------------------------------------------------------------------- 
  
     // --------------------------------------------------------------------     // --------------------------------------------------------------------
     // Tranziție sincrona: bloc always@(posedge Clock) ​     // Tranziție sincrona: bloc always@(posedge Clock) ​
     // --------------------------------------------------------------------     // --------------------------------------------------------------------
-    always@ ( posedge ​Clock ) begin +    always@ ( posedge ​i_w_clk ​) begin 
-        if ( Reset ) begin +        if ( i_w_reset ​) begin 
-            ​CurrentState ​<= STATE_Initial ;+            ​l_r_currentState ​<= STATE_Initial ;
         else begin         else begin
-            ​CurrentState ​<= NextState ​;+            ​l_r_currentState ​<=  ​l_r_nextState ​;
         end         end
     end     end
Line 74: Line 60:
     // --------------------------------------------------------------------     // --------------------------------------------------------------------
 always@ ( * ) begin always@ ( * ) begin
-        NextState ​CurrentState ​;+         ​l_r_nextState ​l_r_currentState ​;
    
-        case ( CurrentState ​)+        case ( l_r_currentState ​)
             STATE_Initial : begin             STATE_Initial : begin
-                ​NextState ​= STATE_1 ;+                ​l_r_nextState ​= STATE_1 ;
             end             end
             STATE_1 : begin             STATE_1 : begin
-                if (!Input+                if (!i_w_in
-                    ​NextState ​= STATE_2 ;+                    ​l_r_nextState ​= STATE_2 ;
             end             end
             STATE_2 : begin             STATE_2 : begin
-                if (Input+                if (i_w_in
-                    ​NextState ​= STATE_3 ;+                    ​l_r_nextState ​= STATE_3 ;
             end             end
             STATE_3 : begin             STATE_3 : begin
-                if (Input+                if (i_w_in
-                    ​NextState ​= STATE_4 ;+                    ​l_r_nextState ​= STATE_4 ;
                 else                 else
-                    ​NextState ​= STATE_1 ;+                    ​l_r_nextState ​= STATE_1 ;
             end             end
             STATE_4 : begin             STATE_4 : begin
-                if (Input+                if (i_w_in
-                    ​NextState ​= STATE_1 ;+                    ​l_r_nextState ​= STATE_1 ;
                 else                 else
-                    ​NextState ​= STATE_2 ;+                    ​l_r_nextState ​= STATE_2 ;
             end             end
-            //Stări pentru tratarea erorilor +            // Stări pentru tratarea erorilor 
-            //Dacă automatul ajunge în aceste stări se va reseta.+            // Dacă automatul ajunge în aceste stări se va reseta.
             STATE_5_PlaceHolder : begin             STATE_5_PlaceHolder : begin
-                ​NextState ​= STATE_Initial ;+                ​l_r_nextState ​= STATE_Initial ;
             end             end
             STATE_6_PlaceHolder : begin             STATE_6_PlaceHolder : begin
-                ​NextState ​= STATE_Initial ;+                ​l_r_nextState ​= STATE_Initial ;
             end             end
             STATE_7_PlaceHolder : begin             STATE_7_PlaceHolder : begin
-                ​NextState ​= STATE_Initial ;+                ​l_r_nextState ​= STATE_Initial ;
             end             end
         endcase         endcase
soc/laboratoare/04/dfa_skel.1710102020.txt.gz · Last modified: 2024/03/10 22:20 by maria_teona.olteanu
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