digital design using vhdl and xilinx fpga. vhdl based synthesis

39
Digital Design using VHDL and Xilinx FPGA

Post on 19-Dec-2015

307 views

Category:

Documents


13 download

TRANSCRIPT

Page 1: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Digital Design using VHDL and

Xilinx FPGA

Page 2: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

VHDL based synthesis

Page 3: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

VHDL code

architecture RTL1 of RESOURCERTL1 of RESOURCE isbegin seq : process (RSTn, CLOCK) begin if (RSTn = '0') then DOUT <= (others => '0'); elsif (CLOCK'event and CLOCK = '1') then case SEL is when "00" => DOUT <= unsigned(A) - 1; when "01" => DOUT <= unsigned(B) - 1; when "10" => DOUT <= unsigned(C) - 1; when others => DOUT <= unsigned(D) - 1; end case; end if; end process;end RTL1;

Page 4: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Synthesized Synthesized schematic schematic

for RTL1 of for RTL1 of resourceresource

delay 57 nsdelay 57 nsarea 65area 65

number of number of flip-flops 16flip-flops 16

Page 5: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

HDL Design Verification

HDL

Synthesis

Implementation

Download

VHDL

Implement your design using VHDL

Functional Simulation

TimingSimulation

In-Circuit Verification

BehavioralSimulation

Page 6: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Synthesis Design Verification

BehavioralSimulationHDL

Synthesis

Implementation

Download

VHDL

Synthesize the design to create an FPGA netlist

Functional Simulation

TimingSimulation

In-Circuit Verification

Page 7: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

ImplementationDesign Verification

BehavioralSimulationHDL

Synthesis

Implementation

Download

VHDL

Translate, place and route, and generate a bitstream to download in the FPGA

Functional Simulation

TimingSimulation

In-Circuit Verification

Page 8: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

On-Chip Verification

Control

USERFUNCTION

ILA

USERFUNCTION

USERFUNCTION

ILA

ILA

Chipscope ILA

PC running ChipScope

MultiLINX Cable orParallel Cable III

JTAGConnection

Target Board

Target FPGAwith ILA cores

JTAG

ChipScope ILA System Diagram

Page 9: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Digilab D2FT & DIO5 Boards

The Digilab 2FT/DIO5 board combination is an FPGA-based development platform with a large FPGA and I/O devices to support a wide range of digital circuits, including a complete

computer system.

Page 10: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

4-bit Shift Register

Page 11: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

4-bit Shift Register

Page 12: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Xilinx FPGA Architecture

ProgrammableInterconnect

I/O Blocks (IOBs)

ConfigurableLogic Blocks (CLBs)

Tristate Buffers

Global Resources

Page 13: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

CIN

SwitchMatrix

TBUFTBUF

COUTCOUT

Slice S0

Slice S1

Fast Connects

Slice S2

Slice S3

CIN

SHIFT

CLB

• Flexible resources— Wide-input functions

• 16:1 multiplexer in 1 CLB— Fast arithmetic functions

• Two dedicated carry chains — Cascadable shift registers in LUT

• 128-b shift register in 1 CLB • Ease of Performance

— Direct routing enabling high speed

Page 14: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Slice

• Each slice contains two:— Four inputs lookup tables— 16-bit distributed SelectRAM— 16-bit shift register

• Each register:— D flip-flop— Latch

• Dedicated logic:— Muxes— Arithmetic logic

— MULT_AND— Carry Chain

LUT

Register

Register

LUT CY

CY

SRL16

RAM16

G

F

MUXF5

Arithmetic Logic

MUXFx

Page 15: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

F5IN

CINCLKCE

COUT

D Q

CK

S

REC

D Q

CK

REC

O

G4G3G2G1

Look-UpTable

Carry&

ControlLogic

O

YBY

F4F3F2F1

XBX

Look-UpTable

BYSR

S

Carry&

ControlLogic

SLICE

COUT

D Q

CK

S

REC

D Q

CK

REC

O

G4G3G2G1

Look-UpTable

Carry&

ControlLogic

O

YBY

F4F3F2F1

XBX

Look-UpTable

F5INBYSR

S

Carry&

ControlLogic

CINCLKCE SLICE

CLB Structure

• Each slice has 2 LUT-FF pairs with associated carry logic• Two 3-state buffers (BUFT) associated with each CLB, accessible by all CLB

outputs

Page 16: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Inputs(ABCD) Output(Z)0000 00001 00010 10011 0…… ..1110 11111 1

Truth Table

LUT =

4-input logic function

CD

Z

A

B

Four-Input LUT

• Implements combinatorial logic– Any 4-input logic function– Cascaded for wide-input functions

Page 17: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

RAM16X1S

O

DWE

WCLKA0A1A2A3

RAM32X1S

O

DWEWCLKA0A1A2A3A4

RAM16X2S

O1

D0

WEWCLKA0A1A2A3

D1

O0

=

=LUT

LUT

or

LUT

Distributed RAM• CLB LUT configurable as Distributed

RAM– A LUT equals 16x1 RAM– Implements Single and Dual-Ports– Cascade LUTs to increase RAM size

• Synchronous write• Synchronous/Asynchronous read

– Accompanying flip-flops used for synchronous read

Page 18: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

D QCE

D QCE

D QCE

D QCE

LUT

INCE

CLK

DEPTH[3:0]

OUTLUT =

Shift Register

• Each LUT can be configured as shift register

– Serial in, serial out• Dynamically addressable delay up to 16

cycles• For programmable pipeline• Cascade for greater cycle delays• Use CLB flip-flops to add depth

Page 19: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

12- Input OR Function

0 1

INIT=0001

0 1

INIT=0001

0 1

INIT=0001

Vcc

Vcc

Vcc

Output

LUT1

LUT2

LUT3

DCBA

HGFE

LKJI

MUXCY

MUXCY

MUXCY

4-Input NOR Truth TableInputs(ABCD) Output(Z) Output(HEX)

0000 10001 00010 00011 0…… .. ..1011 0 ..1100 01101 01110 01111 0

1

0

• Utilization– 3 LUTs and 3 MUXCYs– As opposed to 4 LUTs

• Performance– 1 logic level– As opposed to 2 logic levels

Page 20: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

High-Performance Routing

• Local routing– Direct connections

• General Routing Matrix (GRM)– Single line, Long line, Hex line

• Dedicated routing– Internal 3-state bus

• Global routing– Primary Clock Buffer lines, Secondary lines

SINGLE

HEX

LONG

SINGLE

HEX

LONG

SIN

GL

E

HE

X

LO

NG

SIN

GL

E

HE

X

LO

NG

TRISTATE BUSSES

SWITCHMATRIX

SLICE SLICE

LocalFeedback

CA

RR

Y

CA

RR

Y

CLB

CA

RR

Y

CA

RR

Y

INTERNAL BUSSES

Single-length linesBuffered Hex lines

Direct connections

Long lines and Global linesInternal 3-state busses

General RoutingMatrix (GRM)

Page 21: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Output standard = LVTTL Fast 16mA

(OBUF_F_16)

Temp=room, Vdd=2.5V, Vcco=3.3V

Waveforms:

1: CLKIN

2: DATA OUT (no DLL)

3: DATA OUT (DLL deskewed)

Timing

w/o DLL w/ DLL

r->r r->f r->r r->f

3.6n 3.5n 1.4n 1.4n

Improved Clock-to-out Using DLL

Spartan-II clock-to-out delays reduced over 50%

Page 22: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

CORE GeneratorDesign Verification

BehavioralSimulation

Synthesis

Implementation

Download

Functional Simulation

TimingSimulation

In-Circuit Verification

VHDL

COREGen

Instantiate optimized IP within the VHDL code

Page 23: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Synthesize, Implement, DownloadDesign Verification

BehavioralSimulation

Synthesis

Implementation

Download

Functional Simulation

TimingSimulation

In-Circuit Verification

COREGen

Synthesize, Implement, and Download the bitstream, similar to the original design flow

VHDL

Page 24: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

IP CENTER http://www.xilinx.com/ipcenter

$P Additive White Gaussian Noise (AWGN) $P Reed Solomon$ 3GPP Turbo Code$P Viterbi DecoderP Convolution Encoder $P Interleaver/De-interleaverP LFSRP 1D DCTP 2D DCTP DA FIR P MACP MAC-based FIR filter Fixed FFTs 16, 64, 256, 1024 pointsP FFT 16- to 16384- pointsP FFT - 32 PointP Sine Cosine Look-Up Tables$P Turbo Product Code (TPC)P Direct Digital Synthesizer P Cascaded Integrator CombP Bit CorrelatorP Digital Down Converter

P Asynchronous FIFOP Block Memory modulesP Distributed MemoryP Distributed Mem EnhanceP Sync FIFO (SRL16)P Sync FIFO (Block RAM)P CAM (SRL16)P CAM (Block RAM)

P Binary DecoderP Twos ComplementP Shift Register RAM/FFP Gate modulesP Multiplexer functionsP Registers, FF & latch basedP Adder/SubtractorP AccumulatorP ComparatorP Binary Counter

P Multiplier Generator - Parallel Multiplier - Dyn Constant Coefficient Mult - Serial Sequential Multiplier - Multiplier EnhancementsP Pipelined DividerP CORDIC

Base FunctionsBase Functions

Memory FunctionsMemory FunctionsDSP FunctionsDSP Functions Math FunctionsMath Functions

Key: $ = License Fee, P = Parameterized, S = Project License Available, BOLD = Available in the Xilinx Blockset for the System Generator for DSP

Xilinx IP Solutions

Page 25: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Xilinx CORE Generator

List of available IP from or

FullyParameterizable

Page 26: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Relative Placement

Other logic has noeffect on the core

Fixed Placement & Pre-defined Routing

GuaranteesPerformance

Guarantees I/O andLogic Predictability

Fixed PlacementI/Os

Xilinx Smart-IP Technology

200 MHz

200 MHz

200 MHz

Core PlacementNumber of CoresDevice Size

200 MHz

• Pre-defined placement and routing enhances performance and predictability

• Performance is independent of:

Page 27: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

MATLAB

• MATLAB™, the most popular system design tool, is a programming language, interpreter, and modeling environment

– Extensive libraries for math functions, signal processing, DSP, communications, and much more

– Visualization: large array of functions to plot and visualize your data and system/design

– Open architecture: software model based on base system and domain-specific plug-ins

Page 28: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

MATLAB

• Frequency response of input sound file

Page 29: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Simulink

• Simulink™ - Visual data flow environment for modeling and simulation of dynamical systems

– Fully integrated with the MATLAB engine– Graphical block editor– Event-driven simulator– Models parallelism– Extensive library of parameterizable functions

• Simulink Blockset - math, sinks, sources • DSP Blockset - filters, transforms, etc.• Communications Blockset - modulation, DPCM, etc.

Page 30: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

MATLAB/Simulink

Real time frequency response from a microphone: emphasizes the dynamic nature of Simulink

Page 31: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Traditional Simulink FPGA Flow

GAP

System Architect

FPGA Designer

Verify Equivalence

VHDL

Synthesis

Implementation

Download

Timing Simulation

In-Circuit Verification

Functional Simulation

System Verification

Simulink

Page 32: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Creating a SystemGenerator Design

• Invoke Simulink library browser• To open the Simulink library browser,

click the Simulink library browser button or type “Simulink” in MATLAB console

• The library browser contains all the blocks available to designers

• Start a new design by clicking the new sheet button

Page 33: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Creating a SystemGenerator Design

• Build the design by dragging and dropping blocks from the Xilinx blockset onto your new sheet.

• Design Entry is similar to a schematic editorConnect up blocks by pulling the arrows on the sides of each block

Page 34: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Creating a SystemGenerator Design

SysGen blocks realizable in Hardware

I/O blocks used as interface between the Xilinx Blockset and other Simulink blocks

Simulink sinks and library functions

Simulink sources

Page 35: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Using the Scope

• Click Properties to change the number ofaxes displayed and the time range value(X-axis)

• Use the Data History tab to control how many values are stored and displayed on the scope– Also can direct output to workspace

• Click Autoscale to quickly let the toolsconfigure the display to the correct axisvalues

• Right-click on the Y-axis to set its value

Page 36: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Design and Simulatein Simulink

Push “play” to simulate the design. Go to “Simulation Parameters” under the “Simulation” menu to control the length of simulations

Page 37: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Generate the VHDL Code

• Select the target device• Select to generate the testbench• Set the System clock period desired• Generate the VHDL

Once complete, double-click the System Generator token

Page 38: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Inputting Data from the Workspace

• “From Workspace” block can be used to input MATLAB data to a Simulink model

• Format:– t = 0:time_step:final_time;– x = func(t);– make these into a matrix

for Simulink• Example:

– In the MATLAB console, type: t = 0:0.01:1;

x = sin(2*pi*t); simin = [t', x'];

Type ‘FromWorkspace’ to view the example

Page 39: Digital Design using VHDL and Xilinx FPGA. VHDL based synthesis

Outputting Datato the Workspace

• “To Workspace” block can be used to output a signal to the MATLAB workspace

• The output is written to the workspace when the simulation has finished or is paused

• Data can be saved as a structure (including time) or as an array

Type ‘ToWorkspace’ to view the example