fpga-based system design: chapter 4 copyright 2004 prentice hall ptr hdl coding n synthesis vs....
TRANSCRIPT
![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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032707/56649e4f5503460f94b46a0c/html5/thumbnails/21.jpg)
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.