• Aucun résultat trouvé

Introduction à la conception SoPC

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction à la conception SoPC"

Copied!
72
0
0

Texte intégral

(1)

Hervé BOEGLEN MASTER SEC

Introduction à la conception SoPC

(2)

Plan

 1. Introduction

 2. Technologie des FPGA

 3. Les HDL

 4. Le langage VHDL

 5. Outils de développement ALTERA

(Quartus II + DE2)

(3)

3/72

1. Introduction

 Evolution de l’électronique depuis 1948

2011 : Intel Core I7 2600K, 32nm :

Die : 216mm

2

1,16 x 10

9

transistors !

(4)

1. Introduction

 La loi de Moore

(5)

5/72

1. Introduction

 La densité de puissance

(6)

1. Introduction

 Les systèmes numériques aujourd’hui :

(7)

7/72

1. Introduction

 La conception des systèmes numériques :

(8)

1. Introduction

 Les cibles logicielles et matérielles :

Les cibles logicielles (=µP, µC, DSP)

(9)

9/72

1. Introduction

Les µP :

(10)

1. Introduction

Les µC :

(11)

11/72

1. Introduction

Les µC :

(12)

1. Introduction

Les Digital Signal Processors (DSP) :

(13)

13/72

1. Introduction

Les Digital Signal Processors (DSP) :

(14)

1. Introduction

En résumé sur les cibles logicielles :

• Avantages :

– Flexibilité: il suffit de modifier le programme pour modifier l’application

– Simple à mettre en œuvre grâce à la programmation de haut niveau (langage C) (possibilité de grande abstraction par rapport au matériel)

– Temps de conception courts et coûts de conception faibles – Prix de revient faible

• Inconvénients :

– Faibles performances (consommation de puissance, vitesse de fonctionnement, puissance de calcul, etc,) à cause

(15)

15/72

1. Introduction

 Les cibles matérielles spécialisées (ASIC) :

(16)

1. Introduction

 Les différentes cibles matérielles :

(17)

17/72

1. Introduction

 ASIC full custom :

(18)

1. Introduction

 ASIC standard cell :

(19)

19/72

1. Introduction

 ASIC gate array:

(20)

1. Introduction

 ASIC gate array:

(21)

21/72

1. Introduction

 Circuit configurable (ici FPGA) :

(22)

1. Introduction

 Le marché des FPGA :

Xilinx

All Others Altera

58%

31% 11%

(23)

23/72

1. Introduction

 ASIC vs FPGA:

(24)

1. Introduction

 De 1997 à 2005 : évolution des coûts

(25)

25/72

1. Introduction

 Temps de conception comparés :

(26)

1. Introduction

 Conclusion ASIC :

• Avantages :

– Haute intégration,

– Hautes performances (vitesse, consommation), – Coûts unitaires faibles en production de masse – Personnalisation

– Sécurité industrielle

• Inconvénients :

– Prix du 1er exemplaire, – Pas d’erreur possible – Non-flexible

(27)

27/72

1. Introduction

 Conclusion FPGA :

• Avantages :

– Possibilité de prototypage, – Low time to market

– Adaptabilité aux évolutions futures (reconfiguration) – Flexibilité

• Inconvénients :

– Intégration limitée,

– Moins performant qu’un ASIC

– Prix unitaire élevé en production de masse

(28)

1. Introduction

 Mais les méthodes de conception évoluent car :

• Toujours plus d’intégration (SoC)

• Les FPGA sont de plus en plus performants et de moins en moins chers,

• Les FPGA remplacent peu à peu les ASIC…

(29)

29/72

2. Technologie des FPGA

(30)

2. Technologie des FPGA

Field Programmable Gate Array

 Gate Array

 Two-dimensional array of logic gates

 Traditionally connected with customized metal

 Every logic circuit (customer) needs a custom- manufactured chip

 Field Programmable

What is an FPGA ?

(31)

31/72

Basic Internals of an FPGA

Logic Element

Each logic element is

to implement the desired function programmed to

Programmable Connections

Logic Element

Logic Element

Logic Element

Logic Element

Logic Element

Logic Element

Logic Element

Logic Element

2. Technologie des FPGA

(32)

