cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
4,736 Views
Registered: ‎12-07-2012

Program FPGA Failed in sdk 13.2

I got problem when programing fpga.

 

Error Message is

==========================================================================================

Pragram FPGA Failed.

 

Reason : FPGA configuration encountered errors.

 

-Details-

 Program FPGA failed.

    ERROR : Connection to Board Failed. Could not find a supported debug device on the board. Check if the jumper settings on the board are correct.

==========================================================================================

 

Acutall, i read many posting about this error.

But i couldn't find the same error with my error.

 

And, my project is made by a basic hello world project.

 

What should i check?

1. JTAG is connected ==> O.K.

2. bit and elf file is correctly made. ==> O.K.

Anything else...?

 

If  you need more information about this, tell me plz.

(p.s. i attach this sources. even though i want to attach the my project files, i couldn't it because of the limitted file size.)

Thank you for reaind this post.

0 Kudos
5 Replies
Highlighted
Anonymous
Not applicable
4,721 Views

Re: Program FPGA Failed in sdk 13.2

The error is stating that the JTAG cannot connect to the debug modul in your system.

If you are using the Microblaze this is the MDM. If you created this in BSB this should be OK.


If you are using a custom board, I would check your clcok and reset to see if they are correct.

I would check the polarity of the reset to see if it is correct.

0 Kudos
Highlighted
Visitor
Visitor
4,713 Views
Registered: ‎12-07-2012

Re: Program FPGA Failed in sdk 13.2

Thank you for your reply.

 

as you said, the problem is the polarity of reset.

 

and Could i ask one more thing?

 

i want to use the funtions, XSpi_WriteReg/XSpi_ReadReg, for writing and reading the registers in sdk.

But there are many register offset values.

for example, XSP_DGIER_OFFSET / XSP_IISR_OFFSET / XSP_CR_OFFSET / XSP_TFO_OFFSET / ....

 

What should i use it of them when i want to write the register and read the data ?

 

Again, thank you for taking time.

0 Kudos
Highlighted
Anonymous
Not applicable
4,704 Views

Re: Program FPGA Failed in sdk 13.2

If you know how the register is mapped (by reading the datasheet), then you can write directly to the register.

However, I would recommend that you use the offsets, and the masks so you dont corrupt the register as this

will just lead to issue.

 

So, for example if you want to reset the device, you would write to the reset bit in the register.

You can either write to

    XSpi_WriteReg(InstancePtr->BaseAddr+0x40, 0x0000000A);

 

Or you can use the predefined offsets and masks:

    XSpi_WriteReg(InstancePtr->BaseAddr, XSP_SRR_OFFSET,
            XSP_SRR_RESET_MASK);

 

This just leaves you less oppertunity to mess things up :-)

 

0 Kudos
Highlighted
Visitor
Visitor
4,700 Views
Registered: ‎12-07-2012

Re: Program FPGA Failed in sdk 13.2

(c.f. I am using the chip TDC-GP21 that is communicated with FPGA by SPI)

But what if i want to use other OPCODEs?

 

I mean I want to read IDs by setting OPCODE as 0xB7, but i dont know how mask is used.

XSpi_WriteReg(BaseAddr + 0xB7, ???)

 

And In this chip, there are 6 configurations for writing registers.

Then If i want to configure this chip,

 this code is OK?

XSpi_WriteReg(BaseAddr, 0, Register0);

XSpi_WriteReg(BaseAddr, 1, Register1);

XSpi_WriteReg(BaseAddr, 2, Register2);

XSpi_WriteReg(BaseAddr, 3, Register3);

XSpi_WriteReg(BaseAddr, 4, Register4);

XSpi_WriteReg(BaseAddr, 5, Register5);

 

Thank you for continously reading and replying

0 Kudos
Highlighted
Anonymous
Not applicable
4,693 Views

Re: Program FPGA Failed in sdk 13.2

The mask is just used so you dont mistakenly write to any other bits in the register.

So taking the reset example I used previously. The reset bits were

0x00000000

 

so taking the reset example I used before the reset mask was 0x0000000A

this will OR with the register address using the mask. So it will only flip the bits set in the mask
.

This is a safety thing so the application wont corrupt the register by mistake.

You can create you own mask, the masks are provided in the drivers as an aid.

you can see them defined in the header files.

 

In your code, you would be better usng the low level driver, and writing as

#define Register0        0x0000000A

XSpi_WriteReg(BaseAddr+0, Register0);
This will set bit 1 and 3 to 1 at register BaseAddr+0

 

0 Kudos