Intel® High Level Design
Support for Intel® High Level Synthesis Compiler, DSP Builder, OneAPI for Intel® FPGAs, Intel® FPGA SDK for OpenCL™
702 Discussions

Global hls_singlepump?

ost
Novice
2,278 Views

I want to avoid any 2x clock interface to my HLS code, and I wonder if there is a way to do this globablly for a component.

Regards

 

Labels (1)
0 Kudos
1 Solution
BoonBengT_Intel
Moderator
1,713 Views

Hi @ost,


Noted with thanks for the explanation and your patients, after some discussion alignment, unfortunately yes you are right. Short answer to global method of hls_singlepump are not possible at the moment for post compilation.

Please do let us know if there is anything else we can clarify with.


Regards

BB


View solution in original post

0 Kudos
11 Replies
BoonBengT_Intel
Moderator
2,245 Views

Hi @ost


Thank you for posting in Intel community forum, hope all is well and apologies for the delayed in response.

Can you provide more insight on what you mean by 2x clock?

Per my understanding there are limitation where HLS component function cannot be used as namespaces.

However perhaps you can try wrapping the component function as global wrapper, which allow member function to call it.

Hope that clarify.


Best Wishes

BB


0 Kudos
ost
Novice
2,223 Views

@BoonBengT_Intel wrote:

Can you provide more insight on what you mean by 2x clock?

I assumed this is a known thing for HLS users. The compiler will try to maximize memory performance and one of it's tools are "doublepumping", meaning it will use the 2x clock domain and your component instance will have both clk and clk2x as input pins. You can use the keyword "hls_singlepump" on each array that you define to prevent this, but this may lead to other problems since you don't know at processing time if the array is becoming a register or a memory array. I want a global way of preventing this to happen.

 

0 Kudos
BoonBengT_Intel
Moderator
2,228 Views

Hi @ost,


Good day, just following up on the previous clarification.

By any chances did you managed to look into the it?

Hope to hear from you soon.


Best Wishes

BB



0 Kudos
BoonBengT_Intel
Moderator
2,178 Views

Hi @ost,

 

Apologies for the hold up and thanks for the explanation, noted and yes per understanding the hls_doublepump will override memory architecture but will have the double clock requirement.

Instead we can use the hls_singlepump to avoid the double clock, however you are looking for a global way to do that right? Which I am not aware of.

Allow me to align this internally and get back to you for such alternative.

Please do let us know if we misunderstood the situation.

 

Regards

BB

 

0 Kudos
BoonBengT_Intel
Moderator
1,838 Views

Hi @ost,


Good day, just following up on the previous clarification.

By any chances did you managed to look into the it?

Hope to hear from you soon.


Best Wishes

BB


0 Kudos
ost
Novice
1,821 Views

Is this last post an automated post? I expected more feedback from you.

0 Kudos
BoonBengT_Intel
Moderator
1,788 Views

Hi @ost,


Apologies for the confusion on the last post.

Quick follow on the previously clarification does the hls_singlepump suggestion previously applicable for your situation?


Regards

BB


0 Kudos
ost
Novice
1,777 Views

Hi BB

The answer at 13-09-2023 does not answer my question in a clear manner. I need to know if there is a global way to do hls_singlepump to prevent any possible 2x clock interface. There is no way to tell if arrays will be implemented as single or doublepump until compiled and verified. I already know that I can apply hls_singlepump to arrays, but pre compilation, I can not tell what arrays will be implemented in memory, registers or even flattened out and removed. I just need to tell the compiler to stay away from 2x clock domain in general, because my architecture does not have a 2x clock available.

I guess the answer to my question is no then.

 

0 Kudos
BoonBengT_Intel
Moderator
1,714 Views

Hi @ost,


Noted with thanks for the explanation and your patients, after some discussion alignment, unfortunately yes you are right. Short answer to global method of hls_singlepump are not possible at the moment for post compilation.

Please do let us know if there is anything else we can clarify with.


Regards

BB


0 Kudos
BoonBengT_Intel
Moderator
1,671 Views

Hi @ost,


Greetings, just checking in to see if there is any further doubts in regards to this matter.

Please do let us know if there is any doubts we can help with.


Best Wishes

BB


0 Kudos
BoonBengT_Intel
Moderator
1,644 Views

Hi @ost,


Noted with thanks for the response, as there is no further clarification/updates on the matter, hence would assume challenge are overcome. Please login to ‘https://supporttickets.intel.com’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. For new queries, please feel free to open a new thread and we will be right with you. Pleasure having you here.


Best Wishes

BB



0 Kudos
Reply