FPGA Logic Element

 Look-Up Table (LUT) + register + extra …

 FPGAs typically use 4-input or larger LUTs

 Cyclone family (low cost): 4-inputs

 Stratix II: Adaptive Logic Module implements 4 – 6 input

A

B Out

0 0

0 0 1

A B

Out LUT

0 1

SRAM Cell

2. Technologie des FPGA

(33)

33/72

Connecting the Logic

 Logic elements implement the pieces of the circuit

 Now hook them up with the programmable routing

LE

FPGA x

y z

f I/O Pads

I/O Pad

2. Technologie des FPGA

(34)

Programmable Routing

 Programmable switches connect fixed metal wires

 Choose pattern so any logic element can connect to any other

Logic Block In1 Out

In2

SRAM

2. Technologie des FPGA

(35)

35/72

Modern, mid-size FPGA – 2S60

Adaptive Logic Modules

M512 Block

M4K Block High-Speed I/O Channels with Dynamic Phase Alignment (DPA) I/O Channels with

External Memory Interface Circuitry

M-RAM Blocks I/O Channels with External Memory Interface Circuitry

Digital Signal Processing (DSP) Blocks

Phase-Locked Loops (PLL) High-Speed I/O Channels with DPA

60,440 Equivalent Logic Elements 2,544,192 Memory Bits

90nm Stratix II 2S60

2. Technologie des FPGA

(36)

2. Technologie des FPGA

Low-cost Cyclone II range

(37)

37/72

2. Technologie des FPGA

Low-cost Cyclone II IO

(38)

2. Technologie des FPGA

 400MHZ max mais traitement parallèle !

Exemple soit à réaliser :

• Réalisation logicielle à 400MHz : 7 cycles machine

= 17,5 ns

• Réalisation matérielle : temps de traversée des

portes = 2 ns

(39)

39/72

3. Les HDL

 Définition :

 Un langage de description de matériel (Hardware Description Language, HDL) est une instance d'une classe de langage

informatique ayant pour but la description formelle d'un système électronique. Il peut généralement :

• décrire le fonctionnement du circuit,

• décrire sa structure,

• et servir à vérifier sa fonctionnalité par simulation ou preuve formelle.

 Un HDL est une représentation textuelle d'un comportement

temporel ou d'une structure d'un circuit. En comparaison avec un langage de programmation classique, la syntaxe et la sémantique des HDL inclut des notations pour exprimer la concurrence et le temps, qui sont les principaux attributs du matériel. Les classes de langages dont la seule caractéristique est de décrire un circuit par une hiérarchie de blocs interconnectés est appelée une netlist.

(40)

3. Les HDL

 But :

 la simulation :

L'un des objectifs des HDL est d'aboutir à une représentation

exécutable d'un circuit, soit sous forme autonome, soit à l'aide d'un programme externe appelé simulateur. Cette forme exécutable comporte une description du circuit à simuler, un générateur de stimuli (vecteurs de test), ainsi que le dispositif implémentant la sémantique du langage et l'écoulement du temps.

Il existe deux types de simulateurs, à temps discret, généralement pour le numérique, et à temps continu pour l'analogique. Des HDL existent pour ces deux types de simulations.

La synthèse :

En n'utilisant qu'un sous-ensemble d'un HDL, un programme spécial

(41)

41/72

3. Les HDL

 Il existe un grand nombre de HDL :

VHDL (Europe)

Verilog (USA)

SystemC

SystemVerilog

…

(42)

4. Le langage VHDL

 VHDL (VHSIC Hardware Description Langage) est un langage de description de matériel, c'est-à-dire un langage utilisé pour décrire un système numérique matériel, comme, par exemple, un flip-flop (bascule D) ou un microprocesseur

 Il peut modéliser un système par n'importe quelle vue, structurelle ou comportementale, à tous les niveaux de description.

 De plus il peut servir non seulement à simuler un système mais aussi à le synthétiser, c'est-à-dire être transformé par des logiciels adaptés (synthétiseurs) en une série de portes logiques prêtes à être gravées sur du silicium.

 VHDL est l'un des trois grands langages de description de matériel utilisés majoritairement dans l'industrie, avec VHDL et SystemC.

(43)

43/72

4. Le langage VHDL

 Structure d’une description VHDL :

Une description VHDL est composée de 2 parties indissociables à savoir :

