Question

Pour un projet universitaire à mi-parcours, je dois concevoir un processeur configurable, écrire le code en VHDL puis le synthétiser sur une carte Spartan 3E FPGA de Digilent. Je suis débutant. Pourriez-vous donc me donner des informations sur les processeurs configurables, des idées liées au concept?

Était-ce utile?

La solution

Vous pouvez consulter ma réponse à une question connexe . Nous avons pratiquement fait de même en construisant un processeur en VHDL pour une carte FPGA.

Autres conseils

Ceci est juste une maquette alors soyez conscient que je vais le nettoyer

chercher instruct1,
chercher instr2, chercher datas1
fetch instruct3, fetch datas2, processus datas1

fetch instruct4, fetch datas3, processus datas2, store1 datas1

fetch instruct5, fetch datas4, processus datas3, store2 datas1

fetch instruct6, fetch datas5, processus datas4, store3 datas1
fetch instruct7, fetch datas6, processus datas5, store4 datas1
récupérer instruction8, récupérer datas7, traiter datas6, stocker5 données1

fondamentalement, ce sont les composants principaux d'un processeur Partie 1 ALU: unité de logique arithmétique (c’est là que le dessin serait utile) Une ALU a 2 ports d’entrée et un port de sortie. Les 2 ports d’entrée sont activés et le résultat est affiché. Pour savoir quelle instruction l'ALU doit accomplir, il existe un port de contrôle. Fondamentalement, c'est le nom de la commande. Donc, si le port de contrôle a 4 bits, il y a 16 instructions possibles.

Partie 2 REGISTER UNIT: C'est un ensemble de cellules de mémoire (mémoire cache). Le contenu de cette mémoire est souvent transféré sur les ports d'entrée de l'ALU.

Part3 Unité de contrôle: C'est un peu comme le maître d'orchestre du processeur. Son travail consiste à 1envoyer les données à l’entrée ALU 2Lire les instructions nécessaires dans les registres d’instructions, envoyez ces codes aux ports de commande de l’ALU

.

Interface. C’est ainsi que la RAM et les autres périphériques communiquent avec le processeur

Chaque fois que l’introduction produit un résultat, il doit être stocké. Il peut être stocké dans la RAM. Une écriture en RAM doit donc être prête une fois le résultat obtenu. En même temps, une lecture RAM des entrées de l'instruction suivante peut se produire. Et en même temps, l'instruction suivante peut être extraite de la RAM.

La génération d'une instruction nécessite généralement plus d'un cycle d'horloge. Le traitement d'une construction est analogue à la production industrielle. Donc, le travail en chaîne est terminé.

VLIW La programmation que nous écrivons est linéaire, ce qui signifie que les instructions se déroulent les unes après les autres. Mais les processeurs actuels (et non les bras) ont plusieurs ALU, aussi plusieurs instructions sont traitées en même temps.

Vous avez donc une chaîne d'unités de traitement travaillant plusieurs instructions simultanément (pipeline) et vous avez beaucoup de ces unités (superscalar)

Il devient alors une question de ce que vous pouvez / devez faire pour personnaliser votre architecture de processeur.

J'ai réalisé un projet similaire, implémentant un processeur avec un pipeline à 5 étages en VHDL.

Tout d’abord, vous devez comprendre l’architecture du fonctionnement des processeurs. Sans comprendre ce que fait chaque acteur et le type de signaux de contrôle dont vous avez besoin, vous ne pouvez plus en écrire un en VHDL.

Deuxièmement, commencez à dessiner des diagrammes illustrant la manière dont les instructions et les données circuleront dans votre processeur (c’est-à-dire à chaque étape). Comment chaque étape est-elle reliée entre elles? Où vont les signaux de contrôle? D'où viennent mes entrées et où vont mes sorties?

Une fois que vous avez un diagramme solide, l’implémentation réelle dans VHDL devrait être relativement simple. Vous pouvez utiliser la modélisation comportementale de VHDL pour expliquer essentiellement ce que vous voyez dans le diagramme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top