check diff #12
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
name: Run UVM tests | |
on: | |
push: # This now triggers on pushes to any branch | |
jobs: | |
Bus-Wrap: | |
runs-on: ubuntu-latest | |
name: Generate | |
steps: | |
- name: Set variables | |
run: | | |
github_repo=${{ github.repository }} | |
github_repo=${github_repo#*/} | |
echo "BUSWRAP_PATH=./bus-wrap" >> $GITHUB_ENV | |
echo "BUSWRAP_REPO=efabless/BusWrap" >> $GITHUB_ENV | |
echo "IP_PATH=./ip" >> $GITHUB_ENV | |
echo "IP_NAME=${github_repo}" >> $GITHUB_ENV | |
- name: Install iverilog | |
run: | | |
sudo apt-get update -qq | |
sudo apt-get install -y iverilog | |
- name: Install dependencies | |
shell: bash | |
run: | | |
sudo apt-get -y install --no-install-recommends git python3 python3-click python3-unidiff | |
- name: Install Verible | |
uses: chipsalliance/verible-actions-common/install-verible@main | |
- uses: actions/checkout@v4 | |
name: Checkout ${{ env.BUSWRAP_REPO }} | |
with: | |
repository: ${{ env.BUSWRAP_REPO }} | |
path: ${{ env.BUSWRAP_PATH }} | |
- uses: actions/checkout@v4 | |
name: Checkout ${{ github.repository }} | |
with: | |
path: ${{ env.IP_PATH }} | |
- name: Execute BusWrap flow | |
run: | | |
set -x | |
ip_dir=${{ env.IP_PATH }} | |
ip_name=${{ env.IP_NAME }} | |
bus_wrap_dir=${{ env.BUSWRAP_PATH }} | |
rm -rf ${ip_dir}/hdl/rtl/bus_wrappers | |
rm -rf ${ip_dir}/README.md | |
rm -rf ${ip_dir}/verify/README.md | |
rm -rf ${ip_dir}/fw/${ip_name}_regs.h | |
git -C ${{ env.IP_PATH }} status | |
mkdir -p ${ip_dir}/hdl/rtl/bus_wrappers/dft | |
python3 $bus_wrap_dir/scripts/bus_wrap.py ${ip_dir}/${ip_name}.yaml -apb > ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_APB.dev.v | |
python3 $bus_wrap_dir/scripts/bus_wrap.py ${ip_dir}/${ip_name}.yaml -apb -dft > ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_APB_DFT.dev.v | |
python3 $bus_wrap_dir/scripts/bus_wrap.py ${ip_dir}/${ip_name}.yaml -wb > ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_WB.dev.v | |
python3 $bus_wrap_dir/scripts/bus_wrap.py ${ip_dir}/${ip_name}.yaml -wb -dft > ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_WB_DFT.dev.v | |
python3 $bus_wrap_dir/scripts/bus_wrap.py ${ip_dir}/${ip_name}.yaml -ahbl > ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_AHBL.dev.v | |
python3 $bus_wrap_dir/scripts/bus_wrap.py ${ip_dir}/${ip_name}.yaml -ahbl -dft > ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_AHBL_DFT.dev.v | |
iverilog -E -I$bus_wrap_dir/includes/rtl -o ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_APB.v ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_APB.dev.v | |
iverilog -E -I$bus_wrap_dir/includes/rtl -o ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_APB_DFT.v ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_APB_DFT.dev.v | |
iverilog -E -I$bus_wrap_dir/includes/rtl -o ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_WB.v ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_WB.dev.v | |
iverilog -E -I$bus_wrap_dir/includes/rtl -o ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_WB_DFT.v ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_WB_DFT.dev.v | |
iverilog -E -I$bus_wrap_dir/includes/rtl -o ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_AHBL.v ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_AHBL.dev.v | |
iverilog -E -I$bus_wrap_dir/includes/rtl -o ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_AHBL_DFT.v ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_AHBL_DFT.dev.v | |
verible-verilog-format --inplace ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_APB.v | |
verible-verilog-format --inplace ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_APB_DFT.v | |
verible-verilog-format --inplace ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_WB.v | |
verible-verilog-format --inplace ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_WB_DFT.v | |
verible-verilog-format --inplace ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_AHBL.v | |
verible-verilog-format --inplace ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_AHBL_DFT.v | |
python3 $bus_wrap_dir/scripts/bus_wrap.py ${ip_dir}/${ip_name}.yaml -ahbl -md | head -n -18 > ${ip_dir}/README.md | |
python3 $bus_wrap_dir/scripts/bus_wrap.py ${ip_dir}/${ip_name}.yaml -ahbl -md | tail -n 18 > ${ip_dir}/verify/README.md | |
# fw | |
python3 $bus_wrap_dir/scripts/bus_wrap.py ${ip_dir}/${ip_name}.yaml -ch > ${ip_dir}/fw/${ip_name}_regs.h | |
# remove extra lines and comment | |
sed -i '/^$/N;/^\n$/D' ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_APB.v | |
sed -i '/^$/N;/^\n$/D' ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_APB_DFT.v | |
sed -i '/^$/N;/^\n$/D' ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_WB.v | |
sed -i '/^$/N;/^\n$/D' ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_WB_DFT.v | |
sed -i '/^$/N;/^\n$/D' ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_AHBL.v | |
sed -i '/^$/N;/^\n$/D' ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_AHBL_DFT.v | |
# add line between timescale and default_nettype | |
sed -i 's/`timescale 1ns \/ 1ps `default_nettype none/`timescale 1ns \/ 1ps\n`default_nettype none/' ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_APB.v | |
sed -i 's/`timescale 1ns \/ 1ps `default_nettype none/`timescale 1ns \/ 1ps\n`default_nettype none/' ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_APB_DFT.v | |
sed -i 's/`timescale 1ns \/ 1ps `default_nettype none/`timescale 1ns \/ 1ps\n`default_nettype none/' ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_WB.v | |
sed -i 's/`timescale 1ns \/ 1ps `default_nettype none/`timescale 1ns \/ 1ps\n`default_nettype none/' ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_WB_DFT.v | |
sed -i 's/`timescale 1ns \/ 1ps `default_nettype none/`timescale 1ns \/ 1ps\n`default_nettype none/' ${ip_dir}/hdl/rtl/bus_wrappers/${ip_name}_AHBL.v | |
sed -i 's/`timescale 1ns \/ 1ps `default_nettype none/`timescale 1ns \/ 1ps\n`default_nettype none/' ${ip_dir}/hdl/rtl/bus_wrappers/dft/${ip_name}_AHBL_DFT.v | |
# - name: Push output files to a branch | |
# - name: Create a pullrequest from the branch to main | |
- name: Check output | |
run: | | |
git -C ${{ env.IP_PATH }} status | |
git -C ${{ env.IP_PATH }} diff |