FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR HDL coding n Synthesis vs....

21
FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR HDL coding Synthesis vs. simulation semantics Syntax-directed translation HDL coding for synthesis. Verilog. VHDL. State machines Element structure Synthesis I/O configuration Timing model

Transcript of FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR HDL coding n Synthesis vs....

Page 1: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

HDL coding

Synthesis vs. simulation semantics Syntax-directed translation HDL coding for synthesis.

– Verilog.– VHDL.

State machines Element structure Synthesis I/O configuration Timing model

Page 2: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Synthesis vs. simulation semantics

Simulation:– Events are interpreted during simulation.

Synthesis:– Logic/memory is extracted from the

description.CL

Page 3: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Logic synthesis

Synthesis = translation + optimization.– Translated from HDL or direct Boolean

network.– Ideally, translation includes don’t-cares.– Optimization rewrites to satisfy objective

functions: area, speed, power.

Page 4: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Syntax-directed translation

x = a and b;

a

bx

if (a or b)

begin

x = c;

end; a

b x

c

Page 5: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Verilog simulation and synthesis

Signal assignments must use the assign keyword:– assign sig3 = sig1 & sig2;

Page 6: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Verilog structural descriptions

Build a structure by wiring together components:input [7:0] a, b; input carryin; output [7:0] sum; output carryout;wire [7:1] carry;

fulladd a0(a[0],b[0],carryin,sum[0],carry[1]);fulladd a1(a[1],b[1],carry[1],sum[1],carry[2]);fulladd a2(a[2],b[2],carry[2],sum[2],carry[3]);

Type name Instance name

Page 7: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

VHDL for Synopsys synthesis

Each process should start with an activation list:

process foo (a,b,in1,in2) At least two processes:

– combinational;– sequential.

Sequential process includes

wait until clock…

Page 8: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Initializing variables

All variables used must be initialized.

Uninitialized variables cause latches to be introduced: BAD.

Page 9: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

State machines

Use case(x/z) statement to decode current state:initial begin: Init s0 = B”000”; end

case (curr)

2’b00:

if (in1 = ‘0’) begin o1 = a or b; end;

2’b01: ...

Page 10: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Process structure

How many combinational processes?

– separate datapath;

– single process for data and control. Comparison:

– single process is simpler;

– separate datapath uses less logic.

combin seq vs.

ctrlcombin

seqdp

combin

Page 11: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Multiplexing a datapath element

case (muxctrl)

1’b0: muxout = a;

1’b1: muxout = b;

end;

foo = muxout or c;

Page 12: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Arithmetic

Can generate logic by hand. Operators (+,-,<,>,*,+1,-1,etc.) can be

mapped onto library elements.– May be limited to standard widths.

Page 13: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

General synthesis hints

Check out all warnings carefully. An early synthesis run keeps you from

debugging a simulation that won’t synthesize.

Page 14: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

The synthesis process

Synthesis is driven by a script:compile -map_effort med

report_fpga > TOP + “.fpga” Script may be customized for the design.

– Verilog file foo.v, script file foo.script.– Typically start with a standard script.

Page 15: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Timing constraints

Clock period.– Duty cycle, etc.

Group path timing.– Cells or ports that share the same timing

behavior. Input/output delay.

– End-to-end delay.

Page 16: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Hierarchical design and logic optimization

Boolean network model does not reach across component boundaries.

Tools generally won’t automatically flatten logic.– Size may blow up.

You may direct the tool to flatten a group of components.– Heuristic flattening algorithms may be used.

Page 17: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Instantiating memory

Use a memory model:– primitive memories based on LUT;– larger memories synthesized from multiple

logic elements. Synthesis can’t handle a memory described

behaviorally.– Can handle behavioral ROM.

Page 18: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

I/O configuration

Synthesis can automatically determine the types of many I/O blocks, configure appropriately.

Some things that need to be specified:– indirect three-state activity;– I/O pin location;– registered bidirectional I/O.

Page 19: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Timing model

Synthesis system reads a wire load model from a technology library.– Model depends on part, speed grade.

Page 20: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Attribute passing

FPGA Compiler allows attributes to be passed to EDIF:– BUFG X(.I(a),.O(b)); // synopsys attribute LOC

BR

Page 21: FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.

FPGA-Based System Design: Chapter 4 Copyright 2004 Prentice Hall PTR

Results and reports

Save design as:– database;– EDIF.

Types of reports:– Default synthesis report.– Configuration report.

» Describes LEs, IOBs, etc.

– Timing report.