EN 001-4: Introduction to Computational Design

Slides:



Advertisements
Similar presentations
1 Introduction Sequential circuit –Output depends not just on present inputs (as in combinational circuit), but on past sequence of inputs Stores bits,
Advertisements

Introduction to Analysis of Algorithms
مرتضي صاحب الزماني  The registers are master-slave flip-flops (a.k.a. edge-triggered) –At the beginning of each cycle, propagate values from primary inputs.
EECS 370 Discussion 1 xkcd.com. EECS 370 Discussion Topics Today: – Floating Point – Finite State Machines – Combinational Logic – Sequential Logic 2.
1 COMP541 Combinational Logic - 4 Montek Singh Jan 30, 2012.
MicroComputer Engineering DigitalCircuits slide 1 Combinational circuits Changes at inputs propagate at logic speed to outputs Not clocked No internal.
ECE 301 – Digital Electronics Brief introduction to Sequential Circuits and Latches (Lecture #14)
ECE 331 – Digital System Design Introduction to Sequential Circuits and Latches (Lecture #16)
COE 360 Principles of VLSI Design Delay. 2 Definitions.
CSC 108H: Introduction to Computer Programming Summer 2011 Marek Janicki.
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 61 Lecture 6 Logic Simulation n What is simulation? n Design verification n Circuit modeling n True-value.
Overview Logistics Last lecture Today HW5 due today
Digital Design - Sequential Logic Design
Combinational circuits
CS161 – Design and Architecture of Computer Systems
ECEN 248: INTRODUCTION TO DIGITAL SYSTEMS DESIGN
Digital Integrated Circuits for Communication
LATCHED, FLIP-FLOPS,AND TIMERS
Combinational circuits
VLSI Testing Lecture 5: Logic Simulation
Clocks A clock is a free-running signal with a cycle time.
VLSI Testing Lecture 5: Logic Simulation
Timing Model Start Simulation Delay Update Signals Execute Processes
Registers and clocking issues
Vishwani D. Agrawal Department of ECE, Auburn University
Morgan Kaufmann Publishers
Algorithm Analysis CSE 2011 Winter September 2018.
Registers and Counters
Sequential Circuits: Latches
Inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture #21 State Elements: Circuits that Remember Hello to James Muerle in the.
Sequential Circuits: Latches
How does the CPU work? CPU’s program counter (PC) register has address i of the first instruction Control circuits “fetch” the contents of the location.
Instructor: Alexander Stoytchev
Arithmetic Circuits (Part I) Randy H
Instructor: Alexander Stoytchev
CSE 370 – Winter 2002 – Comb. Logic building blocks - 1
Registers and Counters
Instructor: Alexander Stoytchev
332:578 Deep Submicron VLSI Design Lecture 14 Design for Clock Skew
Instructor: Alexander Stoytchev
CSE 370 – Winter Sequential Logic-2 - 1
332:437 Lecture 8 Verilog and Finite State Machines
Topics Clocking disciplines. Flip-flops. Latches..
The Processor Lecture 3.1: Introduction & Logic Design Conventions
Sequential Circuits: Latches
Day 21: October 29, 2010 Registers Dynamic Logic
Electronic Homework Submission and Grading
Day 2: September 10, 2010 Transistor Introduction
Flip-Flops Last time, we saw how latches can be used as memory in a circuit. Latches introduce new problems: We need to know when to enable a latch. We.
Arithmetic and Decisions
Instructor: Joel Grodstein
Guest Lecture by David Johnston
Debugging EECS150 Fall Lab Lecture #4 Sarah Swisher
Overview Last lecture Digital hardware systems Today
TA David “The Punner” Eitan Poll
Debugging EECS150 Fall Lab Lecture #4 Sarah Swisher
Instructor: Joel Grodstein
ECE 352 Digital System Fundamentals
ECE 352 Digital System Fundamentals
ECE 352 Digital System Fundamentals
Computational Thinking
Registers and Counters
Registers and Counters
332:437 Lecture 8 Verilog and Finite State Machines
Software Development Techniques
Lecture 3 Combinational units. Adders
Registers and Counters
Instructor: Michael Greenbaum
EE 194 Synthetic Biology Fall 2018 Tufts University
Presentation transcript:

EN 001-4: Introduction to Computational Design Spring 2016 Tufts University Instructor: Joel Grodstein joelg@eecs.tufts.edu Discrete-event simulation EN001-4 Joel Grodstein

EE194/Comp150 Joel Grodstein What's in a gate? A gate has a voltage transfer function, but we'll ignore that here. Inputs and outputs are just 0 or 1. EE194/Comp150 Joel Grodstein

Real life is not just 0 and 1 The glitch response never reaches Vdd before it heads down to Vss. It's not a full-rail signal, but neither is it no response at all. All models are wrong – some are still useful. in out time delay Δt = gate delay. EE194/Comp150 Joel Grodstein

EE194/Comp150 Joel Grodstein Delay is a bit trickier. There are multiple models: Inertial delay. The gate smooths out short glitches Transport delay. The gate passes all glitches. EE194/Comp150 Joel Grodstein

Model #1: transport delay The output is simply a delayed copy of the input. Period. You may have a different delay for rising vs. falling transitions. What's wrong with this? Infinite bandwidth is not realistic! in out time delay Δt = gate delay. EE194/Comp150 Joel Grodstein

Model #2: inertial delay Short glitches get suppressed. Reasoning: wires have capacitance. Infinite bandwidth doesn't exist in the world. What's wrong with this? Even if those glitches don't have time to rise fully, they still exist; and still affect the next gate. in out time delay Δt = gate delay. EE194/Comp150 Joel Grodstein

What sucks with our algorithm Cannot simulate all input patterns of a 64x64 multiplier Or any circuit with lots of inputs What can we do about this? We could try and optimize our simulator code… but eventually we will lose against exponential growth. Lookahead to a later topic: formal validation. It’s inefficient: takes more time to schedule & process an event than to execute it. many events don’t affect the final settled value at any output Let's look at two really bad examples (examples #5 and #6 from Lecture 2.docx). EE194/Comp150 Joel Grodstein

Can we overcome these inefficiencies? Thought question: what if we didn't care about timing at all? Could we take advantage of that? We really do care about timing, but what if we didn't? EE194/Comp150 Joel Grodstein

Levelized compiled code (LCC) A AA 7 D 2 BB B 3 Q 5 C The good: only 4 machine instructions! The bad: no timing Is there an output glitch? Who knows? AA=A BB=B D=AA & BB Q=D | C EE194/Comp150 Joel Grodstein

What about our bad cases? 1 1 1 D 1 2 AA 4 BB CC AA=A B=A ^ AA BB = B C = B ^ BB CC = C D = C ^ CC Our bad example that was exponential in the number of levels is now linear  Now it's really just a toy: it just computes a constant 0. EE194/Comp150 Joel Grodstein

LCC: what are the problems? It's not always efficient 1000 gates A B AA BB 7 3 2 D Q 5 C What if the only thing that changes is node C? LCC will still simulate every single gate DES will only simulate the OR gate Q. Crossover point: if >3-5% of gates toggle every cycle, then LCC is faster. EE194/Comp150 Joel Grodstein

EE194/Comp150 Joel Grodstein But what about loops? 1 S_L 1 1 Q How do you turn this into LCC? Which gate do you execute first? Do you do it this way? Q=!(S_L&Q_L) Q_L=!(R_L&Q) No, doesn't work. Q_L R_L 1 1 EE194/Comp150 Joel Grodstein

EE194/Comp150 Joel Grodstein But what about loops? S_L Q What if you execute everything twice? Q=!(S_L&Q_L) Q_L=!(R_L&Q) Does that work? Is it a general solution? Q_L R_L EE194/Comp150 Joel Grodstein

EE194/Comp150 Joel Grodstein But what about loops? Another option: remove the loop. S_L Q Q_L R_L The SR latch is just one component. Its internal model is if (!S_L && R_L) Q=1, Q_L=0; if (S_L && !R_L) Q=0, Q_L=1; if (!S_L && !R_L) Q=1, Q_L=1; The loop is gone! S_L Q R_L Q_L EE194/Comp150 Joel Grodstein

But what about big loops? D Q Q1_B D Q Q1_A D Q Q2_B D Q Q2_A CLK A state machine is a big loop (actually, multiple loops). How might LCC deal with that? EE194/Comp150 Joel Grodstein

But what about big loops? D Q Q1_B D Q Q1_A D Q Q2_B D Q Q2_A CLK=1 CLK Break the system into two phases EE194/Comp150 Joel Grodstein

But what about big loops? D Q Q1_B D Q Q1_A D Q Q2_B D Q Q2_A CLK=0 CLK Break the system into two phases EE194/Comp150 Joel Grodstein

But what about big loops? D Q Q1_B D Q Q1_A D Q Q2_B D Q Q2_A CLK if (CLK) green logic; if (!CLK) blue logic; EE194/Comp150 Joel Grodstein

EE194/Comp150 Joel Grodstein One final problem What happens if you have a circuit with multiple clock domains? No simple answer. You can implement LCC independently in each clock domain. But then you need another scheme to tie them together. EE194/Comp150 Joel Grodstein

EE194/Comp150 Joel Grodstein What problems are left? We decided to ignore timing – but haven't dealt with the consequences of that. Our next topic is static timing analysis We still haven't solved the problem of validating a 64x64 adder or multiplier (or any circuit with lots of inputs) Topic #4 may be formal validation. EE194/Comp150 Joel Grodstein

EE194/Comp150 Joel Grodstein