70
“FPGA – CPLD Technologies October 2005 October 2005 October 2008 October 2008 October 2012 October 2012 and VHDL programming basics” Seminar Updated 2012 Version Teodoro BOVE (Alstom) - Svetozar Jovanovic (Altran- Italia)

Programmable Devices En 01

Embed Size (px)

DESCRIPTION

The presentation is an introduction to the electronics programmable devices and VHDL programming

Citation preview

Page 1: Programmable Devices En 01

“FPGA – CPLD Technologies

October 2005October 2005

October 2008October 2008

October 2012October 2012

and VHDL programming basics”Seminar

Updated 2012 VersionTeodoro BOVE (Alstom) - Svetozar Jovanovic (Altran-

Italia)

Page 2: Programmable Devices En 01

SEMINAR SCHEDULEl 09.00-09.15 Welcome and coffeel 09.15-10.30 FPGA Technologies compared to previous

generation of programmable devices like SPLD e CPLD

l 10.30-10.45 Coffee Breakl 10.45-13.00 Today FPGA scenario and ACTEL® PROAsic® APA

Programmable logic and VHDL programming

Date of last change Reference/Name of Presentation/SN 2

l 10.45-13.00 Today FPGA scenario and ACTEL® PROAsic® APAdevices family » for LO.RE railway vehicleRACK-BUS

l 13.00-13.45 Lunch Breakl 13.45-15.00 Introduction to VHDL programming l 15.00-15.30 Coffee Breakl 15.30-17.00 Application example: FPGA for ETHERNET BUS

interface board LO.REl 17.00-17.30 Today trands and last news- technology evolution

Page 3: Programmable Devices En 01

FPGA technologies comparison to previousgeneration programmable devices SPLD

and CPLD / history overview

27-12-2008 FPGA-CPLD-VHDL Seminar 3

and CPLD / history overview

Page 4: Programmable Devices En 01

CPLD and FPGA, history resume

• Gates volume

• 1970-75 SPLD’s 22V10 PAL (22 INPUTS 11 OUTPUTS)

• 1995 CPLD’s (5K Gates), FPGA’s 100K Gates)

• 2005 CPLD’s (50K Gates), FPGA’s (2,5 Mgates)

• 2008 CPLD’s (75K Gates), FPGA’s (5 Mgates)

27-12-2008 FPGA-CPLD-VHDL Seminar

• 2008 CPLD’s (75K Gates), FPGA’s (5 Mgates)

• 2012 FPGA’s (20 Mgates)

• Configuration technology

• 1970-75 EPROM, EEPROM, ANTIFUSE

• 1990 / 1995 EEPROM, ANTIFUSE, SRAM

• 1999 / 2012 EEPROM, ANTIFUSE, SRAM, FLASH

Page 5: Programmable Devices En 01

CPLD e FPGA configuration bitstreaming

The configuration operations of programmable devices is implemented switching stably the connection transistors, nowtimes the typical

technologies are EEPROM, SRAM, FLASH, mainly through ISP (in circuit programming feature) and ANTIFUSE which is one time not-reversible

configuration. The user logic cells of course are all in x-CMOS tech.

27-12-2008 FPGA-CPLD-VHDL Seminar 5

Page 6: Programmable Devices En 01

CPLD ARCHITECTURE

The CPLD architecture for example is as follows:

27-12-2008 FPGA-CPLD-VHDL Seminar 6

Picture 8: PIA -Programmable interconnect array

Picture 13: Global routing pool

Page 7: Programmable Devices En 01

Macrocella CPLD

27-12-2008 FPGA-CPLD-VHDL Seminar 7

CPLD typical logic macrocell structure (PIA = Programmable interconnect array)

Page 8: Programmable Devices En 01

CPLD global aspects

• The internal signals propagation time are predictable because the routing paths are all the same for all logic macrocells. Normally the typical delays are between

4 and 15 ns IN-OUT

• The typical CPLD architecture is based on more macrocelles connected between them. Each macrocell is implemented with more integrated basic logic gates builded toghether, like happens in PLA/PAL SPLD (22V10 like) devices. All the macrocells

