Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Introduce a dynamic axi generator (#2132)
* Being work on dynamic AXI wrapper. Currently, have reduced complexity of channels by not tracking transfer counts and transaction counts and similar. Changes are a bit haphazard, so be careful about assuming aything is "done". Perhapes the AR and AW channels are indeed finished. TODO: Create address-translate module. In particular look at interface for mulitpliers as we might only have pipelined version * add new const_mult to py-builder * AW AR R and W channels might be done. Need to make sure write channel interface is correct. Then need to tie everything together according to diagram. * Finish(?) read and write controller in builder TODO: Wire up translator, read controller, write controller. Then test if this works with current test bench/executor * begin axi dynamic read controller * refactor reg calls in dynamix yxi generator * add import for const-mult in py-builder * WIP: need to work on axi-seq-mem-comp. Namley, need to be able to add attributes to ports * add support for port attributes with method * refactor to also have outputs iwth attributes * remove extra files added somehow * Add attributes to (and rename) add_comp_ports * Fix some formatting issues, should pass runt tests * find and replace add_comp_params * Work on tying together axi_seq_mem comps * WIP: have control program for axi_seq_mem maybe * Fix some misnamed signals. TODO: AFter getting subtyping working want to instantiate an `axi-seq-mem` in the top level wrapper, pass that in as a seq-mem to the main kernel * WIP: attempt at implementing subtyping. TBD if this works * typo in structure * change error for wellformedness subtyping runt test * compile_invoke now compiles, tbd if actually works * some clippy fixes * wip compile invoke changes * added debugging stuff to invoke, still a WIP * WIP: Need to do clean up but also this might allow subtyping???? Hope so * add comments to well-formed * maybe works? * seems to be working! * update runt tests * make clippy happy * formatting * update comments * more runt tests * replace hashed map with linkedhashmap for determinism * fix bug where iterating over too many ports in comp_ports in compile_invoke * more runt tests for subtyping * might be done with generator? need to fix compiler errors * add hardcoded vec_add for convenience: todo: not recognizing seq_mem_d1 * get rid of static interval annotation in axi_seq_mem * first pass at adding dynamic memories * add dyn-mems to primitve library * add yxi support for dyn-mems in calyx-ir-utils * make clippy happy * add yxi test for dyn-mems * formatting * add all mems to generated dynamic axi interface * add input to padding. Execution completes but incorrect writing to sum0 * change test yxi to dynamic from seq mems * drive read_data out properly in read_channel * derive partialeq and eq for InLineAttributes * extract `get_concrete_port` as helper function * compile_invoke formatting * WIP: extract require_subtype. TODO: allow it to take in StaticInvoke as well * factor out subtyping check * elaborate on some comments in well_formed * improve comments * working dynamic generator??????? * rename axi_seq_mem to axi_dyn_mem * [fud2] Add dynamic generation option to `axi-wrapped` state (#2136) * add method to get a confg key witha constrained set of values * Add dynamic generation for `axi-wrapped` state Use `--set dynamic=true` targeting 1--to axi-wrapped` * add method to get a confg key witha constrained set of values * Make InvalidValue a c-like struct and fix err msg * formatting * change debug representation to a join * formatting * trigger ci * Introduce dynamic AXI runt tests (#2139) * wip move axi tests around * remove hardcoded dyn-mem-vec-add from dynamic axi generator * add raw dynamic axi generator tests * add dyn_mem import into dynamic axi generator * more dynamic axi runt tests * fud2 cocotb tests for dynamic axi * remove hardcoded compute * remove stderr ipe to dev/null in fud2 cocotb axi tests * return 2> dev/null in runt cocotb axi tests * more runt fixes * more runt fixes, cocotb dynamic test still fails on CI * upgrade pip to get latest stable version of cocotb Changes dockerfile * hook up xPROT signals correctly * add ARPROT in places as well * update runt tests * fix xPROT connections, revert cocotb in dockerfile to 1.6.2 --------- Co-authored-by: eys29 <[email protected]>
- Loading branch information