Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[RTL] Convert APB interfaces to AXI and add DMA (#590)
* Initial pass at AXI sub -- read channel only * Compile for AXI sub * AXI sub -- write channel + exclusive access fixups * Exclusive access support OFF by default * Only latch err from component when the access is allowed (i.e. not an incomplete EX access) * Add AXI sub wrapper and simplex arbiter * Syntax fix * Add ID signal to component interface * Add component inf 'write' signal * New handshake assertions; i/f X checks conditional upon valid signals * Swap APB for AXI, replace all 'user' references with 'AXI ID' * axi_sub_wr: Fix rp valid/ready access Ready & valid are 1-bit wide, do not access using bit select / range. Signed-off-by: Wiktoria Kuna <[email protected]> * axi_sub_arb: Fix arbiter read grant condition When 'r_pri' is not set, read operation should be granted only if a read 'r_dv' is pending and there's no required write action 'w_dv'. Signed-off-by: Wiktoria Kuna <[email protected]> * Remove LENB override; fix resp-pipe part-select in axi_sub_wr * AXI sub tb integration -- compiles and passes smoke_test_hw_config * Fixups to get sims working VCS + Verilator * Initial AXI DMA reg file * Format * First pass - AXI DMA * Caliptra AXI SRAM * Defaults: AW=32, DW=64 * Mv skidbuffer to libs; add r/w error sigs in axi_sub to work with C_LAT>0; compile fixes for sram * Syntax fix * Add all module inst/connections; syntax fixes for compilation * Include DMA reg set in docs * Inst. DMA; connect SRAM through MBOX dir mode mux; add DMA regs in arb; upd COV IF * Updates for AXI DMA connections * AW should be derived from SRAM depth * Add new reg fields; syntax cleanup to simulate; now passes smoke test * Fix reset if-else syntax on ctx FF blocks * Default assignment fix * TB updates to support all prev. functionality; smoke_test_dma passes; add AXI assertions * Update all caliptra_isr with new DMA interrupts; fw updates so all smoke tests pass * Update HDL file lists * Different init syntax for Verilator to compile vs VCS * Update smoke_test_kv_hmac_multiblock_flow w/ DMA intr to pass compilation * Add mailbox payload operations * Default return of 0 for dma operations * Reorder fail var assignment * Fixes for DMA write and hold signaling to mailbox sram * Fixes for credits and bytes requested calculations * Move SoC BFM functionality to a sub-module in TB for reuse * Add 1MiB xfer cap to cmd decode logic * Rename s_axi_if to m_axi_bfm_if for clarity (in TB) * Move caliptra_top_tb support files to separate compile pkg to avoid duplicate pre_exec calls (for importers) * Enable BFM bringup to be skipped for SS testing * Default AXI ID width is 8 * Support for path overrides by higher-level (SS) entity * Add an enum for bootfsm states * License header fixups * Derive soc_ifc AXI ID widths from the global Caliptra macro * Gen2 status disclaimer * README timestamp * No bold * Use bash instead of sh in Makefile * Regenerate file lists * Add DMA interrupts * Add DMA interrupts * Synth pragmas to ignore sim-only tasks * caliptra_prim is an axi_dma dependency * Include assertion header where asserts are used * Reorder a print message that is used as a trigger in OpenOCD tests * File list updates after modifying dependencies * Recommendations for release consumption * Heading format * Rewording for clarity * Use 'assets' to match GH naming * Convert skidbuffer reset to async, active-low * Default AXI ID width of 8 matches Caliptra default - for clean lint * Lint cleanup * Lint fixes * Lint fixes + fix for logic issue with large xfer calculations * Width mismatch lint fixes * Override DMA AXI manager Addr width for lint check * Width mismatch lint fixes * Use 'synopsys' pragma to disable sim code for synth/lint * Syntax fix on loop indices; resolve a race condition at init time * MICROSOFT AUTOMATED PIPELINE: Stamp 'cwhitehead-msft-gen2-axi-modules' with updated timestamp and hash after successful run * Workaround for verilator compatibility * MICROSOFT AUTOMATED PIPELINE: Stamp 'cwhitehead-msft-gen2-axi-modules' with updated timestamp and hash after successful run * Re-enable check for sha/dma access on req_hold condition * Fix the req_hold calculation for DMA transfers * Apply active-low reset changes to the Formal properties in skidbuffer * Remove OPT_INITIAL param and initialize regs with async reset * MICROSOFT AUTOMATED PIPELINE: Stamp 'cwhitehead-msft-gen2-axi-modules' with updated timestamp and hash after successful run --------- Signed-off-by: Wiktoria Kuna <[email protected]> Co-authored-by: Wiktoria Kuna <[email protected]>
- Loading branch information