-
-
Notifications
You must be signed in to change notification settings - Fork 44
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
base: master
Are you sure you want to change the base?
Conversation
rtl/common/tnoc_packet_if.sv
Outdated
@@ -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(); |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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::
.
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]) |
There was a problem hiding this comment.
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?
@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.