Confused about declaring digital design variables?

Click For Summary

Discussion Overview

The discussion revolves around the declaration of digital design variables for a traffic light control system, focusing on the use of combinational and sequential logic. Participants explore how to define variables for sensors and traffic light states, as well as the overall design process for implementing the system.

Discussion Character

  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant describes the need for variables to represent the state of a door and seat belt in a car, suggesting a similar approach for traffic lights.
  • Another participant suggests writing down the order of traffic light changes to determine the number of states needed.
  • A participant questions whether the states are the same as the variables, indicating confusion about the relationship between them.
  • One participant proposes different methods for counting states and signals, discussing the potential use of counters and state machines to manage the traffic light sequences.
  • There is mention of the importance of inputs affecting state transitions and outputs, highlighting the complexity of the design process.
  • A recommendation is made to read about finite state machines for further understanding.

Areas of Agreement / Disagreement

Participants express varying levels of understanding regarding the relationship between states and variables, with some proposing different methods for defining and managing them. The discussion remains unresolved with multiple competing views on how to approach the design.

Contextual Notes

There are limitations in the clarity of definitions regarding states and variables, as well as the specific requirements for the traffic light system. The discussion does not resolve how many variables are necessary or how they should be structured.

owtu
Messages
15
Reaction score
1
An example:
A car that senses if you have your seat belt on and the door is closed

I can declare:

D - for door
S - for seat belt

D is 1 is door is open, 0 if door is closed
S is 1 if seat belt is on, 0 if it's off

This is all very straight forward and can be implemented with combinational logic, but I'm working on something that uses sequential logic. I'll probably use a 555 timer and a 4017

If I have an intersection, the main street with a turn signal light and the main light and a side street that is rarely busy, it will only turn green when a car is present on that street.

Right off the bat I know I need a variable for the sensor that detects a car that is present on the side street

S - Sensor
S is 1 if car is present and 0 if no car is present

But I'm confused about how many variables I need for my street lights. I have a total of 9 LEDs: 3 reds, 3 yellows, and 3 greens. My plan is to have the reds and greens on for 20 seconds and the yellows for 4 seconds.
 
Engineering news on Phys.org
Just write down the order the traffic lights are supposed to change. Then you'll see how many different states you'll need.
 
mfb said:
Just write down the order the traffic lights are supposed to change. Then you'll see how many different states you'll need.

I'm not referring to the states though. What I'm referring to is the initial variables
 
or are the states your variables? I'm confused, please enlighten me
 
There are many ways to skin the cat, so to speak, but basically you need to determine how many signals there are, and how many combinations you want then to exist in. Say you had 3 signals ABC, and you wanted them to sequence "off, then A, then B, then C.". You *could* build a counter that counted 0,1,2,3, and decode the counter such that A=1 B=2 and C=3. You would then say you have 2 state elements, 3 signals, and that the nextstate = state+1.

Or, you could have 3 state elements, ABC, 1 for A, 1 for B and 1 for C . You would then say nextstate = (state ==0) ? 4 : state>>1;
This would essentially be a shifter, and could be called a 1-hot state machine. (1 state element for each state)

So, again, there are output signals, and there are states, and there are transitions between states.. The transformations between them is the design process.

If you have inputs, then your state transitions also depend on the inputs. (or maybe the outputs signals might also depend directly on the inputs).

I would recommend reading the wikipedia article on state machines.
http://en.wikipedia.org/wiki/Finite-state_machine
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
6K
Replies
7
Views
14K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 7 ·
Replies
7
Views
4K
Replies
1
Views
3K
  • · Replies 5 ·
Replies
5
Views
5K
  • · Replies 23 ·
Replies
23
Views
5K
  • · Replies 4 ·
Replies
4
Views
5K
  • · Replies 8 ·
Replies
8
Views
3K
Replies
3
Views
3K