Sign in

username:

password:



Not a member?

Search Comp.Arch.FPGA



Search tips

fpga by Keywords

Altera | ASIC | CPLD | Cyclone | DCM | DDR | DSP | Ethernet | ISE | JTAG | Linux | LVDS | Microblaze | ML310 | Modelsim | NIOS | OPB | PCI | Quartus | RocketIO | SDRAM | Spartan | Spartan3 | SRAM | Stratix | Verilog | VHDL | Virtex | Virtex-4 | Virtex-II | Xilinx | XST

Ads

See Also

DSPEmbedded SystemsElectronics

Comp.Arch.FPGA | microblaze data transfer

There are 2 messages in this thread.

You are currently looking at messages 0 to 2.

microblaze data transfer - C.Amendola - 2003-10-17 06:48:00

I'm planning to use Microblaze in my project without using DMA devices. It 
seems than Microblaze don't have any instruction like "read and auto- 
increment register" so if I have to transfer data from a location to 
another I have to implicitaly increment pointer.  Anyone knows if there is 
some solution that allows to transfer data with the lowest number of 
cycles?
______________________________
Join the blogging team on FPGARelated.com and earn rewards! Details Here.



Re: microblaze data transfer - Goran Bilski - 2003-10-17 07:03:00

Hi,

Since MicroBlaze branches on register values you can first load a 
register with the length.
MicroBlaze also have an address mode which is address = regA + regB.
I would also move from the end to the beginning like this

    addi r5,r0,#Src_Addr
    addi r6,r0,#Dest_Addr
    addi r7,r0,#(4*(Nr_of_Words-1)
.loop
    lw r8,r5,r7
    sw r8,r6,r7
    bneid r7,loop
    addi r7,r7,-4

This will create a loop with 1 load, 1 load, 1 branch and 1 decrement.
The number of clock cycles depends on the latency to the memory but it 
will be 2 memory access + 3 clock cycles if the code is executed from 
the LMB memory.

Göran Bilski

C.Amendola wrote:

>
> I'm planning to use Microblaze in my project without using DMA 
> devices. It seems than Microblaze don't have any instruction like 
> "read and auto- increment register" so if I have to transfer data from 
> a location to another I have to implicitaly increment pointer.  Anyone 
> knows if there is some solution that allows to transfer data with the 
> lowest number of cycles?

______________________________
Join the blogging team on FPGARelated.com and earn rewards! Details Here.