Mémoire permanente. Tests de mémoire pour ZX-Spectrum, flashés dans la ROM Flash ROM, flash ROM

Décrit comment installer Quartus, mais ce n'était qu'un pas vers la tâche. Afin de s'assurer que FPGA et le programmeur fonctionne, le premier a dû être flashé.
Il s'est avéré que cela peut être fait de deux manières, la première consiste à JTAG interface, dans ce cas, les informations de configuration sont flashées directement sur le FPGA. L'inconvénient de cette méthode est que La mémoire FPGA est volatile et le firmware doit être chargé dans le FPGA à chaque mise sous tension.

La sortie de cette situation s'impose d'elle-même et réside dans Placez une puce mémoire à côté du FPGA et chargez le firmware à partir de celle-ci à chaque mise sous tension.. La seule chose qui mérite d'être ajoutée est que le micrologiciel n'est pas stocké dans un lecteur flash ordinaire, mais dans une puce spéciale - une ROM de configuration séquentielle. U Altère- ce sont des microcircuits de la série EPC ou EPCQ, programmable via l'interface Série active. Il s'agit de la deuxième méthode, le but est de programmer la puce ROM de configuration séquentielle, et après la mise sous tension, le FPGA en lit le firmware.
Mais cela soulève une autre question : est-il possible qu'un connecteur séparé soit nécessaire pour programmer la puce ROM de configuration série ?
Il s'avère que les développeurs de FPGA s'en sont occupés et que le FPGA peut servir d'intermédiaire entre les interfaces. JTAG Et Série active. Autrement dit, il reçoit le firmware par JTAG interface et l'écrit dans la ROM en utilisant Série active. Nous avons réglé la théorie et pouvons commencer à pratiquer.

À ma demande, le vendeur m'a envoyé par email un schéma de la carte de débogage et plusieurs projets simples. Dans l'un des projets, un fichier avec l'extension a été trouvé .sof, ce qui est nécessaire pour le firmware.
Afin de flasher le FPGA en utilisant jtag nécessaire:

  • courir Quartus
  • choisir Programmeur dans l'onglet Outils
  • spécifier le fichier du firmware


  • flasher le FPGA en appuyant sur un bouton Commencer, après avoir préalablement coché les cases nécessaires

  • Si le firmware est installé avec succès, nous voyons 100 % de réussite dans le coin supérieur droit

Dans le même dossier où le fichier .sof a été récupéré, un fichier avec l'extension .pof. Les fichiers avec cette extension doivent être flashés en se connectant directement à la ROM, mais je voulais flasher la carte sans mouvements inutiles via jtag. Pour ce faire, à partir du fichier .sof, il fallait obtenir un fichier avec l'extension .jic.

Pour convertir un fichier .sof en .jic, vous avez besoin:

  • dans le menu Fichier, sélectionnez Convertir les fichiers de programmation

  • dans le menu qui s'ouvre, sélectionnez dans le champ Type de fichier de programmation choisir JTAG indirect
    Fichier de configuration (.jic)
  • dans le champ Dispositif de configuration sélectionnez le type de ROM située sur la carte
  • dans le champ Mode sélectionner le mode firmware
  • dans le champ Nom de fichier déterminer le nom et le répertoire du fichier de sortie

  • dans le champ Fichier d'entrées à convertir cliquez sur SOF Data, un bouton apparaît sur le côté droit Ajouter le fichier, en cliquant sur lequel vous pourrez sélectionner le fichier à convertir

7 / 8 121

version imprimée

Tests de mémoire pour ZX-Spectrum, flashés dans la ROM

Les dysfonctionnements liés à la RAM occupent une niche « honorable » parmi toutes les raisons possibles de l'inopérabilité des Spectrums. Les puces mémoire sont relativement peu fiables et ont tendance à griller (surtout en cas de problèmes d'alimentation). Et surtout si la source d'alimentation du Spectrum est un transformateur. Combien de fois cela a-t-il été remarqué sur mon ordinateur Leningrad-1 avec une alimentation par transformateur - vous avez accidentellement sauté l'alimentation de l'ordinateur (+5V et masse), et un ou deux microcircuits KR565RU5 se sont déjà « envolés ».

