Commit Graph

107 Commits

Author SHA1 Message Date
Makiras 382d0578fa perf: optimize XData/XPort hot paths
- Short-circuit shadow updates when no callbacks; baseline on first OnChange

- Use memcmp/memcpy for write-compare shadowing

- Add XPort hot iteration vector for write/read paths

- Move XClock callback assert to registration

- Fix XData ReInit memory cleanup and validate bval across words

- Document optimization rationale and correctness fixes
2026-01-26 07:17:09 +00:00
Makiras aaa29408ac optimize(cond/expr/fsm): cut per-cycle overhead
- CondCheck uses unordered index + vector scan and pre-bound compare fns
- Expr eval reuses buffers and uses list+index for faster lookup/trigger bookkeeping
- FSM actions keep DSL order with pre-bound exec callbacks to avoid switch
- Add fast-path returns and avoid aborts on expr/fsm parse failures
2026-01-25 06:58:43 +00:00
Makiras a391e6db63 feat: Split xcomm trigger logic into base/expr/fsm, add FSM/expr parsing, and fix XData static constants linker issue 2026-01-22 11:05:04 +08:00
FrankOu 9b8fd51e02 refactor(log): Resolve compile error 2025-10-29 20:19:40 +08:00
FrankOu 10d949cd65 refactor(log): Change default log level to error. 2025-10-29 20:19:40 +08:00
FrankOu e71d81e2b6 refactor(macos): Add python support for macOS 2025-10-29 20:19:40 +08:00
yaozhicheng 1a30ce5319 fix GSIM xclock step 2025-08-03 00:00:12 +08:00
yaozhicheng 78a7de66b1 feat: support only step ris/fail in fast mode 11/12 2025-07-31 11:10:42 +08:00
yaozhicheng fe4e0628f1 add assert in XPort get 2025-06-27 09:10:48 +08:00
yaozhicheng 208f41deb6 fix picker#39: use shared_ptr<XData> to relpace XData* 2025-05-23 14:38:00 +08:00
yaozhicheng fbe9ad80d8 new feat(comuse): add As uint64 to xfunc 2025-04-30 11:06:17 +08:00
yaozhicheng a86e1a0568 refine(comuse): add _valcmp(bigint cmp) to reaplace memcmp 2025-04-30 11:06:17 +08:00
yaozhicheng 7e06251980 feat(comuse): add SetValidCmpMode/GetValidCmpMode for ComUseCondCmp 2025-04-30 11:06:17 +08:00
yaozhicheng d92c65185d fix(bug): fix valid check (eq is valid) 2025-04-30 11:06:17 +08:00
yaozhicheng 11118c297a comuse(fix): fix CbCount useage 2025-04-02 15:30:01 +08:00
yaozhicheng 24b5cfcc4d comuse: add ComUseRangeCheck 2025-04-02 15:30:01 +08:00
yaozhicheng 1f5615f3c9 comuse(feat): add cmp func arg for ComUseCondCheck 2025-04-02 15:30:01 +08:00
yaozhicheng 576bb09c0d ComUseStepCb(feat): add Reset 2025-04-02 15:30:01 +08:00
yaozhicheng a5f89bbe0a comuse(add): add SetUxArray functions 2025-03-26 14:08:41 +08:00
yaozhicheng a0fb1faba8 XSignalCFG(feat): support map-structed yaml (spend less space) 2025-03-24 14:34:13 +08:00
yaozhicheng d6ee255349 ComUseCondCheck: add valid_bytes to SetCondition 2025-03-24 14:34:13 +08:00
yaozhicheng 9acacd88d0 xclock: add RemoveStepXCbsX 2025-03-24 14:34:13 +08:00
yaozhicheng 64a2541136 ComUseCondCheck: add func ListCondition 2025-03-24 14:34:13 +08:00
yaozhicheng 35a0767c54 comuse: add ComUseCondCheck and test 2025-03-24 14:34:13 +08:00
yaozhicheng 82ab9df0b3 xdata: add cmp and test 2025-03-24 14:34:13 +08:00
yaozhicheng 0b6cd48af1 xclock: add disable/enable step 2025-03-24 14:34:13 +08:00
yaozhicheng ff44977c14 GetFromUxArray/UxPtrAsU64: use raw type ptr 2025-03-24 14:34:13 +08:00
yaozhicheng bfceca1c8b comuse: add GetFromUxArray && PtrAsU64 2025-03-24 14:34:13 +08:00
yaozhicheng d23f1e1985 refine: use class imp ComUse* functions 2025-03-24 14:34:13 +08:00
yaozhicheng 72035f68d4 new feat: add common use function xdata echo char 2025-03-24 14:34:13 +08:00
yaozhicheng 7a0db43e23 new feat: add xname to xsignal_cfg 2025-03-24 14:34:13 +08:00
yaozhicheng 6ac5905eb7 XSignalCFG: fix typo 2025-03-24 14:34:13 +08:00
yaozhicheng 126e217d56 s_xsignal_cfg: add is_empty attr 2025-03-24 14:34:13 +08:00
yaozhicheng f8b115dbf6 fix: fix XSignalCFG string fmt 2025-03-24 14:34:13 +08:00
yaozhicheng 53edb8959a feature: use env.XSPCOMM_LOG_LEVEL control log level 2025-03-24 14:34:13 +08:00
yaozhicheng b767ff8d39 new XSignalCFG: support internal cfg signales 2025-03-24 14:34:13 +08:00
yaozhicheng 86f76b8cc0 refine: set default log level to info 2025-03-24 14:34:13 +08:00
yaozhicheng 105acfe3a6 refine: only ignore output pin _dpi_read 2025-03-24 14:34:13 +08:00
yaozhicheng 10e02c9acc xdata:: BindNativeData write data by 8,16,32 2025-03-24 14:34:13 +08:00
yaozhicheng 186a25b1f8 test: test BindNativeData pass 2025-03-24 14:34:13 +08:00
yaozhicheng 9d36d4690f xdata: new func BindNativeData 2025-03-24 14:34:13 +08:00
yaozhicheng c809a8ef58 xport: ignore no cbs xdata in ReadFresh 2025-03-24 14:34:13 +08:00
yaozhicheng 01f4199a7d xdata: add OnchangeCbs check 2025-03-24 14:34:13 +08:00
J. Wang 8667e76643
Fix bug of SubDataRef (#2)
* Fix bug of SubDataRef

* Remove blank lines of xdata.cpp
2025-03-24 14:25:45 +08:00
yaozhicheng d29fc23403 xclock: refine fast_mode_level==2 2025-01-09 19:13:04 +08:00
yaozhicheng be770ccfcb xclock: extend fast_mode_level to 3 (support 0, 1, 2, 3) 2025-01-09 16:39:48 +08:00
yaozhicheng 006f387089 xport: add AsImm/Rise/FalWrite() 2025-01-09 16:28:34 +08:00
yaozhicheng 48e35cd7af xclock: change FastMode -> SetFastMode 2025-01-09 15:29:56 +08:00
yaozhicheng 0f728eac56 xclock: ignore ris/fal pin read refresh in FastMode 2025-01-09 12:47:22 +08:00
yaozhicheng c558323afd xclock: add func FastMode/IsFastMode 2025-01-08 23:46:25 +08:00