Question

Well my problem stated when i had my vhdl code up and running on my Spartan-3a but needed to send and receive data from it to the pc, I need my vhdl code , so i went for a microplaze structure , problem is I cant understand how will my vhdl code and microblaze co-exist at the same time because every time i program fpga with SDK it deletes my vhdl off the fpga and vise versa with ISE, I dont want to use custom peripherals except if this is the only solution. Some people just tell me to just use microblaze hdl files produced by EDK, OK but theny aren't I using an unprogrrammed MicroBlaze??? And do i need to go through all of this just to be able to communicate with my vhdl code through pc(NO I CANT USE R232 since i need a speed of 56Mbit/sec)

So here is what i don't understand: 1-IF you implemented microblaze through hardware(HDL from edk to ISE) , isnt it then an un-proggrammed processor?

2-PEOPLE TELL ME i can let microblaze and my vhdl code see each other through GPIO , again how will i implement GPIO and how to connect it to both microblaze and my vhdl code , and how to program microblaze while it in hardware in this situation.

Please any help , its kinda a mess.

Was it helpful?

Solution

It is not that difficult, but unfortunately Xilinx documentation is not that clear.

What you need to do after you are done with your Microblaze code and you feel comfortable with it, is to create a new project in ISE or the one you already had, then add a new file to the project, but instead of adding a VHDL or Verilog file, you must add the system file from EDK.

After you added your XPS project into ISE, you need to do some manual work in order to make things work for you.

Here are a list of things that needs to be done:

  • You have to create a UCF file that includes all the constraints from EDK
  • You have to make sure that you have enough space inside your FPGA for both the EDK and your own code
  • Synthesize and implement your design using the project in ISE.
  • Program your FPGA from the bit file generated by ISE

In order to communicate between the MB and your own code, you can do it in many different ways, the easiest way is to use the GPIO block from your MB, then connect those signals to your own code on your top level wrapper.

You maybe able to find some useful information on the lab document and lab material from the following Xilinx page: enter linkXilinx EDK interface class description here

Accessing the GPIO is pretty simple, you can use the information on this page to get you started: Reading DIP Switch with MicroBlaze

You may also find this document and related files very useful, it is not for your board, but it covers the exact same thing you are asking for: Avnet MB tutorial document

I hope this is clear enough.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top