You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To move forward after HLS with logic synthesis, vivado HLS needs to export the design as a Xilinx IP. I was trying to synthesize an atax kernel from Polybench, and the export_design command fails with the following error:
missing operand at _@_
in expression " _@_* / 8"
(parsing expression " * / 8")
invoked from within
"expr $mem_width * $mem_depth / 8"
("native_bram" arm line 8)
invoked from within
"switch -nocase -- $type {
axi4lite {
# {{{
## direction
if {$mode == "master"} {
set dir0 ..."
("foreach" body line 5)
invoked from within
"foreach interface_name [dict keys $Interfaces] {
set interface_detail [dict get $Interfaces $interface_name]
set ctype ""
dict with interf..."
(file "run_ippack.tcl" line 1163)
INFO: [Common 17-206] Exiting Vivado at Mon Apr 11 14:12:06 2022...
ERROR: [IMPL 213-28] Failed to generate IP.
Since the error talks about axilite, I tried changing the pragmas in the _dse.cpp file generated by scaleHLS, and discovered that the synthesis works fine if I remove #pragma HLS resource variable=v3 core=ram_s2p_bram from one of the input arguments. So, I am not entirely sure whether this is a Vivado problem or a scaleHLS problem, but I thought it makes sense to report it, as it may be caused by the pragma settings.
This is the smallest example if someone wants to reproduce the issue. Input code:
# define M 2
# define N 2
void test_atax(float A[2][2], float x[2], float y[2], float tmp[2])
{
int i, j;
for (i = 0; i < N; i++)
y[i] = 0;
for (i = 0; i < M; i++)
{
tmp[i] = 0.0;
for (j = 0; j < N; j++)
tmp[i] = tmp[i] + A[i][j] * x[j];
for (j = 0; j < N; j++)
y[j] = y[j] + A[i][j] * tmp[i];
}
}
Code optimized by scaleHLS (to see which input pragma I am talking about):
To move forward after HLS with logic synthesis, vivado HLS needs to export the design as a Xilinx IP. I was trying to synthesize an atax kernel from Polybench, and the export_design command fails with the following error:
Since the error talks about axilite, I tried changing the pragmas in the _dse.cpp file generated by scaleHLS, and discovered that the synthesis works fine if I remove
#pragma HLS resource variable=v3 core=ram_s2p_bram
from one of the input arguments. So, I am not entirely sure whether this is a Vivado problem or a scaleHLS problem, but I thought it makes sense to report it, as it may be caused by the pragma settings.This is the smallest example if someone wants to reproduce the issue. Input code:
Code optimized by scaleHLS (to see which input pragma I am talking about):
The text was updated successfully, but these errors were encountered: