0% found this document useful (0 votes)
20 views39 pages

Traffic Signal Verilog

The document discusses finite state machines (FSMs) and their implementation in digital systems, focusing on Moore and Mealy machines. It provides examples of FSM design, including a traffic light controller, and covers the evolution of programmable logic devices and their types. Additionally, it highlights the characteristics of various memory types and programmable logic technologies.

Uploaded by

kavyapirangi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views39 pages

Traffic Signal Verilog

The document discusses finite state machines (FSMs) and their implementation in digital systems, focusing on Moore and Mealy machines. It provides examples of FSM design, including a traffic light controller, and covers the evolution of programmable logic devices and their types. Additionally, it highlights the characteristics of various memory types and programmable logic technologies.

Uploaded by

kavyapirangi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

CSE140L: Components and Design

Techniques for Digital Systems Lab

FSMs

Tajana Simunic Rosing

1
Source: Vahid, Katz
Hardware Description Languages
and Sequential Logic
• Flip-flops
– representation of clocks - timing of state changes
– asynchronous vs. synchronous
• FSMs
– structural view (FFs separate from combinational logic)
– behavioral view (synthesis of sequencers – not in this course)
• Datapath = data computation (e.g., ALUs, comparators) +
registers
– use of arithmetic/logical operators
– control of storage elements
FSM design example – Moore vs. Mealy
• Remove one 1 from every string of 1s on the input

Moore Mealy

zero
[0] 0/0
zero
1 0 [0]
0 one1 0/0 1/0
[0]
one1
0 1 [0]
1 1/1
two1s
[1]
Verilog FSM - Reduce 1s example
• Moore machine
state assignment
(easy to change,
module reduce (clk, reset, in, out); if in one place)
input clk, reset, in;
output out;

parameter zero = 2’b00;


parameter one1 = 2’b01;
parameter two1s = 2’b10; zero
[0]
reg out;
reg [2:1] state; // state variables 1 0
reg [2:1] next_state;
0 one1
always @(posedge clk) [0]
if (reset) state = zero;
else state = next_state; 0 1
1
two1s
[1]
Moore Verilog FSM (cont’d)
always @(in or state)
crucial to include
case (state) all signals that are
zero:
// last input was a zero
input to state determination
begin
if (in) next_state = one1;
else next_state = zero;
end
one1: note that output
// we've seen one 1 depends only on state
begin
if (in) next_state = two1s;
else next_state = zero;
end
two1s: always @(state)
// we've seen at least 2 ones case (state)
begin zero: out = 0;
if (in) next_state = two1s; one1: out = 0;
else next_state = zero; two1s: out = 1;
end endcase
endcase
endmodule
Mealy Verilog FSM
module reduce (clk, reset, in, out);
input clk, reset, in;
output out;
reg out;
reg state; // state variables
reg next_state;

always @(posedge clk)


if (reset) state = zero;
else state = next_state;
0/0
always @(in or state) zero
case (state) [0]
zero: // last input was a zero
begin 0/0 1/0
out = 0;
if (in) next_state = one; one1
else next_state = zero; [0]
end 1/1
one: // we've seen one 1
if (in) begin
next_state = one; out = 1;
end else begin
next_state = zero; out = 0;
end
endcase
endmodule
Synchronous Mealy Machine
module reduce (clk, reset, in, out);
input clk, reset, in;
output out;
reg out;
reg state; // state variables

always @(posedge clk)


if (reset) state = zero;
else
case (state)
zero: // last input was a zero
begin
out = 0;
if (in) state = one;
else state = zero;
end
one: // we've seen one 1
if (in) begin
state = one; out = 1;
end else begin
state = zero; out = 0;
end
endcase
endmodule
Example: Traffic light controller
• Highway/farm road intersection

farm road

car sensors

highway
Traffic light controller (cont.)
• Detectors C sense the presence of cars waiting on the farm road
– with no car on farm road, light remain green in highway direction
– if vehicle on farm road, highway lights go from Green to Yellow to Red, allowing
the farm road lights to become green
– these stay green only as long as a farm road car is detected but never longer than
a set interval; after the interval expires, farm lights transition from Green to Yellow
to Red, allowing highway to return to green
– even if farm road vehicles are waiting, highway gets at least a set interval of green
• Assume you have an interval timer that generates:
– a short time pulse (TS) and
– a long time pulse (TL),
– in response to a set (ST) signal.
– TS is to be used for timing yellow lights and TL for green lights
Traffic light controller (cont.)
• inputs description outputs description
reset place FSM in initial state HG, HY, HR assert green/yellow/red highway lights
C detect vehicle on the farm road FG, FY, FR assert green/yellow/red highway lights
TS short time interval expired ST start timing a short or long interval
TL long time interval expired

