We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Observer ifalkdf
Registered: ‎12-24-2018

montgomery array


This a PEs array of a montgomery multiplication circuit. I describe the array in HLS.

In my code, I describe the array from the last PE to first PE. After be synthesized, the inner loop is unrolled correctly, but the performance is not very good.


for(y = 0 to n-1)
  PE_loop:for(x = n-1 to 0) {
#pragma HLS unroll ... }

Can I describe this array in a dataflow-style or other styles?

Thanks for your reply.


0 Kudos
1 Reply
Visitor philduff
Registered: ‎05-18-2009

Re: montgomery array

You need to figure out what aspect of performance is not good - timing? clock cycles? resource?

Look at the sythnesis report and check the number of cycles. Is it what you expect (reasonable for your geometry)? Drill down until you find the bottlenecks. Reading the console output of sysnthesis might also help you understand. If the tools aren't giving you a number, you can help with LOOP_TRIPCOUNT

Do you really mean unroll? Or do you want a pipelined inner loop? #pragma HLS PIPELINE II=1 (but change the order in your loop)

The flow looks like it could pipeline.

What about data access? Is the data stored in one or more arrays? Do you need concurrent access? You might try HLS_RESHAPE. But check the results!

Hope this helps.

0 Kudos