Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
You could either make a new AstRose/AstFell/AstStable/AstChanged, or given they are all handled extremely similar to AstPast, add inside AstPast a member variable of type VPastType enumeration which says which flavor.
At the point you convert these (probably V3Assert?) the AstSelBits will be AstSel, so you should make a AstSel if the nodep->width() > 1.
BTW note these in IEEE F.3.4.4:
Verilator doesn't support expression 2 (which is 1 in above so that's ok). Add that too if you want (it would just be an if statement inside the $past flop).
Verilator also doesn't support the clock argument ("c"), either error out on that or add it too, it's the clocking expression when making the $past flop.