Comments on: SystemVerilog and Verilog X Optimism – What About X Pessimism? https://www.verilogpro.com/systemverilog-verilog-x-optimism-pessimism/ Verilog and Systemverilog Resources for Design and Verification Mon, 27 Jun 2022 07:44:23 +0000 hourly 1 https://wordpress.org/?v=6.4.4 By: Raghav https://www.verilogpro.com/systemverilog-verilog-x-optimism-pessimism/#comment-5191 Wed, 02 Mar 2022 01:48:08 +0000 http://www.verilogpro.com/?p=20#comment-5191 In reply to Yuchao.

Yep! You are right Yuchao. I got the same doubt and in-fact I checked the original paper that Jason has referred “https://sutherland-hdl.com/papers/2013-DVCon_In-love-with-my-X_paper.pdf”. The published paper has this typo too 🙂

]]>
By: Yuchao https://www.verilogpro.com/systemverilog-verilog-x-optimism-pessimism/#comment-3139 Sun, 11 Jul 2021 15:14:25 +0000 http://www.verilogpro.com/?p=20#comment-3139 Hi Jason,

Great post as always!
There’s a typo in this code. In the assert statement, is should be (^cond !== 1’bx).

`define assert_condition (cond) \
assert (^cond === 1’bx) \
else $error(“%m, ifcond = X”)

]]>
By: Jason Yu https://www.verilogpro.com/systemverilog-verilog-x-optimism-pessimism/#comment-849 Thu, 05 Apr 2018 05:48:48 +0000 http://www.verilogpro.com/?p=20#comment-849 In reply to Shrikant saxena.

Hi Shrikant. That’s an interesting question. Yes clk changing 0->X would cause this block to execute, at which point clk_1 will be inverted. Just thinking about it I don’t see how VCS will know clk=X actually needs to propagate to clk_1 because neither of the “if” nor “else” statement can cause an X to go on to clk_1. So my guess is no, but it would be good to confirm with a Synopsys AE because I don’t know exactly how the xprop algorithm works internally.

]]>
By: Shrikant saxena https://www.verilogpro.com/systemverilog-verilog-x-optimism-pessimism/#comment-825 Fri, 16 Mar 2018 10:16:56 +0000 http://www.verilogpro.com/?p=20#comment-825 Hello sir,
My name is shrikant. I have one doubt regrading to x-prop. If my code is like this

always @(posedge clk)
if(rst)
clk_1=0;
else
clk_1=~clk_1;

Suppose simulation is going fine, clk_1 is toggling properly based on posedge clk, but if after some time clk is changing 0-x , it will treat as posedge and once again clk_1 will toggling and now clk is remains ‘x’ for some time. so my question is if clk-x for some time it will also change the value of clk_1 to x ??

Thank you in advance.

]]>
By: Jason Yu https://www.verilogpro.com/systemverilog-verilog-x-optimism-pessimism/#comment-767 Mon, 29 Jan 2018 07:46:25 +0000 http://www.verilogpro.com/?p=20#comment-767 In reply to kanta.

Hi Kanta. I’m afraid I have not seen that error message… I would recommend contacting your local Synopsys AE to see if they can help you.

]]>
By: kanta https://www.verilogpro.com/systemverilog-verilog-x-optimism-pessimism/#comment-757 Thu, 25 Jan 2018 07:06:45 +0000 http://www.verilogpro.com/?p=20#comment-757 Hi Jason,
enabled x-prop ,seeing the below issues.
non-pure function call.
non instrumentable system task $finish.
non-instrumentable system statement.

]]>