12-07-2024, 10:19 PM
Verilog Lint Essentials For Rtl Design Engineer
Published 11/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.01 GB | Duration: 3h 10m
Step by Step Guide from Scratch
What you'll learn
Role of Lint in DUT analysis
Reset & Clock best practices
Naming Conventions & Assignment Operators best practices
Loop best practices
Case best practices
Function & Tasks best practices
Requirements
Fundamentals of Digital Electronics and Verilog
Description
We have two types of analysis for the DUT (Device Under Test). The first type is static analysis, where we examine the design without applying any stimulus. This involves analyzing the constructs and coding patterns to identify early bugs or applying mathematical models to check the correctness of the DUT. Examples of static analysis include linting and formal verification.The second type is dynamic analysis, where we apply a set of stimuli to the DUT based on test cases and analyze the response to verify functionality.Linting is crucial in Verilog design to ensure code quality and prevent errors. It enforces coding standards, detects bugs early, and checks for correct syntax and semantics. Using lint tools helps Verilog engineers maintain consistency across codebases, enhance readability, and preempt issues that might not affect simulation but could lead to unexpected results during synthesis.A key advantage of linting in RTL (Register Transfer Level) design is its ability to detect incorrect usage of clocks, resets, modeling styles, loops, and control structures, which can lead to unsynthesizable designs. The difficulty with these bugs is that they are often hard to identify during debugging, as they are typically logical errors. Early detection of these issues saves designers significant time and effort.
Overview
Section 1: Day 1 : Lint Basics
Lecture 1 Agenda
Lecture 2 Analysis Types
Lecture 3 Lint Usage
Lecture 4 Typical format of Lint violation P1
Lecture 5 Typical format of Lint violation P2
Lecture 6 Typical format of Lint violation P3
Lecture 7 Performing Lint with Verilator
Lecture 8 Performing Lint with Vivado 2024.1
Section 2: Day 2 : Lint Rules P1
Lecture 9 Agenda
Lecture 10 Lint Rules Overview
Lecture 11 Reset rules P1
Lecture 12 Reset rules P2
Lecture 13 Reset rules P3
Lecture 14 Bad Code
Lecture 15 Good Code
Lecture 16 Clock rules P1
Lecture 17 Clock rules P2
Lecture 18 Bad Code
Lecture 19 Good Code
Section 3: Day 3 : Lint Rules P2
Lecture 20 Agenda
Lecture 21 Assignment rules P1
Lecture 22 Assignment rules P2
Lecture 23 Assignment rules P3
Lecture 24 Assignment rules P4
Lecture 25 Assignment rules P5
Lecture 26 Assignment rules P6
Lecture 27 Assignment rules P7
Lecture 28 Bad Code
Lecture 29 Good Code
Lecture 30 Operations
Lecture 31 Bad Code
Lecture 32 Good Code
Lecture 33 Naming rules P1
Lecture 34 Naming rules P2
Lecture 35 Naming rules P3
Lecture 36 Naming rules P4
Lecture 37 Code
Lecture 38 Loop Rules P1
Lecture 39 Loop Rules P2
Lecture 40 Loop Rules P3
Lecture 41 While loop : Good & Bad Code
Lecture 42 For loop : Good & Bad Code
Section 4: Day 4 : Lint Rules P3
Lecture 43 Agenda
Lecture 44 Function & Task rules P1
Lecture 45 Function & Task rules P2
Lecture 46 Function & Task rules P3
Lecture 47 Bad Code
Lecture 48 Good Code
Lecture 49 Case rules P1
Lecture 50 Case rules P2
Lecture 51 Case rules P3
Lecture 52 Case rules P4
Lecture 53 Bad Code
Lecture 54 Good Code
Lecture 55 Combinational logic rules P1
Lecture 56 Combinational logic rules P2
Lecture 57 Good & Bad Code
Section 5: Day 5 : Lint Rules P4
Lecture 58 Agenda
Lecture 59 Structural Modeling rules P1
Lecture 60 Structural Modeling rules P2
Lecture 61 Structural Modeling rules P3
Lecture 62 Structural Modeling rules P4
Lecture 63 Bad Code
Lecture 64 Good Code
Lecture 65 Multiple Drivers P1
Lecture 66 Multiple Drivers P2
Lecture 67 Code Hygiene P1
Lecture 68 Code Hygiene P2
Lecture 69 Code Hygiene P3
Lecture 70 Code Hygiene P4
Lecture 71 Code Hygiene P5
Lecture 72 Bad Code
Lecture 73 Good Code
Lecture 74 Synthesis P1
Lecture 75 Synthesis P2
Lecture 76 Bad Code
Lecture 77 Good Code
Anyone interested in becoming an RTL Design Engineer.
RapidGator
NitroFlare