microblaze startup problem

Hello all,

We are trying to design a small microblaze design in a spartan 3 and the problem we have is that the microblaze does not always start when the bitsream is downloaded with JTAG.

But when we implement the debug module it always works.

Does anyone has a clue ? Is it timing problems ? Is there specific timing constraints to add for microblaze ? Software problem ( linker script is automatically generated by edk)?

Any idea is welcome.

Thank you.

Stéphane.

Reply to
sjulhes
Loading thread data ...

Hi,

It's too little information to point out the what is wrong.

- How do you detect that is doesn't start?

- Are you using external memory?

- Can the program fit totally in the internal BRAM?

- What download cable are you using?

Göran Bilski

Reply to
Göran Bilski

Test program is a hello world print onto the UART, sometimes there is nothing on the hyperterminal

NO

YES, hello world is quite light when it's alone !!!

JTAG DLC7

"Göran Bilski" a écrit dans le message de news: edrjlu$ snipped-for-privacy@cliff.xsj.xil>> Hello all,

Reply to
sjulhes

Not if you use printf, that takes around 40kb of code. Just check the size of the program with the command "mb-size" and be sure that it fits within the define LMB area.

Reply to
Göran Bilski

Yes, but if the program doesn't fit the BRAM defined, the compiler exits with an error. This is not the case.

"Göran Bilski" a écrit dans le message de news: snipped-for-privacy@xil>>>- How do you detect that is doesn't start? :

Reply to
sjulhes

sjulhes schrieb:

when it doesnt start use impact and read back the status word look if GHIGH=3D1 (and that all other relevant bits are set properly)

Antti

Reply to
Antti

We have identified the problem.

In fact it is due to the xx.bmm file use by data2mem. EDK generates this file initialized with the software.

When ISE uses this file, we don't know why, but due to timing constraints ISE changes the block ram for the timing constraint implementation so ISE generates another xxx_bd.bmm file which is different from the one generated by EDK. So all the relevant software addresses are changed ( reset, jump to main, exception ... ) and the first intruction executed by the MB is bad and it crashes.

Does someone experienced such problems ? Is there something to add in the constraints or some option to click in the ISE flow to avois this ? Is it a Xilinx flow bug ??

Any feedback is welcome.

Thank you.

Stephane.

"Antti" a écrit dans le message de news: snipped-for-privacy@h48g2000cwc.googlegroups.com... sjulhes schrieb:

when it doesnt start use impact and read back the status word look if GHIGH=1 (and that all other relevant bits are set properly)

Antti

Reply to
sjulhes

sjulhes schrieb:

Stephane,

you did not specify that you are using ISE flow - the BMM file integration into ISE is the least working feature, it is working better than it used too, but in all cases where the XPS GUI is not used and XPS project is not the main toplelevel the BMM file should be checked that that properly initialiyed file is used for data2mem

Antti

Reply to
Antti

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.