Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Upgrade from Vivado HLS to Vitis HLS v2024.2
Make all csim testbenches self-checking. fix: fix Makefile HLS compiler flows Update Makefile to automate HLS project generation and error handling improvements - Add USE_VITIS variable to select vitis (USE_VITIS=1 default) or vivado_hls (USE_VITIS=0) - add spdlog support for debug - auto-generate Tcl script flow using python (provide %.tcl rule fails numerous hls components) - must enumerate C and CXX hls target files for Tcl support auto-gen flow and only a subset of files are actually hls components - fix LD_LIBRARY_PATH and add to compile command ( missing /usr/lib/x86_64-linux-gnu - allow Makefile to process all targets despite failing hls compile - add clean target - add .PRECIOUS: %.bin to allow debug of .bin flow fix: update .gitignore Update .gitignore to exclude build artifacts, virtual environments, and auto-generated files for cleaner repositories feat: add semantic-release support feat: add generate HLS csynth script - include default HLS configuration - add pytest - note: this is used by examples/Makefile fix: remove examples/tcl script auto-gen'ed now fix: rename gen_hls_csynth_script.py Rename gen_vivado_hls_csynth_script.py to gen_hls_csynth_script.py fix: fix missing call to fir The firI1/I2/Q1/Q2 filter functions are missing fir implementation. fix: add M-1 stage butterflies in FFT calc fft_streaming function missing M-1 butterflies. Only had 1 butterfly. fix: correct delay line init with in vals for block FIR fix: incorrect NUM_TAPS - should be 16 fix: remove spurious ap_int.h include hls compiler fails with ap_int.h include fix: broken delay line input var access input var was accessed as scaler not array. fix: missing include histogram.h fix: missing variables i and j declaration fix: missing hls_stream.h inc & var defines fix: incorrect include file name fix: incorrect S define and LB & UB declares LB & UB are not scalers but arrays. fix: incorrect S definition fix: incorrect var / wrong pragma defines pragmas were referencing non-existent vars fix: incorrect window var access for printf feat: add hls component csynth log extract script To track warnings, errors, performance results of hls book examples add python script to parse hls compiler csynth log files (for both vivado and vitis hls). The output is a yaml file that reports and plots can be generated. fix: gitignore auto-gen'ed .dat and .bmp files feat: add gen_template_report.py Add script to generate a summary report of all hls component status. Generate an asciidoc report and use docToolchain to generate a PDF of the report if desired. fix: resolve semantic-release changelog config fix: rename .commitlintrc.js to .commitlint.config.js fix: remove leading dot from commitlint.config.js fix: use more generic rule with broader application chore(release): 1.0.0 [skip ci] * add M-1 stage butterflies in FFT calc ([c372981](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/c372981da21b96bf0cfc17f203846f26767775ac)) * broken delay line input var access ([ae66946](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/ae66946e007550ab8af36274debc298d9b3c5edb)) * correct delay line init with in vals for block FIR ([a20fa8a](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/a20fa8a9ca439be37bec06c75f6c9935085e0755)) * fix Makefile HLS compiler flows ([790d01b](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/790d01b842b2a6bcf1d164ae40be6c125521186a)) * fix missing call to fir ([cce6a75](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/cce6a75b303cde96a9c26bc5645055e7ea602edc)) * gitignore auto-gen'ed .dat and .bmp files ([38a11a8](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/38a11a88141434efd4d9dff2ffc1c1f8cbc995a4)) * incorrect include file name ([4ba2adc](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/4ba2adc488338b345d54124b9e91f9167290151d)) * incorrect NUM_TAPS - should be 16 ([5771214](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/5771214b9ef93fa24757a66cfe10fc393e08c399)) * incorrect S define and LB & UB declares ([3791562](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/3791562e0b6dda8664ed52cd970b54ae760f4a46)) * incorrect S definition ([0b8cbdd](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/0b8cbdd3eaa30a95b09baad33da0d9173eb761c9)) * incorrect var / wrong pragma defines ([2c017e4](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/2c017e48bd24a15b2b97eb4e3c228aec4505a670)) * incorrect window var access for printf ([67fb24e](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/67fb24e3b9bab719dce0f0b9d6a2e0d1db24d024)) * missing hls_stream.h inc & var defines ([79b7e6d](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/79b7e6d83f7578de1944fd15e761d87720c3dbae)) * missing include histogram.h ([ef3335e](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/ef3335e96452b1caf5d83fffd5c35407ba549e55)) * missing variables i and j declaration ([0362328](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/036232889663dd6dd23e7bb39331d3018dba3d93)) * remove examples/tcl script auto-gen'ed now ([a96623a](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/a96623aa4adfc3bba50bd8765cbde4fcf198cff3)) * remove leading dot from commitlint.config.js ([11a4071](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/11a4071ca44a9d600b14d387043d258d8e0893cd)) * remove spurious ap_int.h include ([a183982](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/a183982ebaa1477557d55166268af4b98922dda9)) * rename .commitlintrc.js to .commitlint.config.js ([8890542](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/88905424e0be06842df0f8d48977ed8802ed754e)) * rename gen_hls_csynth_script.py ([d55fc63](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/d55fc63b2ce88f860cfdc955ad8dbf4510208ea3)) * resolve semantic-release changelog config ([d040b9c](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/d040b9c200e8cafbb0c3b3850978799e34a2e687)) * update .gitignore ([a67dc13](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/a67dc132a08b96bcd76b39d82d1f2a9568915f2a)) * use more generic rule with broader application ([fe1656e](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/fe1656e4ed74469741b1af872cce7d41fd24b8bb)) * add gen_template_report.py ([5c7ba32](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/5c7ba321fdc50288e5b0b86982e35a22f3acf4f3)) * add generate HLS csynth script ([e08baf6](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/e08baf615ab4d0901563cece5f2425a6e0e8ff87)) * add hls component csynth log extract script ([5657582](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/5657582ed3d2f4dd2c7a2756fd3d2d332f0d0022)) * add semantic-release support ([e91efca](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/e91efca86caeb18718713012dec2e6df718caa90)) fix: disable body-max-line-length during release Don't throw error when release message line length too long. chore(release): 1.0.1 [skip ci] * disable body-max-line-length during release ([3f31e15](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/3f31e1591fae85f747db10d368b473de5e4d1185)) fix: remove spurious commitlint cfg file Use commitlint.config.js instead fix: incorrect factor value Unlike vitis_hls, vivado_hls with an ARRAY_PARTION factor value set to a value larger than the array size will throw an error. vitis_hls, I think, will simply set the factor to the array size. fix: same named variables - vivado_hls In vivado_hls, it is illegal (bug) if there are 2 same named loop variables in the same function even if the local scope is exclusive. This is not a problem in vitis_hls. chore(release): 1.0.2 [skip ci] * incorrect factor value ([410e644](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/410e64406de1b4398d8f2effc4653d962979388b)) * remove spurious commitlint cfg file ([451ca97](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/451ca971628a8fe7ede4a65ee09b39f721bc5b31)) * same named variables - vivado_hls ([876016a](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/876016aebc15d4589192cb06fc66b53d1c113498)) fix: add python requirements.txt for venv setup To setup python venv on xsjapps (without sudo), run: python -m venv .venv --without-pip source .venv/bin/activate pip install -r requirements.txt fix: update venv requirements.txt fix: add more robust support for pdflatex pdflatex (converts Tex to PDF) is part of Texlive distribution. include URL ref to distro and docker image chore: remove vestigial comments style: remove commented out code Much of the code in this codebase get included into the HLS book doc itself. chore(release): 1.0.3 [skip ci] * add more robust support for pdflatex ([cc42632](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/cc426329d0d4cba3ba3b052e9c6d99901c4fbf26)) * add python requirements.txt for venv setup ([db839ba](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/db839ba3ebcade2a2b0bab48f821cd96db8d1b04)) * update venv requirements.txt ([7346e7a](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/7346e7a35e608b94c401de1943197bb84a962e29)) fix: add semantic-release support to Makefile At top Makefile, run make manual-release to auto-update CHANGELOG.md and create new semantic version tag based on commit message (conventional commit format). docs: remove environ specific notes feat: replace term Vivado with Vitis See main.tex vivado and VHLS newcommands. chore(release): 1.1.0 [skip ci] * add semantic-release support to Makefile ([c32880a](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/c32880a912ba1824a1fd53ef1cd14699e987abc3)) * replace term Vivado with Vitis ([4817cf6](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/4817cf6a23f959730abb297b7a0ed38b0c57375e)) fix: add synth/impl freq support / rename yml file Rename __hls_log_csynth_data_extract__.yml to __hls_log_data_extract__.yml fix: add complex_fir-top.cpp test / use fir() with fir.h Use fir.c instead of fir11_initial.c Add fir.h and update fir-top.c to use fir() signature in include file. fix: initialize variables / remove spurious loop block_fir output is not all value -1452 just the last one. Modify and only test last output as pass/fail check. fix: initialize y variable Should this be a requirement in the testbench instead. spm2_restructured.cpp also initializes and this is an issue when testing on a host platform if default is nonzero. fix: fix vitis path detection / set CC=gcc / support mixed C/C++ compile complex_fir-top.cpp test requires mixed C and C++ compilation fix: uninitialized out[0] and spurious A variable fix: add fir11_initial.c testbench update __hls_config__.ini to include fir11_initial-top.c fix: add block_mm-top.cpp This is a merge of blockmatmul_test_init.cpp and blockmatmul_test.cpp files. These are both partially complete testbenches but ought not be changed because they are used in the HLS book itself. fix: increase to ap_fixed<16,2> to increase CORDIC accuracy With data type of CORDIC at ap_fixed<12,2> the worst case error is over 41%. With 16 bits, it drops to around 3.1% with cordic.cpp and even lower with cordic_fixed.cpp fix: make cordic testbenches self-checking add self-checking support to cordic-top.cpp and cordic_fixed-top.cpp testbenches chore(release): 1.1.1 [skip ci] * add block_mm-top.cpp ([98085ee](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/98085ee903cf6d14f9ce53994f05bc5e9efe88fe)) * add complex_fir-top.cpp test / use fir() with fir.h ([7cdc9dc](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/7cdc9dc0e038df2d69701927a1845e038d24ecd4)) * add fir11_initial.c testbench ([f4518a0](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/f4518a073097c45bf62079f857b35991770bef19)) * add synth/impl freq support / rename yml file ([7477364](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/74773644811a9de79383f25889bdee42064bcac1)) * fix vitis path detection / set CC=gcc / support mixed C/C++ compile ([5dc07fb](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/5dc07fb80b4b890dd47cbb18de3d96910b9c0be0)) * increase to ap_fixed<16,2> to increase CORDIC accuracy ([c1b434f](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/c1b434f8b130bc9333c1d374298f9c4d4d06f160)) * initialize variables / remove spurious loop ([9879f92](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/9879f92ce430237e17b1b88d1dab75a100aa6f9d)) * initialize y variable ([34c3d2b](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/34c3d2b8246c9404a918321b33f743a236266edc)) * make cordic testbenches self-checking ([4d9f0c8](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/4d9f0c8f689ef5d2791ceb075c2705d8a9ef8c4d)) * uninitialized out[0] and spurious A variable ([64b134f](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/64b134f28591659ebff47ad33ee85515fe751ae2)) fix: add self-checking support on prefixsum testbenches fix: add self-checking support to video_2dfilter-top.c fix: add support file to generate reference test image Add C++ programs to support video_2dfilter-top.c testbench. The support files, video_2dfilter_opencv.cpp and compare_images_opencv.cpp, use OpenCV API to generate an independent golden reference file, test_20x20_filtered_opencv.bmp fix: add self-check bench for boundary condition 2d filter fix: add borderType support to video_2dfilter_opencv.cpp Add option to specify the cv::borderType when running video_2dfilter_opencv.cpp so you can set the way the border gets processed when running cv::filter2D chore(release): 1.1.2 [skip ci] * add borderType support to video_2dfilter_opencv.cpp ([16a2f5f](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/16a2f5fc9239f52fa5ff81dee9f08aaef01ea96e)) * add self-check bench for boundary condition 2d filter ([d58e41e](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/d58e41e0d096aa43032ec88f9de4140511416941)) * add self-checking support on prefixsum testbenches ([b61ea8e](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/b61ea8e59b14ece12c3c47607971a8f6e32fdd87)) * add self-checking support to video_2dfilter-top.c ([c67a939](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/c67a9396c72ea17f8064d6e3ebf0d51e183861e5)) * add support file to generate reference test image ([a9b9828](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/a9b9828518906ad38dfa4ff41efea526e1c6b6f1)) fix: add self-check on video linebuffer variant tbs fix: clean up semantic-release support chore(release): 1.1.3 [skip ci] * add self-check on video linebuffer variant tbs ([5443703](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/54437032011a6b4953d1554878240b11de1cf72c)) * clean up semantic-release support ([57eb3c6](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/57eb3c6ac19d2a206eab9dde85c7aeb901a63f4e)) fix: clean up Makefile remove use of test_20x20_border_replicate.bmp file since it's same as test_20x20_filtered_opencv.bmp chore(release): 1.1.4 [skip ci] * clean up Makefile ([f5efc3c](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/f5efc3c2c7a102c29790343f93f7466d6fc6ed24)) fix: fix author name and keywords in package.json chore(release): 1.1.5 [skip ci] * fix author name and keywords in package.json ([7f63f66](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/7f63f665da7120002dd491a3b988f2f0ccbebb1f)) fix: remove unnecessary .npmrc chore(release): 1.1.6 [skip ci] * remove unnecessary .npmrc ([35b91d7](https://gitenterprise.xilinx.com/mpettigr/pp4fpgas/commit/35b91d74abc769f0b5437e19f9bf4309d2873700)) fix: VHLS path to use Vitis HLS v2024.2 Vitis v2024.2 moves the Vitis HLS include path from the Vitis_HLS area to Vitis proper. Update VHLS env var to correct search path. fix: clean up makefile and add release branch chore(release): 1.1.7 [skip ci] * clean up makefile and add release branch ([1e4d691](mpettigr@1e4d691)) * VHLS path to use Vitis HLS v2024.2 ([714d652](mpettigr@714d652)) fix: remove npm semantic-release support fix: add hls tcl runner script Auto-generate fix: test with versal @ 500MHz
- Loading branch information