L’entité (ENTITY), elle définit les entrées et sorties.

L’architecture (ARCHITECTURE), elle contient les instructions VHDL permettant de réaliser le

fonctionnement attendu.

(44)

4. Le langage VHDL

 Exemple : Démultiplexeur 2 vers 4 :

(45)

45/72

4. Le langage VHDL

 Exemple : Démultiplexeur 2 vers 4 :

(46)

4. Le langage VHDL

 Instructions concurrentes et séquentielles :

 Comme tout langage de description de matériel, le VHDL décrit des structures par assemblage

d'instructions concurrentes dont l'ordre d'écriture n'a aucune importance, contrairement aux instructions séquentielles qui sont exécutées les unes après les autres, comme c'est la cas du C.

 VHDL offre cependant la possibilité d'utiliser des

instructions séquentielles, plus naturelles pour l'homme, par le biais de processus process. Les processus

peuvent avoir leurs propres variables locales variable .

(47)

47/72

4. Le langage VHDL

 Le fonctionnement du processus est régi par les règles suivantes :

Un processus est une boucle infinie , lorsqu'il arrive à la fin du code, il reprend automatiquement au début,

Un processus doit être sensible des points d'arrêt de façon à le

synchroniser. La synchronisation est donc indiquée par un point d'arrêt qui est évènement particulier. Il existe 2 types de points d'arrêts :

Le processus est associé à une "liste de sensibilité" qui contient une liste de signaux qui réveillent le processus lors d'un changement d'un des signaux. Sa syntaxe est process(liste de signaux)

Le processus a des instructions d'arrêt wait dans sa description interne. Le wait est sensible soit à un signal soit à un temps physique,

Les variables sont internes au processus et sont affectées immédiatement, contrairement aux signaux qui eux ne sont pas affectés directement mais par le biais de leur échéancier qui est mis à jour en fin de processus avec la nouvelle valeur et le temps d'affectation qui correspond à un delta-cycle après le signal ayant réveillé le processus.

(48)

4. Le langage VHDL

 Exemples :

(49)

49/72

4. Le langage VHDL

 Règle d’or : pas de synthèse sans simulation 

testbench.

(50)

4. Le langage VHDL

 Testbench :

(51)

51/72

5. Outils de développement ALTERA Software & Development Tools

 Quartus II

 All Stratix, Cyclone & Hardcopy Devices

 APEX II, APEX 20K/E/C, Excalibur, &

Mercury Devices

 FLEX 10K/A/E, ACEX 1K, FLEX 6000 Devices

 MAX II, MAX 7000S/AE/B, MAX 3000A Devices

 Quartus II Web Edition

 Free Version

 Not All Features & Devices Included

S for Feature Comparison

(52)

5. Outils de développement ALTERA

Synthesis

3-rd Party or Altera

Placement

& Routing

Physical Synthesis

Timing &

Power Analysis IP Cores

// Begin: Write Control always @ (posedge wrbusy_int) begin

write0 <= 1'b1;

write1 <= 1'b0;

writex <= 1'b0;

end

always @ (negedge wrbusy_int) begin

write0 <= 1'b0;

end

always @ (posedge write0_done) begin

write1 <= 1'b1;

// Begin: Write Control always @ (posedge wrbusy_int) begin

write0 <= 1'b1;

write1 <= 1'b0;

writex <= 1'b0;

end

always @ (negedge wrbusy_int) begin

write0 <= 1'b0;

end

always @ (posedge write0_done) begin

write1 <= 1'b1;

// Begin: Write Control always @ (posedge wrbusy_int) begin

write0 <= 1'b1;

write1 <= 1'b0;

writex <= 1'b0;

end

always @ (negedge wrbusy_int) begin

write0 <= 1'b0;

end

always @ (posedge write0_done) begin

write1 <= 1'b1;

Report

Assembler

Over 10 Million

(53)

53/72

5. Outils de développement ALTERA

53

SignalTap II Logic Analyzer

 Embedded Logic Analyzer

Downloads into Device with Design

Captures State of Internal Nodes

Uses JTAG for Communication

(54)

5. Outils de développement ALTERA

SignalTap II Logic Analyzer

(55)

55/72

5. Outils de développement ALTERA

