hw: fix bit-widths (#388) #1813
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright 2023 ETH Zurich and University of Bologna. | |
# Licensed under the Apache License, Version 2.0, see LICENSE for details. | |
# SPDX-License-Identifier: Apache-2.0 | |
# Run all lint checks | |
name: lint | |
on: | |
push: | |
branches: ["main"] | |
pull_request: | |
branches: ["main"] | |
jobs: | |
################ | |
# Verible Lint # | |
################ | |
verible-lint: | |
name: Lint Verilog sources | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: chipsalliance/verible-linter-action@main | |
with: | |
paths: | | |
./hw | |
exclude_paths: | | |
./hw/future/test | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
fail_on_error: true | |
reviewdog_reporter: github-check | |
extra_args: "--waiver_files util/lint/waiver.verible" | |
verible_version: "v0.0-3318-g8d254167" | |
##################### | |
# Vendor Up-to-Date # | |
##################### | |
bender-vendor-up-to-date: | |
name: Check bender vendor up-to-date | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check bender vendor up-to-date | |
uses: pulp-platform/pulp-actions/[email protected] | |
###################### | |
# Opcodes Up-to-Date # | |
###################### | |
check-opcodes: | |
name: Check Opcodes Up-to-Date | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Update opcodes and diff | |
run: | | |
./util/generate-opcodes.sh | |
- name: Diff porcelain | |
uses: mmontes11/[email protected] | |
with: | |
message: Found differences, please update all opcode | |
################# | |
# Check License # | |
################# | |
license-lint: | |
name: Check License headers | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check License | |
uses: pulp-platform/pulp-actions/[email protected] | |
with: | |
patches: 0001-Allow-hash-comments-in-assembly.patch | |
# We cover ETH Zurich and lowRISC licenses and Apache 2.0 | |
# (mostly for SW) and Solderpad for the hardware. | |
# yamllint disable rule:line-length | |
license: | | |
Copyright (\d{4}(-\d{4})?\s)?(ETH Zurich and University of Bologna|lowRISC contributors|KU Leuven). | |
(Solderpad Hardware License, Version 0.51|Licensed under the Apache License, Version 2.0), see LICENSE for details. | |
SPDX-License-Identifier: (SHL-0.51|Apache-2.0) | |
# yamllint enable rule:line-length | |
match_regex: true | |
exclude_paths: | | |
sw/snRuntime/src/omp/interface.h | |
sw/math/arch/generic/* | |
sw/math/arch/riscv64/bits/* | |
sw/math/include/* | |
sw/math/src/include/* | |
sw/math/src/internal/* | |
sw/math/src/math/* | |
sw/math/Makefile | |
hw/snitch/src/csr_snax_def.sv | |
hw/snax_hwpe_mac/src/* | |
hw/snax_gemm/src/* | |
hw/templates/* | |
target/snitch_cluster/sw/apps/snax-mac/* | |
target/snitch_cluster/sw/apps/snax-mac-simple/* | |
target/snitch_cluster/sw/apps/snax-mac-tiled/* | |
target/snitch_cluster/sw/apps/snax-gemm-base/* | |
target/snitch_cluster/sw/apps/snax-gemm-engine/* | |
################## | |
# Lint YML Files # | |
################## | |
yaml-lint: | |
name: Lint YAML Sources | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: yaml-lint | |
uses: ibiqlik/action-yamllint@v3 | |
with: | |
config_file: util/lint/.yamllint.yml | |
######################## | |
# Check Python Sources # | |
######################## | |
python-lint: | |
runs-on: ubuntu-latest | |
name: Lint Python Sources | |
steps: | |
- name: Check out source repository | |
uses: actions/checkout@v3 | |
- name: Set up Python environment | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.11" | |
- name: flake8 Lint | |
uses: py-actions/flake8@v2 | |
with: | |
flake8-version: "6.0.0" | |
max-line-length: "100" | |
###################### | |
# Clang-Format Check # | |
###################### | |
# Check C/C++ files for correct formatting. | |
clangfmt: | |
name: Lint C/C++ Sources | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: DoozyX/[email protected] | |
with: | |
clangFormatVersion: 10 | |
exclude: './target/snitch_cluster/sw/snax/xdma/include/snax-xdma-csr-addr.h' | |
###################### | |
# Lint Editor Config # | |
###################### | |
# Detect trailing whitespaces, missing new lines and wrong file encodings. | |
editorconfig-lint: | |
name: Lint Editorconfig | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: editorconfig-checker/action-editorconfig-checker@main | |
- run: editorconfig-checker | |
###################### | |
# Lint Scala Files # | |
###################### | |
run: | |
name: Lint Scala Files | |
strategy: | |
matrix: | |
java-version: [17] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout current branch (full) | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: Setup Java | |
uses: actions/setup-java@v3 | |
with: | |
distribution: temurin | |
java-version: ${{ matrix.java-version }} | |
cache: sbt | |
- name: check format | |
working-directory: hw/chisel | |
run: sbt scalafmtCheck |