Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[VTA] Fix VTA function Vivado Compile Error. #3375

Merged
merged 1 commit into from
Jun 20, 2019
Merged

[VTA] Fix VTA function Vivado Compile Error. #3375

merged 1 commit into from
Jun 20, 2019

Conversation

huajsj
Copy link
Contributor

@huajsj huajsj commented Jun 14, 2019

Issue:
when using vivado compile vta.cc with top function 'vta', vivado
report deadlock error like '...with default size is used in a non -dataflow
region, which may result in deadlock Please consider to resize the
stream using the directive ‘set_directive_stream’ or the ‘HL S stream’
pragma.'

Solution:
give the queue a default size as 8. after fix, compile error gone, we can run test bench with this 'vta' function and get correct result.

@huajsj
Copy link
Contributor Author

huajsj commented Jun 14, 2019

@tmoreau89 could help to review this patch?

@tmoreau89
Copy link
Contributor

Which version of Vivado were you using @huajsj

@tmoreau89
Copy link
Contributor

And could you provide more details on reproducing the bug?

@huajsj
Copy link
Contributor Author

huajsj commented Jun 17, 2019

@tmoreau89 following are the detailed information about the reproduce and vivado_hls information.

  1. vivado_hls version is 2018.2

  2. Reproduce as following
    2.1 run vivado_hls 2018.2
    2.2 add vta.cc and vta.h into source
    2.3 copy vta_config.json macro define into hw_spec.h to fix macro not existing issue when do
    synthesis.
    2.4. run sysnthesis
    2.5. saw the vivado_hls compile error.

       ERROR: [XFORM 203-733] An internal stream 'tmp_load_queue.V.V' (vm/vta/hardware/xilinx/src/vta.cc:588) with default size is used in a non-dataflow region, which may result in deadlock. Please consider to resize the stream using the directive 'set_directive_stream' or the 'HLS stream' pragma.
    

ERROR: [HLS 200-70] Pre-synthesis failed.

@tmoreau89
Copy link
Contributor

Thanks for the details; I believe we should migrate to 2019.1 (I'll issue a PR for this). Could you check that this fix also works in 2019.1?

Thanks

vta/hardware/xilinx/src/vta.cc Outdated Show resolved Hide resolved
vta/hardware/xilinx/src/vta.cc Outdated Show resolved Hide resolved
vta/hardware/xilinx/src/vta.cc Outdated Show resolved Hide resolved
Issue:
when using vivado compile vta.cc with top function 'vta', vivado
report deadlock error like '...with default size is used in a non -dataflow
region, which may result in deadlock Please consider to resize the
stream using the directive ‘set_directive_stream’ or the ‘HL S stream’
pragma.'

Solution:
give the queue a default size as 8.
@huajsj
Copy link
Contributor Author

huajsj commented Jun 20, 2019

@tmoreau89 , about 2019.1, just verified, the fix work good under 2019.1, steps as following.
#1. using vivado_hls 2019.1 create solution add vta.cc and vta.h, fix header file path/macro issue.
#2. compile , saw the deadlock error and synthesis failed.
#3 apply this patch, issue go away.

Copy link
Contributor

@tmoreau89 tmoreau89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@tmoreau89 tmoreau89 merged commit 917ad9f into apache:master Jun 20, 2019
wweic pushed a commit to wweic/tvm that referenced this pull request Jun 26, 2019
Issue:
when using vivado compile vta.cc with top function 'vta', vivado
report deadlock error like '...with default size is used in a non -dataflow
region, which may result in deadlock Please consider to resize the
stream using the directive ‘set_directive_stream’ or the ‘HL S stream’
pragma.'

Solution:
give the queue a default size as 8.
wweic pushed a commit to neo-ai/tvm that referenced this pull request Jun 27, 2019
Issue:
when using vivado compile vta.cc with top function 'vta', vivado
report deadlock error like '...with default size is used in a non -dataflow
region, which may result in deadlock Please consider to resize the
stream using the directive ‘set_directive_stream’ or the ‘HL S stream’
pragma.'

Solution:
give the queue a default size as 8.
tqchen pushed a commit to tqchen/tvm that referenced this pull request Mar 29, 2020
Issue:
when using vivado compile vta.cc with top function 'vta', vivado
report deadlock error like '...with default size is used in a non -dataflow
region, which may result in deadlock Please consider to resize the
stream using the directive ‘set_directive_stream’ or the ‘HL S stream’
pragma.'

Solution:
give the queue a default size as 8.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants