Continue to Site

Welcome to

Welcome to our site! 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.

Regarding the different data width between 2 DSP IP cores- FPGA

Not open for further replies.


Advanced Member level 4
Jun 29, 2022
Reaction score
Trophy points
Activity points
Hello support team,

I am using 2 different ready FPGA IP cores with different data widths and I want to interface the 1st IP output data continuously with the 2nd IP input. Details as below.

1. Interfacing IP core - 1st IP core, which has a data width of 64 bits with a clock frequency of 15.36 MHz ( 0.0651041 usec) , that means for the single sample(16 bits)- the clock period is 0.0162760 usec ( 0.0162760 x 4 = 0.0651041 usec ) and it is providing continuous data.
2. Arithmetic IP core- 2nd IP core, which has a data width of 16 bits with variable clock frequency selection. So, in order to provide all samples from interfacing IP core output to arithmatic IP core input, If I select the clock frequency of the arithmetic core as 61.44 MHz. then it would be possible for this core to take 16 bits( 1 sample) in 0.0162760 usec.
So, as my interface IP core is providing 0-63 bits ( 0-15, 16-32, 33-48, 49-63 bits ) and my arithmetic core is taking 16(0-15) bits as input width. what should be the suitable option( may be loop) so that arithmetic core can take input in such a manner (0-15, 16-32, 33-48, 49-63 and then again 0-15, 16-32 ....)


If I understand correctly, then
one core is 64 bits output --> the other is 16 bits inputs.

My questions are:
* do you need 64 bits resolution?
* ( if not, is 16 bits sufficient? If so, just choose the correct 16 bits from the 64 bits to feed the second core. Done)
* are both cores running from the same system clock? Or do you need to overcome a clock boundary?


1. Yes, actually 64 bits has 4 continuous 16 bits samples ( sample0=16 bit, sample1=16 bit, sample2=16 bit, sample3=16 bit) so I need to further provide all these samples in a serial manner, which is like sample0, sample1, sample2, sample3. ...., sampleN.
2. 1st core is running with 15.36 MHz ( i.e ( 0.0651041 usec)) and for the 2nd core, I have provided 61.44 MHz clock( 0.0162760 usec)- because it has the data width of 16 bits. - which is the (0.0651041 usec /4 ) = clock period of single sample (16 bits ) from the 1st core.

Running the arithmetic unit at exact fourfold rate may work, but it's a rather inflexible solution. The regular method would be to run it at a higher clock frequency and use a streaming interface with handshake.

I got your point regarding the use of arithmatic core at 61.44 MHz clock frequency which is multiple of 4 for 15.36 MHz. but could you please more elaborate for streaming interface with handshake?
--- Updated ---

Actually I am running the arithematic core with 61.44 MHz but how to unpack the 1st core (61 bits data) into 4 samples ( 16 bits- sample0, 16 bits - sample1, 16 bits- sample2, 16 bits- sample3)? for this data unpacking which should be the suitable method?
Last edited:

Not open for further replies.

Part and Inventory Search

Welcome to