• state
HG
description
highway green (farm road red) (TL•C)' Reset
HY highway yellow (farm road red)
FG farm road green (highway red)
FY farm road yellow (highway red) HG
TL•C / ST TS / ST

TS' HY FY TS'

TS / ST TL+C' / ST
FG

(TL+C')'
Traffic light controller (cont.)
• Generate state table with symbolic states
• Consider state assignments output encoding – similar problem
to state assignment
(Green = 00, Yellow = 01, Red = 10)
Inputs Present State Next State Outputs
C TL TS ST H F
0 – – HG HG 0 Green Red
– 0 – HG HG 0 Green Red
1 1 – HG HY 1 Green Red
– – 0 HY HY 0 Yellow Red
– – 1 HY FG 1 Yellow Red
1 0 – FG FG 0 Red Green
0 – – FG FY 1 Red Green
– 1 – FG FY 1 Red Green
– – 0 FY FY 0 Red Yellow
– – 1 FY HG 1 Red Yellow

SA1: HG = 00 HY = 01 FG = 11 FY = 10
SA2: HG = 00 HY = 10 FG = 01 FY = 11
SA3: HG = 0001 HY = 0010 FG = 0100 FY = 1000 (one-hot)
Traffic light controller FSM

• Specification of inputs, outputs, and state elements


module FSM(HR, HY, HG, FR, FY, FG, ST, TS, TL, C, reset, Clk);
output HR;
output HY;
output HG;
parameter highwaygreen = 6'b001100;
output FR;
parameter highwayyellow = 6'b010100;
output FY;
parameter farmroadgreen = 6'b100001;
output FG;
parameter 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
Traffic light controller FSM
initial begin state = highwaygreen; ST = 0; end

always @(posedge Clk)


case statement
begin
if (reset)
triggerred by
begin state = highwaygreen; ST = 1; end clock edge
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
Timer FSM for traffic light controller

module Timer(TS, TL, ST, Clk);


output TS;
output TL;
input ST;
input Clk;
integer 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
Complete traffic light controller
• Tying it all together (FSM + timer) with structural Verilog (same as a
schematic drawing)

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

traffic light
controller

ST TS TL
timer
Finite state machines summary
• Models for representing sequential circuits
– abstraction of sequential elements
– finite state machines and their state diagrams
– inputs/outputs
– Mealy, Moore, and synchronous Mealy machines
• Finite state machine design procedure
– deriving state diagram
– deriving state transition table
– determining next state and output functions
– implementing combinational logic
• Hardware description languages
– Use good coding style
– Communicating FSMs
CSE140L: Components and Design
Techniques for Digital Systems Lab

Programmable Logic Devices

Tajana Simunic Rosing

17
Source: Vahid, Katz, Culler
Evolution of Programmable Technologies
• Discrete devices: relays, transistors (1940s-50s)
• Discrete logic gates (1950s-60s) trend toward
higher levels
• Integrated circuits (1960s-70s)
of integration
– Map circuit to Data Book parts
– e.g. TTL packages: Data Book for 100’s of different parts
• Gate Arrays (IBM 1970s)
– “Custom” integrated circuit chips
– Transistors are already on the chip
– Place and route software puts the chip together automatically
– + Large circuits on a chip
– + Automatic design tools (no tedious custom layout)
– - Only good if you want 1000’s of parts
Programmable Logic Technologies
• Fuse and anti-fuse
– Fuse makes or breaks link between two wires
– Typical connections are 50-300 ohm
– One-time programmable (testing before programming?)
– Very high density
• EPROM and EEPROM
– High power consumption
– Typical connections are 2K-4K ohm
– Fairly high density
• RAM-based
– Memory bit controls a switch that connects/disconnects two wires
– Typical connections are .5K-1K ohm
– Can be programmed and re-programmed in the circuit
– Low density
Comparing RAM
REGISTER FILE OUT1 OUT2 OUT3 OUT4
• Register file
– Fastest
R S R S R S R S
– But biggest size D Q D Q D Q D Q
CLK

IN1 IN2 IN3 IN4


SRAM
• SRAM
– Fast (e.g. 10ns)
– More compact than register file Data' Data

• DRAM
– Slowest (e.g. 20ns) DRAM
• And refreshing takes time
Data
– But very compact W
– Different technology for large caps.

20
ROM Types 1 data line 0 data line

cell cell

• Mask-programmed ROM word


enable
– Programmed at manufacturing time
• Fuse-Based Programmable ROM
1 data line 1 data line
– Programming blows fuses
cell cell
– One-Time Programmable ROM
• EPROM word
enable
– Erase with ultraviolet light
• EEPROM fuse blown fuse
– Erasing one word at a time electronically
• Flash

floating-gate
data line data line
– Erase large blocks of words simultaneously

transistor
cell cell
1 0

word eÐeÐ
enable

trapped electrons
21
Memory in Verilog
• Modeled as an array of registers

22
Source: John Wawrzynek
Programmable Logic Devices (PLD)
• PLDs combine PLA/PAL with memory and other advanced
structures
– Similar to PLA/PAL, hence Field-Programmable Gate Arrays
• Types:
– Antifuse PLDs
– EPLD & EEPLD
– FPGAs with RAMs
– FPGA with processing
• Digital Signal Processing
• General purpose CPU

23
Field-Programmable Gate Arrays

• Logic blocks
– To implement combinational
and sequential logic
• Interconnect
– Wires to connect inputs and
outputs to logic blocks
• I/O blocks
– Special logic blocks at
periphery of device for
external connections
• Key questions:
– How to make logic blocks programmable?
– How to connect the wires?
– After the chip has been manufactured
Antifuse PLDs
• Actel’s Axcelerator Family

• Antifuse:
– open when not programmed
– Low resistance when programmed25
Actel’s Axcelerator C-Cell

• C-Cell
– Basic multiplexer logic plus
more inputs and support for fast
carry calculation
– Carry connections are “direct”
and do not require propagation
through the programmable
interconnect
Actel’s Accelerator R-Cell

• R-Cell
– Core is D flip-flop
– Muxes for altering the clock and
selecting an input
– Feed back path for current value
of the flip-flop for simple hold
– Direct connection from one C-cell
output of logic module to an R-cell
input; Eliminates need to use the
programmable interconnect
• Interconnection Fabric
– Partitioned wires
– Special long wires
Altera’s Erasable Programmable Logic Devices (EPLDs)

• Historical Perspective
– PALs: same technology as programmed once bipolar PROM
– EPLDs: CMOS erasable programmable ROM (EPROM) erased by UV light
• Altera building block = MACROCELL
CLK

Clk
MUX
8 Product Term
AND-OR Array
+ I/O Pin
Output
AND pad
MUX
Programmable ARRAY
Q

MUX's Inv ert


Control
F/B
MUX Seq. Logic
Block

Programmable polarity Programmable feedback


Altera EPLD: Synchronous vs. Asynchronous Mode
Altera EPLDs contain 10s-100s of independently programmed macrocells
Global
Synchronous Mode
Personalized CLK Clk

by EPROM
MUX
1
bits: Flipflop controlled
OE/Local CLK by global clock signal
Q local signal computes
EPROM output enable
Cell

Global
CLK Clk Asynchronous Mode
MUX
1
Flipflop controlled
OE/Local CLK by locally generated
Q
clock signal
EPROM
Cell

+ Seq Logic: could be D, T positive or negative edge triggered


+ product term to implement clear function
Altera Multiple Array Matrix (MAX)
AND-OR structures are relatively limited
Cannot share signals/product terms among macrocells

Logic Global Routing:


Array LAB A LAB H
Programmable
Blocks Interconnect
Array
(similar to
macrocells) LAB B LAB G EPM5128:
P 8 Fixed Inputs
I 52 I/O Pins
A 8 LABs
LAB C LAB F 16 Macrocells/LAB
32 Expanders/LAB

LAB D LAB E
Altera’s EEPLD
• Altera’s MAX 7k Block Diagram

31
EEPLD

• Altera’s MAX 7k Logic Block

32
SRAM based PLD
• Altera’s Flex 10k Block Diagram

33
SRAM based PLD
• Altera’s Flex 10k Logic Array Block (LAB)

34
SRAM based PLD
• Altera’s Flex 10k Logic Element (LE)

35
FPGA with DSP
• Altera’s Stratix II: Block Diagram

36
FPGA with DSP
• Altera’s Stratix II:
– DSP Detail

37
FPGA with General Purpose CPU & Analog
• Actel’s Fusion Family Diagram
– FPGA with ARM 7 CPU and Analog Components

38
Programmable Logic Summary
• Discrete Gates
• Packaged Logic
• PLAs
• Ever more general architectures of programmable combinational +
sequential logic and interconnect
– Altera
– Actel
– Xilinx

You might also like