are interconnected between them with a dedicated logic matrix

• The CPLD common architecture is’ « typically not so much flexible », this on the

27-12-2008 FPGA-CPLD-VHDL Seminar 8

• The CPLD common architecture is’ « typically not so much flexible », this on the other hand is also a their advantage because the internal signal delays are

predictable :

• The CPLD devices are « right tailored » for a some typical applications

• The « LOGIC » volume of these devices is up-limited to 75K Gate

• The typical applications are for instance various kind of « low level » interfaces, like BUS control signals, simple state machine, simple real time

processing in applications without memory requirements, combinatorial functions

Page 9: Programmable Devices En 01

Current FPGA-CPLD scenario and comparison between the FPGA ACTEL® PROASIC PLUS « APA « LO.RE project choice and competitor

devices

27-12-2008 FPGA-CPLD-VHDL Seminar 9

devices

Page 10: Programmable Devices En 01

FPGA ARCHITECTURE

This picture shows an example:

27-12-2008 FPGA-CPLD-VHDL Seminar 10

Page 11: Programmable Devices En 01

FPGA logic element architecture

27-12-2008 FPGA-CPLD-VHDL Seminar 11

Page 12: Programmable Devices En 01

Current FPGA overview

Has been considered three FPGA devices providers / vendors:

• XILINX®

• ALTERA®

27-12-2008 FPGA-CPLD-VHDL Seminar 12

• ACTEL®

Some others was not considered only for practical reasons.

Each one (independently by economical aspects) has its preferred market, is also true that they has different

device architectural approach. This has the consequence that logic implementations are different.

Page 13: Programmable Devices En 01

XILINX®, ALTERA®, ACTEL®

All the mentioned FPGA providers are using different physical implementations (both architectural and

technological) this means that same VHDL designs could produce better or less kind of performances.

Specially what has a relevant impact on the overall FPGA performances, is the « connectivity capability» between its

27-12-2008 FPGA-CPLD-VHDL Seminar 13

performances, is the « connectivity capability» between its logic elements and the mean delay amount.

This is resulting in :

• timing performances

• logic, routing and I/O resources saturation

Page 14: Programmable Devices En 01

This architecture is characterised by following morphoology :

Altera : The LE logic elements are all grouped in the logic array blocks, for instance 8 or 16 with great connectivity between the macrocells which belongs to the same LE, the connectivity between different groups is demanded to relatively limited « cross highways » as shown below (this because certain amount of silicon area is filled by group of LE itself) :

ALTERA® typical architecture

27-12-2008 FPGA-CPLD-VHDL Seminar 14

Page 15: Programmable Devices En 01

XILINX® typical architecture

With a different approach, Xilinx prefer single LE, simplest macrocells blocks interconnected with a diffentiated stronger net, as shown below, which gives a very good connectivity and routing capability, the direct consequence is a benefit role in minimizing signals delay:

27-12-2008 FPGA-CPLD-VHDL Seminar 15

Page 16: Programmable Devices En 01

ACTEL® typical architecture

The Actel architecture approach follows the Xilinix « direction », but much more intensively :

In practice the ACTEL® FPGA devices achieve a « granularity » up to a « quasi » ASIC level. The LE logic elements are simple, but with really impressive connectivity and routing capability between them, this imply a valuable benefit in terms of signals delay as shown below:

27-12-2008 FPGA-CPLD-VHDL Seminar 16

Page 17: Programmable Devices En 01

- ALTERA® devices architecture is typically aggregating LE the logicelements, in other words blocks of macrocells, the consequence is thatare favored designs with highly concentrated logic and / orcombinatorial complexity, on the other hand this approach may impacta global connectivity, and IN-OUT signal delay

Comparison about architecture approaches

- XILINIX® devices architecture has a different approach, in practice, themajor difference are:• Less aggregation of simplest LE logic elements

27-12-2008 FPGA-CPLD-VHDL Seminar 17

• Less aggregation of simplest LE logic elements• More resources dedicated to the connectivity and routing between LE.This may affect designs, the complexity is distributed over more LE, whichare anyway connectable due to rich and differentiated routing resources.

