UPGRADE YOUR BROWSER

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!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
778 Views
Registered: ‎11-09-2016

difference of hls and vhls

Jump to solution
Dear all,
I saw the following code in xilinx manual(https://www.xilinx.com/support/documentation/application_notes/xapp1209-designing-protocol-processing-systems-hls.pdf). However, I am not sure the difference between #pragma VHLS and #pragma HLS. I tried a testbench with #pragma VHLS pipeline II=1 and #pragma HLS pipeline II=1, it seems that the results are different, but I am not sure what's the difference between the two pragmas?
 
Thanks.
Jiandong.
 
void topLevelModule(stream<axiWord> &inData, stream<axiWord> &outData) {
2 #pragma VHLS dataflow interval=1
3
4 #pragma HLS INTERFACE port=inData axis
5 #pragma HLS INTERFACE port=outData axis
6
7 static stream<ap_uint<64> > modOne2modTwo
8 static stream<ap_uint<64> > modTwo2modThree;
9
10 #pragma HLS STREAM variable = modOne2modTwo depth = 4;
11 #pragma HLS STREAM variable = modTwo2modThree depth = 4;
12
13 moduleOne(inData, modOne2modTwo);
14 moduleTwo(modOne2modTwo, modTwo2modThree);
15 moduleThree(modTwo2modThree, outData);
16 }
Tags (2)
0 Kudos
1 Solution

Accepted Solutions
Scholar u4223374
Scholar
1,016 Views
Registered: ‎04-26-2015

Re: difference of hls and vhls

Jump to solution

The answer appears to be that "VHLS" doesn't do anything, and "HLS" does what you want. With "VHLS" there's no sign that the pragmas are recognised at all.

 

All the HLS pragmas initially started as AP pragmas, a hold-over from AutoESL AutoPilot (Xilinx bought AutoESL and turned AutoPilot into Vivado HLS). These were common in the very early days (eg. UG902 for HLS 2012.2 uses them a lot; but the 2014.3 version only has them twice) and the AutoPilot acronym still lingers in places (eg. "ap_int", "ap_fixed").

 

I would guess that "VHLS" was a proposed pragma name around 2014 (when XAPP1209 was written) but it never got implemented, and instead Xilinx went with the now-standard "HLS".

 

I also notice that the very old versions of HLS had an interval on the dataflow pragma (ie "#pragma AP dataflow interval=1"). This is covered in UG902 2012.2, but by 2014.3 it's no longer listed. It still apparently passes pragma checking even in 2017.3, but I don't know if it has any functional impact.

View solution in original post

0 Kudos
1 Reply
Scholar u4223374
Scholar
1,017 Views
Registered: ‎04-26-2015

Re: difference of hls and vhls

Jump to solution

The answer appears to be that "VHLS" doesn't do anything, and "HLS" does what you want. With "VHLS" there's no sign that the pragmas are recognised at all.

 

All the HLS pragmas initially started as AP pragmas, a hold-over from AutoESL AutoPilot (Xilinx bought AutoESL and turned AutoPilot into Vivado HLS). These were common in the very early days (eg. UG902 for HLS 2012.2 uses them a lot; but the 2014.3 version only has them twice) and the AutoPilot acronym still lingers in places (eg. "ap_int", "ap_fixed").

 

I would guess that "VHLS" was a proposed pragma name around 2014 (when XAPP1209 was written) but it never got implemented, and instead Xilinx went with the now-standard "HLS".

 

I also notice that the very old versions of HLS had an interval on the dataflow pragma (ie "#pragma AP dataflow interval=1"). This is covered in UG902 2012.2, but by 2014.3 it's no longer listed. It still apparently passes pragma checking even in 2017.3, but I don't know if it has any functional impact.

View solution in original post

0 Kudos