Skip to content

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

Open
kazt81 wants to merge 2 commits into
taichi-ishitani:masterfrom
kazt81:kazt81/tnoc/wa-for-xcelium
Open

Workaround to avoid compilation/elaboration error with Cadence Xcelium#59
kazt81 wants to merge 2 commits into
taichi-ishitani:masterfrom
kazt81:kazt81/tnoc/wa-for-xcelium

Conversation

@kazt81

@kazt81 kazt81 commented Oct 28, 2021

Copy link
Copy Markdown

@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
Comment thread rtl/common/tnoc_packet_if.sv Outdated
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
Copy Markdown
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
Copy Markdown
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::.

Comment thread env/fabric/top.sv Outdated
.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
Copy Markdown
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