// Every Skein round has four clock cycles of latency, and every // Skein key injection has 2 clock cycles of latency localparam SKEINRNDSTAGES = 4, SKEINKEYSTAGES = 2; // Every Keccak round has two clock cycles of latency, // and there are 24 rounds localparam KECCAKRNDSTAGES = 2, KECCAKROUNDS = 24; // 20 rounds, with 21 key injections per block process localparam SKEINROUNDS = 20, SKEINKEYINJECTIONS = 21; // 24 rounds, round has 2 clock cycles of latency localparam KECCAKBLKSTAGES = KECCAKRNDSTAGES * KECCAKROUNDS; // 20 rounds, 4 clock cycles of latency per round, and 21 key // injections, 2 clock cycles of latency per key injection localparam SKEINBLKSTAGES = (SKEINRNDSTAGES * SKEINROUNDS) + (SKEINKEYINJECTIONS * SKEINKEYSTAGES); // Nexus' SK1024 proof-of-work, SK1024 (after midstate, during which // one Skein block process is done) consists of two Skein block processes // and three Keccak block processes. localparam TOTALSTAGES = (SKEINBLKSTAGES * 2) + (KECCAKBLKSTAGES * 3);