A
abhineet22
Guest
Frenz Salut,
J'avais d'exécuter ce code il n'y a pas d'erreur, mais de nombreux avertissements et je doute qu'il pourrait être mal ce code pour le tableau d'enregistrement et de sa cartographie d'octets et des bits registre ....
Toutes les sorties de la <regw> instance de la <byte_register> bloc ne sont pas liées à <regarray> bloc.
"Cette instance sera retirée de la conception ainsi que toute la logique sous-jacente
AVERTISSEMENT: XST: 524 - Toutes les sorties de la <regz> instance de la <byte_register> bloc ne sont pas liées à <regarray> bloc. "
ce type d'avertissement que je reçois après l'exécution de ce code ........ quelqu'un peut-il m'aiderIEEE bibliothèque;
IEEE.std_logic_1164.all utilisation;
IEEE.std_logic_arith.all utilisation;
IEEE.std_logic_unsigned.all utilisation;
regarray entité est
port (MUX: std_logic_vector inout (7 downto 0);
selreg: en std_logic_vector (3 downto 0);
horloge: dans std_logic;
reset: en std_logic;
enable1: en std_logic;
regrdwr: en std_logic;
pcinc: en std_logic;
addressbuffer: std_logic_vector à (7 downto 0);
dataaddbuffer: std_logic_vector à (7 downto 0));
regarray fin;
RTL architecture de regarray est
byte_register composante
port (
Reset: en std_logic;
Activer: en std_logic;
Horloge: en std_logic;
DONNEES et: en std_logic_vector (7 downto 0);
Dataout: std_logic_vector à (7 downto 0));
composante fin;
bit16_register composante
port (
Reset: en std_logic;
Activer: en std_logic;
Horloge: en std_logic;
DONNEES et: en std_logic_vector (15 downto 0);
Dataout: std_logic_vector OUT (15 downto 0));
composante fin;
signal de la CPS: std_logic_vector (15 downto 0): = "0000000000111111";
signal PCC: std_logic_vector (15 downto 0): = "0000000000000000";
temp_data signal: std_logic_vector (7 downto 0);
temp_w signal: std_logic_vector (7 downto 0);
signal temp_z: std_logic_vector (7 downto 0);
signal temp_b: std_logic_vector (7 downto 0);
signal temp_c: std_logic_vector (7 downto 0);
signal temp_d: std_logic_vector (7 downto 0);
temp_h signal: std_logic_vector (7 downto 0);
temp_l signal: std_logic_vector (7 downto 0);
temp_e signal: std_logic_vector (7 downto 0);
signal temp_pc: std_logic_vector (15 downto 0);
temp_sp signal: std_logic_vector (15 downto 0);
enw signal, Enz, ENB, enc, en_d, ENE, ENH, ENL, en_sp, en_pc: std_logic;
commencer
regw: carte port byte_register (reset, enw, horloge, temp_data, temp_w);
regz: carte port byte_register (reset, Enz, horloge, temp_data, temp_z);
RegB: carte port byte_register (reset, ENB, horloge, temp_data, temp_b);
regC: carte port byte_register (reset, enc, horloge, temp_data, temp_c);
Regd: carte port byte_register (reset, en_d, horloge, temp_data, temp_d);
rege: carte port byte_register (reset, ENE, horloge, temp_data, temp_e);
regH: carte port byte_register (reset, ENH, horloge, temp_data, temp_h);
REGL: carte port byte_register (reset, ENL, horloge, temp_data, temp_l);
stackP: carte port bit16_register (reset, en_sp, horloge, de la CPS, temp_sp);
PC: la carte du port bit16_register (reset, en_pc, horloge, le PCC, temp_pc);
processus (enable1, horloge, mux, selreg, regrdwr, reset)
commencer
if (reset = '1 'et enable1 = '0'), puis
<Addressbuffer = "00000000";
<Dataaddbuffer = "00000000";
elsif reset = '0 'et enable1 = '1' alors - et clock'event et l'horloge = '1 'alors
selreg cas est
quand "0000" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<Enw = '0 'après 1 ns;
= <Temp_w mux après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<Enw = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;quand "0001" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<Enz = '0 'après 1 ns;
<Mux = temp_z après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<Enz = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "0010" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<ENB = '0 'après 1 ns;
= <Temp_b mux après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<ENB = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "0011" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<Enc = '0 'après 1 ns;
<Mux = temp_c après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<Enc = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "0100" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<En_d = '0 'après 1 ns;
<Mux = temp_d après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<En_d = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "0101" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<Ène = '0 'après 1 ns;
<Mux = temp_e après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<Ène = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "0110" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<ENH = '0 'après 1 ns;
= <Temp_h mux après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<ENH = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "0111" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<ENL = '0 'après 1 ns;
<Mux = temp_l après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<ENL = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "1000" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<En_sp = '0 'après 1 ns;
<= Addressbuffer temp_sp (15 downto
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Frais" border="0" />
après 1 ns;
<= Dataaddbuffer temp_sp (7 downto 0) après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<En_sp = '1 'après 1 ns;
<Spc = temp_sp-«0000000000000001» après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "1001" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<En_pc = '0 'après 1 ns;
<= Addressbuffer temp_pc (15 downto
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Frais" border="0" />
après 1 ns;
<= Dataaddbuffer temp_pc (7 downto 0) après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<En_pc = '1 'après 1 ns;
<Spc = temp_pc "0000000000000001" après 1 ns;
fin si;
fin si;
quand "1010" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<ENH = '0 'après 1 ns;
<ENL = '0 'après 1 ns;
<= Addressbuffer temp_h après 1 ns;
<= Dataaddbuffer temp_l après 1 ns;
fin si;
fin si;
quand les autres =>
<Addressbuffer = "XXXXXXXX";
<Dataaddbuffer = "XXXXXXXX";
mux <= "XXXXXXXX";
Fin de cas;
fin si;
processus de bout;
RTL fin;
IEEE bibliothèque;
iEEE.std_logic_1164.all utilisation;
bit16_register entité est
port (
Reset: en std_logic;
Activer: en std_logic;
Horloge: en std_logic;
DONNEES et: en std_logic_vector (15 downto 0);
Dataout: std_logic_vector OUT (15 downto 0));
bit16_register fin;
comportement de l'architecture est bit16_register
commencer
processus (Horloge, Reset, DONNEES et)
commencer
if (Reset = '1 ') puis
Dataout <= "0000000000000000";
elsif (Reset = '0 'et Enable = '1' et de l'horloge = '1 'et clock'event) puis
Dataout <= DONNEES et;
fin si;
processus de bout;
com fin;
IEEE bibliothèque;
iEEE.std_logic_1164.all utilisation;
byte_register entité est
port (
Reset: en std_logic;
Activer: en std_logic;
Horloge: en std_logic;
DONNEES et: en std_logic_vector (7 downto 0);
Dataout: std_logic_vector à (7 downto 0));
byte_register fin;
comportement de l'architecture est byte_register
commencer
processus (Horloge, Reset, DONNEES et, Enable)
commencer
if (Reset = '1 ') puis
Dataout <= "00000000";
elsif (horloge = '1 'et clock'event) puis
if (Enable = '1 ') puis
Dataout <= DONNEES et;
fin si;
fin si;
processus de bout;
com fin;
J'avais d'exécuter ce code il n'y a pas d'erreur, mais de nombreux avertissements et je doute qu'il pourrait être mal ce code pour le tableau d'enregistrement et de sa cartographie d'octets et des bits registre ....
Toutes les sorties de la <regw> instance de la <byte_register> bloc ne sont pas liées à <regarray> bloc.
"Cette instance sera retirée de la conception ainsi que toute la logique sous-jacente
AVERTISSEMENT: XST: 524 - Toutes les sorties de la <regz> instance de la <byte_register> bloc ne sont pas liées à <regarray> bloc. "
ce type d'avertissement que je reçois après l'exécution de ce code ........ quelqu'un peut-il m'aiderIEEE bibliothèque;
IEEE.std_logic_1164.all utilisation;
IEEE.std_logic_arith.all utilisation;
IEEE.std_logic_unsigned.all utilisation;
regarray entité est
port (MUX: std_logic_vector inout (7 downto 0);
selreg: en std_logic_vector (3 downto 0);
horloge: dans std_logic;
reset: en std_logic;
enable1: en std_logic;
regrdwr: en std_logic;
pcinc: en std_logic;
addressbuffer: std_logic_vector à (7 downto 0);
dataaddbuffer: std_logic_vector à (7 downto 0));
regarray fin;
RTL architecture de regarray est
byte_register composante
port (
Reset: en std_logic;
Activer: en std_logic;
Horloge: en std_logic;
DONNEES et: en std_logic_vector (7 downto 0);
Dataout: std_logic_vector à (7 downto 0));
composante fin;
bit16_register composante
port (
Reset: en std_logic;
Activer: en std_logic;
Horloge: en std_logic;
DONNEES et: en std_logic_vector (15 downto 0);
Dataout: std_logic_vector OUT (15 downto 0));
composante fin;
signal de la CPS: std_logic_vector (15 downto 0): = "0000000000111111";
signal PCC: std_logic_vector (15 downto 0): = "0000000000000000";
temp_data signal: std_logic_vector (7 downto 0);
temp_w signal: std_logic_vector (7 downto 0);
signal temp_z: std_logic_vector (7 downto 0);
signal temp_b: std_logic_vector (7 downto 0);
signal temp_c: std_logic_vector (7 downto 0);
signal temp_d: std_logic_vector (7 downto 0);
temp_h signal: std_logic_vector (7 downto 0);
temp_l signal: std_logic_vector (7 downto 0);
temp_e signal: std_logic_vector (7 downto 0);
signal temp_pc: std_logic_vector (15 downto 0);
temp_sp signal: std_logic_vector (15 downto 0);
enw signal, Enz, ENB, enc, en_d, ENE, ENH, ENL, en_sp, en_pc: std_logic;
commencer
regw: carte port byte_register (reset, enw, horloge, temp_data, temp_w);
regz: carte port byte_register (reset, Enz, horloge, temp_data, temp_z);
RegB: carte port byte_register (reset, ENB, horloge, temp_data, temp_b);
regC: carte port byte_register (reset, enc, horloge, temp_data, temp_c);
Regd: carte port byte_register (reset, en_d, horloge, temp_data, temp_d);
rege: carte port byte_register (reset, ENE, horloge, temp_data, temp_e);
regH: carte port byte_register (reset, ENH, horloge, temp_data, temp_h);
REGL: carte port byte_register (reset, ENL, horloge, temp_data, temp_l);
stackP: carte port bit16_register (reset, en_sp, horloge, de la CPS, temp_sp);
PC: la carte du port bit16_register (reset, en_pc, horloge, le PCC, temp_pc);
processus (enable1, horloge, mux, selreg, regrdwr, reset)
commencer
if (reset = '1 'et enable1 = '0'), puis
<Addressbuffer = "00000000";
<Dataaddbuffer = "00000000";
elsif reset = '0 'et enable1 = '1' alors - et clock'event et l'horloge = '1 'alors
selreg cas est
quand "0000" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<Enw = '0 'après 1 ns;
= <Temp_w mux après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<Enw = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;quand "0001" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<Enz = '0 'après 1 ns;
<Mux = temp_z après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<Enz = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "0010" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<ENB = '0 'après 1 ns;
= <Temp_b mux après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<ENB = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "0011" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<Enc = '0 'après 1 ns;
<Mux = temp_c après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<Enc = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "0100" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<En_d = '0 'après 1 ns;
<Mux = temp_d après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<En_d = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "0101" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<Ène = '0 'après 1 ns;
<Mux = temp_e après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<Ène = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "0110" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<ENH = '0 'après 1 ns;
= <Temp_h mux après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<ENH = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "0111" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<ENL = '0 'après 1 ns;
<Mux = temp_l après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<ENL = '1 'après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "1000" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<En_sp = '0 'après 1 ns;
<= Addressbuffer temp_sp (15 downto
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Frais" border="0" />
après 1 ns;
<= Dataaddbuffer temp_sp (7 downto 0) après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<En_sp = '1 'après 1 ns;
<Spc = temp_sp-«0000000000000001» après 1 ns;
<= Temp_data mux après 1 ns;
fin si;
fin si;
quand "1001" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<En_pc = '0 'après 1 ns;
<= Addressbuffer temp_pc (15 downto
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Frais" border="0" />
après 1 ns;
<= Dataaddbuffer temp_pc (7 downto 0) après 1 ns;
regrdwr elsif = '1 'alors - et clock'event et l'horloge = '1' alors
<En_pc = '1 'après 1 ns;
<Spc = temp_pc "0000000000000001" après 1 ns;
fin si;
fin si;
quand "1010" => Si clock'event et l'horloge = '1 'alors
si regrdwr = '0 'alors - et clock'event et l'horloge = '1' alors
<ENH = '0 'après 1 ns;
<ENL = '0 'après 1 ns;
<= Addressbuffer temp_h après 1 ns;
<= Dataaddbuffer temp_l après 1 ns;
fin si;
fin si;
quand les autres =>
<Addressbuffer = "XXXXXXXX";
<Dataaddbuffer = "XXXXXXXX";
mux <= "XXXXXXXX";
Fin de cas;
fin si;
processus de bout;
RTL fin;
IEEE bibliothèque;
iEEE.std_logic_1164.all utilisation;
bit16_register entité est
port (
Reset: en std_logic;
Activer: en std_logic;
Horloge: en std_logic;
DONNEES et: en std_logic_vector (15 downto 0);
Dataout: std_logic_vector OUT (15 downto 0));
bit16_register fin;
comportement de l'architecture est bit16_register
commencer
processus (Horloge, Reset, DONNEES et)
commencer
if (Reset = '1 ') puis
Dataout <= "0000000000000000";
elsif (Reset = '0 'et Enable = '1' et de l'horloge = '1 'et clock'event) puis
Dataout <= DONNEES et;
fin si;
processus de bout;
com fin;
IEEE bibliothèque;
iEEE.std_logic_1164.all utilisation;
byte_register entité est
port (
Reset: en std_logic;
Activer: en std_logic;
Horloge: en std_logic;
DONNEES et: en std_logic_vector (7 downto 0);
Dataout: std_logic_vector à (7 downto 0));
byte_register fin;
comportement de l'architecture est byte_register
commencer
processus (Horloge, Reset, DONNEES et, Enable)
commencer
if (Reset = '1 ') puis
Dataout <= "00000000";
elsif (horloge = '1 'et clock'event) puis
if (Enable = '1 ') puis
Dataout <= DONNEES et;
fin si;
fin si;
processus de bout;
com fin;