Krzysztof Bieganski

Results 27 issues of Krzysztof Bieganski

Adds timing support to Verilator. It makes it possible to use delays, event controls within processes (not just at the start), wait statements, and forks. Building a design with those...

area: scheduling
effort: weeks
status: assigned
v5

Adds support for dynamic triggers for waiting on non-static variables, such as class objects or locals. In non-static contexts like class objects or stack frames, the use of global trigger...

This change introduces a custom reference-counting pointer class. It allows for creating such ref-counting pointers from 'this', which lets us keep the receiver object around even if all references to...

We are looking into adding constrained randomization support to Verilator. Obviously that is a pretty big undertaking, so we would like to reuse some existing work for this. It appears...

area: assertions
status: discussion

After #3363 it's possible to use delays in methods. However, using event controls like: ```systemverilog class EventClass; event e; task sleep; @e; endtask task wake; ->e; endtask endclass ``` currently...

area: scheduling
status: ready

After #3363, we support continuous assignments like: ```systemverilog assign #1 clk = ~clk; ``` Such as assignment is converted into: ```systemverilog always_comb fork temp = #1 ~clk; join_none assign clk...

area: scheduling
status: ready

After #3363, if a suspendable process is resumed, we also trigger all logic that could've possibly been triggered by it. This is done by getting all sentrees from the process,...

area: scheduling
status: ready

After #3363, we make a new function for each forked process. Such functions are of the form: ``` fork(syms, whatnot) { whatnot = syms->whatnot + 1; co_await sym->other = whatnot;...

area: performance
area: scheduling
status: ready

`$strobe` doesn't always interact correctly with timing (#3363). Test: ```systemverilog module t(input clk); event e1; event e2; int v = 0; initial begin #1 $strobe("v = %0d", v); ->e1; @e2...

status: ready

If the user specifies the API key with leading/trailing whitespace, Butler is able to push an initial build to a given target. However, during an update push, it fails with...