7-Segment LED Display

Post on 03-Jan-2016

54 views 1 download

description

7-Segment LED Display. DD: Section 5.1-5.2 Mano: Section 3.10. Topics. Using always @() Using Case Staetment Wire Versus reg Mux Use Mux to display one bit at a time. always statement. The sensitivity list contains a list of all signals that will affect the outputs generated - PowerPoint PPT Presentation

transcript

7-Segment LED Display

DD: Section 5.1-5.2 Mano: Section 3.10

Topics

• Using always @()• Using Case Staetment• Wire Versus reg• Mux• Use Mux to display one bit at a time

always statement

The sensitivity list contains a list of all signals that will affect the outputs generatedby the always block.

always @(*)

* in the sensitivity list will automatically includeall signals on the right side of your statements

always @(*) can be used when you want yourelements to change their values as one or more of its inputs change.

always@ can be used with either non-blocking statement (if you want to execute statements in parallel) or blocking statement (if you want to execute statements sequentially)

Why using always @(*)

(Desirable)

(incorrect!)

case

(=, implies that blockingstatements are used)

the number preceding : indicatesthe value of the case parameter.

‘hA means “A” in hex numbers.7’b0000001 means 7 binary numberswith a sequence equal to 0000001

default

The default statement is necessary sinceVerilog actually defines four possible Values for each bit: 01Z (high impedance)X (unknown value)

reg

• All outputs generated by the always block must be declared to be of type

reg. • Reg is used to suggest that the

values behaves like a variable that might be stored in a register.

wire

Legal Uses of the wire

reg

Legal Uses of reg

When wire and reg are Interchangable

Test Bench for hex7seg_case.v

Multiplexer

• 2-to-1 mux• 4-to-1 mux

2-to-1 mux

• A 2-input mux is controlled by a single control line s.

• If s=0, y=a and y=b if s=1.

Implementation

4-to-1 Mux

4-to-1 Mux

(Creating a 4 x 1 MUX from 2 x 1 MUX)

Multiplexing 7-Segment Displays

Get values for an[3:0] from btn[3:0] so that only one LED is displayed.

If s[1:0]=00, then x[3:0].If s[1:0]=01, then x[7:4].If s[1:0]=10, then x[11:8].If s[1:0]=11, then x[15:12].

Use Quad 4-to-1 mux