En règle générale, la puce mémoire brûle complètement. Ceux. Ce n’est pas qu’un élément ne fonctionne pas, mais que la puce entière cesse de fonctionner. La mémoire du Spectrum est organisée de telle manière que chaque puce RAM est responsable de son propre bit de mémoire (pour un Spectrum 48K, cela représente 8 puces, un bit chacune, pour un total de 64 Ko de mémoire adressable). Lorsque l'ordinateur démarre, la ROM effectue son test de mémoire et si une cellule RAM « échoue », l'ordinateur fixe la limite de mémoire disponible à l'adresse de la cellule précédente à celle défectueuse. Dans ce cas, la valeur de la limite de mémoire disponible est définie dans la variable système P_RAMT (elle se situe aux adresses 23732-23733 dans la RAM. Dans un ordinateur en état de marche, la valeur de cette variable système sera égale à #FFFF (c'est-à-dire c'est-à-dire que les nombres 255 seront écrits dans les deux cellules mémoire). Si la variable système contient un nombre qui n'est pas égal à #FFFF, par exemple, si #F000 est là, cela signifie que la cellule mémoire #F001 est déjà défectueuse.

Tout cela est très bien, mais seulement si la cellule mémoire défectueuse détectée ne se trouve pas au début de la RAM disponible. Le fait est que pour que BASIC-48 fonctionne, il nécessite également une sorte de mémoire de travail disponible. Et si un défaut de mémoire est détecté au début de la RAM, alors BASIC ne démarrera tout simplement pas et nous ne pourrons rien découvrir. Si l'une des puces RAM grille complètement, l'ordinateur ne démarrera pas BASIC.

Il ne reste plus qu'à « danser avec un tambourin » pour retrouver ce qui a réellement brûlé. Applicable aux puces mémoire, vous pouvez essayer un diagnostic primitif, mais parfois utile. Le fait est qu'une puce mémoire défectueuse (KR565RU5) peut différer en température de celle des autres puces fonctionnelles. Lors du fonctionnement, la RAM KR565RU5 chauffe. Si vous mettez le doigt sur les puces RAM, vous pouvez sentir que les puces sont sensiblement chaudes. Un microcircuit défectueux peut chauffer comme un fer à repasser ou être complètement froid. Ce ne sera pas nécessairement le cas, mais cette méthode peut être mémorisé et appliqué de temps en temps.

De manière générale, lors de la production de Spectrums, les règles de bonne forme sont d'installer des puces ROM et processeur sur les sockets. Cela rend la vie beaucoup plus facile lors de la réparation de votre ordinateur. Dans ce cas, nous nous intéressons à la puce ROM. Dans les Spectrums "anciens" produits à la fin des années 80 (début des années 90), en règle générale, deux puces ROM étaient installées. Cela a été dicté par le fait qu'il n'était pas si facile d'obtenir une puce ROM 16K (nom bourgeois 27128), il était donc plus facile et moins cher de la remplacer par deux puces 8K, heureusement, ils avaient un analogue domestique KR573RF4, KR573RF6 . Et généralement, l'un des microcircuits (généralement ROM-0) était placé sur la prise. Pourquoi ROM-0 ? Parce que La ROM est assemblée sur deux puces, son espace d'adressage est divisé en deux parties. La capacité totale de la ROM est de 16 Ko. Par conséquent, les premiers 8K sont considérés comme ROM-0 et les seconds 8K sont considérés comme ROM-1. Au démarrage de l'ordinateur, le processeur commence à exécuter le programme situé à l'adresse #0000, et c'est précisément la zone adressée par ROM-0.

Alors oui, nous avons vraiment besoin d’au moins une ROM sur le socket. Si la carte informatique n'a qu'une seule ROM sur le socket, c'est également très bien. Le fait est que la ROM peut être supprimée et remplacée par votre propre ROM, dans laquelle le test de mémoire est « cousu ». Ensuite, lorsque vous allumerez l'ordinateur, le test de mémoire dont nous avons besoin sera lancé, qui montrera clairement ce qui se passe avec la mémoire de l'ordinateur.