- ACTEL® devices as already mentioned about the logic elements LEthey are the simplest compared to other two, this results in a high gradeof “granularity”, the connectivity and routing resources are powerful andflexible, so these devices are ASIC like. The impact on designs is a large“spectrum” of implementable applications, high device usage efficiency.The other side of “medal” is that global application speed is limited.

Page 18: Programmable Devices En 01

Comparing table for the LO.RE project

2005 FPGA COMPARE TABLE FOR LORE PROJ.

PACK.I/O

PINSI/O

NECSPEED GRADE

DEVELOPING SYSTEM

QUOT.TEC. VOLTAGE. PROG.

POWERCONS.

COMMENTS

XILINIX SPARTAN 3 XC3S200

200KG

208 PQFP

256 FBGA

141

173173

GOOD

MAX CLKIN

280 MHZ

ISE WEB / DESKTOP LIMITED

MODELSIM 500$

20$ + FLASH PROG

VOLAT. SRAM

3: 1.2V 2.6V 3.4V

ISP EXTERNAL FLASH O R PROM VIA

JTAG

MEDIUM

EFFICiENT ARCHITECTURE, HIGH

SPEED, MEDIUM COMPLEXITY LOGIC

ELEMENTS

NEXT GEN. DEVICE MORE I/O 190 IN FBGA PACK, MAY BE INTERNAL SMALL INTERNAL FLASH

XC3S500E

LIBERO IDE, DUE TO FLASH TECH.

VERY HIGH RELIABILITY

27-12-2008 FPGA-CPLD-VHDL Seminar 18

ACTEL PROASIC PLUS APA 150150KG

208 PQFP

256 FBGA

158186

173

SUFFIC.

MAX CLKIN

180 MHZ

LIBERO IDE, SYNPLIFY,

SYNTH, SIMULATORE

MODELSIM VHDL

FREE OF CHARGE

25$NON-

VOLAT. FLASH

2: 2.5V 3.3V

ISP ONE TIME

PROGRAMMING VIA

JTAG

VERY LOW

VERY HIGH RELIABILITY IN HARSH

ENVIRONMENT HIGH GRANULARITY

ARCHITECTURE , SIMPLE LOGIC CELLS,

RICH ROUTING RESOURCES

NEXT GEN. DEVICE REDUCED PROGRAMMING TIME 1 MIN. TO TEN SE. SMALL INTERNAL FLASH

A3P400

ALTERA CYCLONE EP1C6 300KG

240PQFP

256 FBGA

173185

173

VERY GOOD

MAX CLKIN

400 MHZ

QUARTUSTWO

LIMITED EDITION FREE OR FULL WITH

MODELSIM 2000 $

27$ + FLASH PROG

VOLAT. SRAM

2: 1.5V 3.3V

ISP EXTERNAL FLASH O R PROM VIA

JTAG

RELAT. HIGH

COMPLEX ARCHITECTURE, HIGH

INTEGRATION LE ELEMENTS, WELL

SUITED FOR COMPLEX AND FAST

APPLICATIONS

NEXT GEN. DEVICE BETTER INTEGRATION ADDED DSP FUNCTIONS, ENHANCED POWER CONSUMPTION

EP2C6

Page 19: Programmable Devices En 01

ACTEL® PROAsic PLUS® APA FPGA – Choice highlights:

• For LO.RE project the choice has been finalised, resulting in ACTEL® FPGA APA150 device, considering the following aspects:

• Higher I/O pin count, 186 in FBGA package – (183 used pin)

• Properly tailored gate volume (150 Kgate)

• Two operating voltages 2.5 V for core and 3.3 V for the I/O

27-12-2008 FPGA-CPLD-VHDL Seminar 19

• Free of charge « LIBERO® » developing system Modelsim® included

• Very low power consumption

• No need external device for data retention

• High reliability in hostile and harsh environment

• Easy technical support, very well suited in Italy

• Overall Logic elements architecture, well calibrated to the application

Page 20: Programmable Devices En 01

