-
What is the maximum number of clock cycles needed for the module to output a connection ID? This duration could be constant or vary based on the number of active connections.
The cycles needed vary. It depends on the load factor of the hash table.
- At best cases, it need
5
cycles. - At worst cases, it may need
4+table_len
cycles.
- At best cases, it need
-
If multiple design choices or implementation methods were considered, list them. Describe their advantages and disadvantages, and explain why you opted for your chosen approach.
We implemented a naive approach for now. Some possible optimizations are listed below:
- Pipelining. We can reduce latency to
4
cycles if we parallelize input and hash-table lookup. (We have implemented a prototype and are testing it) - Lookup unroll. We can look up multiple location within the same cyle. This benefits in high load case.
- Smarter hash function and probing. For now we just xor those bits in input, and use linear probe.
- Pipelining. We can reduce latency to
-
Notifications
You must be signed in to change notification settings - Fork 0
jokerwyt/FPGA-Accelerated-NAT
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
A demo of verilog-based network address translator (NAT)
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published