Il y a très, très longtemps, quand je n'avais pas encore de programmeur ROM, je devais aller au marché de la radio et là, des durs flashaient n'importe quoi dans la ROM pour obtenir le pot-de-vin approprié. Ils ont également effectué des tests de mémoire pour les spectres. Oui, c'était le bon moment alors...

Ainsi, après avoir acheté la précieuse puce ROM flashée, vous pouvez tester votre ordinateur. Cependant, il fallait d'abord résoudre la question : comment insérer correctement la ROM dans le socket ? Le fait est que le test ROM est flashé sur une puce 2K. Il dispose de 24 broches. Le Spectrum utilise des ROM à 28 broches. Dans ce cas, les broches 21 et 24 du microcircuit avec le test ont été relevées et combinées comme suit :

Un tel microcircuit est inséré dans la prise comme indiqué sur la photo :

Je pense que la photo montre tout clairement. La broche 12 de la ROM (GND) doit correspondre à la broche 14 du support. Et la broche saillante de la ROM de test doit tomber dans la 28ème broche de la prise (+alimentation 5V).

Au lieu de mutiler la ROM, vous pouvez créer une carte adaptateur. Nous avons placé une prise à 24 broches sur le dessus pour la ROM de test, et des broches dépassent par le bas pour installer la carte dans une prise à 28 broches de l'ordinateur. Toutes les modifications nécessaires à la connexion des broches ROM 21 et 24 peuvent être effectuées directement sur cette carte :

Dans ma pratique, j'utilise souvent le firmware de test suivant :

ROM de test pour ZX-Spectrum 48K

Comme son nom l'indique, vérifie 48 Ko de RAM. Cela fonctionne très lentement (environ 12 minutes). Tout d'abord, les attributs de l'écran sont effacés, puis l'écran est peint et effacé un par un, puis les résultats du test RAM sont affichés. Après cela, il y a un test ROM, mais il se termine toujours par une erreur, mais pour nous cela n'a pas d'importance. L'essentiel est de vérifier la RAM.

ATTENTION!
Ce test a un « truc » : si vous maintenez la barre d'espace enfoncée au démarrage du test, la partie graphique avec l'ombrage des attributs est ignorée et le test RAM commence directement. Le test de la barre d'espace enfoncée se fait au moment où se termine la sélection des couleurs de bordure au début du test.

La réussite du test si l'une des puces RAM est défectueuse peut être vue dans le premier numéro de Byte Tales #01 :

BYT Tales #01 - Réparation de l'ordinateur « Byte »

Une autre ROM de test pour ZX-Spectrum 48K

Je ne suis pas entièrement satisfait du test de mémoire de 48 Ko de la section précédente de la page, alors quand j'ai eu du temps libre et de l'envie, j'ai démonté ce test et, sur cette base, j'ai « réduit » ma propre version, dans laquelle j'ai essayé de réaliser mes « envies ».

Le résultat a été un test de mémoire légèrement plus avancé, dans lequel j'ai ajouté plusieurs algorithmes de test de mémoire, supprimé le code inutile du test (il y en a beaucoup), et également créé un « brouilleur » du synthétiseur sur le KR580VI53 dans le cas d’utiliser le test sur l’ordinateur « Byte ».

Vous pouvez télécharger le firmware de test ainsi que toutes les sources pour iS-DOS (le test est écrit en iS-Assembler) à la fin de cette page.