FPGA-CPLD global aspects and conclusions A

Looking back on previous considerations, comparing FPGA vs. CPLD we can state that:

• The FPGA’s has shown generally speaking improved average density, and complexity, possibly driven by growing design integration demand of embedded SRAM memory, FLASH memory, processor cores, this isn’t case for CPLD

27-12-2008 FPGA-CPLD-VHDL Seminar 20

• Nowtimes the FPGA devices are reaching 3,5 million gates

• As « pro » for the CPLD, still the predictable signals delay is an advantage, that’s also one of the reasons because this devices has still their market

• The case of FPGA’s is that there is still a unpredictability of signal delays, but the enormous gate avalaibility and connectivity and routing resources are partially compensating this aspect.

Page 21: Programmable Devices En 01

FPGA-CPLD global aspects and conclusions B

• About the EDA tools is interesting to observe that today a place androute process for a FPGA 1 MLN gate big, used at 90% and with the95% fixed I/O, takes on a modern laptop something like 15 mins• In 1993 a FPGA 5K gate big used at 60% and 85% fixed I/O has beentaking several hours to complete the place and route process, with1 to 15 net left to be connected manually

• So the EDA tools has been following in some way interleaved the

27-12-2008 FPGA-CPLD-VHDL Seminar 21

• So the EDA tools has been following in some way interleaved the technology in FPGA development and design, even that, today you can find in a current design pin to pin delays form 10 to 40 ns, this because the FPGA architectures has been improved but are still too much dependent from the origins

• Today in the CPLD usage is still possible to obtain pin to pin delays contained in 5-15 ns range • For the reasons above, nowtimes in the FPGA are integrating dedicate I/O channels for high or very high frequency signals, for instance the standard JEDEC LVPECL signals, differential, LVDS or similar etc.

Page 22: Programmable Devices En 01

FPGA-CPLD global aspects and conclusions C

• Today the FPGA thanks also to HW languages VHDL,VERILOG, SYSTEM VERILOG are integrating as already mentioned above, variuous IP, embedded 16/32 bit processors realizing systems on chip « SoC », which are replacing sometimes a entaire HW boards belonging times ago

• In conclusion we can say that FPGA and CPLD are not in competition at all, each one has its market

27-12-2008 FPGA-CPLD-VHDL Seminar 22

all, each one has its market

• The very well known differences, are sharply separating their usage in applications. Very often in the same application you can find both FPGA and CPLD which are satisfying well different requirements:

- FPGA for medium-high end designs

- CPLD for low end designs, or special cases

Page 23: Programmable Devices En 01

VHDL programming basics

27-12-2008 FPGA-CPLD-VHDL Seminar 23

Each slide will be explained using also a simulation examples with « ACTIVE® VHDL » EDA tool

Page 24: Programmable Devices En 01

Preface VHDL 93 (what is this ?)

• Is a digital HW programming language (as VERILOG or SYS. VERILOG)

• Is a IEEE standard IEEE®, the 93 is last version

• Can be considered in some way higher level abstraction language compared to VERILOG

• Is a parallel language, sometimes include sequential statements « C » like

• The implementation statements can be inferred, or instantiated (see the

27-12-2008 FPGA-CPLD-VHDL Seminar 24

• The implementation statements can be inferred, or instantiated (see the following section « VHDL comments « A »)

• The designs implemented as inferred pure VHDL source code, are portable over all HW platforms FPGA – CPLD in a vendor independent way

• The designs implemented with instantiated statments are using vendor specific HDL macros, therefore are depending by them

• Today there are a lot IP HDL open source or to pay as a package or netlist

• In the following sections (see « Template VHDL ») you can see code examples

Page 25: Programmable Devices En 01

Comments on VHDL section « A »

• Is useful to clear a bit the concepts of INFRERENCE and INSTANTCE what they are in practice ? :

• INSTANCE – is to insert in your VHDL code a statement which isreferring to a « component » which is a separate file that contain ablind VHDL code, the statement in your code is « viewing » only thecomponents inputs and outputs, that are usable in your code to

27-12-2008 FPGA-CPLD-VHDL Seminar 25

components inputs and outputs, that are usable in your code tointeract with a component itself. The component usually is vendorown property. So very often in its EDA tools editions the vendorsleave available for free a basic digital components, like counters,arithmetic functions, glue logic, logic functions etc. Of course itsusage is very convenient because you don’t have to write the codefor them, but your design is depending by specific HW platform

• INFERENCE – see the next page

Page 26: Programmable Devices En 01

• INFERENCE – means to write the VHDL code using thelanguage primitives and instructions – key words, this is almostmandatory to complete whole design, because even you areusing also a vendor components, then anyway you have to writethe VHDL code to interface – intergrate it in your design.

Is straightforward that you can write also your open source VHDL

Comments on VHDL section « A » continued

27-12-2008 FPGA-CPLD-VHDL Seminar 26

Is straightforward that you can write also your open source VHDLcomponents and use it in your design. This approach has theadvantage that your code ideally is portable on every HWplatform regardless the vendor that you want to use

Page 27: Programmable Devices En 01

VHDL code example

27-12-2008 FPGA-CPLD-VHDL Seminar 27

Page 28: Programmable Devices En 01

Comments on VHDL section « B »

• A very important concept is that every VHDL complete design (thathas to be fit in a physical programmable device) is normallyhierarchically organized. So the typical structure of a VHDL deign is akind of « tree » of different files (extension *.vhd) :

- top entity VHDL (device I/O visibility)- component 1 VHDL

entity of component 1

27-12-2008 FPGA-CPLD-VHDL Seminar 28

entity of component 1- component 1a VHDL

entity of component 1a- component 2 VHDL

entity of component 2- component 2a VHDL

entity of component 2a

The top entity VHDL is contained in a VHDL main file, on whichappears as language structure which include all the I/O of devicesignals name, every one of them has its reference inside the main file-

Page 29: Programmable Devices En 01

some of them have a reference to a sections limited at main file,others are « pointing » to one or more components, as shown inhierarchy tree shown above, in previous page.

Another important aspect to highlight is the VHDL design testing.The VHDL testing is in pratice a simulation done with proper EDAtools. For instance two very popular EDA simulators areMoedlsim® and ACTIVE®. The simulation can be done at

Comments on VHDL section « B » continued

27-12-2008 FPGA-CPLD-VHDL Seminar 29

Moedlsim® and ACTIVE®. The simulation can be done atdifferent level of programmable device design:

1) functional simulation, at VHDL code entry level2) postsynthesis simulation at physical implementation level

(see for instance a SYNPLIFY® synthsizer)3) postlayout simulation after the place and route succesful

processFor more details see the examples that follows-

Page 30: Programmable Devices En 01

Comments on VHDL section « B » continued

As global knowledge, has to be pointed out, that everytype of simulation is done « facing » two objects:- the whole VHDL design under test, with file that contains the

« top entity »- the « testbench VHDL file » that contains also the top entity

which is the « mirror » of VHDL design top entity. This file inludeall the statements that are stimulating top entity inputs

27-12-2008 FPGA-CPLD-VHDL Seminar 30

all the statements that are stimulating top entity inputs

The simulation EDA tool, « reads » both, merging properly the relatedsignals, achieving the design under test outputs time evolving view,giving to user the opportunity to evaluate the signals behaviour.

Follows the VHDL section « C », VHDL project design flow chart andproject example.

Page 31: Programmable Devices En 01

Here are shown some examples of VHDL language primitives and defines, assignements:

Constants : constant NAME := integer 1000;

Variables : signal, std_logic, std_logic_vector(n..0) for 1 or more bit, integer

Comments on VHDL section « C »

27-12-2008 FPGA-CPLD-VHDL Seminar 31

Control : if, then, else, elsif, endif, when-case, when others (like default in C), for, while

Assignement : SWAP <= dir_cross; var <= ‘0’;

Combinatorial : and, or, nand, not, xor etc.

Comparing : = equal

Rising clk edge capture : if (clock’event) and (clock=‘1’)

Page 32: Programmable Devices En 01

VHDL design process Flow chart

