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

Workaround to avoid compilation/elaboration error with Cadence Xcelium #59

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

kazt81
Copy link

@kazt81 kazt81 commented Oct 28, 2021

@taichi-ishitani The 1st change on env/fabric/top.sv is not so good because it means we cannot use modport with multiple interface instances but I heard this is the only solution to elaborate this kind of code with Xcelium.
The 2nd change on rtl/common/tnoc_packet_if.sv is what you wanted to do here but you didn't do so. I think it may cause some problem with Synopsys VCS. I'd like to hear your opinion on this.

@kazt81 kazt81 changed the title Workaround to avoid compilation/eraboration error with Cadence Xcelium Workaround to avoid compilation/elaboration error with Cadence Xcelium Nov 1, 2021
@@ -42,7 +42,7 @@ interface tnoc_packet_if
typedef types.tnoc_response_header tnoc_response_header;
typedef types.tnoc_packed_header tnoc_packed_header;

function automatic logic [get_header_width(PACKET_CONFIG)-1:0] pack_header();
function automatic tnoc_packed_header pack_header();
Copy link
Owner

Choose a reason for hiding this comment

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

This code may raise an error caused by DC's bug. We cannot use a type imported from an interface port as a return data type.
4a7dad4#diff-c513451d01469a1d01ef2a1135666ad93be4df19108f5fb0f0665cd29be4fb91

Copy link
Author

Choose a reason for hiding this comment

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

Cadence Xcelium may have an issue with resolving a function reference at this kind of location so I've uploaded another workaround to add the explicit scope tnoc_pkg::.

.i_clk (clk ),
.i_rst_n (rst_n ),
.dut_if (flit_if_b2d[i] ),
.bfm_if (bfm_flit_if_b2d[CHANNELS*i:CHANNELS*(i+1)-1])
Copy link
Owner

Choose a reason for hiding this comment

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

Can you add a space before a closing bracket ) to align position of a closing bracket to 2 space tab position?

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