Ver I: Hand Shaking Router
Two years ago, I started designing a router for a Network on Chip infrastructure. The work belonged to a project called Bonfire (you can find the link to the project here). Anyways, we had this router designed by one of my colleagues but it didn’t have any flow-control. So I wrote this one.
The entire design is available in this github repository. So the idea was to have a handshaking between the routers. It takes 3 cycles to communicate each flit over the network:
- cycle 1: sender puts data on the link and sets a valid signal
- cycle 2: receiver (if it has empty buffer) will read the data and sets the ACK signal towards the sender
- cycle 3: sender reads ACK and lowers the valid signal.