VHDL DESIGN ENTRY

VHDL FPGA DESIGNPROCESS

WAVEFORM SHAPINGBLOCK DIAGRAM

SYTHESIS AND PHYSICALMAPPING, VHDL

TRANSLATION IN NETLIST.EDN FILE

SYNPLIFY TOOL

ACTIVEVHDL TOOL

WARNING AND TIMINGCHECK-OUT

PLACE AND ROUTE

BACKANNOTATIONPROCESS (VHDL

EXTRACTION)

IF NECESSARY DESIGNER

LIBERO ACTEL INTEGRATED TOOL

27-12-2008 FPGA-CPLD-VHDL Seminar 32

SYNTAX FIRST CHECK(FORMAL COMPILE)

TESTBENCH SIMULATIONSTIMULUS SYNTHESIS

FUNCTIONAL SIMULATION

FIRSTEXAMPLE

END

POSTSYNTHESISSIMULATION

DESIGNER PROCESSING

COMPILE

CONSTRAINTS ENTRY

POSTLAYOUT TIMINGANALYSIS

POSTLAYOUTSIMULATION

BITSTREAM STAPL FILEGENERATION

FPGA PROGRAMMING

IF NECESSARY DESIGNERCONSTRAINT INJECTION,

FLOORPLANNINGOPTIMISATION

SECONDEXAMPLE

END

Page 33: Programmable Devices En 01

A VHDL design project example

l Project concept and wanted signals time evolution

l Functional block diagram

l VHDL code design

l Testbench stimuli signal definitions

l VHDL functional simulation

27-12-2008 FPGA-CPLD-VHDL Seminar 33

l VHDL functional simulation

l The VHDL entry and simulation has been done with EDA ACTIVE® VHDL tool

Page 34: Programmable Devices En 01

Functional block diagram (for the other signals, the logic is the same)

0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0CLK

SETRESET

OUT BUS WR

BUS SIGNAL GENERATOR

27-12-2008 FPGA-CPLD-VHDL Seminar 34

RESET

SETRESET

OUT BUS ALE

WR

ALE

Page 35: Programmable Devices En 01

Wanted signals timing

27-12-2008 FPGA-CPLD-VHDL Seminar 35

Page 36: Programmable Devices En 01

VHDL main file, top entity design included, first section

27-12-2008 FPGA-CPLD-VHDL Seminar 36

Page 37: Programmable Devices En 01

VHDL main file, top entitydesign included, second section

27-12-2008 FPGA-CPLD-VHDL Seminar 37

Page 38: Programmable Devices En 01

VHDL main file, top entitydesign included, third section

27-12-2008 FPGA-CPLD-VHDL Seminar 38

Page 39: Programmable Devices En 01

VHDL main file, top entitydesign included, fourth section

27-12-2008 FPGA-CPLD-VHDL Seminar 39

Page 40: Programmable Devices En 01

Component file flip_flop_sr.vhd first section

27-12-2008 FPGA-CPLD-VHDL Seminar 40

Page 41: Programmable Devices En 01

Component file flip_flop_sr.vhd second section

22-10-2012 FPGA-CPLD-VHDL Seminar 41

Page 42: Programmable Devices En 01

Testbench stimuli file tb_peripheral.vhd first section

27-12-2008 FPGA-CPLD-VHDL Seminar 42

Page 43: Programmable Devices En 01

Testbench stimuli file tb_peripheral.vhd second section

27-12-2008 FPGA-CPLD-VHDL Seminar 43

Page 44: Programmable Devices En 01

Testbench stimuli file tb_peripheral.vhd third section

27-12-2008 FPGA-CPLD-VHDL Seminar 44

Page 45: Programmable Devices En 01

Functional simulation

27-12-2008 FPGA-CPLD-VHDL Seminar 45

Page 46: Programmable Devices En 01

Application example: Project- VHDL design for a FPGA part of ETHERNET CONNECTIVITY board

27-12-2008 FPGA-CPLD-VHDL Seminar 46

FPGA part of ETHERNET CONNECTIVITY board

