FPGARelated.com
Forums

microblaze startup problem

Started by sjulhes September 8, 2006
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. 


sjulhes wrote:
> 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. > >
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
> - How do you detect that is doesn't start? :
Test program is a hello world print onto the UART, sometimes there is nothing on the hyperterminal
> - Are you using external memory?
NO
> - Can the program fit totally in the internal BRAM?
YES, hello world is quite light when it's alone !!!
> - What download cable are you using?
JTAG DLC7 "G&#4294967295;ran Bilski" <goran.bilski@xilinx.com> a &#4294967295;crit dans le message de news: edrjlu$9501@cliff.xsj.xilinx.com...
> sjulhes wrote: >> 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&#4294967295;phane. > 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&#4294967295;ran Bilski
sjulhes wrote:
>>- How do you detect that is doesn't start? : > > Test program is a hello world print onto the UART, sometimes there is > nothing on the hyperterminal > > >>- Are you using external memory? > > NO > > >>- Can the program fit totally in the internal BRAM? > > YES, hello world is quite light when it's alone !!! >
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.
> >>- What download cable are you using? > > JTAG DLC7 > > > "G&#4294967295;ran Bilski" <goran.bilski@xilinx.com> a &#4294967295;crit dans le message de news: > edrjlu$9501@cliff.xsj.xilinx.com... > >>sjulhes wrote: >> >>>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&#4294967295;phane. >> >>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&#4294967295;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&#4294967295;ran Bilski" <goran.bilski@xilinx.com> a &#4294967295;crit dans le message de news: 
45050619.6010208@xilinx.com...
> sjulhes wrote: >>>- How do you detect that is doesn't start? : >> >> Test program is a hello world print onto the UART, sometimes there is >> nothing on the hyperterminal >> >> >>>- Are you using external memory? >> >> NO >> >> >>>- Can the program fit totally in the internal BRAM? >> >> YES, hello world is quite light when it's alone !!! >> > > 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. > >> >>>- What download cable are you using? >> >> JTAG DLC7 >> >> >> "G&#4294967295;ran Bilski" <goran.bilski@xilinx.com> a &#4294967295;crit dans le message de news: >> edrjlu$9501@cliff.xsj.xilinx.com... >> >>>sjulhes wrote: >>> >>>>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&#4294967295;phane. >>> >>>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&#4294967295;ran Bilski >> >>
sjulhes schrieb:

> 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=E9phane.
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
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" <Antti.Lukats@xilant.com> a &#4294967295;crit dans le message de news: 
1158055377.500784.282240@h48g2000cwc.googlegroups.com...
sjulhes schrieb:

> 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&#4294967295;phane.
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
sjulhes schrieb:

> 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
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