« Very High Speed Integrated Circuit Hardware Description Language/Petit Système monopuce MCPU » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (-\n(==={0,3})(?: *)([^\n=]+)(?: *)\1(?: *)\n +\n\1 \2 \1\n)
m Robot : Remplacement de texte automatisé (-(<|</)source([ \t>]) +\1syntaxhighlight\2)
Ligne 71 :
 
Nous ne sommes pas tout à fait dans cette situation puisque notre architecture existe, nous venons tout juste de la présenter. Pour notre exemple de calcul de [[w:PGCD|PGCD]], cela peut se faire avec un programme en [[w:Assembleur|assembleur]] du style (sans utiliser les macros) :
<sourcesyntaxhighlight lang="asm">
;********* programme non testé ******
;USE "cpu3.inc"
Ligne 118 :
one:
DCB (1)
</syntaxhighlight>
</source>
Ce programme est facile à comprendre pour qui a un peu d'expérience car il reprend la technique utilisée dans l' [[w:Unité_de_contrôle|unité de contrôle]] du chapitre précédent (nous avons modifié le programme original de Tim Boescke pour cela). Les données "allone", "zero" et "one" ainsi que les macros peuvent être définies dans un fichier à inclure comme dans le programme original.
 
Ligne 136 :
=== Exercice 1 ===
Le programme [[w:VHDL|VHDL]] de description original de Tim Boescke pour décrire son architecture est tellement simple que nous le donnons maintenant complètement :
<sourcesyntaxhighlight lang="VHDL">
-- Minimal 8 Bit CPU
-- rev 15102001
Ligne 196 :
we <= '1' when (clk='1' or states /= "001" or rst='0') else '0'; -- state "101" (branch not taken)
end CPU_ARCH;
</syntaxhighlight>
</source>
Cette architecture utilise une seule mémoire pour les données et le programme : ils peuvent donc être mélangés dans une même mémoire. Répondre aux questions suivantes :
# Le [[w:Compteur_ordinal|compteur programme]] destiné à chercher les instructions en mémoire programme est sur {{Unité|6|bits}}. Quelle est la taille de la mémoire programme sachant que, comme le montre le tableau des [[w:Instruction_machine|instructions]], les opcodes sont sur {{Unité|8|bits}} ?
Ligne 236 :
Un membre du forum [http://stackoverflow.com/questions/20955863/vhdl-microprocessor-microcontroller stackoverflow] a écrit une version un peu plus lisible de MCPU en VHDL :
{{Boîte déroulante|titre=Version plus lisible de MCPU|contenu=
<sourcesyntaxhighlight lang=vhdl>
library ieee;
use ieee.std_logic_1164.all;
Ligne 337 :
 
end;
</syntaxhighlight>
</source>
}}