Verilog implementation of the MD4 hashing algorithm (RFC 1320).
- 85MHz speed was achived on the Nexys 4 (xc7a100tcsg324-1)
- WNS=0.081 / TNS=0.0ns / WHS=0.051ns / THS=0.0ns
- Total On-Chip Pwer: ~0.247W
- Computes every ~200 clock cycles a hash (includes reading and writing to FIFOs)
(This inlcudes the test code from controller.v)
Resource | Utilization | Available | Utilization (%) |
---|---|---|---|
LUT | 1875 | 63400 | 2.96 |
FF | 911 | 126800 | 0.72 |
BUFG | 2 | 32 | 6.25 |
Implementation | Device | Frequency | Speed (Hashes/s) | Notes |
---|---|---|---|---|
Verilog | Nexys4 | ~85 MHz | 425000 | not optimized implementation (at all) |
module md4(
input wire CLK,
input wire RESET_N,
// CONTROL
input wire START_IN,
output reg BUSY_OUT,
output reg DONE_OUT,
input wire [63:0] INPUT_SIZE_IN,
// INPUT FIFO
input wire [7:0] INPUT_BYTE,
input wire INPUT_EMPTY,
output reg INPUT_READ,
// OUTPUT FIFO
output reg [7:0] OUTPUT_BYTE,
input wire OUTPUT_FULL,
output reg OUTPUT_WRITE
);