-
Notifications
You must be signed in to change notification settings - Fork 173
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
RTLIL sync rules are Verilog-specific and should not be emitted #603
Comments
Per discussion with @mwkmwkmwk, RTLIL sync rules are a Verilog construct that protrudes into RTLIL. The cause of the bug here is that Instead of using sync rules, we should emit |
I'm having a similar bug but Yosys doesn't rise an error, It just avoid the async reset. I workaround this for a while passing the signal through an auxiliary comb signal. But this workaround is not working for FSM state signal. I have two questions:
Regards |
We continue to emit combinatoral processes for now, pending changes at a later date. Fixes amaranth-lang#603.
We continue to emit combinatoral processes for now, pending changes at a later date. Fixes amaranth-lang#603.
We continue to emit combinatoral processes for now, pending changes at a later date. Fixes amaranth-lang#603.
We continue to emit combinatoral processes in RTLIL. This allows switch statements in the HDL itself to be mapped to switch statements in RTLIL, getting translated to Verilog case statements. This output has much higher clarity than using `$mux` cells directly. Fixes amaranth-lang#603.
We continue to emit combinatoral processes in RTLIL. This allows switch statements in the HDL itself to be mapped to switch statements in RTLIL, getting translated to Verilog case statements. This output has much higher clarity than using `$mux` cells directly. Fixes amaranth-lang#603.
We continue to emit combinatoral processes in RTLIL. This allows switch statements in the HDL itself to be mapped to switch statements in RTLIL, getting translated to Verilog case statements. This output has much higher clarity than using `$mux` cells directly. Fixes amaranth-lang#603.
We continue to emit combinatoral processes in RTLIL. This allows switch statements in the HDL itself to be mapped to switch statements in RTLIL, getting translated to Verilog case statements. This output has much higher clarity than using `$mux` cells directly. Fixes amaranth-lang#603.
We continue to emit combinatoral processes in RTLIL. This allows switch statements in the HDL itself to be mapped to switch statements in RTLIL, getting translated to Verilog case statements. This output has much higher clarity than using `$mux` cells directly. Fixes amaranth-lang#603.
We continue to emit combinatorial processes in RTLIL. This allows switch statements in the HDL itself to be mapped to switch statements in RTLIL, getting translated to Verilog case statements. This output has much higher clarity than using `$mux` cells directly. Fixes amaranth-lang#603.
Avoiding emission of sync processes in RTLIL allows us to avoid a dependency on matching the behavior expected by Yosys, which generally expects sync processes in RTLIL to match those emitted by the output from its own Verilog parser. This also simplifies the logic used in emitting RTLIL overall. Combinatorial processes are still emitted however. Without these the RTLIL does not have a high-level understanding of Switch statements, which significantly diminishes the quality of emitted Verilog, as these are converted to `$mux` cells in Yosys, which become `?` constructs when converted back to Verilog. Fixes #603. Fixes #672.
small changes to this code result in no yosys error:
s
, sync assignment ofo
m.d.sync += o.eq(i)
False
toasync_reset
The text was updated successfully, but these errors were encountered: