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.

My MicroBlaze Soft-Processor clone is ready :)

Status
Not open for further replies.

yego

Full Member level 3
Joined
Oct 28, 2004
Messages
161
Helped
18
Reputation
36
Reaction score
3
Trophy points
1,298
Location
Middle of Nowhere
Activity points
1,840
microblaze clone

Finally this week end I'll launch my MicroBlaze clone for the very first time.
I have been working very hard to create it. I hope not in vain.
It synthesizes OK, just a final touch and it is going to run.
I spent many hours working on it. As soon as it works I'll post some more detailed info about it.
If no major flaws have been built in my design, it will run on Sunday.
There were many difficulties, as there are no good docs describing the MB architecture. Also programmers guide leaves much to desire, so my implementation may be either erratic or incomplete.

I have one more problem. Xilinx offers its assembler and C compiler for Microblaze bundled in the EDK package.
Unfortunately it costs some 2500 bucks. It is not beyond my wealth, but I have better things to buy.
Therefore I have neither assembler nor C compiler to write any program for my MB core.
Initially I'll write some simple tests using machine ( hex) codes, so my programs won't be very impressive.
On the other hand MB toolchain sold by Xilinx is based on some GNU release.

I was not able to spot it on the internet, but perhaps I hadn't tried hard enough.

Can anyone of the noble readers of this post provide any pointer to this tool chain or something alike which could be downloaded free ?

best regards, yego
 

microblaze c compiler

**broken link removed** Related thread
 
Last edited by a moderator:

    yego

    Points: 2
    Helpful Answer Positive Rating
microblaze compiler

I was looking for something ready to use, but if it is not available,
I'll have to do some extra work to customize the TASM, which seems quite nice and easy.
I still hope for a pointer to GNU tool-chain resources for MicroBlaze.
Perhaps there will be some more input on this.

Thanks for the TASM link.
regards, yego
 

free soft processor

It's a very good link, unfortunately all they've got is for uCLinux and for Linux. So I'd have to install Linux on my PC in order to just compile programs for my MicroBlaze. I am not very fond of Linux in grneral, so I'll stick to DOS or TRU64 or F......Windows.
Nevertheless thanks for your time to search this link.

By the time, I managed to synthesize and implement my VHDL code for the 3-stage pipelined MicroBlaze core.
I also have done some basic tests and my clone seems to work perfectly well running at 80MHZ ( no faster crystal :( ), which gives me slightly less than 80MIPS of 32-bit performance within my Spartan3 FPGA.
It translates to about 240 MegaBytes of data transfered out of the chip or into it every single second :) .
At this speed it might be used in some video processing or other real time tasks.
And best of all, I didn't pay a single penny for it.
The original Xilinx core with the EDK stuff costs about $2500.
Quite impressive, isn't it ?
The core is completely binary code compatible with the original MB in version EDK8.1i .
As it is ment to be a microcontroller I got rid of the caches and haven't implemented the FPU.
There are no typical external buses for off chip peripherals, however, the external data RAM support is provided.
Next I'm going to implement some serial I/O, some LCD pannel controller and make a digital scope ( plus some external analog components, of course).

Later I'll try to make something more useful and try to make some money with it, if possible at all :) .

When I get the tools to write some useful programs I'll think of making this core available in some limited version ( like without interrupts and exceptions ) to broader audience who might be interested in FPGA/MB stuff.

Regards, yego
 

microblaze compatible core

Just as I promised, my IP-core is ready. Its code name is xMB32.
It's a clone of the well known Microblaze IP by Xilinx.

XMB32 is code compatible with the original Microblaze with the following architectural differences:
1). Dcache and Icache are not implemented,
2). FSL channels are absent,
3). hardware multiplication, division and Floating point are also absent,.
hence the respective commands are absent as well or performed by the compiler in software,
however, this is not much of a problem as my xMB32 is intended to be a microcontroller
not a huge general purpose CPU.
Perhaps I'll append some of those missing blocks in the future.
For the time being we have a barrel shifter and the compare block,
which are very useful in control applications..

Actually my core is still in beta phase until proven to be error free.
I did my very best to ensure that there are no major flaws,
but not all tests have been run so far.

The core I am going to share with you is fully functional with th following limitations.
1). No Reset or external interrupt pins are available,
2). Maskable interrupt is generated internally 188 times per second.
Just enough to run a 4 digit 7-segment display or some matrix keyboard.
Other tasks can be implemented in the main loop running with the full processor speed, which is 50MHz.

There are 2048 32-bit words for program storage and for user data.
There will be much higher limit in the future releases.
There is one input and one output port.
Both are 32-bits wide and can be accessed as 8, 16 or 32-bit registers.

I tested the design on the Digilent-Spartan 3-400 kit,
but the Digilent-Spartan 3-200 or anything else having some BRAM and about 1000 slices will do.
All you need to run this core is the free ISE Web-Pack 8.1.03i.

For software works there are two ways to go:
1). Buy the EDK package from Xilinxa for some $500, or
2). Install the free MB-GCC compiler under Linux for free..

Would anybody be interested in receiving the evaluation version of the core, I've made an .ngc netlist ready.
Just let me know if you are interested.

Regards, yego
 

microblaze webpack

i'm interested.
 

soft processor source download

EDALIST,

have you got any mailbox big enough to receive c.a. 4Mb of project data ?
I will not place it on the EDAboard as those files are too big and would cost you many points to download.

There is an ISE project for HW and the EDK for software in the bundle.

Regards, yego
 

microblaze processor

Hi Yego,

Is the xMB portable to other architectures as well? I would like to test on LatticeXP which is a non-volatile architecture and therefore most interesting.

I can give you my email address off-line. It can handle 8M of data, so that shouldn't be a problem.

Regards,

lucbra
 

digital comparator vhdl ip core microblaze

Hi Lucbra,

it's a very interesting idea to port the MB to another architecture.
I basically aimed my xMB at Xilinx FPGAs but for some time I have been considering porting the xMB to the ProASIC3 or 3E by Actel, as those are also nonvolatile entities, just like the LatticeXP devices. There are, however some differences which should be considered. For instance Actel uses 3 input LUTs, instead of four used by Xilinx, which makes quite a big difference. At the moment I haven't got time to play with it, but the idea looks good to me. Comparing LatticeXP and ProASIC3 it seems that Lattice is much faster and gives better chance for good performance. I haven't worked with Lattice technology yet, so have got no experience.
Regarding your request I am sceptic about portability of .ngc files. Those are technology dependent and I wouldn't expect them to merge with the primitives in the LatticeXP. The source should be rewritten a little as I used some Xilinx specific primitives. Actually just two: the register block and BRAM blocks, but I belive there are counterparts in the LatticeXP. I'll try to modify the source in a near future to adjust it to the LatticeXP architecture. I hope they provide some free tools like ISE WebPack from Xilinx.
I'll ask your help when I reach this stage, as you may know the LatticeXP architecture already.
Unfortunately I am not entitled to provide any source code of the design, so You'll have to wait a bit for a netlist file if you are interested in this IP.
Are you able to provide some links to download Lattice software and some tutorials for this purpose? I'll gladly learn from you to speed up the process.
I haven't got any LatticeXP devel board, so I'll rely on you in testing the design on a real hardware.

Best regards and thanks for your interest, yego
 

xmb32

The evaluation bundle is available for download here :
**broken link removed**

If it's not too much trouble I'd be obliged for info from those who downloaded and tried the core. Your opinions may be really valuable.

Thanks and have fun, Yego
 

microblaze toolchain binary

maybe you can try to post it on opencore.

rgds
gd
 

ise webpack microblaze

rapidshare link is dead
please give a new link
 

microblaze floating point divide

the file was removed
 

microblaze gcc toolchain install

seems like the file was hunted down and killed. :twisted:

the_penetrator©
 

microblaze video processing

Hello,
can you please help me in getting error-free microblaze toolchain ....


....Raghavendra
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top