-
Notifications
You must be signed in to change notification settings - Fork 24
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
Add a set of CDC Linting rules #200
Comments
Thanks for the interest. I browsed through some of the links you've provided. I don't see a crisp set of rules that can be lint-checked. CDC verification is ofcourse a wider problem involving multitude of techniques and looks like that cdc_snitch is a good start. What exactly do you have in mind for source code level Verilog/SV (or even VHDL) lint checks w.r.t CDC? |
Here are some basic conceptual rules. I am looking for more concrete ones to implement via PySlint. CDC Lint Rules1. Clock Domain Identification:
2. Synchronous Resets:
3. Single-Bit Signal Synchronization:
4. Multi-Bit Signal Handling:
5. FIFO Usage:
6. Handshake Protocols:
7. Avoid Combinational Logic Between Clock Domains:
8. Metastability Handling:
|
@ajeethakv any progress on this track? We're hot to trying it on our Wireguard-FPGA project... |
For starters, we could check the scenarios that mainstream commercial tools address:
There is also this open-source project that can be taken for reference:
Verilator CDC Request
Yosys CDC Request
Slang CDC Request
The text was updated successfully, but these errors were encountered: