Initiera ett register utan att använda återställning

S

sudhirkv

Guest
Hej vänner, jag vill initiera ett register utan hjälp av återställning. Hur är det möjligt. mitt problem är, jag kan inte använda reset om denna signal är tilldelad. såvida inte och tills jag tilldela denna signal Jag kan inte använda reset signalen. Jag försökte med ett tillstånd maskin där om jag vill tilldela tillståndet IDLE jag ha reset signal. Så jag vill initiera signalen på fluga. Finns det något sätt att initiera FPGA registret. Tack på förhand [size = 2] [color = # 999999] Tillagt efter 1 timmar 25 minuter: [/color] [/size] vilket värde kommer att vara där i FPGA registret när det inte initieras. kan vi använda en FPGA registret som en räknare när det inte initieras. [Size = 2] [color = # 999999] Inkom efter 8 minuter: [/color] [/size] alltid @ (posedge fpga50MhzClk) börjar fallet (pdstate) `pdIdle: pd
 
Din Verilog modul är ofullständig. Det finns ingen ingång, utgång, eller registrera deklarationer. Vilken typ av FPGA använder du? Vilken syntes mjukvara? De flesta FPGA initiera automatiskt alla register till noll, men din beteende simulator kanske inte vet det. Du bör se det i post-rutten simulering. Om du har bra moderna Verilog 2001 syntes verktyg och en modern FPGA, kan du initiera förmodligen ett register så här:
Code:
 reg foo = 0;
Eller så här:
Code:
 Reg foo; första foo = 0;
 
Jag använder Lattice XP FPGA och ISP Lever Starter 6,1 version. Jag försökte med reg foo = 0 också. men fungerar inte. är det några problem med logiken.
 
Fungerar inte? Har du Verilog kompilator ge syntaxfel för "reg foo = 0"? Leta efter en kompilator alternativ som möjliggör "Verilog 2001" stöd. Jag kan inte kontrollera din Verilog-modulen eftersom det är ofullständig. Kan du ladda upp hela modulen, den så kallade definierar uttalanden och kanske en testbänk?
 
Modulen test (fpga50MhzClk, systemReset2, PD), ingång fpga50MhzClk, ingång systemReset2, utgång pd, reg PD, reg [09:00] resetcount1, reg [3:0] pdstate = 4'b0001; parameter pdIdle = 4'b0001; parametern pd0Delay = 4'b0010; parameter pd1Delay = 4'b0100; parameter pd0ever = 4'b1000, alltid @ (posedge fpga50MhzClk) börjar fallet (pdstate) pdIdle: pd
 
Din kod ser bra ut, det simulerar bra, och det syntetiserar bra i Xilinx ISE (jag har inte Lattice). Var noga med att berätta för dina syntes verktyg som klockan är 50 MHz, så det kommer att dirigera den enhet för att uppfylla denna hastighet krav. Kanske din hårdvara har ett problem som ringer på klockan, eller strömförsörjning buggar. systemReset2 är en synkron reset, så se till att den uppfyller installationen och tider hold i förhållande till klockan. Om du binda helt enkelt hög, då inga bekymmer. Med en 50 MHz klocka är PD pulsen 25 cykler lång. Det är 500 ns inte 350 ns. Var noga med att undersöka din sammanfattande rapport för misstänkta varningsmeddelanden. Jag omformaterade modulen så att jag kan läsa det lättare:
Code:
-modul upp (fpga50MhzClk, systemReset2, PD), ingång fpga50MhzClk, ingång systemReset2, utgång pd, reg PD, reg [09:00] resetcount1, reg [3:0 ] pdstate = 4'b0001; parameter pdIdle = 4'b0001; parameter pd0Delay = 4'b0010; parameter pd1Delay = 4'b0100; parameter pd0ever = 4'b1000, alltid @ (posedge fpga50MhzClk) börjar fallet (pdstate) pdIdle: pd
 

Welcome to EDABoard.com

Sponsor

Back
Top