today more verilog and sequential logic today more
play

Today: More Verilog and Sequential Logic Today: More Verilog and - PDF document

Today: More Verilog and Sequential Logic Today: More Verilog and Sequential Logic T Finit e St at e Machines and Verilog T Reasoning about Moore and Mealy machines S highlight -t he-arrows met hod T Example: Traf f ic Light Cont


  1. Today: More Verilog and Sequential Logic Today: More Verilog and Sequential Logic T Finit e St at e Machines and Verilog T Reasoning about Moore and Mealy machines S “ highlight -t he-arrows” met hod T Example: Traf f ic Light Cont roller in Verilog CSE 370 - Spring 1999 - Verilog for Sequential Systems - 1 Verilog Structural View of a FSM Verilog Structural View of a FSM T General view of a f init e st at e machine in verilog module FSM (CLK, in, out); input CLK; input in; output out; reg out; // state variable reg [1:0] state; // local variable reg [1:0] next_state; always @(posedge CLK) // registers state = next_state; always @(state or in) // Compute next-state and output logic whenever state or inputs change. // (i.e. put equations here for next_state[1:0]) // Make sure every local variable has an assignment in this block! endmodule CSE 370 - Spring 1999 - Verilog for Sequential Systems - 2

  2. Moore Verilog FSM Moore Verilog FSM T Reduce 1’s example `define zero 2’b00 zero `define one1 2’b01 state assignment [0] `define two1s 2’b10 module reduce (CLK, reset, in, out); 0 1 input CLK, reset, in; output out; reg out; 0 reg [1:0] state; // state variables one1 reg [1:0] next_state; [0] always @(posedge CLK) 0 if (reset) state = `zero; 1 else state = next_state; 1 two1s [1] CSE 370 - Spring 1999 - Verilog for Sequential Systems - 3 Moore Verilog FSM (continued) Moore Verilog FSM (continued) always @(in or state) crucial to include case (state) all signals that are `zero: // last input was a zero input to state and begin if (in) next_state = `one1; output equations else next_state = `zero; end `one1: // we've seen one 1 note that output only begin depends on state if (in) next_state = `two1s; else next_state = `zero; end `two1s: // we've seen at least 2 ones always @(state) begin case (state) if (in) next_state = `two1s; `zero: out = 0; else next_state = `zero; `one1: out = 0; end `two1s: out = 1; endcase endcase endmodule CSE 370 - Spring 1999 - Verilog for Sequential Systems - 4

  3. Mealy Verilog FSM Mealy Verilog FSM module reduce (CLK, reset, in, out); input CLK, reset, in; Remember t he Highlight - output out; The-Arrows Met hod reg out; reg state; // state variables 0/ 0 reg next_state; always @(posedge CLK) zero if (reset) state = `zero; else state = next_state; always @(in or state) 1/ 0 case (state) 0/ 0 `zero: // last input was a zero begin out = 0; if (in) next_state = `one; else next_state = `zero; one1 end 1/ 1 `one: // we've seen one 1 I nput Out put if (in) begin next_state = `one; out = 1; end else begin next_state = `zero; out = 0; end endcase endmodule CSE 370 - Spring 1999 - Verilog for Sequential Systems - 5 Synchronous Mealy FSM Synchronous Mealy FSM module reduce (clk, reset, in, out); input clk, reset, in; output out; reg out; 0/ 0 reg state; // state variables always @(posedge clk) zero if (reset) state = `zero; else case (state) `zero: // last input was a zero 1/ 0 0/ 0 begin out = 0; if (in) state = `one; else state = `zero; end one1 `one: // we've seen one 1 if (in) begin 1/ 1 state = `one; out = 1; end else begin state = `zero; out = 0; end endcase endmodule CSE 370 - Spring 1999 - Verilog for Sequential Systems - 6

  4. Example: Traffic Light Controller Example: Traffic Light Controller T Specif icat ion of input s, out put s, and st at e element s module FSM(HR, HY, HG, FR, FY, FG, ST, TS, TL, C, reset, Clk); output HR; output HY; output HG; `define highwaygreen 6'b001100 output FR; `define highwayyellow 6'b010100 output FY; `define farmroadgreen 6'b100001 output FG; `define farmroadyellow 6'b100010 output ST; input TS; input TL; assign HR = state[6]; input C; assign HY = state[5]; input reset; assign HG = state[4]; input Clk; assign FR = state[3]; assign FY = state[2]; reg [6:1] state; assign FG = state[1]; reg ST; specify state bits and codes for each state as well as connections to outputs CSE 370 - Spring 1999 - Verilog for Sequential Systems - 7 Example: Traffic Light Controller (cont’d) Example: Traffic Light Controller (cont’d) initial begin state = `highwaygreen; ST = 0; end always @(posedge Clk) case statement begin triggerred by if (reset) clock edge begin state = `highwaygreen; ST = 1; end else begin ST = 0; case (state) `highwaygreen: if (TL & C) begin state = `highwayyellow; ST = 1; end `highwayyellow: if (TS) begin state = `farmroadgreen; ST = 1; end `farmroadgreen: if (TL | !C) begin state = `farmroadyellow; ST = 1; end `farmroadyellow: if (TS) begin state = `highwaygreen; ST = 1; end endcase end end endmodule CSE 370 - Spring 1999 - Verilog for Sequential Systems - 8

  5. Timer for Traffic Light Controller Timer for Traffic Light Controller T Anot her FSM module Timer(TS, TL, ST, Clk); output TS; output TL; input ST; input Clk; reg[7:0] value; assign TS = (value >= 4); // 5 cycles after reset assign TL = (value >= 14); // 15 cycles after reset always @(posedge ST) value = 0; // async reset always @(posedge Clk) value = value + 1; endmodule CSE 370 - Spring 1999 - Verilog for Sequential Systems - 9 Complete Traffic Light Controller Complete Traffic Light Controller T Tying it all t oget her (FSM + t imer) S Not e, of course, t hat t his st ruct ural Verilog does not work in DesignWorks. Use a schemat ic inst ead. module main(HR, HY, HG, FR, FY, FG, reset, C, Clk); output HR, HY, HG, FR, FY, FG; input reset, C, Clk; Timer part1(TS, TL, ST, Clk); FSM part2(HR, HY, HG, FR, FY, FG, ST, TS, TL, C, reset, Clk); endmodule CSE 370 - Spring 1999 - Verilog for Sequential Systems - 10

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend