https://github.com/ooddaa/vhdls
https://github.com/ooddaa/vhdls
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ooddaa/vhdls
- Owner: ooddaa
- Created: 2025-02-09T20:48:07.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-23T20:28:50.000Z (over 1 year ago)
- Last Synced: 2025-06-18T06:07:34.521Z (about 1 year ago)
- Language: VHDL
- Size: 380 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## compile
`ghdl -a adder.vhd`
## run
`ghdl -r adder`
## test
same `analyze & run`:
`ghdl -a adder_tb.vhd`
`ghdl -r adder_tb`
## produce wavefile
`ghdl -r adder --wave=adder.ghw`
or
`ghdl -r adder --vcd=adder_wave.vcd`
## view wavefile
`gtkwave adder.ghw`
or
`gtkwave adder_wave.vcd`
[Quick Start Guide](https://ghdl.github.io/ghdl/quick_start/index.html)
# VHDL-2008
if using
```
use std.env.all;
```
we must add `--std=08` to our `-a, -r` commands:
```
ghdl -a --std=08 debounce_filter.vhd
ghdl -a --std=08 debounce_filter_tb.vhd
ghdl -e --std=08 debounce_filter_tb
ghdl -r --std=08 debounce_filter_tb --vcd=debounce.vcd
```
VHDL-2008 is a significant revision of the VHDL (VHSIC Hardware Description Language) standard that was released in 2008. It introduced several important improvements over the previous versions (like VHDL-93 and VHDL-2002).
Key features introduced in VHDL-2008 include:
1. Enhanced type system:
- Fixed-point and floating-point packages
- Better support for mixed-language simulation
- Enhanced array types and operations
2. Improved design and verification capabilities:
- Force/release statements for debugging
- Enhanced generic types
- Better package generics
- The `std.env` package (which we used with `finish` in our testbench)
3. Simplified coding:
- Direct entity instantiation (without needing component declarations)
- Enhanced file I/O capabilities
- Better support for PSL (Property Specification Language)
- External names
4. Better tool support:
- Standardized VHDL PSL integration
- Enhanced synthesis packages
- Improved error handling
For example, in VHDL-93 you would need to write:
```vhdl
-- VHDL-93 style
component Debounce_Filter is
generic (DEBOUNCE_LIMIT : integer);
port (...);
end component;
-- Then instantiate
UUT: Debounce_Filter
generic map (...)
port map (...);
```
While in VHDL-2008 you can directly write:
```vhdl
-- VHDL-2008 style
UUT: entity work.Debounce_Filter
generic map (...)
port map (...);
```
The newer standard makes the code more concise and easier to maintain, which is why many modern designs prefer using VHDL-2008 when the tools support it.