UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer mmagdi
Observer
762 Views
Registered: ‎04-25-2018

Add Approximate ALU to Microblaze

Jump to solution

Hello,
As I am still a beginner in this field, I hope my question will not sound silly.

I am trying to implement an approximate ALU design in the Microblaze besides the original one, so I would have the microblaze switch between the exact and the approximate behavior depending on the application requirements, and test the difference in performance, error rate and so on. 

 

1. Should the new ALU be a customized packaged IP and then connected to the microblaze? (and in this case through the AXI or the FSL bus system?)
2. Is there a way to directly  add the new ALU in the microblaze, by editing the VHDL code? (I couldnt find a component in the code explicitly labeled ALU for example.)
3. What is the best way then to switch between the 2 ALUs? (Editing the instruction set seems to be too complicated)

Looking forward for your answers.

Thanks in advance.

0 Kudos
1 Solution

Accepted Solutions
Scholar dpaul24
Scholar
743 Views
Registered: ‎08-07-2014

Re: Add Approximate ALU to Microblaze

Jump to solution

@mmagdi,

 

I am looking at the https://www.xilinx.com/support/documentation/sw_manuals/mb_ref_guide.pdf

 

I have never dug up the uB, but have used it a few years ago. The big question is do you have the micro-architecture specification for the uB and its non-encrypted?

 

So here are my generic comments after reading what you want to do...

 

1. Should the new ALU be a customized packaged IP and then connected to the microblaze? (and in this case through the AXI or the FSL bus system?)

-- Shouldn't matter for now. First get an answer to Q2 and Q3.


3. What is the best way then to switch between the 2 ALUs? (Editing the instruction set seems to be too complicated)

-- If you have the RTL and can identify the ALU module, then MUXing the data paths with your own ALU should theoretically suffice. But it is not so easily done as said.

 

Now look at Page10 is the MicroBlaze Core Block Diagram. Look how tightly the ALU is integrated.

If you put your custom ALU in the AXI/FLS bus, path latency will kill you. An ALU is not supposed to process data like that (being in the AXI/FLS paths).

 

2. Is there a way to directly  add the new ALU in the microblaze, by editing the VHDL code? (I couldnt find a component in the code explicitly labeled ALU for example.).

Best way can be to put your custom ALU exactly in the region the uB ALU is and put MUX and deMUX before and ahead.

 

 

 

--------------------------------------------------------------------------------------------------------
FPGA enthusiast!
All PMs will be ignored
--------------------------------------------------------------------------------------------------------

View solution in original post

7 Replies
Scholar dpaul24
Scholar
744 Views
Registered: ‎08-07-2014

Re: Add Approximate ALU to Microblaze

Jump to solution

@mmagdi,

 

I am looking at the https://www.xilinx.com/support/documentation/sw_manuals/mb_ref_guide.pdf

 

I have never dug up the uB, but have used it a few years ago. The big question is do you have the micro-architecture specification for the uB and its non-encrypted?

 

So here are my generic comments after reading what you want to do...

 

1. Should the new ALU be a customized packaged IP and then connected to the microblaze? (and in this case through the AXI or the FSL bus system?)

-- Shouldn't matter for now. First get an answer to Q2 and Q3.


3. What is the best way then to switch between the 2 ALUs? (Editing the instruction set seems to be too complicated)

-- If you have the RTL and can identify the ALU module, then MUXing the data paths with your own ALU should theoretically suffice. But it is not so easily done as said.

 

Now look at Page10 is the MicroBlaze Core Block Diagram. Look how tightly the ALU is integrated.

If you put your custom ALU in the AXI/FLS bus, path latency will kill you. An ALU is not supposed to process data like that (being in the AXI/FLS paths).

 

2. Is there a way to directly  add the new ALU in the microblaze, by editing the VHDL code? (I couldnt find a component in the code explicitly labeled ALU for example.).

Best way can be to put your custom ALU exactly in the region the uB ALU is and put MUX and deMUX before and ahead.

 

 

 

--------------------------------------------------------------------------------------------------------
FPGA enthusiast!
All PMs will be ignored
--------------------------------------------------------------------------------------------------------

View solution in original post

Observer mmagdi
Observer
723 Views
Registered: ‎04-25-2018

Re: Add Approximate ALU to Microblaze

Jump to solution

Thanks for your reply.
I guess you are right and the micro-architecture specification seem to be encrypted and this only leaves me the option of AXI connected peripheral, although that would make more of a HW accelerator than an approximate processor.

0 Kudos
Xilinx Employee
Xilinx Employee
708 Views
Registered: ‎02-01-2008

Re: Add Approximate ALU to Microblaze

Jump to solution

I would think that the microblaze AXIS interfaces (FSL stuff) would be the way to go.

Scholar dpaul24
Scholar
701 Views
Registered: ‎08-07-2014

Re: Add Approximate ALU to Microblaze

Jump to solution

@mmagdi,

 

There are many more open arch. uP cores, completely reliable with tool chains complete.

If you *really* want to test a custom ALU you should be considering them, where you can integrate your own design and go for bench-marking.

--------------------------------------------------------------------------------------------------------
FPGA enthusiast!
All PMs will be ignored
--------------------------------------------------------------------------------------------------------
Observer mmagdi
Observer
671 Views
Registered: ‎04-25-2018

Re: Add Approximate ALU to Microblaze

Jump to solution

Would you recommend a RISC one in particular which is compatible with Vivavdo and SDK?

0 Kudos
Scholar dpaul24
Scholar
634 Views
Registered: ‎08-07-2014

Re: Add Approximate ALU to Microblaze

Jump to solution

@mmagdi,

 

Would you recommend a RISC one in particular which is compatible with Vivavdo and SDK?

I cannot because I have to look around and do a bit of study. Sorry no time for that.

 

You are doing the project, it is your job to find such stuff. :-)

--------------------------------------------------------------------------------------------------------
FPGA enthusiast!
All PMs will be ignored
--------------------------------------------------------------------------------------------------------
0 Kudos
Observer mmagdi
Observer
622 Views
Registered: ‎04-25-2018

Re: Add Approximate ALU to Microblaze

Jump to solution

I have been looking for some options but I wanted to know if you have a certain recommendation :)
Thanks again :)

0 Kudos