Version History¶
3.x¶
3.1.0dev¶
In progress
Features¶
Add parameters for SV DUTs
Add global timeout for SV testbenches
Add user-specified header files for testbenches
Improve C++ testbenches - Better SV-like testbench generation as opposed to relying on user macros - New
call_dut()command for Threads (ignored in SV testbenches) - RemovecallTBas an interface argument - Replacec_streamandc_structwithiClass(interface class)and
flit, respectivelyAdd
cpp_vivadoconstructor for ModulesSignificant refactoring, documentation, and method/class renaming
Bugfixes¶
- Fix long run time bug (due to calling int() on a unintentionally large num)
Changes¶
C++ testbench generation¶
This update breaks old Sonar testbenches for C++ testbench generation. To correctly generate C++ testbenches:
- use the
cpp_vivadoconstructor for modules (used to mark the source file as a C++ source for Vivado HLS which is used for some assumptions about DUT signals) - omit the clock and reset signals (added automatically based on cpp_vivado constructor)
- remove the “_V” suffix on signal names (added automatically based on cpp_vivado constructor)
- add any header files that may be needed explicitly (a C++ header file is no longer inferred to exist with the same name as the module)
- update the
c_streamandc_structtags toiClassandflit, respectively (these refer to the AXIS interface type [this may behls::stream<flit_t>or some othertypedefuser class] and the AXIS flit type [this should be the type ofstructused in the AXIS with fields fortdataand other AXIS signals as needed], respectively) - add the
call_tbas needed to call the DUT function
The data file format and testbench template for C++ has also changed and so testbenches need to be regenerated from Sonar.
Refactoring¶
There was significant baggage from legacy JSON/YAML usage in how the project was partioned and organized. Here, we rename methods and classes to follow a more consistent Python style and reorganize, cleanup and document code. The goal of this cleanup is to make future extensions more straightforward.