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.

EDK with Spartan 3E Starter Kit

Status
Not open for further replies.

Rob B

Full Member level 4
Joined
Oct 30, 2005
Messages
195
Helped
27
Reputation
56
Reaction score
18
Trophy points
1,298
Activity points
2,564
spartan 3e edk

This is different to my last woes with a previous development board. Rather than confuse things, including myself, more, I though a new thread might be better.

I have built a couple of MicroBlaze cores with different settings for the board (RevD) using the BSB wizard with EDK 9.1.02i. I can get very simple things such as print("Something... Please!") working over RS232 used as STDOUT to HyperTerminal but the processor seems to hang when calling the Xilinx functions to get device status and other things (as in the TestApp_Memory/Peripheral).

I built the project as follows:

BSB options (in order, any omitted means default was chosen):

I chose the correct board in "Select board".

BRAM was selected to be 16KB.
FPU was enabled.

I disabled RS232_DTE.
I disabled the Ethernet MAC.
I disabled FLASH_16Mx8

I left the TestApp_Memory/Peripheral to be created.

Changed Project Options to Verilog.

Changed CORE_CLOCK_FREQ_HZ to 50000000 in Software Platform Settings.

Only "TestApp_Memory" was selected for BRAM initialisation.

The automatically generated linker script was used (excerpt):

Code:
_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x400;
_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x400;

/* Define Memories in the system */

MEMORY
{
   ilmb_cntlr_dlmb_cntlr : ORIGIN = 0x00000050, LENGTH = 0x00003FB0
   DDR_SDRAM_32Mx16_C_MEM0_BASEADDR : ORIGIN = 0x44000000, LENGTH = 0x04000000
}

/* Specify the default entry point to the program */

ENTRY(_start)

/* Define the sections, and where they are mapped in memory */

SECTIONS
{
.vectors.reset 0x00000000 : {
   *(.vectors.reset)
} 

.vectors.sw_exception 0x00000008 : {
   *(.vectors.sw_exception)
} 

.vectors.interrupt 0x00000010 : {
   *(.vectors.interrupt)
} 

.vectors.hw_exception 0x00000020 : {
   *(.vectors.hw_exception)


Project mode was Executable.

After "Download Bitstream" all I get in HyperTerminal is:

-- Entering main() --
Starting MemoryTest for DDR_SDRAM_32Mx16:
Running 32-bit test...


The process seems to hang there. Is this something to do with the DDR RAM controller or possibly the linker script?

Also, I cannot find the sample program that came ready programmed to the board on the Xilinx site.


Any suggestions welcomed, before I really do go insane :?. I have read the tutorials that I can find and although useful, none have solved my problem.

~Edit~

After some modification to the BSB wizard settings I now get:

-- Entering main() --
Starting MemoryTest for DDR_SDRAM_32Mx16:
Running 32-bit test...FAILED!
Running 16-bit test...FAILED!
Running 8-bit test...FAILED!
Starting MemoryTest for opb_bram_if_cntlr_1:
Running 32-bit test...PASSED!
Running 16-bit test...PASSED!
Running 8-bit test...PASSED!
-- Exiting main() --

Getting there... Slowly.
Rob
 

spartan 3e starter kit memory test failed

Did you see this?
**broken link removed**
 

Yes, I had that in my UCF.

There are a few similar posts on the Xilinx forum.

I believe that it is something to with the BSB configuration, it seems the memory controller has a problem.
 

Then I can suggest two things:
1. Try to rebuild the project with VHDL option
2. Try to modify the dcm2 (the one that receives the ddr_fedback) like this:
PARAMETER C_CLKOUT_PHASE_SHIFT = FIXED
PARAMETER C_PHASE_SHIFT = 45
You can change those in the System Assembly GUI or add them in the MHS.
Try different values for the C_PHASE_SHIFT
 

Changing those clock phase settings seems to have done something positive :).

Starting MemoryTest for DDR_SDRAM_32Mx16:
Running 32-bit test...PASSED!
Running 16-bit test...PASSED!
Running 8-bit test...PASSED!
-- Exiting main() --


At last, GDB seems to be working too.

I let XPS set its own linker script values there.

TestApp_Peripheral also seems to be working OK and it resides in the DDR.

Many thanks!

Rob
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top