Test ROM pour ZX-Spectrum 48K (du magazine "Radio Amateur" 1995 n°9

Dans le magazine "Radio Amateur" n°9 de 1995, un dump d'un test ROM pour le ZX-Spectrum 48 rédigé par G. Ulanovsky a été publié.

La particularité du test est qu'il n'affiche pas de texte à l'écran - toutes les informations sur les performances de la RAM sont affichées sous forme de lignes sur la bordure. Cela peut être utile en cas d'inopérabilité totale de la RAM, lorsque lors de l'affichage du texte à l'écran, rien ne sera visible et les lignes sur la bordure seront clairement visibles (l'affichage des informations sur la bordure ne dépend pas des performances et disponibilité de la RAM en général).

Une fois le test terminé, 8 bandes blanches s'affichent sur la bordure, symbolisant 8 bits de RAM. La première barre en partant du haut montre l'état de fonctionnement du bit D0, la deuxième - D1, la troisième - D2, etc. Si le bit de RAM correspondant est opérationnel, la bande sera étroite :

Dans le cas d'un bit défaillant, la bande passante sera deux fois plus large :

L'inconvénient du test est qu'il ne vérifie que les 16 premiers Ko de RAM (aux adresses #4000-#7FFF). Cependant, cela peut être facilement résolu en changeant la source de test.

Le test se déroule en 4 étapes (remplissage et vérification des octets #00, #FF, #55 et #AA). Si vous le souhaitez, vous pouvez ajouter à texte original et d'autres options pour vérifier la RAM.

A titre d'exemple, j'ai modifié le test pour vérifier la quantité totale de 48 Ko de RAM, et j'ai également inséré dans la source la procédure de brouillage du KR580VI53 pour l'ordinateur Byte. Le micrologiciel pour deux options et sources de test peut être téléchargé à la fin de cet article.

ROM de test pour ZX-Spectrum 128K

Ce test vous permet de vérifier rapidement la mémoire du 128ème ZX-Spectrum.

Vous pouvez voir comment le test s'exécute sur un ordinateur fonctionnel dans la vidéo suivante :

Il devrait y avoir une vidéo ici, mais elle ne fonctionnera que si vous l'autorisez. Travail JavaScript pour ce site

Après le message concernant un test ROM réussi, une boucle se produit, vous pouvez l'ignorer.

Quand on travaille sur quelques Sur les ordinateurs avec un contrôleur de lecteur connecté, des problèmes sont possibles lors de la réussite du test. Le fait est que lors de la connexion du contrôleur de lecteur, une modification est apportée qui interdit la sélection de ports lorsque le contrôleur fonctionne. Par exemple, ce qu'il est recommandé de faire lors de la connexion du contrôleur C-48 au ZX-Spectrum :

Le conducteur allant de la sortie /IORQ du processeur au circuit informatique est rompu et un élément logique qui commute le signal /IORQ est connecté à la coupure.

Ceci est fait afin de désactiver les éventuels ports de l'ordinateur qui entrent en conflit avec les ports du contrôleur de lecteur. Tout d’abord, il s’agit du port Kempston du joystick. Cependant, personne ne recherchera un modèle d'ordinateur spécifique pour voir ce qui pourrait entrer en conflit avec le contrôleur de lecteur. Il est donc plus facile de désactiver complètement l'accès aux ports pendant que le contrôleur de lecteur fonctionne.

Deuxième point : encore une fois dans quelques Sur les ordinateurs ainsi modifiés, TR-DOS est immédiatement lancé lors de la réinitialisation. Ceci est fait pour qu'à chaque fois sous BASIC, vous n'ayez pas à « taper » la commande RANDOMIZE USR 15616 pour démarrer TR-DOS.

Troisième point : encore une fois dans quelques Sur les ordinateurs, la ROM avec BASIC est combinée avec la ROM TR-DOS dans une seule puce. Par exemple, comme dans cet ordinateur Leningrad-1 :

Programmeur- un dispositif matériel et logiciel conçu pour écrire/lire des informations dans un périphérique de stockage permanent (écriture unique, mémoire flash, ROM, mémoire interne des microcontrôleurs et automates).

Programmeur- il s'agit d'un appareil qui saisit les informations nécessaires au fonctionnement dans des puces numériques programmables non volatiles, telles que BAL DE PROMO (ROM), EPROM (PROM), EEPROM (EEPROM), Éclair, COPAIN, FILLE, FPGA Et microcontrôleurs. Le processus d'enregistrement est souvent appelé " ", " ", " ", " ".

ROM Flash, ROM Flash

"Flash ROM"- écrire des informations dans la ROM.

À l’époque où les ordinateurs étaient de grande taille, du milieu des années 1950 au milieu des années 1970, les ordinateurs utilisaient une mémoire à noyau magnétique. Cette mémoire était utilisée à la fois comme RAM et ROM. Lors de la création de la ROM, le fil passait à travers l'anneau ou le contournait. Le fil était passé à travers un anneau de ferrite à l'aide d'une aiguille spéciale. C'est "cousu" matrice mémoire au sens littéral. C’est pourquoi ce processus s’est vu tout naturellement attribuer la définition "flash ROM". Afin de bien faire les choses "éclair", créé un document technologique "carte du micrologiciel" qui indiquait par quels anneaux faire passer le fil et lesquels ne le faisaient pas. La mémoire sur les noyaux de ferrite appartient au passé, mais le terme "éclair" Et "micrologiciel" en relation avec le processus d'écriture sur ROM est encore utilisé aujourd'hui. De plus le mot "firmware" utilisé à la fois comme verbe en relation avec le processus de saisie d'informations dans la ROM et comme nom en relation avec les informations ou le fichier saisi lui-même.

Contrairement aux semi-conducteurs, les noyaux magnétiques n'ont pas peur des rayonnements et des rayonnements électromagnétiques et, par conséquent, la mémoire à noyau magnétique a continué à être utilisée dans les systèmes militaires et spatiaux pendant un certain temps. On sait de manière fiable qu’il a été utilisé dans les ordinateurs de bord de la navette jusqu’en 1991. Peut-être qu'une telle mémoire est encore utilisée dans certains systèmes plus anciens. Actuellement, une mémoire à semi-conducteurs résistante aux effets spéciaux a déjà été développée et l'ère des noyaux magnétiques est révolue, mais le terme "micrologiciel" est resté.

Graver une ROM

"Graver la ROM"- saisir des informations.

La mémoire sur noyaux de ferrite a été remplacée par une mémoire RAM à semi-conducteurs, et des microcircuits avec des matrices de métal, souvent du nichrome, des cavaliers à l'intérieur ont commencé à être utilisés comme ROM. Pour saisir des informations dans de tels microcircuits, les cavaliers en excès doivent être brûlés avec une impulsion de courant. Par la suite, les cavaliers ont commencé à être utilisés non seulement en métal, mais également en semi-conducteurs, sous la forme p-n jonction ou polysilicium, mais le principe de destruction physique du cavalier ou de rupture de la jonction par
l'impact de l'impulsion de courant a été préservé. De telles ROM sont encore utilisées aujourd’hui dans les systèmes militaires et aérospatiaux. Tous les programmateurs ChipStar pour microcircuits spéciaux sont "brûler" de telles ROM.

Enregistrement, chargement de la ROM

Dans les applications domestiques et industrielles, où les exigences en matière de résistance aux facteurs externes sont moindres et les exigences en matière de coût et de capacité de mémoire sont plus élevées, les puces avec cavaliers à fusible ont été supplantées par des puces EPROM électriquement programmables et des puces ROM EEPROM électriquement reprogrammables, et, plus encore. récemment, par des puces basées sur FLASH. Avec l'évolution de la technologie, la terminologie a également changé : on a commencé à parler plus souvent de La ROM "écrit", ou "chargement", et le terme est plus souvent utilisé en relation avec la ROM interne des microcontrôleurs, et « écriture » est plus souvent utilisé en relation avec les puces de mémoire autonomes.

Programmation ROM ou microcontrôleur

"Programmation ROM ou microcontrôleur"- saisir des informations dans la ROM ou le microcontrôleur.

Terme "la programmation"également très souvent appliqué au processus d’écriture sur ROM. Et, si par rapport à la ROM, cela est toujours perçu sans ambiguïté, alors par rapport aux microcontrôleurs, une ambiguïté surgit : "Programmer le microcontrôleur" peut signifier soit l'écriture d'un code de programme prêt à l'emploi (image) dans la ROM du microcontrôleur à l'aide d'un périphérique matériel (programmeur, câble de téléchargement), soit le processus de développement du programme lui-même.

P.S. P.S.

Vous direz qu’il est si facile de se confondre dans toute cette terminologie, et vous aurez tout à fait raison. Mais dans le milieu anglophone, tout ne va pas mieux ! Non seulement ils sont tous pareils "brûlures" ("brûler"), "téléchargements"("télécharger"), "enregistrer"("écrire"), les termes le sont aussi "programmeur"- la personne qui développe le programme et "programmeur"- l'appareil qui écrit ce programme dans le microcircuit est noté en un mot : "programmeur".

Machines à microprogrammes représentent la prochaine étape vers une complexité accrue du renseignement circuits numériques. Sur la base d'automates microprogrammés, il est possible de construire des dispositifs qui fonctionnent selon des algorithmes assez complexes, remplissent diverses fonctions déterminées par des signaux d'entrée et produisent des séquences complexes de signaux de sortie. Dans ce cas, l'algorithme de fonctionnement machine à microprogramme peut être facilement modifié en remplaçant le firmware ROM.

Contrairement aux dispositifs logiques « durs » précédemment considérés, dont le principe de fonctionnement est uniquement déterminé par les éléments utilisés et la méthode de leur connexion, machines à microprogrammes l'utilisation du même circuit peut remplir diverses fonctions. Autrement dit, ils sont beaucoup plus flexibles que les circuits basés sur une logique « dure ». De plus, la conception machines à microprogrammes Du point de vue de la conception du circuit, c'est assez simple. L'inconvénient de tout machine à microprogramme Par rapport aux circuits basés sur une logique « dure », les performances maximales sont inférieures et la nécessité de compiler une carte du firmware ROM avec microprogrammes, souvent assez complexe.

Structure la plus courante machine à microprogramme(Fig. 11.15) ne comprend que trois éléments : la ROM, un registre déclenché par front et générateur d'horloge.


Riz. 11h15.

La ROM a (L+M) bits d’adresse et N bits de données. Le registre est appliqué avec un nombre de chiffres (N + L). Les bits de données ROM sont écrits dans le registre sur un front positif signal d'horloge du générateur. Une partie de ces bits (M) est utilisée pour former l'adresse ROM, l'autre partie (N-M) est utilisée pour générer des signaux de sortie. Des signaux d'entrée (L) sont fournis aux entrées de registre et sont utilisés conjointement avec une partie des bits de sortie ROM pour obtenir l'adresse ROM.

Le schéma fonctionne comme suit. A chaque cycle d'horloge, la ROM produit un code de données, déterminant ainsi non seulement l'état des signaux de sortie du circuit, mais également l'adresse de la ROM, qui sera définie lors du prochain cycle d'horloge (après le prochain front positif signal d'horloge). Cette adresse suivante est également affectée par les signaux d'entrée. Autrement dit, contrairement au séquenceur de signaux évoqué dans la section précédente, dans ce cas, les adresses peuvent être triées non seulement séquentiellement (à l'aide d'un compteur), mais également dans un ordre arbitraire, déterminé par le micrologiciel de la ROM, appelé micrologiciel.

La condition du bon fonctionnement du circuit est la suivante. Pour une période signal d'horloge Le registre et la ROM doivent avoir le temps de fonctionner. En d'autres termes, la somme du délai de registre et du délai de récupération de l'adresse ROM ne doit pas dépasser la période signal d'horloge. Notez également que les signaux d'entrée machine à microprogramme ne peut pas être appliqué directement aux entrées d'adresse de la ROM (sans registre), car leur changement asynchrone (par rapport au signal d'horloge) peut provoquer un processus transitoire au niveau des sorties de données de la ROM précisément au moment où les signaux de sortie de la ROM sont écrits au registre. En conséquence, des informations incorrectes peuvent être écrites dans le registre, ce qui perturberait le fonctionnement de l'ensemble du circuit. Le registre synchronise les modifications des signaux d'entrée avec le signal d'horloge, de sorte que tous les bits du code d'adresse ROM changent simultanément - le long du front positif. signal d'horloge. Le registre doit être déclenché par front ; l'utilisation d'un registre à verrouillage n'est pas autorisée, car elle peut provoquer un processus transitoire de type avalanche.

Les possibilités d'un schéma aussi simple s'avèrent très grandes. Par exemple, machine à microprogramme peut produire des séquences de signaux de sortie en réponse à un changement spécifique des signaux d’entrée. Il peut également arrêter temporairement les signaux de sortie jusqu'à l'arrivée des signaux d'entrée. Il peut analyser la durée du signal d'entrée et, en fonction de celui-ci, produire certains signaux de sortie. Cela peut aussi faire beaucoup d’autres choses.

Formulons plusieurs fonctions élémentaires à partir desquelles peuvent être composés les algorithmes de fonctionnement d'un automate à microprogramme (Fig. 11.16) :


Riz. 11.16.
  1. Recherche séquentielle Adresses ROM (par exemple, pour émettre une séquence de signaux de sortie).
  2. Répéter périodiquement une séquence d'adresses ROM (par exemple, pour répéter une séquence de signaux de sortie).
  3. S'arrêter à une adresse ROM (par exemple, pour attendre qu'un signal d'entrée change).
  4. Désactiver temporairement la réaction aux signaux d'entrée (par exemple, afin de terminer l'élaboration de la réaction à un changement précédent des signaux d'entrée). Cette fonction n'est pas représentée sur la figure.

A titre d'exemple, considérons l'exécution de certaines fonctions élémentaires machine à microprogramme, montré sur la fig. 11.17.


Riz. 11.17.

La ROM a une organisation 64x8 (il peut s'agir de deux puces PE3 ou d'une puce RT18), le nombre de bits de registre est de dix (il peut s'agir de deux puces IR27). Le circuit possède deux signaux d'entrée et quatre signaux de sortie. Une telle organisation machine à microprogramme La bonne nouvelle est que son microprogramme (c'est-à-dire la carte du firmware ROM) est très clair, facile à composer et à lire.

Tableau 11.7. Carte firmware ROM 64x8 pour machine à microprogramme
Adresse 0 1 2 3 4 5 6 7 8 9 UN B C D E F
00 FR FR FR FR FR FR FR FR FR FR FR FR FR FR FR FR
10 FR FR FR FR FR FR FR FR FR FR FR FR FR FR FR FR
20 FR FR FR FR FR FR FR FR FR FR FR FR FR FR FR FR
30 FR FR FR FR FR FR FR FR FR FR FR FR FR FR FR FR

Les bits de sortie des données ROM sont divisés en deux groupes de 4 signaux : les plus bas vont former l'adresse ROM suivante, les plus hauts forment quatre signaux de sortie. Les signaux d'entrée arrivent (via un registre) aux deux bits les plus significatifs de l'adresse ROM. Si nous décrivons la carte du micrologiciel ROM sous la forme habituelle d'un tableau de quatre lignes et 16 colonnes (tableau 11.7), alors ce tableau montrera clairement à la fois l'état de chacun des signaux internes, ainsi que la réponse du circuit à toute entrée. signal, ainsi que les états de tous les signaux de sortie dans chaque cycle d'horloge.

Tout d'abord, il est facile de remarquer que la sélection de l'une ou l'autre ligne du tableau se fait par les bits de poids fort du code d'adresse ROM, c'est-à-dire par les signaux d'entrée machine à microprogramme. Ainsi, tout changement dans les signaux d'entrée entraîne une transition vers une autre ligne de la carte du firmware. Par exemple, la ligne 00 correspondra à des signaux d'entrée nuls machine à microprogramme et ligne 30 - signaux d'entrée uniques.

Tableau 11.8. Exemple de firmware pour le circuit de la Fig. 11.17
Adresse 0 1 2 3 4 5 6 7 8 9 UN B C D E F
00 11 22 33 44 55 66 77 88 99 Les AA BB CC DD E.E. FR 00
10 11 22 33 44 55 66 77 88 99 55 BB CC DD E.E. FR 00
20 10 21 32 43 54 65 76 87 98 A9 B.A. C.B. CC ED
mob_info