Actually doing practical asynchronous design can be hard to learn, simply because of the lack of examples. This project has some example code that you can look at, and maybe use.
First is a random number generator. It uses a linear feedback shift register to generate a lot of 16-bit pseudo-random numbers quickly. Mathematically it's not so good, but for some things it's good enough -- and it's certainly fast and cheap.
Second is code for a CRC-16 checksum, using the CCITT standard polynomial.
Both of these components use four-phase handshaking. They're written in gate-level Verilog which should be synthesizable. The testbench code has been tested in Icarus Verilog but should run in similar tools like Modelsim.
Copyright © 2013 Black Duck Software, Inc. and its contributors, Some Rights Reserved. Unless otherwise marked, this work is licensed under a Creative Commons Attribution 3.0 Unported License . Ohloh ® and the Ohloh logo are trademarks of Black Duck Software, Inc. in the United States and/or other jurisdictions. All other trademarks are the property of their respective holders.