Comments (5)
CC @sjgitty @mdhayter @tjaychen
from style-guides.
Is that intended as a single example? If so would it be better to replace data_en with data_valid_d in the second always block?
I suspect that this will be objected to by the verification folks because of X propagation on data_q after reset. At least I got code review feedback to include the reset path in places like your second always block to prevent reset-time Xs. Other than that, I'd only put reset where it is actually needed.
from style-guides.
- Flops reset/enables
My two pence is that we should encourage flop enables, but I'm not sure
we want to encourage the removal of reset in those cases. Concerned about
the X propagation.
Noting that your example doesn't have the use of data_en
in the first example.
Also not sure we want to "insist" as much as encourage. But overall I am very
much a fan of encouraging clock gating.
- Feedthroughs on IO
I'm not sure this is a style guide issue, more of a design best practice. There are
cases where you'll want feedthroughs on some modules, but agreed that it should
be avoided. There are times in low-speed design where you can really take advantage
of the longer clock cycles and passthrough more than otherwise. So I would think
this becomes a per-design guideline rather than a style guide requirement.
from style-guides.
from style-guides.
I'd agree with the guidelines on flop resets and enables, and agree that it should be an encouragement rather than mandatory. Perhaps suggest the "standard" >= 3 flops justifies an enable.
My personal view is that the design should reset as little as possible, since a reset flop is ~2x the size of a non-reset flop in some technologies. If X's are propagating and causing (real) DV issues / LEC problems etc. then the design is broken and needs further qualification (or resets), if not then there's no problem.
from style-guides.
Related Issues (20)
- Use of functions and automatic HOT 6
- [UVM:styleguide] best end of test practices HOT 13
- Recommendations around xprop in simulations HOT 11
- [SystemVerilog] parameter vs. localparam in packages HOT 5
- [SV] Placement of closing parentheses in initializer lists HOT 3
- Scope of this style guide and questions HOT 3
- Prefer SystemVerilog-2017 instead of 2012 HOT 6
- How to align named ports in module instantiations? HOT 17
- Use of SystemVerilog Interfaces HOT 12
- [sv] How to format module instantiations that fit in a single line? HOT 5
- Guidance on whether to add space between SV keyword 'wait' and parenthesis HOT 3
- Linting file for spyglass HOT 5
- Parameter naming convention inconsistencies
- Stance on wand / wor? HOT 1
- Plagarism of the Google Verilog Style Guide HOT 2
- Continuous assignment from argumentless functions HOT 2
- Inconsistent use of "simulation-synthesis mismatch" HOT 1
- FSM must be implement with two process blocks HOT 1
- typo in the **Suffixes** HOT 1
- Why is SV interface usage discouraged ? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from style-guides.