Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/var7600/vhdl-generator
App that Generate VHDL Code and Testbench template file
https://github.com/var7600/vhdl-generator
vhdl vhdl-code vhdl-modules vhdl-testbench
Last synced: about 2 months ago
JSON representation
App that Generate VHDL Code and Testbench template file
- Host: GitHub
- URL: https://github.com/var7600/vhdl-generator
- Owner: Var7600
- License: other
- Created: 2024-03-22T20:31:14.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-06-18T20:23:49.000Z (6 months ago)
- Last Synced: 2024-06-19T09:16:31.238Z (6 months ago)
- Topics: vhdl, vhdl-code, vhdl-modules, vhdl-testbench
- Language: Java
- Homepage:
- Size: 7.08 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.tpl
- License: LICENSE.txt
Awesome Lists containing this project
README
![logo-text.png](assets/logo-text.png)
![VHDL GENERATOR LOGO](assets/logo.png)
# Badges
[![Checkstyle](https://github.com/Var7600/VHDL-GENERATOR/actions/workflows/checkstyle.yml/badge.svg)](https://github.com/Var7600/VHDL-GENERATOR/actions/workflows/checkstyle.yml) [![Test](https://github.com/Var7600/VHDL-GENERATOR/actions/workflows/test.yml/badge.svg)](https://github.com/Var7600/VHDL-GENERATOR/actions/workflows/test.yml) [![Release](https://github.com/Var7600/VHDL-GENERATOR/actions/workflows/release.yml/badge.svg)](https://github.com/Var7600/VHDL-GENERATOR/actions/workflows/release.yml)
---# Overview
---
**VHDL_GENERATOR** is a java swing application that can generate **VHDL Code** it can generate the VHDL file given information of the VHDL interface(entity,port,signals, ...) and a **Testbench template file** also it can generate **ready to use VHDL Component** like(Mux,Demux,Adder,...).
![Screenshot](https://github.com/Var7600/VHDL-GENERATOR/assets/77991946/a4300731-9d73-4bc0-9aba-5449584eb1b2)
# Demos
---
- **VHDL Code generator**
https://github.com/Var7600/VHDL-GENERATOR/assets/77991946/25838c0e-d476-46ce-b349-681119a521a6
- **VHDL Component Generator**
https://github.com/Var7600/VHDL-GENERATOR/assets/77991946/5b428296-f99d-48ad-a16c-bd5ebcdf8064
# Requirements
---
- **Java jdk(>=18)**
- **Maven**
# Maven Plugins
---
- `javadoc-plugin` : for generating the javadoc
- ` JUnit 5` : for unit testing
- `flatlaf`: for the UI themes(Looks And Feels)
- `checkstyle` : to enforce coding rules
- `formatter` : for auto formatting code
- `assembly` : for generating the Jar file with all dependencies
# Building&Running
---
- you need to clone the repository first
```bash
git clone https://github.com/Var7600/VHDL-GENERATOR
```
- go to the VHDL-GENERATOR directory run
1. Building
```bash
mvn install
```
2. Running
```bash
java -jar target\VHDL_GENERATOR-0.0-SNAPSHOT-jar-with-dependencies.jar
```# Documentation
---
- **Javadoc** : you can find the javadoc documentation of the project in `Apidocs\Javadoc`
- **UML** : there's UML representation of the project in pdf file(you got to zoom in to see clearly)# TO DO(Upcoming)
---
- [ ] add a option to directly generate testbench file by copying VHDL code to the editor or by choosing a VHDL file
- [ ] add more Component in Library(**Multiplier, Divider, Shifter, Floating Point Adder, T Flip-Flop, ROM, ALU** . . . )
# Contributions
---
**If you want to contribute to a project and make it better, your help is very welcome. you can report bug reports/issues, feature requests and the noblest of all contributions: a good, clean pull request.**
### adding component Library
1. first you can create folder in `HDL-library\ (ex: Multiplier)`
2. write your VHDL code there
3. also a **Testbench!**
4. then you can add a package in `vhdlgenerator.component.Multiplier`
5. and follow same construction in others `component class`
### How to make a clean pull request
- Create a personal fork of the project on Github.
- Clone the fork on your local machine. Your remote repo on Github is called `origin`.
- Add the original repository as a remote called `upstream`.
- Create a new branch to work on! from `main`.
- Implement/fix your feature, comment your code.
- Follow the code style of the project, including indentation(some plugins(checkstyle,foramtter) by maven take care of that so you can write like you want and fix after)
- If the project has tests run them!
- Write or adapt tests as needed.
- Add or change the documentation as needed.
- Push your branch to your fork on Github, the remote `origin`.
- From your fork open a pull request in the correct branch.
- Once the pull request is approved and merged you can pull the changes from `upstream` to your local repo and delete your extra branch(es).
# License
> “Commons Clause” License Condition v1.0
>
> this is a free software; you can redistribute it and/or modify it.
>
> Without limiting other than the License not include or grant you right to Sell the Software.
>
> For purposes of the foregoing, “Sell” means practicing any or all of the rights granted to you under the License to provide to third parties,
> for a fee or other consideration (including without limitation fees for hosting or consulting/ support services related to the Software),
> a product or service whose value derives, entirely or substantially, from the functionality of the Software.
> Any license notice or attribution required by the License must also include this Commons Cause License Condition notice.