Bonjour tout le monde.
J'ai un pti problème de décodage.
Le but c'est de créer un bloc avec en entrée 1 octet (Ascii), et puis en sortie un entier ( je ne sais pas trop si ça peut se faire ou non).
je dispose d'un horloge de 50 Mhz.
voilà comment j'ai procedé:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_unsigned.all;
-- Décodeurs 7 segments
entity codeur_ascii is
port (
clk : in std_logic; -- 50 MHz
TMP : in std_logic_vector(7 downto 0);
P1 : inout std_logic_vector(7 downto 0)
);
end codeur_ascii;
architecture DESCRIPTION of codeur_ascii is
begin
P1 <= "00000000" when TMP = "00110000" else --0 ascii
"00000001" when TMP = "00110001" else
"00000010" when TMP = "00110010" else
"00000011" when TMP = "00110011" else
"00000100" when TMP = "00110100" else
"00000101" when TMP = "00110101" else
"00000110" when TMP = "00110110" else
"00000111" when TMP = "00110111" else
"00001000" when TMP = "00111000" else
"00001001" when TMP = "00111001" else --9 ascii
"00001010" when TMP = "01000001" else --A
"00001011" when TMP = "01000010" else
"00001100" when TMP = "01000011" else
"00001101" when TMP = "01000100" else --D
"00001110" when TMP = "00101010" else --*
"00001111";
end DESCRIPTION;
j'ai fais une conversion binaire.
Je ne sais pas ensuite si à partir de cette conversion je peux avoir mes sorties en entier:
je pense faire un test, par exemple
"je déclare un variable interne v"
if (P1='00000001')
v<=50Mhz/113122 (qui donne une valeur de v=442)
et c'est cette valeur que j'aimerai sortir sur P1 à la sortie du bloc.
Je vous remercie pour vos réponses.
-----