Hi,
There is a image processing algorithm, in which a function needs to be accelerated by FPGA,
whereas the function is related to more than 10 global variables, so I am planning to communicate these variables by register.
My question is whether the CoDeveloper supports register files?
thank you for your help,
Percy
Rgister files
Started by percy, Sep 03 2008 06:03 PM
7 replies to this topic
#1
Posted 03 September 2008 - 06:03 PM
#2
Posted 04 September 2008 - 07:51 AM
Hi Percy,
Yes, Impulse C offers a register object that lets you pass data between FPGA hardware and software on a CPU. The co_register is non-blocking and unsynchronized, and writing to it simply overwrites the previous value. It may be better to use a stream (essentially a FIFO) to pass the arguments in, so you don't have to use many separate co_registers, one for each parameter.
Regards,
Ralph
Yes, Impulse C offers a register object that lets you pass data between FPGA hardware and software on a CPU. The co_register is non-blocking and unsynchronized, and writing to it simply overwrites the previous value. It may be better to use a stream (essentially a FIFO) to pass the arguments in, so you don't have to use many separate co_registers, one for each parameter.
Regards,
Ralph
Ralph Bodenner
Impulse Accelerated Technologies, Inc.
Impulse Accelerated Technologies, Inc.
#3
Posted 04 September 2008 - 06:48 PM
QUOTE (RalphBodenner @ Sep 4 2008, 11:51 PM) <{POST_SNAPBACK}>
Hi Percy,
Yes, Impulse C offers a register object that lets you pass data between FPGA hardware and software on a CPU. The co_register is non-blocking and unsynchronized, and writing to it simply overwrites the previous value. It may be better to use a stream (essentially a FIFO) to pass the arguments in, so you don't have to use many separate co_registers, one for each parameter.
Regards,
Ralph
Yes, Impulse C offers a register object that lets you pass data between FPGA hardware and software on a CPU. The co_register is non-blocking and unsynchronized, and writing to it simply overwrites the previous value. It may be better to use a stream (essentially a FIFO) to pass the arguments in, so you don't have to use many separate co_registers, one for each parameter.
Regards,
Ralph
Hi,
I have also considered using a stream. However, after the completion of these global variables on the FPGA, whether there exist some changes depends on the operational procedures. Some of these data need to be changed and sent back to the software process, but others do not. If I use the stream, I have to send back all the global variables. Besides, the whole order ought to be controlled strictly. Therefore, I wonder if register is more flexible, as sometimes among more than ten global varibles are only three or two or even only one will be changed. But the problem is that if register is used, there will be more pins, which will cause much trouble to the hardware design. So, I think of the register files.
Thanks,
Percy
#4
Posted 05 September 2008 - 03:39 PM
Perhaps the co_memory interface would be more useful, then. You could read/write a block or a single word of data at a given address, depending on how many parameters you need to work on. The shared memory device can be an SRAM, SDRAM--anything you can connect to a bus we support, such as PLB or Avalon. Which platform are you using?
Ralph
Ralph
Ralph Bodenner
Impulse Accelerated Technologies, Inc.
Impulse Accelerated Technologies, Inc.
#5
Posted 07 September 2008 - 05:38 PM
QUOTE (RalphBodenner @ Sep 6 2008, 07:39 AM) <{POST_SNAPBACK}>
Perhaps the co_memory interface would be more useful, then. You could read/write a block or a single word of data at a given address, depending on how many parameters you need to work on. The shared memory device can be an SRAM, SDRAM--anything you can connect to a bus we support, such as PLB or Avalon. Which platform are you using?
Ralph
Ralph
We will use Virtex-5 FXT, and I will try the co_memory interface.
Thanks,
Percy
#6 Guest_yantian_*
Posted 09 September 2008 - 01:09 AM
大家好,我是一个中国的学生.我非常想学这门语言,Impulse c,我想与各位请教一下,
#7 Guest_yantian_*
Posted 09 September 2008 - 01:10 AM
有人用汉语来给我写信吗?thanks!
#8
Posted 10 September 2008 - 06:05 PM
QUOTE (percy @ Sep 7 2008, 05:38 PM) <{POST_SNAPBACK}>
We will use Virtex-5 FXT, and I will try the co_memory interface.
Thanks,
Percy
Thanks,
Percy
Hi Percy,
For now, using the Virtex-5 with co_memory will require some manual steps to connect the memory to the PLB bus. We're working on features to make this easier, but if you run into any trouble, please post here and we'll walk you through adding a PLB2PLB bridge to the EDK project. You'll also want to select the "Xilinx Virtex-4 PLB v4.6 (VHDL)" Platform Support Package for the time being (CoDeveloper version 3.20.b.6).
Regards,
Ralph
Ralph Bodenner
Impulse Accelerated Technologies, Inc.
Impulse Accelerated Technologies, Inc.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users












