AVERTISSEMENT: XST: 1710: Aidez-moi avec Verilog et ISE

S

Sunbelt

Guest
J'essaie de faire un tampon FIFO simple à l'aide des langages Verilog et ISE 10.1.Je continue de recevoir cet avertissement pour chaque bit de "_data_out" et le _data_out "dans RTL schéma est mis à la terre.AVERTISSEMENT: XST: 1710 - FF / Latch <_data_out_1> (sans valeur init) a une valeur constante de 0 à <in_north_0> bloc.Ce FF / Latch seront supprimés au cours du processus d'optimisation.

»1ns calendrier / 1PS
////////////////////////////////////////////////// ////////////////////////////////

////////////////////////////////////////////////// ////////////////////////////////
tampon module (
_clk entrée, / / clock
_rst entrée, / / reset
fil d'entrée [63:0 _data_in], / données d'entrée /
_w_en entrée, / / write_enable
_r_en entrée, / / lire permettre
sortie reg [63:0] _data_out, / / sortie de données
sortie _full reg, / / si 0 tampon est plein
);
data_width paramètre = 64;

reg [data_width-1: 0] mem0; reg [data_width-1: 0] MEM1;
reg [data_width-1: 0] MEM2; reg [data_width-1: 0] MEM3;
reg [data_width-1: 0] mem4; reg [data_width-1: 0] MEM5;
reg [data_width-1: 0] mem6; reg [data_width-1: 0] mem7;

/ / _full Est empty0;
reg empty1; Empty2 reg; empty3 reg; empty4 reg;
reg empty5; empty6 reg; empty7 reg;

toujours @ (posedge _clk)
commencer
///////////////////////////////// //////////////// Reset //////////////////
if (_rst == 1)
commencer
mem0 = 0; MEM1 = 0; MEM2 = 0; MEM3 = 0;
mem4 = 0; MEM5 = 0; mem6 = 0; mem7 = 0;
_full = 1; empty1 = 1; Empty2 = 1; empty3 = 1;
empty4 = 1; empty5 = 1; empty6 = 1; empty7 = 1;
_port_id = 0; _port_r = 0;
fin
d'autre
commencer

//////////////////////////// Lire ///////////////////// //////////////////
if (_r_en == 1) commencer
_data_out = mem7;
mem7 = 0;
empty7 = 1; fin
////////////////////////////////////////////////// /////////////////////

if (empty7 == 1) commencer
if (mem6! = 0) commencent
mem7 = mem6;
empty7 = 0;
mem6 = 0;
empty6 = 1; end end

if (empty6 == 1) commencer
if (MEM5! = 0) commencent
mem6 = MEM5;
empty6 = 0;
MEM5 = 0;
empty5 = 1; end end

if (empty5 == 1) commencer
if (mem4! = 0) commencent
MEM5 = mem4;
empty5 = 0;
mem4 = 0;
empty4 = 1; end end

if (empty4 == 1) commencer
if (MEM3! = 0) commencent
mem4 = MEM3;
empty4 = 0;
MEM3 = 0;
empty3 = 1; end end

if (empty3 == 1) commencer
if (MEM2! = 0) commencent
MEM3 = MEM2;
empty3 = 0;
MEM2 = 0;
Empty2 = 1; end end

if (Empty2 == 1) commencer
if (MEM1! = 0) commencent
MEM2 = MEM1;
Empty2 = 0;
MEM1 = 0;
empty1 = 1; end end

if (empty1 == 1) commencer
if (mem0! = 0) commencent
MEM1 = mem0;
empty1 = 0;
_full = 1; end end

Donnez votre /////////////////////////// ////////////////////// ////////////////
if (_full == 1 & & _w_en == 1) commencer
mem0 = _data_in;
_full = 0; fin
////////////////////////////////////////////////// /////////////////////

fin / / else

fin
endmodule

 
Synthétiseur optimise vos codes et pense que vous n'avez jamais changé la valeur de 1.bit de DATA_OUT.Alors que cela vous donne un avertissement qu'il sera coupé (il n'est pas utilisé) dans le matériel réel) ..
A chaque fois, vérifier les avertissements ..Il est plus difficile que les erreurs ..et vous donne plus de point de vue sur vos codes ..

Bonne chance ...

 

Welcome to EDABoard.com

Sponsor

Back
Top