Great discussion on custom linting and verification at Industry Perspective - New trends in RTL quality checks hosted by AsFigo on 30th January! It was fantastic to see our Senior VP of Engineering Narahari TR share thoughts on cybersecurity and power optimization in IC design. These discussions are crucial for advancing semiconductor innovation. #Semiconductors #Cybersecurity #ICDesign #signoffsemiconductors
BYOL: Build Your Own Linter. That was my big takeaway from yesterday's Open Source Chip Design and Verification Event, presented by AsFigo and Verifworks Pvt Ltd. Several talks highlighted pyslint, which enables you to write your own SystemVerilog linting rules in Python. This is in contrast to linting rules handed down to you as commandments from the mountaintop. The "Thou shalts" and "Thou shalt nots" are important, but by necessity they are general and apply to everyone broadly, whereas bespoke artisanal rules are tailored to your specific needs. Some thoughts. I see a connection between BYOL and Behavior-Driven Development (BDD). If your team needs a new linting rule, you can follow the BDD flow of Discovery, where you hash out the rule and create concrete positive and negative examples; Formulation, where you capture the rule requirements and examples in a structured format like Gherkin; and Automation, where you write and run your formulated examples to test out your new rule. Since pyslint is Python, you can use a Python BDD package like Behave to guide your rule development. The beauty is, your formulated examples become living documentation of the rule. I'm putting the finishing touches on my upcoming DVCon U.S. talk on immutable UVM objects. It contains a laundry list of "You shoulds" and "You shouldn'ts", but before yesterday I figured you had to analyze source code manually to assess its immutability. Yesterday the light bulb came on💡, and now I envision custom lint rules to do this work automatically, pointing out possible mutable vulnerabilities in your code. This will likely be my first use case when I give pyslint a try. For the first time, I saw custom linting as a sort of poor man's formal verification, or, more accurately, static analysis. This opens up a whole new kind of IC verification: lexical, syntactic, and semantic rule-based checking of your functional and non-functional requirements. A presenter from SignOff Semiconductors highlighted applications in cybersecurity--safeguarding against malicious attacks on your silicon--and power optimization. I'll even throw in performance and area for free. Lots of food for thought here. One of the joys of developing Bathtub BDD as a solo open source project has been owning and solving classes of problems all new to me. Challenges like distributing and installing a SystemVerilog package, creating and generating consistent bug-free Markdown documentation, managing file and object dependencies, and developing testing and messaging strategies. These have resulted in my own unique solutions and personal best practices. I can now conceivably capture those practices in linting rules to help me validate my commits more easily. I'm excited. What aspects of BYOL capture your imagination? Pyslint https://lnkd.in/gZaf6NKy #SystemVerilog #ASIC #SoC #DesignVerification #BDD #LivingDocumentation #BathtubBDD #immutables