Inspired by Jason Turners book Cpp - Best Practices and the fact that the initial author miss something similar. This is an attempt to develop a forever changing, open-source and free book discussing, evaluating and always having up-to-date best practices in accordance with the FPGA-development industry. It is no attempt to rival similar books and is also something which started as a hobby and knowledge base for the initial author. This README and the project in general is currently in the EXTREMELY early stages and is still work-in-progress.
- 1. Introduction
- 2. Table of Content
- 3. Scope
- 4. About
- 5. Contributions
- 6. Building the book
- 7. Notes
See scope.md
in doc
directory.
The hope and intention is for this book-(project) to be driven by FPGA-communities, all over the world, and the industry.
The initial author has currently no background in ASIC-development, but there should be no problem representing both branches.
The book is HDL-agnostic, meaning that VHDL, (System)verilog etc shall be equally represented with source-code examples and discussions. For the moment, only (System)verilog and VHDL will be represented in the book. But this (with intention) and the rest of this project/book is prone to change.
See specifications.md
in doc
folder for more info with regards to rules and structure of book.
- Debugging and writing LaTex
- Provide source-code examples.
- Translating source-code examples to other HDLs
- Like SystemVerilog -> VHDL and vice versa.
- Spell-checking and proof-writing.
- Formalizing the rules and specifications of the book and also:
- Reviews of rules and specifications
- Provide suggestions to topics to include in the book by submitting issues.
- Engage in discussions here (or in a future Discord server) by submitting issues.
More to come!
Use any preferred text-editor / IDE.
-
Python
- Install Python or if you have winget:
winget install python --source (winget|msstore)
- Install Python or if you have winget:
-
MikTex
- Install MikTex or if you have winget:
winget install miktex --source winget
- Install MikTex or if you have winget:
-
pygments
pip install pygments
- Python
sudo apt-get install python3
- TexLive
sudo apt-get install texlive-full
- pygments
python3 -m pip install pygments
Should be the same for all OSs.
# Clone repo
git clone <repo_url> [<local_repo_path>]
cd <local_repo_path>
# Initialize continuos latex-build process
latexmk -pdf -pvc -outdir=./out --shell-escape top.tex
Must be built from root of project such that the LaTex macros works.
All macros defined in a LaTex document is relative to the latexmk
process path. So if the latexmk
commands is
invoked at the root of the project, all macros are relative to that root-path.