0% ont trouvé ce document utile (0 vote)
289 vues76 pages

7 Softcore Cours

Transféré par

Ayoub Djemaci
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
289 vues76 pages

7 Softcore Cours

Transféré par

Ayoub Djemaci
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université des Sciences et de Technologie Houari

Boumediene USTHB

MASTER ELECTRONIQUE DES SYSTÈMES EMBARQUÉS

SYSTÈMES NUMÉRIQUES
SOFTCORE PROCESSORS
Introduction

Lorsque l'on conçoit un système numérique complexe, on met en œuvre généralement un


processeur embarqué. Ce processeur embarqué est :
• Soit un bloc IP : on parle de processeur softcore.
• Soit déjà implanté dans le circuit électronique en « dur » : on parle de processeur hardcore.
Le choix d'un processeur pour le SoPC peut se faire sur différents critères :
• Processeur hardcore : pour ses performances au détriment de la flexibilité.
• Processeur softcore : pour sa flexibilité de mise à jour au détriment de performances
moindres que le précédent. La portabilité vers n'importe quel circuit FPGA est assurée en étant
donc circuit
Généralement, on privilégie les processeurs softcore pour s'affranchir des problèmes
d'obsolescence et pour pouvoir bénéficier facilement des évolutions apportées en refaisant
une synthèse.
Softcore processors
Soft core Processors: Processeurs au sein des FPGA
What is a ‘soft core’?
Un microprocesseur souple est un noyau de microprocesseur qui peut être
entièrement implémenté à l'aide d'une synthèse logique.
C’est essentiellement un élément de la «propriété intellectuelle» (IP) qui
contient la conception d’un processeur.
Un processeur soft core peut être intégré à une conception, puis synthétisé,
placé et routé pour générer un exécutable.
Exemples de ceux-ci:
Altera NIOS II
Xilinx Microblaze & Xilinx Picoblaze
A variety of ARM processors
Comment se comparent-ils aux noyaux durs? … voir plus tard!
Softcore processors
Comment un Softcore s'adapte généralement à une conception

Bus Avalon pour NIOS,


OPB (Onchip Peripheral Bus)
ou PLB (Processor Local Bus)
pour Microblaze
FPGA
Softcore processors
Adresse du bus pour le processeur

•FFT Engine
•Timer
•GPIO
•Eth MAC
•VGA
•… etc …
Softcore processors

Quelles sont les raisons d'utiliser un processeur softcore?


Softcore processors
RAISONS POUR UTILISER UN PROCESSEUR SOFTCORE
Flexibilité de conception
"Meilleur des deux mondes" - vous permet de choisir une solution logicielle ou matérielle pour la
mise en œuvre de fonctionnalités particulières
Implémentation de fonctionnalités complexes (pas nécessairement très rapides)
Le logiciel est utile pour mettre en œuvre une logique de contrôle complexe ou des fonctions dont le
système peut avoir besoin, par ex. pour implémenter la pile de protocoles TCP / IP (cela est difficile
en logique combinatoire et prend beaucoup de logique).
Reuse!! Réutilisation!!
Votre logiciel sous-jacent survivra probablement à la plate-forme spécifique pour laquelle il avait été
conçu
Sauvegarde logique
Certaines implémentations sont juste plus efficaces en utilisant un processeur (approche à
instructions multiples réutilisables) plutôt que de mettre en œuvre un circuit pour cela.
Support de core multiple
Choisissez le nombre de cœurs dont vous avez besoin, compris entre 0 et le nombre de cœurs
pouvant être placés sur le FPGA.
Éviter l'obsolescence
Votre logiciel est susceptible de durer beaucoup plus longtemps par rapport à une conception CL qui
pourrait être plus liée à la plate-forme.
Softcore processors

Soft Cores Ingredients


