afsvalint 1.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- afsvalint-1.0.1/PKG-INFO +5 -0
- afsvalint-1.0.1/README.md +67 -0
- afsvalint-1.0.1/afsvalint.egg-info/PKG-INFO +5 -0
- afsvalint-1.0.1/afsvalint.egg-info/SOURCES.txt +6 -0
- afsvalint-1.0.1/afsvalint.egg-info/dependency_links.txt +1 -0
- afsvalint-1.0.1/afsvalint.egg-info/top_level.txt +1 -0
- afsvalint-1.0.1/setup.cfg +4 -0
- afsvalint-1.0.1/setup.py +8 -0
afsvalint-1.0.1/PKG-INFO
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# SVALint
|
|
2
|
+
Linter for SystemVerilog Assertions (SVA). Following the philosophy of BYOL - Build Your Own Linter, SVALint is an example of how users can roll out their own linters!
|
|
3
|
+
|
|
4
|
+
**SVALint** is an open-source **minimalist** linter tool designed to enforce style and consistency rules for SystemVerilog code. It provides a framework for **Build Your Own Linter** (**BYOL**), allowing users to create their own custom lint rules while benefiting from built-in checks such as proper encapsulation, naming conventions, line spacing, and other cosmetic rules. This linter integrates seamlessly into your development pipeline to ensure consistent, high-quality code.
|
|
5
|
+
## Table of Contents
|
|
6
|
+
1. [SVALint: SystemVerilog Checker - Linter](#svalint-systemverilog-checker---linter)
|
|
7
|
+
2. [BYOL - Build Your Own Linter](#byol---build-your-own-linter)
|
|
8
|
+
3. [Open Source](#open-source)
|
|
9
|
+
4. [Directory Structure](#directory-structure)
|
|
10
|
+
5. [Installation](#installation)
|
|
11
|
+
6. [Usage](#usage) - [Running the Linter from Command Line](#running-the-linter-from-command-line) - [Running with Makefile (Optional)](#running-with-makefile-optional) - [Test Cases](#test-cases)
|
|
12
|
+
7. [Adding New Lint Rules](#adding-new-lint-rules)
|
|
13
|
+
8. [Example Rule (in `src/rules/`)](#example-rule-in-srcrules)
|
|
14
|
+
9. [Dependencies](#dependencies)
|
|
15
|
+
10. [License](#license)
|
|
16
|
+
11. [Credits](#credits)
|
|
17
|
+
|
|
18
|
+
## BYOL - Build Your Own Linter
|
|
19
|
+
The core concept of **SVALint** is **BYOL** (Build Your Own Linter), a framework that lets you easily define custom linting rules tailored to your specific needs. Whether it's enforcing naming conventions, checking for proper encapsulation, or any other rule, **SVALint** is flexible and extensible.
|
|
20
|
+
With **BYOL**, you can create new rules quickly and add them to your pipeline. The linter is fully customizable, empowering you to ensure that your SystemVerilog code adheres to your specific standards.
|
|
21
|
+
## Open Source
|
|
22
|
+
This project is **open source** and licensed under the MIT License. Contributions are welcome, and you are free to fork, modify, and distribute it according to your needs. We encourage you to contribute to the community by adding new rules, improving the existing ones, or integrating **SVALint** with other tools and environments.
|
|
23
|
+
## Directory Structure
|
|
24
|
+
TBD
|
|
25
|
+
## Installation
|
|
26
|
+
1. Clone the repository:
|
|
27
|
+
```bash
|
|
28
|
+
git clone https://github.com/AsFigo/svalint.git
|
|
29
|
+
cd svalint
|
|
30
|
+
```
|
|
31
|
+
3. Install required dependencies - Verible mainly
|
|
32
|
+
|
|
33
|
+
See: https://github.com/chipsalliance/verible
|
|
34
|
+
|
|
35
|
+
3. pip install anytree
|
|
36
|
+
4. pip install tomli
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Usage
|
|
40
|
+
### Running the Linter from Command Line
|
|
41
|
+
The linter can be run using the `svalint.py` script located in the `bin/` directory. This script checks SystemVerilog files against the defined style rules.
|
|
42
|
+
1. To run the linter on a specific file:
|
|
43
|
+
```bash
|
|
44
|
+
python bin/svalint.py -t <path_to_file.sv>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Adding New Lint Rules
|
|
48
|
+
1. Create a new Python file inside the `src/rules/` directory. Each file should contain a class that inherits from the base linter class (`AsFigoLinter`).
|
|
49
|
+
2. Implement the rule logic in the derived class. Each rule should implement a method like `apply` or `run` to check for the specific violation.
|
|
50
|
+
3. After implementing the rule, add the rule to the configuration to enable or disable it.
|
|
51
|
+
|
|
52
|
+
## Example Rule (in `src/rules/`)
|
|
53
|
+
|
|
54
|
+
## Dependencies
|
|
55
|
+
- Python 3.x- Any necessary libraries like `verible_verilog_syntax`
|
|
56
|
+
|
|
57
|
+
## License
|
|
58
|
+
This project is **open source** and licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
|
|
59
|
+
---
|
|
60
|
+
This **SVALint** linter is part of the **BYOL** (Build Your Own Linter) framework from **AsFigo Technologies**. It's an open-source tool, and we encourage you to contribute to its growth, whether through adding new lint rules, improving existing ones, or enhancing documentation.
|
|
61
|
+
Let us know how you're using **SVALint**, and feel free to contribute back to the community!
|
|
62
|
+
|
|
63
|
+
## Credits
|
|
64
|
+
The rules and guidelines in **SVALint** are based on the following sources:
|
|
65
|
+
- **SystemVerilog Assertions Handbook*** Ben Cohen, Ajeetha Kumari Venkatesan, Lisa Piper, Srinivasan Venkataramanan: Many of the rules in this linter are inspired by the coding practices and design patterns outlined in this book, which provides a comprehensive approach to SystemVerilog Assertions, focusing on best practices for code quality and maintainability.
|
|
66
|
+
- **lowRISC Coding Guidelines**: This linter also draws upon the coding standards and guidelines from the lowRISC project. Their best practices for SystemVerilog coding have been a key resource for defining rules related to naming conventions, encapsulation, and other critical aspects of design quality.
|
|
67
|
+
- **Verible**: is an opensource SystemVerilog parser from Google and available via ChipsAlliance
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|