Replies: 4 comments 3 replies
-
Can you provide a full example that reproduces the problem? Otherwise it's just random guessing on my part. |
Beta Was this translation helpful? Give feedback.
0 replies
-
Here is a sample showing the issue. Just execute run.sh. Look at the first error and the corresponding lines in sva.sh.
- Ken
…________________________________
From: Michael Popoloski ***@***.***>
Sent: Monday, July 8, 2024 8:59 PM
To: MikePopoloski/slang ***@***.***>
Cc: Ken Roe ***@***.***>; Author ***@***.***>
Subject: Re: [MikePopoloski/slang] A couple of differences between The Verific/Yosys parser and slang (Discussion #1050)
Can you provide a full example that reproduces the problem? Otherwise it's just random guessing on my part.
—
Reply to this email directly, view it on GitHub<#1050 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AB2KXSCAQQK4AQZDNFDVI6TZLKLMBAVCNFSM6AAAAABKNX4RFOVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4TSOBXHE3DI>.
You are receiving this because you authored the thread.
|
Beta Was this translation helpful? Give feedback.
1 reply
-
Here is a small example that illustrates the problem. I hacked the real test case to shrink it down. The assertion shown is meaningless.
|
Beta Was this translation helpful? Give feedback.
1 reply
-
I suspect what you are saying is correct and Yosys for some reason doesn't flag an error. A second issue that I would like to resolve with the above example is that no error is flagged for the subexpression $past(vaddr_to_be_flushed_i, 1)[0]. This occurs before the point of the first error generated. Is this legal Verilog code?
- Ken
…________________________________
From: Michael Popoloski ***@***.***>
Sent: Wednesday, July 10, 2024 8:33 AM
To: MikePopoloski/slang ***@***.***>
Cc: Ken Roe ***@***.***>; Author ***@***.***>
Subject: Re: [MikePopoloski/slang] A couple of differences between The Verific/Yosys parser and slang (Discussion #1050)
It seems like there are numerous problems with this example. I will not address them all, but the error related to assignment pattern target type cannot be deduced in this context is because you're using an assignment pattern in a context where there is no target type to create. What should be the type of the assignment pattern expression? Where do these field names (like "asid") come from? The code is not valid SystemVerilog.
—
Reply to this email directly, view it on GitHub<#1050 (reply in thread)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AB2KXSD32ECDTARDOFATPWTZLSFNLAVCNFSM6AAAAABKNX4RFOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTAMBQGQYDKNY>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Consider parsing the following assertion:
gpt_update_tag_and_content: assert property (
@(posedge clk_i) disable iff (!rst_ni)
update_i.valid |=> (
$past(replace_en, 1)[0] |-> (tlb.tags_n[0] == '{asid: update_i.asid, vpn2: update_i.vpn[18+riscv::VPN2:18], vpn1: update_i.vpn[17:9], vpn0: update_i.vpn[8:0], is_1G: update_i.is_1G, is_2M: update_i.is_2M, valid: 1'b1})
&& tlb.content_n[0] == update_i.content
)
);
The construct $past(replace_en, 1)[0] causes problems in Yosys but not slang. However, I get an error flagged by slang but not Yosys for the '{said: ...} construct (error: assignment pattern target type cannot be deduced in this context). What is the issue here?
Beta Was this translation helpful? Give feedback.
All reactions