55

Specifications FPGA

• Cyclone II EP2C35F672C6 FPGA and EPCS16 serial configuration device

I/O Devices

• Built-in USB Blaster for FPGA configuration

• 10/100 Ethernet, RS-232, Infrared port

• Video Out (VGA 10-bit DAC)

• Video In (NTSC/PAL/Multi-format)

• USB 2.0 (type A and type B)

• PS/2 mouse or keyboard port

• Line-in, Line-out, microphone-in (24-bit audio CODEC)

• Expansion headers (76 signal pins) Memory

• 8-MB SDRAM, 512-KB SRAM, 4-MB Flash

• SD memory card slot

Switches, LEDs, Displays, and Clocks

• 18 toggle switches

• 4 debounced pushbutton switches

• 18 red LEDs, 9 green LEDs

• Eight 7-segment displays

• 16 x 2 LCD display

• 27-MHz and 50-MHz oscillators, external SMA clock input

DE2 board

(56)

6. NIOS II et SoPC Builder What is Nios II?

 Altera’s Second Generation Soft-Core 32 Bit RISC Microprocessor

 Developed Internally By Altera

 Harvard Architecture

 Royalty-Free

Avalon Switch Fabric UART

GPIO Timer

SPI SDRAM Controller On-Chip

ROM On-Chip

RAM Nios II

CPU Debug Cache

(57)

57/72

6. NIOS II et SoPC Builder

Problem: Reduce Cost, Complexity & Power

Flash

SDRAM

CPU

DSP

I/O

I/O

I/O FPGA

I/O I/O I/O

CPU DSP

Solution: Replace External Devices with Programmable Logic

FPGA

(58)

6. NIOS II et SoPC Builder

Flash

SDRAM

System On A Programmable Chip (SOPC)

FPGA

(59)

59/72

6. NIOS II et SoPC Builder

FPGA Hardware Design Flow

with Quartus II and SOPC Builder

• Create FPGA project in Quartus II

• Build embedded sub-system in SOPC Builder

• Integrate sub-system in Quartus II

• Compile and generate a programming file

.sof / .pof file

(60)

6. NIOS II et SoPC Builder

On-Chip Debug Core

Off-Chip Software Trace

Memory

UART n

Timer n

SPI n

GPIO n

DMA n Instr.

Data

Address Decoder

Interrupt Controller

Wait State Generation

Data in Multiplexer

Avalon Master/

Slave Port Interfaces

Master Arbitration

Nios II System Architecture

UART 0

Timer 0

SPI 0

GPIO 0

DMA 0

Memory Nios II

CPU

(61)

61/72

6. NIOS II et SoPC Builder

Nios II Block Diagram

Program Controller

&

Address Generation

Instruction Cache clock

reset

irq[31..0]

Control Registers ctl0 to ctl4

Arithmetic Logic Unit Hardware-

Assisted Debug Module

Interrupt Controller JTAG interface

to Software Debugger

Custom Instruction

Logic

Exception Controller

Instruction Master Port

Data Cache

Data Master Port General

Purpose Registers r0 to r31

Custom I/O Signals

Nios II Processor Core

(62)

6. NIOS II et SoPC Builder

Nios II Processor Architecture

Classic Pipelined RISC Machine

32 General Purpose Registers

3 Instruction Formats

32-Bit Instructions

32-Bit Data Path

Flat Register File

Separate Instruction and Data Cache (configurable sizes)

Branch Prediction

32 Prioritized Interrupts

(63)

63/72

6. NIOS II et SoPC Builder Nios II Versions

Nios II Processor Comes In Three ISA Compatible Versions

Software

Code is Binary Compatible

No Changes Required When CPU is Changed

− FAST: Optimized for Speed

− STANDARD: Balanced for Speed and Size

− ECONOMY: Optimized for Size

(64)

6. NIOS II et SoPC Builder

Binary Compatibility / Flexible Performance

Nios II /f Fast

Nios II /s Standard

Nios II /e Economy

Pipeline 6 Stage 5 Stage None

H/W Multiplier &

Barrel Shifter 1 Cycle 3 Cycle Emulated

In Software

Branch Prediction Dynamic Static None

Instruction Cache Configurable Configurable None

Data Cache Configurable None None

(65)

