histone deacetylase inhibition reduces myocardial ischemia

12
ECE 4170 (1) Simulation vs. Synthesis © Sudhakar Yalamanchili, Georgia Institute of Technology ECE 4170 (2) Execution Models for VHDL Programs Two classes of execution models govern the application of VHDL programs For Simulation Discrete event simulation Understanding is invaluable in debugging programs For Synthesis Hardware inference The resulting circuit is a function of the building blocks used for implementation Primitives: NAND vs. NOR • Cost/performance

Upload: others

Post on 10-Feb-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

1

ECE 4170 (1)

Simulation vs. Synthesis

© Sudhakar Yalamanchili, Georgia Institute of Technology

ECE 4170 (2)

Execution Models for VHDL Programs

• Two classes of execution models govern the application of VHDL programs

• For Simulation– Discrete event simulation– Understanding is invaluable in debugging programs

• For Synthesis– Hardware inference– The resulting circuit is a function of the building blocks used

for implementation• Primitives: NAND vs. NOR• Cost/performance

2

ECE 4170 (3)

Simulation vs. Synthesis

• Simulation and synthesis are complementary processes

entity my_ckt isport (x,y :in bit;z : out bit)end entity my_ckt;

architecture behavioral of my_ckt is-- declarationsbegin-- some code hereend architecture behavioral;

entity my_ckt isport (x,y :in bit;z : out bit)end entity my_ckt;

architecture behavioral of my_ckt is-- declarationsbegin-- some code hereend architecture behavioral;

Synthesis

Simulation

ECE 4170 (4)

Simulation of Digital Systems

• Digital systems are modeled as the generation of events – value transitions – on signals

• Discrete event simulations manage the generation and ordering ofevents

– Correct sequencing of event processing– Correct sequencing of computations caused by events

@5 ns

@10 ns

@15 ns

@5 ns

v1 v2@5ns

v3 v4@10ns

v5 v6@15ns

Head

0

3

ECE 4170 (5)

Discrete Event Simulation: Example

1 0a@5ns

U 1carry@5ns

U 0sum@5ns

0 1sum@10ns

1 0carry@10ns

0 1a@10ns

1 0b@10ns

1 0a@15ns

5ns

10ns

10ns

Initial state: a = b = 1, sum = carry = UEvent List HeadSimulation Time

0ns U 1carry@5ns

U 0sum@5ns New event generated

from inputUpdate time

Update signal values, execute, generate new events, update time

Update signal values, execute, generate new events

ba sum

carry 10 15 20 25 30 35 40

a

b

sum

carry

5Time (ns)

Event

ECE 4170 (6)

Discrete Event Simulation

• Management of simulation time: ordering of events

• Two step model of the progression of time– Evaluate all affected components at the current time: events on

input signals– Schedule future events and move to the next time step: the

next time at which events take place

4

ECE 4170 (7)

Simulation Modeling

• VHDL programs describe the generation of events in digital systems• Discrete event simulator manages event ordering and progression of time• Now we can quantitatively understand accuracy vs. time trade-offs

– Greater detail more events greater accuracy– Less detail smaller number of events faster simulation speed

ba sum

carry

VHDL Model

compiler

Discrete Event Simulator from Vendor

ECE 4170 (8)

Synthesis and Hardware Inference

• Both processes can produce very different results!

Synthesis engine

HDLDesign Specification

Author HDL

Author Hardware Design

5

ECE 4170 (9)

Inferring Combinational Logic

---- pseudo code for a single bit arithmetic/ logic unit--s1 <= in1 and in2;s2 <= in1 or in2;s3 <= in1 xor in2; -- perform the sum operationc_out <= (in1 and c_in) or (in1 and in2)

or (in2 and c_in);out <= s1 when sel = “00” else

s2 when sel = “01” elses3 when sel = “10” else‘0’;

• Each statement implies a logic component

ECE 4170 (10)

Inferring Sequential Logic

• Inference of sequential components is more subtle– All possible execution paths through the code must be accounted

for• Results are very sensitive to the manner in which code is written• Inferences of latches vs. flip flops

---- a simple conditional code block --

if (sel = ‘0’) thenz <= in1 nor in2;

end if;

6

ECE 4170 (11)

Optimization

ABC

B

