This shows you the differences between two versions of the page.
|
soc:laboratoare:04:dfa_skel [2024/03/11 20:53] 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 Input , | + | input wire i_w_in , |
| // ------------------------------------------------------------ | // ------------------------------------------------------------ | ||
| ); | ); | ||
| Line 18: | Line 18: | ||
| // Codificarea stărilor | // Codificarea stărilor | ||
| // -------------------------------------------------------------------- | // -------------------------------------------------------------------- | ||
| - | localparam STATE_Initial = 3’d0 , | + | localparam STATE_Initial = 3'd0 , |
| - | STATE_1 = 3’d1 , | + | STATE_1 = 3'd1 , |
| - | STATE_2 = 3’d2 , | + | STATE_2 = 3'd2 , |
| - | STATE_3 = 3’d3 , | + | STATE_3 = 3'd3 , |
| - | STATE_4 = 3’d4 , | + | STATE_4 = 3'd4 , |
| - | STATE_5_PlaceHolder = 3’d5 , | + | STATE_5_PlaceHolder = 3'd5 , |
| - | STATE_6_PlaceHolder = 3’d6 , | + | STATE_6_PlaceHolder = 3'd6 , |
| - | STATE_7_PlaceHolder = 3’d7; | + | STATE_7_PlaceHolder = 3'd7 ; |
| // -------------------------------------------------------------------- | // -------------------------------------------------------------------- | ||
| Line 32: | 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 40: | 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 ); |
| Line 46: | Line 46: | ||
| // 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 60: | 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 | ||