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.

data transfer from pc to fpga

Status
Not open for further replies.

ghattasak

Member level 1
Member level 1
Joined
Dec 31, 2012
Messages
33
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Visit site
Activity points
1,595
hello there i am currently working on a sorting algortihm
and knowing that the data is placed as chunks of 4bytes a row according to mips
i want to find a way to transfer a huge ammount of data greater then the number of input pins on the fpga to work on

but i would like to send the data as serially bit by bit and place the LSB of each 32bits first for example if i have 1000 registers and 1000 data entry in ram of 32bits each the 1000 registers should recieve the first bit (the LSB) of each entry of the 1000 data (1...1000 LSB's)

i was thinking of using a c code to write the data in the format i want then use DMA from fpga to pc that reads data( but where can i learn DMA protocols and how to set up a vhdl code to interact with my memory using DMA)

the second idea is to use xilinx rocket io and then place the data in the proper format in the fpga

i am looking for a very fast process to avoid data transfer delays since ram accessing is critical

please give me ur opinion and suggestions
 

There are many options available to you. Are you using a development board? What options does it include for I/O?

For DMA you might need to use something like PCIe. For RocketIO, you would need a compatible interface in your PC (which might be tricky to find).

If the amount of data is low and latency isn't critical, you could use serial over USB. Higher bandwidth could use gigabit Ethernet. What's the throughput of your sorting system? Is it continuous or bursty?

- - - Updated - - -

There are many options available to you. Are you using a development board? What options does it include for I/O?

For DMA you might need to use something like PCIe. For RocketIO, you would need a compatible interface in your PC (which might be tricky to find).

If the amount of data is low and latency isn't critical, you could use serial over USB. Higher bandwidth could use gigabit Ethernet. What's the throughput of your sorting system? Is it continuous or bursty?
 

how can i find tutorials on implementing DMA with c code and recieving it at the other side using a vhdl code on pci express..i am using xilinx virtex 5 fpga aand no delvelopment board yet i just want to find the best option to order one from the university
the ammount of data is high might get to 3000 or more depending of how many registers i can allocate in the fpga
 

3000 what? Values? Throughput is more important than the number of values. You might have only one value to transmit, but if you need to continuously transmit it a billion times per second, your bandwidth will be high.

Have a look for the device driver development information for the operating system you want to use. Also, read the Virtex 5 PCIe documentation.

Note that this is a fairly advanced method - if you are not experienced with FPGAs, VHDL and driver development, the learning curve will be very very steep.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top