« Very High Speed Integrated Circuit Hardware Description Language/Travail pratique/TP 5 » : 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 24 :
 
Dans ce schéma le démultiplexeur est responsable d'envoyer le signal write_strobe en fonction du bit de poids faible de port_id sur une de ses deux sorties. Les bascules D sont naturellement des registres {{Unité|8|bits}} avec entrée de validation. Quelque chose comme :
<sourcesyntaxhighlight lang="VHDL">
process(clk) begin
if clk'event and clk = '1' then
Ligne 32 :
end if;
end process;
</syntaxhighlight>
</source>
devrait convenir.
{{Attention|Avec_fond=oui|Le morceau de programme donné ci-dessus est une implantation sans composant, donc directement dans un process d'où la présence de signaux (que je note souvent avec le préfixe "s_"). Si vous utilisez des composants changez les noms de variables ci-dessus.}}
Ligne 118 :
Un programme assembleur est ensuite assemblé pour donner un composant VHDL représentant le contenu de la ROM du PicoBlaze. Pour éviter la compilation aux étudiants dans un premier temps, je donne le contenu VHDL équivalent au programme adssembleur. Pour éviter de polluer cette page avec un long programme VHDL pas utile pour tout le monde, je met le programme correspondant dans une boîte déroulante :
{{Boîte déroulante|titre='''Contenu VHDL pour éviter de compiler le programme ci-dessus'''|contenu=
<sourcesyntaxhighlight lang="VHDL">
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
Ligne 371 :
DOP => instruction(17 downto 16));
end low_level_definition;
</syntaxhighlight>
</source>
}}
 
Ligne 512 :
==== Le programme de départ en C ====
Nous avons choisi '''PORTA''' pour gérer les afficheurs et '''PORTB''' en entrée pour les interrupteurs et PORTB en sortie pour les afficheurs sept segments.
<sourcesyntaxhighlight lang="c">
#include <pic.h>
char conv[]={0x01,0x4F,0x12,0x06,0x4C,0x24,0x20,0x0F,0x00,0x04,
Ligne 544 :
while(TMR0<tempo);
}
</syntaxhighlight>
</source>
{{remarque|contenu=
Les habitués aux processeurs physiques ne percevront pas de suite comment un même PORT (le '''PORTB''') peut être utilisé à la fois en entrée et en sortie. Il me faut donc rappeler que notre cœur possède physiquement deux ports séparés, un pour les entrées et l'autre pour les sorties.