------------------------------------------------------------
-- Copyright: 2011 Integrated Sytems Laboratory, ETH Zurich
--            http://www.iis.ee.ethz.ch/~sha3
------------------------------------------------------------
-------------------------------------------------------------------------------
-- Title      : Testbench for design "inputblock"
-- Project    : 
-------------------------------------------------------------------------------
-- File       : inputblock_tb.vhd
-- Author     : Frank K. Guerkaynak  
-- Company    : Integrated Systems Laboratory, ETH Zurich
-- Created    : 2011-08-16
-- Last update: 2011-08-16
-- Platform   : ModelSim (simulation), Synopsys (synthesis)
-- Standard   : VHDL'87
-------------------------------------------------------------------------------
-- Description: 
-------------------------------------------------------------------------------
-- Copyright (c) 2011 Integrated Systems Laboratory, ETH Zurich
-------------------------------------------------------------------------------
-- Revisions  :
-- Date        Version  Author  Description
-- 2011-08-16  1.0      kgf	Created
-------------------------------------------------------------------------------

library ieee;
use ieee.std_logic_1164.all;
use work.shabzigerpkg.all;

-------------------------------------------------------------------------------

entity inputblock_tb is

end inputblock_tb;

-------------------------------------------------------------------------------

architecture test of inputblock_tb is

  component inputblock
    port (
      AlgSelxSI           : in  std_logic_vector(3 downto 0);
      ClkxCI              : in  std_logic;
      RstxRBI             : in  std_logic;
      FinalBlockxSI       : in  std_logic;
      BlockPenUltCyclexSI : in  std_logic;
      BlockInEnxSO        : out std_logic;
      BlockFinBlockxSO    : out std_logic;
      ScanEnxTI           : in  std_logic;
      ScanInxTI           : in  std_logic;
      ScanOutxTO          : out std_logic;
      DataCntxDO          : out std_logic_vector(63 downto 0);
      DataOutxDO          : out std_logic_vector(1087 downto 0));
  end component;

  component keccak
    port (
      ClkxCI         : in  std_logic;
      RstxRBI        : in  std_logic;
      FinBlockxSI    : in  std_logic;
      INENxEI        : in  std_logic;
      OUTENxEO       : out std_logic;
      PenUltCyclexSO : out std_logic;
      DxDI           : in  std_logic_vector(1087 downto 0);
      DxDO           : out std_logic_vector(255 downto 0));
  end component;

  
  -- component ports
  signal AlgSelxS           : std_logic_vector(3 downto 0);
  signal RstxRB             : std_logic;
  signal FinalBlockxS       : std_logic;
  signal BlockPenUltCyclexS : std_logic;
  signal BlockInEnxS        : std_logic;
  signal BlockFinBlockxS    : std_logic;
  signal ScanEnxT           : std_logic;
  signal ScanInxT           : std_logic;
  signal ScanOutxT          : std_logic;
  signal DataCntxD          : std_logic_vector(63 downto 0);
  signal DataOutxD          : std_logic_vector(1087 downto 0);
  signal DxD                : std_logic_vector(255 downto 0);
  signal OUTENxE            : std_logic;
  
  -- clock
  signal ClkxC : std_logic := '1';

begin  -- test

  -- component instantiation
  DUT: inputblock
    port map (
      AlgSelxSI           => AlgSelxS,
      ClkxCI              => ClkxC,
      RstxRBI             => RstxRB,
      FinalBlockxSI       => FinalBlockxS,
      BlockPenUltCyclexSI => BlockPenUltCyclexS,
      BlockInEnxSO        => BlockInEnxS,
      BlockFinBlockxSO    => BlockFinBlockxS,
      ScanEnxTI           => ScanEnxT,
      ScanInxTI           => ScanInxT,
      ScanOutxTO          => ScanOutxT,
      DataCntxDO          => DataCntxD,
      DataOutxDO          => DataOutxD);


  i_keccak: keccak
    port map (
      ClkxCI         => ClkxC,
      RstxRBI        => RstxRB,
      FinBlockxSI    => BlockFinBlockxS,
      INENxEI        => BlockInEnxS,
      OUTENxEO       => OUTENxE,
      PenUltCyclexSO => BlockPenUltCyclexS,
      DxDI           => DataOutxD,
      DxDO           => DxD);

  
  -- clock generation
  ClkxC <= not ClkxC after 5 ns;

  -- waveform generation
  WaveGen_Proc: process
  begin
    -- insert signal assignments here
    AlgSelxS  <= ETHZKECCAK;
    FinalBlockxS <= '1';
    RstxRB <= '0';
    ScanInxT <= '0';
    ScanEnxT <= '0';
    wait for 2 ns;
    RstxRB <= '1';     
    wait;
  end process WaveGen_Proc;

  

end test;

-------------------------------------------------------------------------------

configuration inputblock_tb_test_cfg of inputblock_tb is
  for test
  end for;
end inputblock_tb_test_cfg;

-------------------------------------------------------------------------------

Generated on Tue Nov 22 15:16:34 CET 2011
Home