J
jony
Guest
J'ai écrit ce code qui décrivent un bloc de cartographie signal de pi / 4 DQPSK.
mais l'adresse ROM n'augmente pas.
quelqu'un peut m'aider?
C'est le code:
IEEE bibliothèque;
ieee.std_logic_1164.all utilisation;
ieee.std_logic_arith.all utilisation;
ieee.std_logic_unsigned.all utilisation;
ieee.math_real.all utilisation;
entité est signal_mapping1
port (horloge: dans std_logic;
Reset: en std_logic;
Activer: en std_logic;
in_I: en std_logic;
in_Q: en std_logic;
out_I: le Real;
out_Q: le Real
);
signal_mapping1 fin;
-------------------------------------------------- ------------
Behav architecture de signal_mapping1 estROM_Array type est un tableau (0 à 15)
du réel;
constante du contenu: ROM_Array: = (
0 => 1,0, - Supposons ROM a
1 => 0,0, - préenregistré valeur
2 => 0.70710_67811_86547_52440, - comme ce tableau
3 => 0.70710_67811_86547_52440, -
4 => 0,0, -
5 => 1,0, -
6 =>-0.70710_67811_86547_52440, -
7 => 0.70710_67811_86547_52440, -
8 => -1,0, -
9 => 0,0, -
10 =>-0.70710_67811_86547_52440, - 11 =>-0.70710_67811_86547_52440,
12 => 0,0, -
13 => -1,0, -
14 => 0.70710_67811_86547_52440,
15 =>-0.70710_67811_86547_52440,
Autres => 505,0 -
);
- Définir les états de la FSM modèle
address_i signal: integer: = 0;
address_q signal: integer: = 1;
commencer
processus (Horloge, Reset, in_q, in_i)
commencer
if (Reset = '1 ') puis
out_i <= contenu (0);
out_q <= contenu (1);
elsif (Clock'event et Horloge = '1 ') puis
si l'option Activer = '1 'alors
if (in_q = '0 'et in_i = '0'), puis
out_q <= contenu (address_q 2);
out_i <= contenu (address_i 2);
<= Address_i address_i 2;
address_q <= address_q 2;elsif (in_q = '1 'et in_i = '0'), puis
out_q <= contenu (address_q 4);
out_i <= contenu (address_i 4);
<= Address_i address_i 4;
address_q <= address_q 4;elsif (in_q = '0 'et in_i = '1') puis
out_q <= contenu (address_q 6);
out_i <= contenu (address_i 6);
<= Address_i address_i 6;
address_q <= address_q 6;elsif (in_q = '1 'et in_i = '0'), puis
out_q <= contenu (address_q
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Frais" border="0" />
;
out_i <= contenu (address_i
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Frais" border="0" />
;
<= Address_i address_i 8;
address_q <= address_q 8;
fin si;
d'autre
out_q <= 505,0;
<= 505,0 out_i;
fin si;
fin si;
processus de bout;
Behav fin;
-------------------------------------------------- ------------
mais l'adresse ROM n'augmente pas.
quelqu'un peut m'aider?
C'est le code:
IEEE bibliothèque;
ieee.std_logic_1164.all utilisation;
ieee.std_logic_arith.all utilisation;
ieee.std_logic_unsigned.all utilisation;
ieee.math_real.all utilisation;
entité est signal_mapping1
port (horloge: dans std_logic;
Reset: en std_logic;
Activer: en std_logic;
in_I: en std_logic;
in_Q: en std_logic;
out_I: le Real;
out_Q: le Real
);
signal_mapping1 fin;
-------------------------------------------------- ------------
Behav architecture de signal_mapping1 estROM_Array type est un tableau (0 à 15)
du réel;
constante du contenu: ROM_Array: = (
0 => 1,0, - Supposons ROM a
1 => 0,0, - préenregistré valeur
2 => 0.70710_67811_86547_52440, - comme ce tableau
3 => 0.70710_67811_86547_52440, -
4 => 0,0, -
5 => 1,0, -
6 =>-0.70710_67811_86547_52440, -
7 => 0.70710_67811_86547_52440, -
8 => -1,0, -
9 => 0,0, -
10 =>-0.70710_67811_86547_52440, - 11 =>-0.70710_67811_86547_52440,
12 => 0,0, -
13 => -1,0, -
14 => 0.70710_67811_86547_52440,
15 =>-0.70710_67811_86547_52440,
Autres => 505,0 -
);
- Définir les états de la FSM modèle
address_i signal: integer: = 0;
address_q signal: integer: = 1;
commencer
processus (Horloge, Reset, in_q, in_i)
commencer
if (Reset = '1 ') puis
out_i <= contenu (0);
out_q <= contenu (1);
elsif (Clock'event et Horloge = '1 ') puis
si l'option Activer = '1 'alors
if (in_q = '0 'et in_i = '0'), puis
out_q <= contenu (address_q 2);
out_i <= contenu (address_i 2);
<= Address_i address_i 2;
address_q <= address_q 2;elsif (in_q = '1 'et in_i = '0'), puis
out_q <= contenu (address_q 4);
out_i <= contenu (address_i 4);
<= Address_i address_i 4;
address_q <= address_q 4;elsif (in_q = '0 'et in_i = '1') puis
out_q <= contenu (address_q 6);
out_i <= contenu (address_i 6);
<= Address_i address_i 6;
address_q <= address_q 6;elsif (in_q = '1 'et in_i = '0'), puis
out_q <= contenu (address_q
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Frais" border="0" />
;
out_i <= contenu (address_i
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Frais" border="0" />
;
<= Address_i address_i 8;
address_q <= address_q 8;
fin si;
d'autre
out_q <= 505,0;
<= 505,0 out_i;
fin si;
fin si;
processus de bout;
Behav fin;
-------------------------------------------------- ------------