Lesquels sont susceptibles d’influencer la conception des FPGA, maintenant et à l’avenir.
Softcore processors
Ingrédients nécessaires pour les Softcore
Pourrait tout mettre en œuvre comme des
portes, mais cela peut être plutôt
inefficace et inutile
Ressources On-chip que les processeurs
logiciels utilisent habituellement:
RAM blocks - diverses configurations
Full adders
DSP cores (e.g. integer multipliers, etc.)
State machines
HARD CORE VS. SOFT CORE ?!
Softcore processors
Caractéristiques du processeur Hard Core

Non implémenté en tant que passerelle programmé dans la


logique FPGA
Mis en œuvre en silicium / ASIC; non modifiable
Avantages:
Généralement beaucoup plus performant
Le fabricant fournit généralement un compilateur optimisé pour ses
puces
Softcore processors
Études de cas (sous peu)
MicroBlaze

Plus puissant, plus proche du processeur complet


32-bit processor, RISC instructions.

Plus simple, plus proche du simple FSM


Trente-deux registres à usage général 32 bits
Générer, configurer et programmer avec Xilinx vivado SDK
Picoblaze
8 bit, simple RISC instructions
Gratuit pour utilisation sur Xilinx
DUGONG (un scénario montrant un exemple développé par un étudiant de UCT, une
machine à états avec des instructions)
Planification du module de contrôle
Open-source
NIOS II
Altera’s soft core processor, 32 bit, configurable
Commercial
NIOS II Gen2 amélioré, plus d'options
Autres soft cores: MP32 / MIPS32, ARM
Softcore processors
Considérations sur l'utilisation de Soft Core Processors
Les deux premiers points sont les
utilisations les plus courantes
Un objectif majeur est:
Facilitez la communication / le transfert et la mise en paquets des données
Tester les conceptions (par exemple, lire / ajuster les paramètres en cours d'exécution)
Configurez les conditions initiales de votre configuration / configuration de bloc HDL
Structure de processeur hautement configurable - p. Ex. ajouter une instruction
personnalisée au processeur de base
Bien sûr aussi par ex. tester de nouvelles conceptions de processeurs
Devrait-on envisager que le processeur soft core soit
Plus une aide pour contrôler le système
faciliter les communications, avantages des logiciels s'exécutant dans le système, par
ex. O / S
Le processeur soft core ne devrait pas
la solution principale pour votre accélérateur numérique, sauf s’il existe une bonne
raison, telle que l’expérimentation des performances d’un cluster de processeurs sur
FPGA
Soft Core Case Studies

MicroBlaze
Softcore processors
XILINX MICROBLAZE

MicroBlaze a été développé par Xilinx


C’est un noyau de microprocesseur soft conçu et optimisé
pour les FPGA Xilinx
MicroBlaze est un ordinateur à jeu d'instructions réduit
(RISC) (Reduced Instruction Set Computer )
Généré, configuré et programmé avec Xilinx EDK
(Embedded Development Kit)
Softcore processors
Les FPGA qui supportent Microblaze

Vous ne pouvez pas l’utiliser sur n’importe quel FPGA! Il


ne fonctionne que sur les FPGA Xilinx. Ceux-ci incluent les
familles de FPGA:
Spartan-3/3A/3AN/3A DSP/3E FPGA
Spartan-6
Virtex-4 FX (also supports PowerPC 405 processors) and LX/SX FPGA
Virtex-5 FXT (alost PowerPC 440 processor) LX/LXT FPGA (MicroBlaze)
Virtex-6 (MicroBlaze processor)
Zynq 7000
Softcore processors
Microblaze et ses composants environnants

Supports two bus Standards:


• PLB (Processor Local Bus) (ver. V46)
pour les périphériques à haut débit et à large bande passante.
Supports 128 bits of data, 36 bit address
• XILINX Local Memory Bus (LMB) to interface local PLBs
Softcore processors
MICROBLAZE MEMORY

Cache
Par défaut, MicroBlaze n'a pas de cache.
Peut activer le cache dans EDK (qui utilisera BRAM)
Softcore processors
MICROBLAZE ARCHITECTURE
Softcore processors
Caractéristiques
soft processor hautement configurable
Peut sélectionner un ensemble spécifique de fonctionnalités
nécessaires
Les fonctionnalités fixes du processeur sont:
Trente-deux registres à usage général 32 bits
Mot d'instruction 32 bits avec trois opérandes et deux modes d'adressage
32-bit address bus
Pipeline à issue unique
Le MicroBlaze peut être paramétré pour permettre l’inclusion de
fonctionnalités supplémentaires.
Softcore processors
MICROBLAZE INSTRUCTIONS
MicroBlaze dispose d’un système d’interconnexion polyvalent pour prendre en
charge diverses applications embarquées.
Le jeu d'instructions MicroBlaze est similaire à celui de l'architecture DLX
basée sur RISC. (DLX: et un MIPS simplifié avec une architecture 32 bits à
chargement/enregistrement).
La plupart des modules IP fournis par les fournisseurs et tiers s'interfacent
directement avec PLB (ou via un pont de bus PLB vers OPB).
Pour accéder à la mémoire locale (BRAM dans le FPGA), le MicroBlaze utilise
un bus LMB dédié qui réduit la charge sur les autres bus (par exemple, OPB).
Les coprocesseurs définis par l'utilisateur sont pris en charge via une
connexion dédiée de type FIFO appelée FSL (Fast Simplex Link).
L'interface du ou des coprocesseurs peut accélérer les algorithmes de calcul
intensif en déchargeant des parties ou l'intégralité du calcul sur un module
matériel conçu par l'utilisateur.
Softcore processors
MICROBLAZE
Processeur logiciel haute performance
La plupart des instructions complétées avec 1 cycles
Pipelines courts, fréquence de travail plus élevée
Mise en œuvre optimisée FPGA
Chaîne de transport rapide MUX, multiplicateur de matériel
RLOC placement constraints

Facile (relativement) à utiliser avec Xilinx EDK


Linux/GCC support
Softcore processors
MICROBLAZE LIMITATIONS

Pas de support MMU


Pas de protection entre les processus
Cela implique qu'il ne peut pas supporter la version complète de Linux
Pas de virgule flottante double précision
Pas d'instructions atomiques
Difficile à mettre en œuvre le verrouillage
Problème d'instruction FIFO non bloquant
Pas de support cohérent en cache
Softcore processors
MICRO MICROBLAZE
Un MicroBalze plus petit mais puissant:
Le système MicroBlaze MicroController (MCS)
(MicroBlaze MicroController System)

MCS offre un paquet encore plus petit


MCS consiste en MicroBlaze dans une configuration de pipeline fixe
à 3 étages pour une empreinte réduite, et est entouré d’un
système de périphériques de conception intégrés communs *.

* MCS peut s'exécuter à partir d'IDS Logic Edition sans avoir besoin d'une licence de conception intégrée
complète
Softcore processors
Arty - Premiers pas avec Microblaze

Microblaze est un noyau IP souple de Xilinx qui implémentera un microprocesseur entièrement


dans la mémoire et la structure logique à usage général Xilinx FPGA. Pour cet exemple, nous
allons ajouter un bloc IP Microblaze à l'aide de l'outil Vivado IP Integrator.

En plus du bloc IP Microblaze, nous aimerions également utiliser le composant DDR3 SDRAM sur
l'Arty. Par conséquent, un bloc IP MIG (Memory Interface Generator) sera ajouté à notre
conception.

Enfin, un bloc IP UART (récepteur / émetteur asynchrone universel) sera ajouté pour
communiquer entre le PC hôte et le cœur du processeur logiciel fonctionnant sur l'Arty.
Softcore processors
Platine "Arty"
La platine ARTY est une plateforme de développement (format arduino) prête à l'emploi conçue sur la base
d'un Artix-7™ Field Programmable Gate (FPGA) de chez Xilinx.
Elle dispose de connecteurs femelles au format shield Arduino/chipKIT ainsi que des connecteurs
Pmod™.
Xilinx Artix-35T FPGA:
33,280 logic cells in 5200 slices (each slice contains four 6-input LUTs and 8 flip-flops)
1,800 Kbits de block RAM rapide
Five clock management tiles, each with a phase-locked loop (PLL)
90 DSP
Vitesse d'horloge interne 450MHz
Convertisseur analogique-numérique (XADC) intégré
Programmable à travers JTAG et Quad-SPI Flash
Caractéristiques systèmes:
256MB DDR3L avec bus 16-bit @ 667MHz 16MB
Quad-SPI Flash
Circuit de programmation USB-JTAG
Alimentable via USB ou source externe 7V-15V
Connectivité:
10/100 Mbps Ethernet
USB-UART Bridge
Softcore processors
Création d'un nouveau projet
Softcore processors
Softcore processors
Softcore processors
Création d'une nouvelle conception de bloc
Softcore processors
Ajout de l'horloge et du composant DDR3

Cliquez sur l'onglet Board (surligné en orange ci-dessous)

Cette liste contient tous les


composants définis dans le
fichier de carte que vous avez
installé auparavant. Ceux-ci sont
déjà configurés pour fonctionner
avec plusieurs IP Vivado.
Softcore processors
Cliquez et faites glisser le composant System Clock sur la conception de bloc vide. Vivado connectera
automatiquement cette horloge système à un nouveau bloc Assistant Horloge.
Softcore processors
Double-cliquez sur le bloc Clocking Wizard pour le personnaliser. Cliquez sur l'onglet Output Clocks et
remplacez clk_out1 par «166,667» MHz. Activez clk_out2 et réglez-le sur «200,0» MHz. Définissez Reset Type
sur Active Low
Softcore processors
Cliquez et faites glisser le composant SDRAM DDR3 sur la conception de bloc vide. Vivado
connectera automatiquement la SDRAM DDR3 et certains ports d'horloge factice à l'IP MIG.
Softcore processors
Supprimez les ports clk_ref_i et sys_clk_i en cliquant dessus et en appuyant sur la touche
Supprimer, ou en cliquant dessus avec le bouton droit et en sélectionnant Supprimer.
Softcore processors
Connectez clk_out1 à sys_clk_i sur le bloc MIG. Connectez clk_out2 à clk_ref_i.
Softcore processors
Cliquez sur Run Connection Automation dans la bannière verte ci-dessus. Les paramètres par
défaut sont corrects, donc cliquez sur OK.
Vivado connectera la réinitialisation de votre système à sys_rst sur le MIG. Connectez ce nouveau port de
réinitialisation à l'entrée resetn du bloc Clock Wizard.
Softcore processors
Ajout du processeur et de la configuration Microblaze

Click the Add IP button and search for Microblaze.

Double click Microblaze to add it to your block design.


Softcore processors
Cliquez sur Run Block Automation pour ouvrir l'automatisation de bloc pour le processeur Microblaze.

Ici, vous pouvez choisir la quantité de mémoire à donner à votre processeur Microblaze. Configurez les
options pour qu'elles correspondent à l'image ci-dessous, puis cliquez sur OK. Assurez-vous que vous
définissez la connexion d'horloge sur / mig_7series_0 / ui_clk.
Softcore processors
L'exécution de l'automatisation des blocs générera automatiquement un ensemble de blocs IP supplémentaires qui
seront ajoutés à notre conception matérielle automatiquement en fonction des options sélectionnées à l'étape
précédente. Ne cliquez pas encore sur Run Connection Automation.
Softcore processors
Ajout de composants périphériques
Accédez à nouveau à l'onglet Boards et recherchez le composant USB UART. Cliquez dessus et faites-le
glisser sur la conception du bloc pour ajouter le bloc Uartlite à votre conception.
Softcore processors
Cliquez sur Run Connection Automation dans la bannière verte. Cochez la case All Automation et cliquez
sur OK.
Softcore processors
Cela créera une AXI Interconnect pour la mémoire DDR et une autre pour les composants périphériques.
Cliquez sur le bouton Regenerate Layout pour réorganiser la conception de votre bloc.
Softcore processors
Validation de la conception et création d'un wrapper HDL
Sélectionnez Validate Design. Cela vérifiera les erreurs de conception et de connexion.
Après l'étape de validation de la conception, nous procéderons à la création d'un wrapper de système
HDL. Cliquez sur l'onglet Sources et trouvez la conception de votre bloc.
Softcore processors
Cliquez avec le bouton droit sur la conception de votre bloc et cliquez sur Create HDL Wrapper. Assurez-
vous que Let Vivado manage wrapper and auto-update est sélectionné et cliquez sur OK.

Cela créera un module supérieur dans VHDL ou Verilog et vous permettra de générer un bitstream.
Softcore processors
Génération d'un bitstream et exportation de la conception matérielle vers le SDK

Dans la barre d'outils supérieure de Vivado, cliquez sur Generate Bitstream


Dans la barre d'outils principale, cliquez sur File et sélectionnez Export → Export Hardware.
Cochez la case pour inclure Bitstream et cliquez sur OK. Cela exportera la conception matérielle
avec l'enveloppe système pour l'outil de développement logiciel - Vivado SDK.

Un nouveau répertoire de fichiers sera créé


sous Hello_World.SDK similaire au nom du
projet de conception matérielle Vivado. Deux
autres fichiers, .sysdef et .hdf sont
également créés. Cette étape crée
essentiellement un nouvel espace de travail
SDK.
Softcore processors
Dans la barre d'outils principale, cliquez sur File, puis sur Launch SDK. Laissez les deux menus
déroulants comme paramètres locaux par défaut du projet et cliquez sur OK. Cela ouvrira le SDK Xilinx
et importera votre matériel.

La spécification de conception HW et les blocs IP inclus sont affichés


dans le fichier system.hdf. Le SDK Xilinx est indépendant de Vivado,
c'est-à-dire qu'à partir de ce point, vous pouvez créer votre projet SW
en C / C ++ en plus de la conception HW exportée. Si nécessaire, vous
pouvez également lancer le SDK directement à partir du dossier SDK
créé dans le répertoire principal du projet Vivado.

À partir de ce moment, si vous devez revenir à Vivado et apporter des


modifications à la conception HW, il est recommandé de fermer la
fenêtre du SDK et d'effectuer les modifications de conception HW
requises dans Vivado. Après cela, vous devez suivre la séquence de
création d'un nouveau wrapper HDL, enregistrer la conception et la
génération de fichiers bit. Ce nouveau Bitstream et wrapper système
doivent ensuite être exportés vers le SDK.
Softcore processors

Dans l'onglet Explorateur de projets à gauche, vous pouvez voir votre plate-forme matérielle.

system est le nom de la conception de votre bloc créée dans Vivado. Cette plate-forme matérielle
possède toutes les définitions de conception matérielle, les interfaces IP qui ont été ajoutées, les
informations de signal de sortie externe et les informations d'adresse de mémoire locale.
Softcore processors
Creating New Application Project in SDK
Click the New dropdown arrow and select Xilinx→Application Project.

Donnez à votre projet un nom sans


espaces vides et cliquez sur Next.
Softcore processors
Sélectionnez Hello World dans la liste des modèles et cliquez sur Finish.
Softcore processors
Vous verrez deux nouveaux dossiers dans le panneau Explorateur de projets.
Hello_world qui contient tous les fichiers binaires, .C et .H (en-tête)
Hello_world_bsp qui est le dossier de support de la carte (Board Support Package)

Hello_world est notre dossier source de travail principal. Il contient également un fichier important
montré ici qui est le «lscript.ld». Il s'agit d'un fichier de script de l'éditeur de liens généré
automatiquement par Xilinx. Double-cliquez sur ce fichier pour l'ouvrir.
De retour dans l'Explorateur de projets, double-cliquez et ouvrez helloworld.c sous le dossier src.
Il s'agit du fichier .C principal qui imprimera «Hello World» dans la console une fois exécuté.
Softcore processors
Programming FPGA with Bit File

On the top toolbar, click the Program FPGA button.

Ouvrez une application Serial Terminal (Tera


Term). Connectez-vous au port Arty UART avec
un débit en bauds de 9600. Ce débit en bauds
peut être modifié dans la conception de votre
bloc en double-cliquant sur le bloc Uartlite.
Softcore processors
Program the Microblaze Processor
De retour dans le SDK, sélectionnez votre projet Hello_world et cliquez sur le bouton Run As….
Sélectionnez Launch on Hardware (System Debugger) et cliquez sur OK.

Votre programme s'exécutera et vous devriez voir


apparaître «Hello World» à l'intérieur de votre terminal
série.
SOFT CORE CASE STUDIES

PicoBlaze

Xilinx
Softcore processors
PICOBLAZE SOFT CORE PROCESSOR
Taille:
Prend 96 tranches !! (tranche (slice) = groupe de PLBs)
Gros avantage étant donné que les FPGA à faible coût ont quelques 100
tranches; et 1000 tranches pour une gamme moyenne
Non codé comme VHDL comportemental
Il est précompilé manuellement (bloc IP)
Construit par instanciation des primitives brutes Xilinx
Peut encore être simulé à l'aide de Modelsim
Softcore processors
PICOBLAZE SOFT CORE PROCESSOR

Utilisations principales
Contrôle / configuration des paramètres
Quelques traitements de données (opérations add / integer)
Comms / UI installations (c.-à-d. «Parler» pour contrôler le PC, en
particulier UART, connexion USB)
Test et débogage de votre conception sur le matériel
Softcore processors
PICOBLAZE SOFT CORE PROCESSOR

Peut être très utile pour accélérer et simplifier le


développement
Changer les instructions en cours d'exécution sur le softcore
PicoBlaze est probablement plus rapide que de changer le code
HDL (en particulier avec le temps de reconstruction).
A un jeu d'instructions simple et facile à apprendre, offre également
des possibilités de réutilisation du code PicoBlaze dans d'autres
systèmes.
Softcore processors
Présentation du PicoBlaze
Softcore processors
INTERFACE AVEC LE PICOBLAZE

PicoBlaze

KCPSM = constant (K) Coded Programmable State Machine


Softcore processors
PICOBLAZE INTERFACE
Name Direction Size Function
clk input 1 Signal d'horloge système in
reset input 1 Reset signal
address output 10 Adresse de l'instruction mem. Spécifie l'adresse de l'instruction à
récupérer.
Instruction input 18 Instruction récupérée.
port_id output 8 Adresse du port d'entrée ou de sortie.
in_port input 8 Saisissez les données des périphériques d'E / S.
read_strobe output 1 Stroboscope associé à l'opération d'entrée.

out_port output 8 Sortie des données vers les périphériques d'E / S.


write_strobe output 1 Stroboscope associé à l'opération de sortie.

interrupt input 1 Demande d'interruption des périphériques d'E / S.

interrupt_ack output 1 Acquittement des interruptions vers les périphériques d'E / S


Softcore processors
MODES D'ADRESSAGE PICOBLAZE
Exemple d'instruction Explication
Immediate mode
ADDCY s2,08 s2+08+C → s2
SUB s7, 7 s7–7 → s7
Direct mode
INPUT s5, 2a PORT[2a]→ s5
ADD sa, sf sa + sf → sa
Indirect mode
INPUT s9, (s2) PORT[RAM[s2]]→s9
STORE s3, (sa) s3→ RAM[RAM[sa]]
Softcore processors
La conception du PicoBlaze s'appelait à l'origine KCPSM (pour Constant(K) Coded Programmable State Machine,
auparavant Ken Champan's PSM). Ken Chapman était le concepteur système de Xilinx qui avait inventé et conçu
le microcontrôleur.
Quand on instancie un microcontrôleur PicoBlaze en VHDL, le nom du composant KCPSM respectif doit être
utilisé. par exemple, pour un processeur PicoBlaze3:

component kcpsm3 is
Et voici le schéma correspondant :
port (
address : out std_logic_vector(9 downto 0);
instruction : in std_logic_vector(17 downto 0);
port_id : out std_logic_vector(7 downto 0);
write_strobe : out std_logic;
out_port : out std_logic_vector(7 downto 0);
read_strobe : out std_logic;
in_port : in std_logic_vector(7 downto 0);
interrupt : in std_logic;
interrupt_ack : out std_logic;
reset : in std_logic;
clk : in std_logic );
end component;
Softcore processors
Picoblaze sur starterkit spartan 3E
Softcore processors
EXAMPLE PROGRAM
; DEMONSTRATION PROGRAM
; EXERCISE THE 7 SEGMENT DISPLAYS
cold_start:
LOAD s3, 11 ; clear all time values
OUTPUT s3, 04
LOAD s4, 00
OUTPUT s4, 05
main_loop:
OUTPUT s5,04 ; Update 4 digit 7 seg display
OUTPUT s3,06
JUMP main_loop
SOFT CORE CASE STUDIES

Nios II
Softcore processors
ALTERA NIOS II PROCESSOR
Un processeur soft core 32 bits d'Altera
Trois versions de cores standard:
Rapide, standard, léger
Les noyaux ont des compromis dans:
FPGA LEs nécessaires puissance vitesse
Architecture RISC: instructions simples
Harvard Architecture:
Données séparées et mémoires d'instructions (une approche probablement plus sûre
du style d'architecture de Von Neumann)
32 niveaux d'interruption
Interface Avalon Bus
Compilateurs C / C ++; peut également utiliser un assembleur simple
NIOS II ARCHITECTURE

Regardons de
plus près le cœur
NIOS II CORE
Softcore processors

L'architecture Nios II est une architecture RISC soft-core qui est mis en œuvre
entièrement dans une FPGA. La nature embarquée de ce type de processseur permet
au concepteur de spécifier et générer un processeur sur mesure pour des besoins
d'applications spécifiques. Les concepteurs peuvent étendre les fonctionnalités de
base en y ajoutant une unité de gestion de mémoire prédéfini, définir des instructions
personnalisées ou des périphériques personnalisés:
Jusqu'à 256 instructions personnalisées
Jusqu'à 4 mémoires couplés (TCM)
Débogage configurables
Compilateur C2H (pour convertir un programme en C en accélérateurs matériels)
Supporte plus de 60 périphériques, ce qui offre un choix de configurations sans équivalent, où l’on
trouve l'Ethernet, l'USB, Temporisateur, UART, accès direct à la mémoire (DMA), ...)
Comment obtenir et configurer
un processeur NIOS II soft core?
Softcore processors
Le développement sur Nios II se compose de deux étapes distinctes: la phase de
conception logicielle et la phase de production matérielle.
Softcore processors
Altera propose un logiciel appelé "Embedded Development Suite" (EDS) qui contient un environnement
de développement intégré complet pour gérer le matériel et le programme en deux étapes distinctes:

* Processus de génération de matériel

les concepteurs de matériel Nios II utilise le "SOPC Builder" (System-on-a-Programmable-Chip) , un


composant de l'environnement Quartus II, qui permet de configurer et de générer un système Nios.
L'interface utilisateur de configuration graphique (GUI) permet aux utilisateurs de choisir le Nios II et
l'ensemble de ses fonctionnalités et d'ajouter des périphériques, des blocs d'entrées/sorties, interface
série... pour le système embarqué. Lorsque la spécification du matériel est terminée, Quartus II effectue
la synthèse pour mettre en œuvre l'ensemble du système sur l'FPGA cible sélectionnée.

* Processus de création logicielle

Une partie distincte du logiciel "Embedded Development Suite (EDS)", gère le développement du
programme. Elle comprend un compilateur C / C + +, un débogueur et un simulateur de jeu
d'instructions. EDS permet aux programmeurs de tester leurs applications dans la simulation, ou
télécharger et exécuter leur application compilée directement sur l'FPGA.
ALTERA QSYS: IN LATER VERSIONS OF QUARTUS II

1. Select Tools

2. Select Qsys
1. Select Tools

2. Select SOPC Builder


ALTERA QSYS
End of Presentation Thank You!

Any Questions ?
“The future depends on what you do today.”

Vous aimerez peut-être aussi