Each slide will be explained using also a design- simulation examples with « ACTEL® Libero® » EDA tool

Page 47: Programmable Devices En 01

Board block diagram and FPGA interfacing

16

BIT

AD

DR

_D

SP

DSP TMS320F2812

SMSC LAN 91C111

MAC + PHY

LANETHERNET

RJ45ANDLED

CONNE

16 BIT DATA_DSP

16 BIT ADDR_DSP

CT

R_D

SP

CTR_DSP_C

BUF

TRAFO

16 B

IT D

AT

A_D

SP

VOLTAGEMONITOR

AND RESETSECTION

CLKSECTION

OSC OR

CAN PHYSICAL DRIVER

CAN

CONN

EEPROMSPI INTERF

JTAG / ICE

GPIO TEST POINTSE LED E 232

RS232CONN

27-12-2008 FPGA-CPLD-VHDL Seminar 47

ETHERNETCONTROLLER

FPGA BUS_SWITCHER

SRAM

DISPARI

SRAM

PARI

ECTORS

TO

LORE

BUS

BACKPLANE

CTR_DSP_C

ADDR_DX

16 BIT DATA_DX

CTR_DX

16 BIT DATA_SX

ADDR_SX

CTR_SX

ADDR_LORE 16 BIT

DATA_LORE 16 BIT

CTR_LORE

FFERS

LEVEL

SHIFTERS

+5

TO

+3,3V

POWER SUPPLYSECTION

+5V+3.3V+2.5V

OSC ORBUFFEREDDESKEWEDLORE CLK

OSC

ISPPROGRAMMINGMINIFLAT CONN

5 GENERAL PURPOSE CONNECTIONS TO LORE

+5VIL +5V ARRIVA

DAL BUSLORE

Page 48: Programmable Devices En 01

Board and FPGA brieffunctional explanation

In this application the FPGA has been set to be a interface aETHERNET 10/100 Mbit for the “LORE” custom BUS,toghther with a DSP and LAN controller chip.The interface between the DSP and custom rack BUSbackplane has been implemented through a double externalSRAM buffer, configured in a “ping-pong” way.

One of the main reasons for doubled SRAM implementation

27-12-2008 FPGA-CPLD-VHDL Seminar 48

One of the main reasons for doubled SRAM implementationwas to achieve a continous upstream and downstream databetween DSP on the ETHERNET board and the RACK CPU.For example in downsteram process, the FPGA wascharghed to take care that during the DSP writes in one oftwo SRAM, the RACK CPU was addressed to read from theother one SRAM. So the main FPGA function was to managethe handshake between the CPU and DSP, switchingproperly the data flowing through the SRAM double buffer.

The following block diagram shows this: --

Page 49: Programmable Devices En 01

BUS switch block diagram,rack LO.RE CPU—DSP via FPGA

27-12-2008 FPGA-CPLD-VHDL Seminar 49

Page 50: Programmable Devices En 01

Switch BUS handshaketestbench sequence

Date of last change Reference/Name of Presentation/SN 50

Page 51: Programmable Devices En 01

FPGA has been designed in fully integrated ACTEL tool « LIBERO »

27-12-2008 FPGA-CPLD-VHDL Seminar 51

Page 52: Programmable Devices En 01

Below is shown the VHDL top entity in peripheral.vhd file

27-12-2008 FPGA-CPLD-VHDL Seminar 52

Page 53: Programmable Devices En 01

VHDL component reg_gpio_bank declaration in the peripheral.vhd file

27-12-2008 FPGA-CPLD-VHDL Seminar 53

Page 54: Programmable Devices En 01

VHDL component reg_gpio_bankinstantation, DSP part

27-12-2008 FPGA-CPLD-VHDL Seminar 54

Page 55: Programmable Devices En 01

VHDL component reg_gpio_bankinstantation, BUS « LORE » part

27-12-2008 FPGA-CPLD-VHDL Seminar 55

Page 56: Programmable Devices En 01

VHDL component reg_gpio_bank in the its file

27-12-2008 FPGA-CPLD-VHDL Seminar 56

Page 57: Programmable Devices En 01

