Commit Graph

116 Commits

Author SHA1 Message Date
J. Wang fa9c9bfe63
Adopt slang as default SystemVerilog frontend and clean up codegen (#80)
* feat(parser): adopt slang as the default SystemVerilog frontend

- replace export RTL parsing with slang elaboration
- replace pack transaction parsing with slang
- remove Verible from normal parser and packaging flows
- fetch pinned slang and fmt releases via make init
- refresh tests and docs for the slang-based workflow

* fix(codegen): resolve filelist-relative inputs and quiet false missing-file logs

* refact(codegen): tidy up content about `_with_slang`

* feat(verible): Remove content about verible

* fix(gcc): Fix ignored attributes in gcc

* fix(parser): avoid gcc ambiguous overload in uvm parse_sv_transactions
2026-03-27 11:04:20 +08:00
SFangYy 42844ae7ed refactor: move pack_opts defaults to picker.cpp and rename example.sv to example-uvm.sv in example folder 2026-01-04 14:47:01 +08:00
SFangYy 0ae0ccb2d9 feat(example): refactor Pack examples and update transaction model 2026-01-04 14:47:01 +08:00
J. Wang 4b5842336d
Add support for macOS (#64)
Add support for macOS:

* bugfix(exprtk): Upgrade verison of exprtk to fix compile error in clang.

* refact: Remove `bits/stdc++.h` and move `src/codegen/cpp.cpp::replace_all` to `include/picker.hpp::str_replace_all`

* feat: Use `dlopen` for non-linux platform.

* fix: Add missing headers

* fix(nproc): Fix bug of missing `nproc` in MacOS

* refactor(python): Adapt python template to macOS

* refactor(mem_direct): Adapt mem_direct template to macOS

* refactor(lib_suffix): Add shared library suffix in code generator

* refactor(dut_base.cpp): Use code generator to set library suffix

* add(cpp): Add cpp support for macOS

* add(java): Add java support for macOS

* refactor(nproc): Set $NPROC to support macOS

* fix(parser/sv): Add missing header file `unordered_set`

* fix(python_macos): fix the wrong suffix of module-type library

* refactor(codegen/lib): generator template use absolute path

* fix(mem_direct): fix link error in macOS

* feat: Use LLVM Clang to compile instead of AppleClang

* feat(golang): Add golang support for macOS

* fix(rpath): fix CMAKE_BUILD_RPATH for macOS

* feat(lua): Add lua support for macOS

* fix(scala): Fix wrong use of static method in scala

* feat(scala): Add scala support for macOS

* refactor(cmake): Upgrade cmake version to 3.15

* feat(doc): Add doc about installing picker on macOS
2025-11-03 10:38:10 +08:00
Makiras 742ef2d942 [feat]: optimize file option to optional, auto search file when sname is selected 2025-10-27 21:06:56 +08:00
FrankOu2001 bc3570eaaa refactor: Enhance waveform export and rename APIs
- Store waveform and coverage export settings in the DUT class.
- **BREAKING CHANGE**: Renamed waveform control APIs to clarify pause/resume semantics:
  - `OpenWaveform` -> `ResumeWaveformDump`
  - `CloseWaveform` -> `PauseWaveformDump`
  - `WaveformClosed` -> `WaveformPaused`
- Fix syntax error in `template/mem_direct/Makefile`.
2025-09-04 15:38:35 +08:00
Makiras 82ff87768f
[feat] add ci tests and workflow optimization
chore(ci,test,build): add CI/tests for GSIM, .sv and Java; xcomm fallback; test preflight
- CI: install default-jdk for Java tests
- Tests: add GSIM export smoke, .sv verilator build, Java export
- test/Makefile: add preflight to auto-clean + rebuild with python+java when missing
- Build: Makefile init falls back to latest master for xcomm when branch missing
- Wire new tests into default test targets
- Run build-and-test and appimage-build on all branches
- Restrict appimage-publish and docker-build-push to master
- Reuse build directory via artifact between jobs to avoid rebuilds
- Fix deps: install swig in CI and AppImage job
- Makefile appimage target reuses existing build/ for install & packing
- Remove standalone AppImage/docker workflows to prevent duplicate runs
- build-and-test: install base toolchain and Kitware CMake
- Build and install SWIG v4.2.1 from source
- Build and install Verilator v5.018 from source
- appimage-build: reuse build/ artifact; minimal deps (appimagetool, linuxdeploy)
- Keep: appimage-build on all branches; publish/docker only on master
- 在 test/Makefile 中让 smoke、sv_build、gsim_smoke 依赖 preflight
- 避免 preflight 执行 clean/rebuild 时其他并发目标找不到构建产物
- preflight 完成后仍保留测试阶段的并行度
2025-09-03 14:24:53 +08:00
FrankOu2001 0b1e3554fb Update: Using the Boolean type to drive the Adder in Java. 2025-08-16 21:59:08 +08:00
Zhicheng 0063b63f58
Add backend simulator GSIM support (#50)
New features:

- add firrtl parser
- add gsim example
- support gsim complete
- support internal signal parse for gsim
- test gsim Nutshell success
- readme: update gsim info

---------
Co-authored-by: Makiras <xieyunlonglong@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-13 15:16:15 +08:00
FrankOu2001 912471d630 Fix typo of example_async.py 2025-08-06 11:23:10 +08:00
J. Wang eb9e61023b
Update example.java (#45) 2025-07-24 14:54:11 +08:00
Makiras 0903a84e90
[fix] parallel build error & non-appimage (#44) 2025-07-10 14:48:27 +08:00
yaozhicheng 7df84adb88 fix(java/scala): fix pakage name 2025-04-30 11:23:00 +08:00
yaozhicheng 10eb845acd fix(issue #36): add dut name to pakage name 2025-04-30 11:23:00 +08:00
yaozhicheng 4519c0dbc6 fix(interlsignal): use new GetInternalSignal interface 2025-04-30 11:23:00 +08:00
yaozhicheng 64b98a71a0 feat(swig): add GetInternalSignal/GetInternalSignalList for lua 2025-04-30 11:23:00 +08:00
yaozhicheng 32f43c1769 new feat(swig): add GetInternalSignalList/GetInternalSignal for java && test pass 2025-04-30 11:23:00 +08:00
yaozhicheng 0b6dd5dc6f feat(swig): add attrOf example 2025-04-30 11:23:00 +08:00
yaozhicheng 65cf7b22c3 fix(chisel): fix compile with jar path 2025-04-30 11:23:00 +08:00
yaozhicheng 3f7f8dfd8d refine example(chisel): add reserve internal signals demo 2025-04-30 11:23:00 +08:00
yaozhicheng 7f0ab3da56 fix(example): make waveFile as the class name in chiselUT 2025-04-30 11:23:00 +08:00
yaozhicheng a0f5db47e1 fix(example): add picker check in chiselUT 2025-04-30 11:23:00 +08:00
yaozhicheng aefc247da7 refine(example): chiselUT add inner-signal access 2025-04-30 11:23:00 +08:00
yaozhicheng 88ce73f1c9 refine(example): refine chiselUT example 2025-04-30 11:23:00 +08:00
yaozhicheng f8706a0e89 fix(swig): add xcfg and test 2025-04-30 11:23:00 +08:00
yaozhicheng e62ea8ac0a new example(chisel): add a chisel ut test example 2025-04-30 11:23:00 +08:00
yaozhicheng 047d426bd5 feat: test Open/CloseWaveform functions 2025-04-30 11:23:00 +08:00
yaozhicheng 3af2c8c32d python: refine typo 2025-04-30 11:23:00 +08:00
Makiras 09039290fb fix: too big gen_addr example 2025-04-30 11:23:00 +08:00
Makiras eb9e31d262 fix: remove in_out render for flat-rw 2025-04-30 11:23:00 +08:00
Makiras 870d8f648b fix: relative path emtpy cause use /
verilator root hardcode, emem_direct rerun logic
2025-04-30 11:23:00 +08:00
Makiras ddce03de56 add CacheSignalCFG example 2025-04-30 11:23:00 +08:00
yaozhicheng d16372b793 example: del -native 2025-04-30 11:23:00 +08:00
yaozhicheng bac81768d5 native: support native signal for python 2025-04-30 11:23:00 +08:00
J. Wang 2528418fe3
Fix typo of `ACondition` (#34) 2025-03-25 16:22:12 +08:00
Makiras a6699e679f fix: remove redundant code in InternalSignals example cpp file 2025-01-08 11:35:10 +08:00
yaozhicheng 16c55094c5 example-InternalSignals: add lua & scala 2025-01-08 11:35:10 +08:00
yaozhicheng d8e1d17bdf example: del comments 2025-01-08 11:35:10 +08:00
Makiras fcf7db4e9b add example: vpi interal support for cpp 2025-01-08 11:35:10 +08:00
Makiras 9055cb1e6a add: java vpi internal signal example 2025-01-08 11:35:10 +08:00
Makiras 72d4d70490 [WIP] add golang example, waiting for xdata update 2025-01-08 11:35:10 +08:00
Makiras 7b70577b45 feat: add FlushWaveForm() to write wave immediately, for debugger
add doc: API statement
2025-01-08 11:35:10 +08:00
yaozhicheng 3c1e6cc43f multi-lang: add Lua support 2025-01-08 11:35:10 +08:00
yaozhicheng a4388a5788 example: add InternalSignals 2025-01-08 11:35:10 +08:00
Makiras 3aa0b3ccae feat: add vpi functions export and internal signal iteration list 2025-01-08 11:35:10 +08:00
yaozhicheng 5e936f25e5 example: add MultiClock test 2024-12-13 17:28:49 +08:00
Makiras 3af0f4f195 fix #24 : remove dpi set function for output signal, which case multi-driven
change clang-format line break from 80 characters to 120, and reformat the project cpp/hpp
2024-12-12 06:11:36 +00:00
yaozhicheng 4dd5052fa8 example: add async example 2024-11-26 14:15:56 +08:00
yaozhicheng 0e8c0278a3 example: add DualPortStackCb 2024-11-26 13:58:51 +08:00
yaozhicheng 7755db113d example/RandomGenerator: add go/scala 2024-11-26 10:56:34 +08:00