C

D

B

ABC

B

C

B

C

A

C

B

D

B

ABC + BC + BD

• Logic synthesis can produce several equivalent solutions

ECE 4170 (12)

Field Programmable Gate Arrays: Principles

• The chip is tiled with Configurable Logic Blocks (CLBs)– each block can “implement” a few gates and flip flops

• An interconnect switching matrix is interleaved with this array of CLBs

• Usage: partition, place, and route a design

CLB CLB CLB

CLB CLB CLB

CLB CLB CLB

Configurable Logic Blocks

Interconnect

7

ECE 4170 (13)

Inside a Xilinx Configurable Logic BlockC1• • • C4

G4

G3

G2

G1

LogicFunctionof G1–G4

F4

F3

F2

F1

LogicFunctionof F1–F4

LogicFunction of F,́

G,́ and H1H´

4

H1

K(CLOCK)

DIN/H2 SR/H0 EC

S/RControl

1

Bypass

YQDINF´G´H´

DINF´G´H´

1

S/RControl

SD

RD

D

EC

Q

SD

RD

D

EC

Q

Y

XQ

X

Multiplexer Controlled byConfiguration Program

ECE 4170 (14)

Inside a Xilinx IO Block

T

Out

Output Clock

I1

I2

Clock Enable

Input Clock

Slew RateControl

PassivePull-Up/

Pull-Dwon

Output MUX

Flip-Flop

D Q

CE

Flip-Flop/Latch

DQ

CEFast

CaptureLatch

Latch

G

DQ

Delay Delay

InputBuffer

OutputBuffer

0

1

Pad

8

ECE 4170 (15)

Implementing Digital Circuits in a CLB

• Boolean functions are implemented as look-up tables

• Combinations of lookup tables implement multivariable functions

• Implementation of behavior

• Sequential circuits use CLB latches/flip flops

C

D

A

B

Out

CD

AB

Out

Look-up Table (16x1 SRAM)

ECE 4170 (16)

Wiring Resources

• Optimize signal delay• “Chip length” signals can be configured as buses• Global nets for low skew clocks and reset signals

12

8

4

3

2

3

12 4 4 6 4 8 4 2

Quad Long Global Long Double Single Global Carry DirectClock Clock Chain Connect

Quad

Single

Double

Long

DirectConnect

Long

CLB

9

ECE 4170 (17)

Specialized Resources

• Carry chains between columns of CLBs• Configuration of CLB RAM as

– Memories rather than lookup tables– Shift registers (Xilinx Virtex 5)

• Core generators– Optimized libraries of components– Vendor supplied

• Configuration bit stream for configuring a design– What about editing the bit stream directly!

ECE 4170 (18)

Chip Configuration: Xilinx

• Configuration bits for CLBs– bits for loading the LUTs– bits for configuring the flip flops– bits for setting multiplexors

• Configuration bits for the switch matrix– Connecting horizontal and vertical lines– Tri-state devices within the CLBs

• Configuration bits for the IOBs– IO clocks– storage vs. direct “access” to the pin

• Equivalent concepts for all vendors

10

ECE 4170 (19)

Heterogeneous FPGAs: The Xilinx Virtex 5

• Basic building block remains the same• Substrate augmented with “hard cores”

ECE 4170 (20)

The Basic Virtex 5 Slice

Look-up Tables (LUTs)Flip Flops

Carry Chains

11

ECE 4170 (21)

Customized Virtex 5 Slice

Can be configured as Block RAM or

Shift register

ECE 4170 (22)

A DSP Slice

• Product families are customized with differing ratios of slice types to address different market segments

12

ECE 4170 (23)

A Simplified Design Flow

HDL State Machine SchematicEditor Editor Capture

Model Development

Synthesis

Place and Route

Programming

Behavioral Simulation

Functional Simulation

Verification

Device Programming

CoreGeneration

Utilitites

ECE 4170 (24)

Summary

• VHDL is used to describe digital systems and hence has language constructs for key attributes– Events, propagation delays, and concurrency– Timing, and waveforms– Signal values and use of multiple drivers for a signal

• VHDL has an underlying discrete event simulation model– Model the generation of events on signals– Built in mechanisms for managing events and the

progression of time– Designer simply focuses on writing accurate descriptions