VHDL component reg_16_spec_1 in the reg_gpio_bank.vhd file

27-12-2008 FPGA-CPLD-VHDL Seminar 57

Page 58: Programmable Devices En 01

DSP data read demultiplexing in periperhal.vhd file, for BUS LORE read there is another similar process

27-12-2008 FPGA-CPLD-VHDL Seminar 58

Page 59: Programmable Devices En 01

Downstram and upstream state machine istance

27-12-2008 FPGA-CPLD-VHDL Seminar 59

Page 60: Programmable Devices En 01

FPGA tool design choice

27-12-2008 FPGA-CPLD-VHDL Seminar 60

Page 61: Programmable Devices En 01

FPGA syntax check each file

27-12-2008 FPGA-CPLD-VHDL Seminar 61

Page 62: Programmable Devices En 01

FPGA design synthesis

27-12-2008 FPGA-CPLD-VHDL Seminar 62

Page 63: Programmable Devices En 01

FPGA constraints

27-12-2008 FPGA-CPLD-VHDL Seminar 63

Page 64: Programmable Devices En 01

FPGA physical design layout and routing

27-12-2008 FPGA-CPLD-VHDL Seminar 64

Page 65: Programmable Devices En 01

Floorplanning (chip planner tool)

27-12-2008 FPGA-CPLD-VHDL Seminar 65

Page 66: Programmable Devices En 01

FPGA postlayout simulation

27-12-2008 FPGA-CPLD-VHDL Seminar 66

Page 67: Programmable Devices En 01

Conclusions A

Today seminar had a goal to give a simple « window » to a programmable logic devices, alligned with state of art in this electronics field.

Another objective was to introduce not experienced people to the HW programming, as example has been used the VHDL 93 language.

Has been focused the VHDL highlight aspects, trying to give a real feeling with the « core » of code logic and developing.

27-12-2008 FPGA-CPLD-VHDL Seminar 67

The main issues related to that was to point out :

- advantage to have a portable HW language:

for instance if one write a code for a special custom logic function component in inferenced way, according to a basic HW platform requirement, is possible to use it on a FPGA or even on an CPLD

- the simulation, using VHDL is possible to create a virtually whatever complexity stimulus

à

Page 68: Programmable Devices En 01

Conclusions B

Nowtimes the EDA tools has achieved very powerful performances, offering to a designers – architects, integrated suites to develop the whole digital

implementation on a programmable chip, from CPLD to complex FPGA’s .Today are also available a lot of IP’s free or to pay, which make easy its

integration in a design. The last trend is going towards to integrate also a various processors cores, pushing the integration of programmable devices

at reasonable prices and high performances.One example is ALTERA® vendor, which has its « QUARTUS 2® » EDA

27-12-2008 FPGA-CPLD-VHDL Seminar 68

One example is ALTERA® vendor, which has its « QUARTUS 2® » EDA which include several free IP, macros and the NIOS 2® 32 bit RISC

processor. In that EDA is included a wizard guided tool « SOPC BUILDER » which is powerful graphical-to-VHDL generator. With this tool is relatively

easy to build-up a single or multiprocessor platform mixed with rich library of IP’s and macros (UART, SPI, GPIO etc.). The tool is easy interacting with a NIOS EDA®, which is a developing, debug platform for C/C++ code which will run on a NIOS 2® processors, from this EDA you can write a code and then simulate it with Modelsim® running the code on NIOS 2 together with

its peripherals.

Page 69: Programmable Devices En 01

Conclusions C

The purpose of this seminar – presentation was not intended to approach a comparison between ASIC and/or programmable devices, even now is

also possible to develop on a programmable device entaire application and do the “hardcopy” on a silicon getting a wanted ASIC tested chip.

27-12-2008 FPGA-CPLD-VHDL Seminar 69

on a silicon getting a wanted ASIC tested chip.

Even what sentenced above, is clear that in some way the end performances “distance” between a

programmable devices and ASICs, today is not so big as in relatively past times.

Page 70: Programmable Devices En 01

www.altran.com

www.alstom.com

www.altran.com