Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Newbie about initial state of FPGA

Status
Not open for further replies.

vitiluck

Newbie level 5
Joined
Jan 6, 2004
Messages
8
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
89
Whenever a programmed FPGA is powered up.

What initial state is ?

That's when a state machine in the design. when power up, it is not sure which state it is in.

so if a idle state is implemented, a good state machine designed must ensure the FPGA is in IDLE after finite clocks.

But if Bus COmmand issue when FPGA is in unknown state, the first response would be wrong.

Is my understanding right?
 

Hi

To work the FPGA as you designed, for all the signals, you must assign initial values. Otherwise, the FPGA assigns 'zero' as the default value to all signals whenever it is powered up.


Regards,
Vishwa
 

FPGA doesn't assigns 'zero' as a default value.
Your synthesis tool assign the default values of all the registers in FPGA, it can be non zero.
 

How I can set default in synthesis tool , I want set to '1'
 

Hi bpu

Once the system is designed and the core is downloaded on to the FPGA board (into non-volatile memory). then we don't use any sysnthesis tools in real time operation. Of course, the synthesis tool make the FPGA design to have the signals with 'zero' initial values.

Regards,
Vishwa

Added after 7 minutes:

Hi BuBEE

You can not set the signals using synthesis tool. You have to assign the values to your signals in your VHDL program.


Regards,
Vishwa
 

the FPGA assigns 'zero' as the default value to all signals whenever it is powered up.

if I write a code like this

reg na, a;
assign na = ~a;

na and a can't be set initially both to 0 or 1.
 

In most FPGAs, you can initialize registers in your HDL, like this counter in Verilog:

Code:
module top (clk, count);
  input clk;
  output reg [15:0] count = 12345;

  always @ (posedge clk)
    count <= count + 1;
endmodule
If you don't specify an initial value, the place-and-route tools normally choose zero.

For Xilinx FPGAs, that is described in the XST User Guide, section Verilog Language Support, subsection Behavioral Verilog Features. VHDL is roughly equivalent.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top