Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
069c0bc
write local configuration automatically on initial regression run
stefanunrein Jun 18, 2026
2fb82ec
remove inner generate label
stefanunrein Jun 18, 2026
56766f8
update fifo-ic-git constraint to new generates
stefanunrein Jun 18, 2026
f207751
fix variable direction for init mem file function
stefanunrein Jun 18, 2026
d029210
fix paths for local and project config file
stefanunrein Jun 19, 2026
6c886a9
beautify print
stefanunrein Jun 19, 2026
7a4cec6
FILL_STATE vs. FULL_STATE vs. FSTATE.
Paebbels Jun 19, 2026
8716239
Removed EMACS, vim/vi, Kate setting lines.
Paebbels Jun 19, 2026
55b0c94
remove temporary script for cleanup
stefanunrein Jun 19, 2026
8c1af97
Cleaned up more findings found by Sigasi.
Paebbels Jun 19, 2026
b8a8614
Merge remote-tracking branch 'origin/plc2/release' into plc2/release
stefanunrein Jun 19, 2026
cbaf0fd
Fixed more warnings reported by Sigasi.
Paebbels Jun 19, 2026
27cb055
Fixes after removinbg unused code.
Paebbels Jun 19, 2026
a7157a4
Simplified GitLab-CI script.
Paebbels Jun 19, 2026
4b299ca
Fixed 'ram' signals to be VHDL-2008 compliant.
Paebbels Jun 19, 2026
30bda73
Fix GitLab-CI pipeline.
Paebbels Jun 19, 2026
47e2805
Disabled INFO and PASSED messages. Removed trailing whitespaces.
Paebbels Jun 19, 2026
8b1f549
* print message if local-file generation is skipped
stefanunrein Jun 19, 2026
a004a4b
Merge commit '47e2805b9bd04f7538276bce18e5cddab2d1e009' into plc2/rel…
stefanunrein Jun 19, 2026
8dd6f94
Improve GitLab and GitHub pipelines.
Paebbels Jun 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,8 @@ trim_trailing_whitespace = false
[*.rst]
indent_style = space
indent_size = 3

[*.{yml,yaml}]
indent_style = space
indent_size = 2

4 changes: 2 additions & 2 deletions .github/workflows/Pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
fail-fast: false
matrix:
include:
- {ubuntu-version: 'ubuntu-24.04', simulator: 'nvc', backend: '', version: 'latest', can-fail: false}
- {ubuntu-version: 'ubuntu-26.04', simulator: 'nvc', backend: '', version: 'latest', can-fail: false}
- {ubuntu-version: 'ubuntu-26.04', simulator: 'ghdl', backend: 'mcode', version: 'nightly', can-fail: false}
- {ubuntu-version: 'ubuntu-26.04', simulator: 'ghdl', backend: 'llvm', version: 'nightly', can-fail: false}
with:
Expand All @@ -41,7 +41,7 @@ jobs:
- Simulate
# if: success() || failure()
with:
unittest_artifacts_pattern: 'PoC-Report-XML-*'
unittest_artifacts_pattern: 'SimPoC-Report-XML-*'
testsuite-summary-name: 'The PoC Library'
merge-input-dialect: 'Any-JUnit'
merged_junit_filename: 'unittest.xml'
Expand Down
221 changes: 175 additions & 46 deletions .github/workflows/Simulate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,17 @@ on:
osvvm-artifact-prefix:
description: 'Prefix of OSVVM artifacts.'
required: false
default: 'OSVVM'
default: 'BuildOSVVM'
type: string
poc-artifact-prefix:
description: 'Prefix of PoC artifacts.'
required: false
default: 'PoC'
default: 'BuildPoC'
type: string
sim-artifact-prefix:
description: 'Prefix of PoC artifacts.'
required: false
default: 'SimPoC'
type: string

jobs:
Expand All @@ -51,15 +56,19 @@ jobs:
tempDirectory: ${{ steps.Variables.outputs.tempDirectory }}
startScript: ${{ steps.Variables.outputs.startScript }}
artifactSuffix: ${{ steps.Variables.outputs.artifactSuffix }}
osvvmGenerated: ${{ steps.ArtifactNames.outputs.osvvmGenerated }}
osvvmLibraries: ${{ steps.ArtifactNames.outputs.osvvmLibraries }}
osvvmReportHTML: ${{ steps.ArtifactNames.outputs.osvvmReportHTML }}
osvvmReportYAML: ${{ steps.ArtifactNames.outputs.osvvmReportYAML }}
osvvmReportXML: ${{ steps.ArtifactNames.outputs.osvvmReportXML }}
osvvmGenerated: ${{ steps.ArtifactNames.outputs.osvvmGenerated }}
pocGenerated: ${{ steps.ArtifactNames.outputs.pocGenerated }}
pocLibraries: ${{ steps.ArtifactNames.outputs.pocLibraries }}
pocReportHTML: ${{ steps.ArtifactNames.outputs.pocReportHTML }}
pocReportYAML: ${{ steps.ArtifactNames.outputs.pocReportYAML }}
pocReportXML: ${{ steps.ArtifactNames.outputs.pocReportXML }}
simReportHTML: ${{ steps.ArtifactNames.outputs.simReportHTML }}
simReportYAML: ${{ steps.ArtifactNames.outputs.simReportYAML }}
simReportXML: ${{ steps.ArtifactNames.outputs.simReportXML }}

steps:
- name: 🖉 Compute variables
Expand Down Expand Up @@ -87,15 +96,19 @@ jobs:
id: ArtifactNames
run: |
tee --append "${GITHUB_OUTPUT}" <<EOF
osvvmGenerated=${{ inputs.osvvm-artifact-prefix }}-Generated-${{ steps.Variables.outputs.artifactSuffix }}
osvvmLibraries=${{ inputs.osvvm-artifact-prefix }}-Libraries-${{ steps.Variables.outputs.artifactSuffix }}
osvvmReportHTML=${{ inputs.osvvm-artifact-prefix }}-Report-HTML-${{ steps.Variables.outputs.artifactSuffix }}
osvvmReportXML=${{ inputs.osvvm-artifact-prefix }}-Report-XML-${{ steps.Variables.outputs.artifactSuffix }}
osvvmReportYAML=${{ inputs.osvvm-artifact-prefix }}-Report-YAML-${{ steps.Variables.outputs.artifactSuffix }}
osvvmGenerated=${{ inputs.osvvm-artifact-prefix }}-Generated-${{ steps.Variables.outputs.artifactSuffix }}
pocGenerated=${{ inputs.poc-artifact-prefix }}-Generated-${{ steps.Variables.outputs.artifactSuffix }}
pocLibraries=${{ inputs.poc-artifact-prefix }}-Libraries-${{ steps.Variables.outputs.artifactSuffix }}
pocReportHTML=${{ inputs.poc-artifact-prefix }}-Report-HTML-${{ steps.Variables.outputs.artifactSuffix }}
pocReportXML=${{ inputs.poc-artifact-prefix }}-Report-XML-${{ steps.Variables.outputs.artifactSuffix }}
pocReportYAML=${{ inputs.poc-artifact-prefix }}-Report-YAML-${{ steps.Variables.outputs.artifactSuffix }}
simReportHTML=${{ inputs.sim-artifact-prefix }}-Report-HTML-${{ steps.Variables.outputs.artifactSuffix }}
simReportXML=${{ inputs.sim-artifact-prefix }}-Report-XML-${{ steps.Variables.outputs.artifactSuffix }}
simReportYAML=${{ inputs.sim-artifact-prefix }}-Report-YAML-${{ steps.Variables.outputs.artifactSuffix }}
EOF

Build-OSVVM:
Expand Down Expand Up @@ -144,18 +157,26 @@ jobs:
cd "${{ needs.Parameters.outputs.tempDirectory }}"
REGRESSION_STEP=osvvm nvc --do ../../regression.tcl

- name: 📤 Upload '${{ needs.Parameters.outputs.osvvmReportHTML }}' artifacts
- name: 🪳 Debugging
run: |
tree temp

- name: 📤 Upload '${{ needs.Parameters.outputs.osvvmGenerated }}' artifacts
uses: pyTooling/upload-artifact@v7
continue-on-error: true
with:
name: ${{ needs.Parameters.outputs.osvvmReportHTML }}
name: ${{ needs.Parameters.outputs.osvvmGenerated }}
path: |
lib/osvvm/*_generated.vhd
retention-days: 1

- name: 📤 Upload '${{ needs.Parameters.outputs.osvvmLibraries }}' artifacts
uses: pyTooling/upload-artifact@v7
with:
name: ${{ needs.Parameters.outputs.osvvmLibraries }}
working-directory: '${{ needs.Parameters.outputs.tempDirectory }}'
path: |
OsvvmLibraries/logs
OsvvmLibraries/reports
OsvvmLibraries/*.html
*.html
*.yml
VHDL_LIBS
retention-days: 1

- name: 📤 Upload '${{ needs.Parameters.outputs.osvvmReportYAML }}' artifacts
Expand All @@ -178,22 +199,18 @@ jobs:
*.xml
retention-days: 1

- name: 📤 Upload '${{ needs.Parameters.outputs.osvvmLibraries }}' artifacts
uses: pyTooling/upload-artifact@v7
with:
name: ${{ needs.Parameters.outputs.osvvmLibraries }}
working-directory: '${{ needs.Parameters.outputs.tempDirectory }}'
path: |
VHDL_LIBS
retention-days: 1

- name: 📤 Upload '${{ needs.Parameters.outputs.osvvmGenerated }}' artifacts
- name: 📤 Upload '${{ needs.Parameters.outputs.osvvmReportHTML }}' artifacts
uses: pyTooling/upload-artifact@v7
continue-on-error: true
with:
name: ${{ needs.Parameters.outputs.osvvmGenerated }}
name: ${{ needs.Parameters.outputs.osvvmReportHTML }}
working-directory: '${{ needs.Parameters.outputs.tempDirectory }}'
path: |
lib/osvvm/*_generated.vhd
OsvvmLibraries/logs
OsvvmLibraries/reports
OsvvmLibraries/*.html
*.html
*.yml
retention-days: 1

Build-PoC:
Expand Down Expand Up @@ -231,8 +248,6 @@ jobs:
run: |
mkdir -p "${{ needs.Parameters.outputs.tempDirectory }}"

mv src/common/local_configuration.vhdl.template tb/common/local_configuration.vhdl

- name: 📥 Download artifacts '${{ needs.Parameters.outputs.osvvmLibraries }}' from 'Build-OSVVM' job
uses: pyTooling/download-artifact@v8
with:
Expand All @@ -256,17 +271,47 @@ jobs:
cd "${{ needs.Parameters.outputs.tempDirectory }}"
REGRESSION_STEP=poc nvc --do ../../regression.tcl

- name: 📈 Simulate PoC (GHDL)
if: inputs.simulator == 'ghdl'
- name: 🪳 Debugging
run: |
cd "${{ needs.Parameters.outputs.tempDirectory }}"
REGRESSION_STEP=test tclsh ../../regression.tcl
tree temp

- name: 📈 Simulate PoC (NVC)
if: always() && inputs.simulator == 'nvc'
run: |
cd "${{ needs.Parameters.outputs.tempDirectory }}"
REGRESSION_STEP=test nvc --do ../../regression.tcl
- name: 📤 Upload '${{ needs.Parameters.outputs.pocGenerated }}' artifacts
uses: pyTooling/upload-artifact@v7
continue-on-error: true
with:
name: ${{ needs.Parameters.outputs.pocGenerated }}
path: |
tb/common/local_configuration.vhdl
retention-days: 1

- name: 📤 Upload '${{ needs.Parameters.outputs.pocLibraries }}' artifacts
uses: pyTooling/upload-artifact@v7
with:
name: ${{ needs.Parameters.outputs.pocLibraries }}
working-directory: '${{ needs.Parameters.outputs.tempDirectory }}'
path: |
VHDL_LIBS
retention-days: 1

- name: 📤 Upload '${{ needs.Parameters.outputs.pocReportYAML }}' artifacts
uses: pyTooling/upload-artifact@v7
continue-on-error: true
with:
name: ${{ needs.Parameters.outputs.pocReportYAML }}
working-directory: '${{ needs.Parameters.outputs.tempDirectory }}/RunAllTests'
path: |
*.yml
retention-days: 1

- name: 📤 Upload '${{ needs.Parameters.outputs.pocReportXML }}' artifacts
uses: pyTooling/upload-artifact@v7
continue-on-error: true
with:
name: ${{ needs.Parameters.outputs.pocReportXML }}
working-directory: '${{ needs.Parameters.outputs.tempDirectory }}/RunAllTests'
path: |
*.xml
retention-days: 1

- name: 📤 Upload '${{ needs.Parameters.outputs.pocReportHTML }}' artifacts
uses: pyTooling/upload-artifact@v7
Expand All @@ -287,31 +332,115 @@ jobs:
*.html
retention-days: 1

- name: 📤 Upload '${{ needs.Parameters.outputs.pocReportYAML }}' artifacts
Sim-PoC:
name: Simulate PoC
runs-on: ${{ inputs.ubuntu-version }}
needs:
- Parameters
- Build-OSVVM
- Build-PoC
continue-on-error: ${{ inputs.can-fail }}
steps:
- name: ⏬ Checkout repository
uses: actions/checkout@v6
with:
lfs: true
submodules: true

- name: 🔧 Install tcllib (GHDL)
if: inputs.simulator == 'ghdl'
run: sudo apt-get install -y --no-install-recommends tcllib

- name: Setup GHDL - ${{ inputs.ghdl-backend }}
uses: ghdl/setup-ghdl@v1
if: inputs.simulator == 'ghdl'
with:
version: ${{ inputs.ghdl-version }}
backend: ${{ inputs.ghdl-backend }}

- name: Setup NVC
uses: nickg/setup-nvc@v1
if: inputs.simulator == 'nvc'
with:
version: ${{ inputs.nvc-version }}

- name: Prepare
run: |
mkdir -p "${{ needs.Parameters.outputs.tempDirectory }}"

- name: 📥 Download artifacts '${{ needs.Parameters.outputs.osvvmLibraries }}' from 'Build-OSVVM' job
uses: pyTooling/download-artifact@v8
with:
name: ${{ needs.Parameters.outputs.osvvmLibraries }}
path: "${{ needs.Parameters.outputs.tempDirectory }}"

- name: 📥 Download artifacts '${{ needs.Parameters.outputs.osvvmGenerated }}' from 'Build-OSVVM' job
uses: pyTooling/download-artifact@v8
with:
name: ${{ needs.Parameters.outputs.osvvmGenerated }}

- name: 📥 Download artifacts '${{ needs.Parameters.outputs.pocLibraries }}' from 'Build-PoC' job
uses: pyTooling/download-artifact@v8
with:
name: ${{ needs.Parameters.outputs.pocLibraries }}
path: "${{ needs.Parameters.outputs.tempDirectory }}"

- name: 📥 Download artifacts '${{ needs.Parameters.outputs.pocGenerated }}' from 'Build-PoC' job
uses: pyTooling/download-artifact@v8
with:
name: ${{ needs.Parameters.outputs.pocGenerated }}

- name: 📈 Simulate PoC (GHDL)
if: inputs.simulator == 'ghdl'
run: |
cd "${{ needs.Parameters.outputs.tempDirectory }}"
REGRESSION_STEP=test tclsh ../../regression.tcl

- name: 📈 Simulate PoC (NVC)
if: always() && inputs.simulator == 'nvc'
run: |
cd "${{ needs.Parameters.outputs.tempDirectory }}"
REGRESSION_STEP=test nvc --do ../../regression.tcl

- name: 🪳 Debugging
run: |
tree temp

- name: 📤 Upload '${{ needs.Parameters.outputs.simReportYAML }}' artifacts
uses: pyTooling/upload-artifact@v7
continue-on-error: true
with:
name: ${{ needs.Parameters.outputs.pocReportYAML }}
name: ${{ needs.Parameters.outputs.simReportYAML }}
working-directory: '${{ needs.Parameters.outputs.tempDirectory }}/RunAllTests'
path: |
*.yml
retention-days: 1

- name: 📤 Upload '${{ needs.Parameters.outputs.pocReportXML }}' artifacts
- name: 📤 Upload '${{ needs.Parameters.outputs.simReportXML }}' artifacts
uses: pyTooling/upload-artifact@v7
continue-on-error: true
with:
name: ${{ needs.Parameters.outputs.pocReportXML }}
name: ${{ needs.Parameters.outputs.simReportXML }}
working-directory: '${{ needs.Parameters.outputs.tempDirectory }}/RunAllTests'
path: |
*.xml
retention-days: 1

# - name: 📤 Upload '${{ needs.Parameters.outputs.pocLibraries }}' artifacts
# uses: pyTooling/upload-artifact@v7
# with:
# name: ${{ needs.Parameters.outputs.pocLibraries }}
# working-directory: '${{ needs.Parameters.outputs.tempDirectory }}'
# path: |
# VHDL_LIBS
# retention-days: 1
- name: 📤 Upload '${{ needs.Parameters.outputs.simReportHTML }}' artifacts
uses: pyTooling/upload-artifact@v7
continue-on-error: true
with:
name: ${{ needs.Parameters.outputs.simReportHTML }}
working-directory: '${{ needs.Parameters.outputs.tempDirectory }}'
path: |
OsvvmLibraries/logs
OsvvmLibraries/reports
OsvvmLibraries/*.html
PoC/logs
PoC/reports
PoC/*.html
RunAllTests/logs
RunAllTests/reports
RunAllTests/*.html
*.html
retention-days: 1
Loading
Loading