Commit Graph

59 Commits

Author SHA1 Message Date
sbaillou
d69af23be5 Error response for unmapped address or forbidden read/write access (#168)
* feat: add ability to enable error output on the cpuif, when decoding errors occur (generate_cpuif_err in API).

* fix: move signal to new place (after automatic vers)

* feat: add info about new api (generate_cpuif_err)

* fix: repair readback with latency

* Adding generate_cpuif_err argument to peakrdl-regblock to generate cpuif error response, when the address is decoded incorrectly

* add sw rd or/and wr attribure error response related and add error respone for external mem

* add sw rd or/and wr error response test

* add sw rd or/and wr error response for external register test and fix generation of rtl logic for external register

* add sw rd or/and wr error response for external mem test

* add sw rd or/and wr error response for apb3 imterfaces driver

* add error response test for APB4, AXI4Lite and Avalon interfaces

* rename --generate_cpuif_err to --generate-cpuif-err

* style: minor typo fixes and test clean-up

* refactor: move expected error check inside write/read functions

* feat: add error response check to OBI testbench interface

* feat: split generate-cpuif-err option into err-if-bad-addr and err-if-bad-rw options

* feat: add err_if_bad_addr/rw to cfg_schema

* feat: extend cpuif_err_rsp test to cover all combinations of bad_addr/bad_rw

* style: lint fixes

* fix: removed redundant if node.external condition to help coverage

* Fix dangling hwif_in signals in testcase

---------

Co-authored-by: Denis Trifonov <d.trifonov@yadro.com>
Co-authored-by: Dominik Tanous <tanous@kandou.com>
Co-authored-by: Sebastien Baillou <baillou@kandou.com>
Co-authored-by: Alex Mykyta <amykyta3@users.noreply.github.com>
2025-10-25 18:22:15 -07:00
Alex Mykyta
bb765e6ae3 Add 's_' prefix to OBI port for consistency with all other cpuifs 2025-10-25 17:24:57 -07:00
Alex Mykyta
dafd693a1d OBI: Add testcase support. #157 2025-10-24 19:36:36 -07:00
Dana Sorensen
087b1f8611 added failing tests for external write/read-buffered components 2025-10-24 18:41:18 -07:00
Alex Mykyta
b097062e85 bump py versions 2025-10-13 22:42:40 -07:00
Sebastien Baillou
a440cc1976 Add Xcelium simulator option 2025-10-10 09:58:36 -07:00
Alex Mykyta
c95c332bd0 Fix xsim errors for fixedpoint testcase 2025-07-16 10:17:11 -07:00
Alex Mykyta
a917164642 Tidy up whitespace in generated package. #148 2025-07-01 16:56:41 -07:00
Dana Sorensen
d2b4911d5f Add signed/fixedpoint properties (#140)
* declared intwidth, fracwidth, and is_signed UDPs

* fix boolean type name in UDP definition

* generate hwif fields with fixedpoint indices

* make "counter" and "encode" properties mutualy exclusive with signed/fixedpoint

* add signed/unsigned to hwif

* improved fixedpoint error messages, added validation tests

* added fixedpoint tests

* fixedpoint/signed not allowed for signal components

* added signed/fixedpoint UDP docs

* handle single-bit fixedpoint numbers

* fix too many positional arguments lint

* changed spelling of fixedpoint to fixed-point

* use "logic" in place of "unsigned logic"

* split signed and fixedpoint docs, added examples

* allow enums with is_signed=false

* split signed and fixedpoint implementations

* assorted nits picked

* updated is_signed validation unit test
2025-05-15 08:48:44 -07:00
Alex Mykyta
833c515cd2 Re-enable xsim for testcases. Works better in Vivado 2024.2 2025-04-11 22:19:19 -07:00
Alex Mykyta
48ae215eda Add user parameters to regblock package. #112 2025-04-10 22:16:13 -07:00
Maciej Dudek
0a9a3ad51e Allow for write enable and sticky property
This commit adds new type of fields: sticky with write enable.
This is used to gate status/interrupt register when one or more
interrupts aren't monitored.

Signed-off-by: Maciej Dudek <mdudek@antmicro.com>
2025-04-10 21:45:57 -07:00
Alex Mykyta
4aed443c55 Make swmod respect cpuif byte strobes. #137 2025-04-10 21:26:08 -07:00
Alex Mykyta
6430dd4914 Emit error if field that is asynchronously reset uses a dynamic reset value. #129 2025-03-07 19:20:44 -08:00
Alex Mykyta
54ac56e1c3 Add testcases to cover design validation errors 2025-03-06 22:10:05 -08:00
Alex Mykyta
40687abd6b Type hinting cleanup 2025-03-03 21:37:07 -08:00
Alex Mykyta
0258cac186 drop py3.6. Misc housekeeping 2025-03-03 21:37:07 -08:00
Aylon Chaim Porat
28ed82129f Add Addressmap block size to generated package (#134)
* add map size as a localparam in rdl map package

* rename from _SIZE -> _BYTES_SIZE

* fix names on new test & localparam

* wrap map size in SVInt
2025-03-03 21:16:25 -08:00
Alex Mykyta
e788e7cafd Remove excessive secondary counter saturation clamping logic. Counters will now be allowed to be set to values beyond their saturation point if loaded through non-increment/decrement mechanism. #114 2024-12-19 21:41:20 -08:00
Alex Mykyta
ebd82dde1b Add peakrdl-cli optional dependency 2024-12-19 19:04:48 -08:00
Alex Mykyta
1d7d47f49c More type hint workarounds 2024-12-18 22:20:35 -08:00
Alex Mykyta
e0295ae526 Fixup test bitswap. mypy 2024-12-18 22:04:12 -08:00
Alex Mykyta
11d9f65dff Fix incorrect bit-order in packed struct output of external registers. #111 2024-12-18 21:17:31 -08:00
Alex Mykyta
399f942201 Fix doc typos 2024-12-18 20:29:17 -08:00
Alex Mykyta
f25ba60bfc Add packed struct overlay for external register bitfields. #84 2024-03-29 22:16:24 -07:00
Alex Mykyta
62518b318b Implement new SVInt object to defer literal expansion and allow bit-fiddling operations. Fix invalid bit-slicing of literals if field reset value is a constant. #71 2023-10-24 22:50:41 -07:00
Alex Mykyta
b5b1ba790e Simulator compatibility updates 2023-10-22 20:43:34 -07:00
Alex Mykyta
d689bb7077 Reorganize how tb infrstructure selects toolchains 2023-10-22 11:04:43 -07:00
Alex Mykyta
c0e341579c fix typo 2023-09-29 05:55:54 -07:00
Alex Mykyta
7bb6c0c41a Fix xsim compatibility quirk 2023-09-07 23:16:58 -07:00
Alex Mykyta
5c3dd6e6bb More test coverage 2023-08-03 22:18:55 -07:00
Alex Mykyta
f9e0d1babc Coverage improvements 2023-08-02 22:28:42 -07:00
Alex Mykyta
941871007b Omit unecessary hwif signals if an external register is read-only or write-only. #58 2023-08-02 21:38:06 -07:00
Alex Mykyta
0d82154b9d Add support for field paritycheck. #35 2023-05-15 22:53:17 -07:00
Alex Mykyta
fadb8ce19d Add Intel Avalon MM cpuif. #40 2023-05-14 17:00:55 -07:00
Alex Mykyta
b350da3e7c Add ability to control default reset style. #34 2023-05-13 17:15:31 -07:00
Alex Mykyta
5b3cdd9d7a Move get_always_ff_event() to a more sensible location 2023-05-12 21:51:42 -07:00
Alex Mykyta
ca9185dac7 Add support for external components. (#4 & #36) 2023-05-11 21:52:26 -07:00
Alex Mykyta
fc823455f9 Add testcase to test cumulative strobes. #38 2023-05-03 23:22:05 -07:00
Hugh Jackson
0c7e493976 Add support for user defined enums in field encode property. #29 2023-04-12 23:09:06 -07:00
Alex Mykyta
8b9dfe5ebe Add coveralls 2023-03-13 21:47:33 -07:00
Alex Mykyta
6026e3398e lint 2023-02-16 19:22:22 -08:00
Alex Mykyta
489b4d1310 Add 'rd_swacc' and 'wr_swacc' UDPs. #21 2022-11-09 21:25:02 -08:00
Alex Mykyta
232faba417 Coverage improvements. 2022-11-08 21:34:10 -08:00
Alex Mykyta
fcfd5c09f4 fixup 2022-11-08 21:09:58 -08:00
Alex Mykyta
9e76a712a7 Implement read buffering. (#22) 2022-11-06 23:28:07 -08:00
Alex Mykyta
279a3c5788 Implement write buffering (#22) 2022-10-29 22:02:04 -07:00
Alex Mykyta
808067fac9 Fix synthesizability of fields with msb0 ordering 2022-10-17 23:24:35 -07:00
Alex Mykyta
e07e7d26b2 Add support for wide registers (where accesswidth < regwidth) 2022-10-17 22:13:29 -07:00
Alex Mykyta
21a4e5a41c Add double-buffer UDP definitions 2022-10-09 22:48:43 -07:00