Entity: keccak_round_fpv

Diagram

int Width clk_i rst_ni valid_i rand_valid_i [Width-1:0] rand_i done_o

Description

Copyright lowRISC contributors. Licensed under the Apache License, Version 2.0, see LICENSE for details. SPDX-License-Identifier: Apache-2.0

Testbench module for keccak_f. Intended to be used with a formal tool.

Generics

Generic name Type Value Description
Width int 1600

Ports

Port name Direction Type Description
clk_i input
rst_ni input
valid_i input
rand_valid_i input
rand_i input [Width-1:0]
done_o output

Signals

Name Type Description
masked_state logic [Width-1:0]
masked_state_d logic [Width-1:0]
unmasked_state logic [Width-1:0]
unmasked_state_d logic [Width-1:0]
msg_valid logic Data input
msg_addr logic [DInAddr-1:0]
msg_data logic [DInWidth-1:0]
msg_ready_masked logic
msg_ready_unmasked logic
run logic
clear logic
masked_complete logic
unmasked_complete logic
compare_states logic [Width-1:0]
data_0 logic [1599:0] Test with value 0
in_progress logic
st st_e
st_d st_e
digest_0 logic [255:0]

Constants

Name Type Value Description
W int Width/25
L int $clog2(W)
NumRound int 12 + 2*L Keccak-f only
RndW int $clog2(NumRound+1)
DInWidth int 64 currently only 64bit supported
DInEntry int Width / DInWidth
DInAddr int $clog2(DInEntry)

Types

Name Type Description
st_e enum logic [2:0] {
StIdle,
StMsg,
StRun,
StComplete }

Processes

Type: always_comb

Type: always_ff

Description
Data input : SHA3-256

Type: always_ff

Type: always_ff

Type: always_comb

Instantiations

Description
Masked Keccak round