Skip to content

Code to go with publication "An Asynchronous Bit-Serial Variable-Length Address-Event Codec with Relative Addressing" (Bamford et al) - this repo must remain here forever

License

Notifications You must be signed in to change notification settings

event-driven-robotics/snowball

Repository files navigation

Code to go with publication "An Asynchronous Quasi-Delay-Insensitive Bit-Serial Variable-Length Relative Address-Event Codec for Distributed Neuromorphic Systems", Bamford et al, 2025. IIT-EDPR Admins: this repo should remain here in perpetuity.

To run this code, first install ACT from this repository (which requires a linux installation), following its own instructions: https://github.com/asyncvlsi/act

Then, to recreate the simulation results in the paper for the incrementer/encoder:

In the folder "encoder", excute:

aflat test_enc.act > test_enc.prs

This will convert the act code to a production rule set.

Then execute:

prsim test_enc.prs

This will open the command line of the prsim tool. From that command line, execute:

source src_enc.src

This will apply the instructions in the source file, which will first initialise the simulation and apply global reset signals, and will then provide a series of tokens to a chain of communication blocks, containing increment and merge. You will see a burst of output in the terminal as state transitions occur, which may last several seconds. Then you will be able to inspect the output file, called output_addr.dec.

There is also a file corresponding to a chain of 8 communication blocks, for which the two files to use as above are:

prsim test_encX8.prs

source src_encX8.src

Back on the linux command line, to generate a netlist, which you could use for onward simulations in spice, execute:

prs2net -p 'enc<>' test_enc.act

To test the code in the "decoder" folder, the corresponding instructions are:

aflat test_dec.act > test_dec.prs

prsim test_dec.prs

source src_dec.src

prs2net -p 'dec<>' test_dec.act

This will produce two output files; one for the downstream communications blocks, called output_addr.dec, and one for the local event receiver, called output_local.dec.

The folder "keeperised" contains an alternative version of the inc and merge cells where the gates are not fully complementary but rather have keepers, and in which serial and parallel resets (gsr and gpr) have been replaced with a single reset signal (rst). These, along with other very minor modifications move the design from that used for the act/prsim simulations (as above) to the ams/spectre simulations used in the comparison to P-AER.

A snowball gains size and momentum as it rolls down a hill; the name is a metaphor for the events moving through the incrementer chain.

About

Code to go with publication "An Asynchronous Bit-Serial Variable-Length Address-Event Codec with Relative Addressing" (Bamford et al) - this repo must remain here forever

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages