dau core ip
Project description
dau core
dau core ip
Overview
dau-core owns DAU hardware-facing contracts and reusable IP:
- Register-map and protocol version models.
- Stream job trigger/status register contract for host-started aggregation jobs.
- Arrow-lite stream framing (
BatchHeader,ColumnDescriptor,OperationDescriptor). - Capability and DMA constraint models.
- Golden aggregation semantics.
- Canonical HDL sources packaged as importable resources.
Current HDL Assets
dau_core/hdl/dau_int32_aggregation_tile.sv: raw INT32 valid/ready aggregation tile.dau_core/hdl/dau_int32_stream_aggregation.sv: descriptor-level stream wrapper around the tile.dau_core/hdl/dau_int32_arrow_lite_stream_aggregation.sv: packed 64-bit Arrow-lite stream reader, aggregator, result writer, and status reporter for one INT32 column and one operation.dau_core/registers.py: DAU identity/status registers plus the job-control/status offsets used to start an aggregation, publish busy/done/error state, report error codes, and expose input/result buffer locations.dau_core/stream.py: operation/logical-type contracts plus sharedStreamAggregationErrorCodevalues used by simulation and HDL-facing checks.
Stream Job Register Contract
The first hardware aggregation job contract reserves the DAU register window at 0x1000. Hosts write input address/length, output address/length, and operation metadata, then start work by writing bit 0 of JOB_CONTROL at offset 0x0050. Hardware reports IDLE, BUSY, DONE, and ERROR through JOB_STATUS at 0x0054; LAST_ERROR carries the stream/tile error code. The default staging layout uses input buffer base 0x00000000, output/result buffer base 0x00100000, 1 MiB for each staging region, and 136 bytes for the current packed Arrow-lite scalar result stream.
Verification Surface
dau_core/tests/test_stream.py: stream framing and error-code contract checks.dau_core/tests/test_aggregation_tile_hdl.py: packaged HDL text-contract checks.dau-simconsumes these contracts in real cocotb-on-Verilator benches and standalone Verilator SystemVerilog benches.
Near-Term Direction
- Keep contracts versioned and explicit while growing from packed stream simulation toward DDR/register integration.
- Ensure stream error-code behavior remains synchronized across HDL,
dau-coremodels, anddau-simtests.
[!NOTE] This library was generated using copier from the Base Python Project Template repository.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dau_core-0.1.0.tar.gz.
File metadata
- Download URL: dau_core-0.1.0.tar.gz
- Upload date:
- Size: 21.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6facd85b20188f6bc7de974da54a8ac473115a3ee44266d9aad2dd3d730498c3
|
|
| MD5 |
07139ce06c8157f0a56ef6e8e2cca08c
|
|
| BLAKE2b-256 |
72bb75d3d3e6d2711a3cf0427fde34cf55e4fb430dca0d0e4f2d1bdce027e86e
|
File details
Details for the file dau_core-0.1.0-py3-none-any.whl.
File metadata
- Download URL: dau_core-0.1.0-py3-none-any.whl
- Upload date:
- Size: 27.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f246a1872c01d0de47f82751e0573408a9cd5125d6fcd88d5f8ac3e7d84b10c
|
|
| MD5 |
e034e8c5e8f107df64faadb2ca5a08cd
|
|
| BLAKE2b-256 |
c283ae81d7e3c8f42b93540bc89c05eb740ac0e863debe47f5a08e88abb7ce12
|