Pipeline architecture

Status
Not open for further replies.

p11

Banned
Joined
Jan 25, 2014
Messages
177
Helped
0
Reputation
0
Reaction score
0
Trophy points
16
Activity points
0
actually simply what i need is if i need to send data from 1 block to another then simple parallel transfer is not possible as there is lack of resource. Serial transfer is not possible as it needs time.. Now is there any other way to transfer the data . Someone told me to use pipeline architecture .. From net search i found that it implies transfer of data bt not all at a time. say if i have 100 data to transfer , and if i transfer 10 at a time , then after sending data 10 times all data will be send. Is this a pipeline architecture...???
 

What you need is a combination of serial and parallel data transfer. I will illustrate this with the help of a simple example.

Suppose you have a 8 bit register and you want to transfer all these 8 bits. Now lets say due to resource constraints, you cannot use a 8bit wide o/p port. So what do you do?
Assuming that a 4 bits o/p port is feasible, you can then transfer the 8 bits data in two clock cycles rather than in 1 clk cycle. In the 1st clk cycle you transfer 4 bits and then in the next another 4 bits. If you want to use lesser resources, then use a 2 bits o/p port and transfer your 8 bits data in 4 clock cycles.

In such cases, it is always a compromise b/w latency and resource usage.
 


That is what close to burst transfer, as Continuous transfer (Parallel or Serial) on a bus will hold the bus for longer time in a Multilayer bus system like AHB or AXI. So Rather than writing all your 100 data, set 10 as your burst size and send it 10 times at certain period so that the bus will not be put on hold. I usually set 128 bytes. As far as I know, a pipe architecture is that data is processed in stages so that multicycle can be avoided for a single data processing, be it an Instruction decode or a DSP multiplier. Could you share the webpage that showed about this?.
 

A pipeline is simple a chain of registers with logic in between to process the data in some way over a period of several clock cycles. The more pipelining there is, the amount of logic between pipe stages can be reduced which will increase the potential clock speed of the pipeline, increasing the throughput.

What the OP is talking about would be muxing and de-muxing a data path. This can be done in a pipeline. Serialising the data is just the same.

@OP: please be more specific about what you're trying to do.
 
Actually am trying to send lots of data say more than 1000 from one memory to another within a specific period of time... but just simply transferring the data causes resource shortage ..serial transfer takes more time ... so any idea .. please help/
 

Well, you can only transfer data as fast as the clock. If you have 1000 words to transfer, it will take 1000 clocks minimum.
 

Actually am trying to send lots of data say more than 1000 from one memory to another within a specific period of time/

What is the specific period of time allowed? Exactly how many bits need to move in that time?
 

next data set will come after 100 ns. so i need to transfer this data within 100ns ....
 

next data set will come after 100 ns. so i need to transfer this data within 100ns ....

Without the specification of the system, its impossible to help. Whats the clock speed? whats the bus size? is that 1000 words or 1000 bits? whats the memory bus size?
 

i am trying to implement it in FPGA(spartan 3E).right now just checking in vhdl testbench.Am using 9.1 xilinx. now what i need is that if i design a system where after every 100ns am getting a huge amount of data, consider 1000,then how to store it . i cant use simple parallel or serial transfer .Right now i am using 20 bit data.. may vary later ...
 

In the first 100ns , a data set is received .
Put it in a buffer as you receive.

For the next 100ns form or point to a separate buffer to receive next set of data in the next 100ns.

When you are receiving 2nd set of data , you can process 1st set in the first buffer and clear it or whatever you want to do.

In the 3rd slot , point to the first buffer if possible or a separate buffer. repeats for ever...

dont know whether it meets your requirement. But this is one possible solution.
 


Why such an old ISE version?
What is your clock speed?
How can your data width "vary later"?
1000 what? bits or words? 20 bits per word?
What are the interfaces you're using?
You still have not answered these questions from earlier - without more details we cannot do anything more than guess.

How about posting some diagrams of the system and/or some code you're having problems with,
 

1000 words ,each having 20 bits .actually am trying to design a mini version of the entire project first .1.e after 100 ns 1000 words come each having 20 bits ...

- - - Updated - - -

- - - Updated - - -





sir processing is not an issue for me ... my problem is with transfering , i.e how to transfer this huge data set into a buffer , parallel transfer require so many signals which is not possible to implement . serial needs time .again another problem...

- - - Updated - - -

 

clock period of 2ns will not be possible on a spartan 3E, you might be lucky if you can get it faster than 5ns.
From your description, getting the data moved in half the time it would usually take will require you to double the bandwidth somewhere. because you cant double the clock, you'll have to double the data path width.
From your descriptions, it sounds like you really dont have a clear idea of what you're doing.

Why does it need to be transfered in 100 ns?
 
Status
Not open for further replies.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…