65/72

6. NIOS II et SoPC Builder Nios II: Hard Numbers

Nios II/f Nios II/s Nios II/e Stratix II

200 DMIPS @ 175MHz

1180 LEs 1 of 8 DSP

4K Icache, 2K Dcache Stratix 2S10-C5

90 DMIPS @ 175MHz 800 LEs

4K Icache, No Dcache Stratix 2S10-C5

28 DMIPS @ 190MHz 400 LEs

No Icache, No Dcache Stratix 2S10-C5

Stratix

150 DMIPS @ 135MHz 1800 LEs

1 of 8 DSP

4K Icache, 2K Dcache Stratix 1S10-C5

67 DMIPS @ 135MHz 1200 LEs

4K Icache, No Dcache Stratix 1S10-C5

22 DMIPS @ 150MHz 550 LEs

No Icache, No Dcache Stratix 1S10-C5

Cyclone

100 DMIPS @ 125MHz 1800 LEs

4K Icache, 1K Dcache Cyclone 1C4-C6

62 DMIPS @ 125MHz 1200 LEs

2K Icache, No Dcache Cyclone 1C4-C6

20 DMIPS @ 140MHz 550 LEs

No Icache, No Dcache Cyclone 1C4-C6

* FMax Numbers Based Reference Design Running From On-Chip Memory (Nios II/f ≅1.15 DMIPS / MHz)

(66)

6. NIOS II et SoPC Builder

SOPC Builder

Altera, Partner & User Cores

Processors

Memory Interfaces

Peripherals

Bridges

Hardware Accelerators

Import User Logic Over 60

System Contents Page

(67)

67/72

6. NIOS II et SoPC Builder

 Notion de bloc IP :

(68)

6. NIOS II et SoPC Builder

 Notion de bloc IP :

(69)

69/72

6. NIOS II et SoPC Builder

Nios II System Design Flow

Connect Blocks

Processor Library Custom Instructions

Peripheral Library Select & Configure Peripherals, IP

IP Modules Configure Processor

C Header files

Custom Library

Peripheral Drivers

Compiler, Linker, Debugger

Software Development

User Code

Libraries

RTOS

GNU Tools Generate

SOPC Builder GUI

HDL Source Files

Testbench

Synthesis &

Fitter

User Design

Other IP Blocks

Hardware Development

Quartus II

On-Chip Debug

Software Trace Hard Breakpoints

SignalTap® II

Altera FPGA

JTAG, Serial, or Ethernet

Executable Code Hardware

Configuration File

Verification

& Debug

Nios II IDE

(70)

6. NIOS II et SoPC Builder

Nios II IDE (Integrated Development Environment)*

Leading Edge Software Development Tool

Target Connections

− Hardware (JTAG)

− Instruction Set Simulator

− ModelSim®-Altera Software

Advanced Hardware Debug Features

− Software and Hardware Break Points, Data Triggers, Trace

Flash Memory Programming

(71)

71/72

6. NIOS II et SoPC Builder

Nios II IDE

List of Open Projects

Terminal window

File Viewer Window (for C code, C++, and assembly*)

(72)

6. NIOS II et SoPC Builder

 Démonstration :

 Emulateur de DSP SNES des consoles Super

Nintendo

Références

Documents relatifs

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

Par l’e et de la cassation de l’arrêt rendu par la cour d’assises en application de l’article 336 du Code d’instruction criminelle, déclarant que l’a aire est reportée

Pour haque hoix de nombres c de ma- hines et p d'imprimantes, nous avons généré toutes les stru tures (DAG) possibles de solutions grâ e à deux variantes d'algorithme : Covering

Pour ces attributs, le préfixe doit être un objet (signal, variable, constante) de type tableau, un sous-type tableau contraint,.un type pointeur ou un alias y faisant référence..

Conception de circuits et langage VHDL modélisation et synthèse.. Patrice

Celui qui a la carte de la plus forte valeur remporte le pli c'est-à-dire les deux cartes (la sienne et celle de l'autre joueur) et les place face retournée sous son paquet..

Pour utiliser les types unsigned et signed (que l’on utilise systématiquement pour représenter des nombres qui sont physiquement des fils), il faut placer au début de la

Formation VHDL Vahid MEGHDADI.. Conception