Concurrent Signal - Sequential Logic Design - Lecture Slides, Slides for Digital Logic Design. Birla Institute of Technology and Science

Digital Logic Design

Description: Its one of the Sequential Logic Design lectures. Its key points are: Concurrent Signal, Decoders Using Structural, Concurrent Logic Behavior, Expression Changes, Left Hand Side, Architecture, Gates Operate, Gate Relative, Actual Value, Cause a Glitch
Showing pages  1  -  2  of  12
The preview of this document ends here! Please or to read the full document or to download it.
Document information
Embed this document:

Lecture #10 Agenda

1. VHDL : Concurrent Signal Assignments 2. Decoders using Structural VHDL

Announcements

1. HW #4 due 2. HW #5 assigned

Sequential Logic Design

Docsity.com

Concurrent Signal Assignments

Concurrency - the way that our designs are simulated is important in modeling real HW behavior - components are executed concurrently (i.e., at the same time) - VHDL gives us another method to describe concurrent logic behavior called "Concurrent Signal Assignments" - we simply list our signal assignments (<=) after the "begin" statement in the architecture - each time any signal on the Right Hand Side (RHS) of the expression changes, the Left Hand Side (LHS) of the assignment is updated. - operators can be included (and, or, +, …)

Docsity.com

Concurrent Signal Assignments

Concurrent Signal Assignment Example entity TOP is port (A,B,C : in STD_LOGIC; X : out STD_LOGIC); end entity TOP; architecture TOP_arch of TOP is signal node1 : STD_LOGIC; begin node1 <= A xor B; X <= node1 or C; end architecture TOP_arch;

node1

Docsity.com

Concurrent Signal Assignments

Concurrent Signal Assignment Example node1 <= A xor B; X <= node1 or C; - if these are executed concurrently, does it model the real behavior of this circuit? Yes, that is how these gates operate. We can see that there may be timing that needs to be considered…. - When does C get to the OR gate relative to (A ⊕ B)? - Could this cause a glitch on X? What about a delay in the actual value?

node1

Docsity.com

Conditional Signal Assignments

Conditional Signal Assignments - we can also include conditional situations in a concurrent assignment - the keywords for these are: "when" = if the condition is TRUE, make this assignment "else" = if the condition is FALSE, make this assignment ex) X <= '1' when A='0' else '0'; Y <= '0' when A='0' and C='0' else '1'; - X and Y are evaluated concurrently !!! - notice that we are assigning static values (0 and 1), this is essentially a "Truth Table" - if using this notation, make sure to include every possible input condition, or else you haven't described the full operation of the circuit.

Docsity.com

Conditional Signal Assignments

Conditional Signal Assignments - We can also assign signals to other signals using conditions - this is similar to a MUX ex) X <= A when Sel='0' else B; - Again, make sure to include every possible input condition, or else you haven't described the full operation of the circuit. - If you try to synthesis an incomplete description, the tool will start making stuff up!

Docsity.com

Selected Signal Assignments

Selected Signal Assignment - We can also use a technique that allows the listing of "choices" and "assignments" in a comma delimited fashion. - this is called "Selected Signal Assignment" but it is still CONCURRENTLY assigned syntax: with expression select signal-name <= signal-value when choices, signal-value when choices, : signal-value when others; - we use the term "others" to describe any input condition that isn't explicitly described.

• Note the difference between , and ;

Docsity.com

Selected Signal Assignments

Selected Signal Assignment Example Describe the following Truth Table using Selected Signal Assignments: Input X 000 0 001 1 010 1 011 0 100 1 101 1 110 0 111 0 begin with Input select X<= '0' when "000", '1' when "001", '1' when "010", '0' when "011", '1' when "100", '1' when "101", '0' when "110", '0' when "111";

Docsity.com

Selected Signal Assignments

Selected Signal Assignment Example - we can shorten the description by using "others" for the 0's - we can also use "|" delimited choices Input X 000 0 001 1 010 1 011 0 100 1 101 1 110 0 111 0 begin with Input select X<= '1' when "001" | "010" | "100" | "101", '0' when others;

Docsity.com

Decoders using Structural VHDL

Decoders - a decoder has n inputs and 2n outputs - one and only one output is asserted for a given input combination ex) truth table of decoder Input Output 00 0001 01 0010 10 0100 11 1000 - these are key circuits for a Address Decoders

Docsity.com

Decoders using Structural VHDL

Decoder Structure - The output stage of a decoder can be constructed using AND gates - Inverters are needed to give the appropriate code to each AND gate - Using AND/INV structure, we need: 2n AND gates n Inverters

Showing more inverters than necessary to illustrate concept

Docsity.com

Decoders using Structural VHDL

Decoders with ENABLES - An Enable line can be fed into the AND gate - The AND gate now needs (n+1) inputs - Using positive logic: EN = 0, Output = 0 EN =1, Output depends on input code

Docsity.com

Docsity is not optimized for the browser you're using. In order to have a better experience please switch to Google Chrome, Firefox, Internet Explorer 9+ or Safari! Download Google Chrome