Line 1... |
Line 1... |
|
|
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
-- Designer: Paolo Fulgoni <pfulgoni@opencores.org>
|
-- This file is owned and controlled by Xilinx and must be used --
|
--
|
-- solely for design, simulation, implementation and creation of --
|
-- Create Date: 09/14/2007
|
-- design files limited to Xilinx devices or technologies. Use --
|
-- Last Update: 10/15/2007
|
-- with non-Xilinx devices or technologies is expressly prohibited --
|
-- Project Name: camellia-vhdl
|
-- and immediately terminates your license. --
|
-- Description: Dual-port SBOX1
|
-- --
|
--
|
-- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" --
|
-- Copyright (C) 2007 Paolo Fulgoni
|
-- SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR --
|
-- This file is part of camellia-vhdl.
|
-- XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION --
|
-- camellia-vhdl is free software; you can redistribute it and/or modify
|
-- AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION --
|
-- it under the terms of the GNU General Public License as published by
|
-- OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS --
|
-- the Free Software Foundation; either version 3 of the License, or
|
-- IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, --
|
-- (at your option) any later version.
|
-- AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE --
|
-- camellia-vhdl is distributed in the hope that it will be useful,
|
-- FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY --
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
-- WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE --
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
-- IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR --
|
-- GNU General Public License for more details.
|
-- REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF --
|
-- You should have received a copy of the GNU General Public License
|
-- INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS --
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
-- FOR A PARTICULAR PURPOSE. --
|
--
|
-- --
|
-- The Camellia cipher algorithm is 128 bit cipher developed by NTT and
|
-- Xilinx products are not intended for use in life support --
|
-- Mitsubishi Electric researchers.
|
-- appliances, devices, or systems. Use in such applications are --
|
-- http://info.isl.ntt.co.jp/crypt/eng/camellia/
|
-- expressly prohibited. --
|
|
-- --
|
|
-- (c) Copyright 1995-2007 Xilinx, Inc. --
|
|
-- All rights reserved. --
|
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
library IEEE;
|
-- You must compile the wrapper file sbox1.vhd when simulating
|
use IEEE.STD_LOGIC_1164.all;
|
-- the core, sbox1. When compiling the wrapper file, be sure to
|
|
-- reference the XilinxCoreLib VHDL simulation library. For detailed
|
|
-- instructions, please refer to the "CORE Generator Help".
|
entity SBOX1 is
|
|
|
-- The synthesis directives "translate_off/translate_on" specified
|
|
-- below are supported by Xilinx, Mentor Graphics and Synplicity
|
|
-- synthesis tools. Ensure they are correct for your synthesis tool(s).
|
|
|
|
LIBRARY ieee;
|
|
USE ieee.std_logic_1164.ALL;
|
|
-- synthesis translate_off
|
|
Library XilinxCoreLib;
|
|
-- synthesis translate_on
|
|
ENTITY sbox1 IS
|
port (
|
port (
|
addra : IN STD_LOGIC_VECTOR(0 to 7);
|
addra: IN std_logic_VECTOR(7 downto 0);
|
addrb : IN STD_LOGIC_VECTOR(0 to 7);
|
addrb: IN std_logic_VECTOR(7 downto 0);
|
clka : IN STD_LOGIC;
|
clka: IN std_logic;
|
clkb : IN STD_LOGIC;
|
clkb: IN std_logic;
|
douta : OUT STD_LOGIC_VECTOR(0 to 7);
|
douta: OUT std_logic_VECTOR(7 downto 0);
|
doutb : OUT STD_LOGIC_VECTOR(0 to 7);
|
doutb: OUT std_logic_VECTOR(7 downto 0);
|
ena : IN STD_LOGIC;
|
ena: IN std_logic;
|
enb : IN STD_LOGIC
|
enb: IN std_logic);
|
);
|
END sbox1;
|
end SBOX1;
|
|
|
ARCHITECTURE sbox1_a OF sbox1 IS
|
architecture RTL of SBOX1 is
|
-- synthesis translate_off
|
begin
|
component wrapped_sbox1
|
|
port (
|
CHA : process(ena, clka)
|
addra: IN std_logic_VECTOR(7 downto 0);
|
begin
|
addrb: IN std_logic_VECTOR(7 downto 0);
|
|
clka: IN std_logic;
|
if (ena = '0') then
|
clkb: IN std_logic;
|
douta <= (others=>'0');
|
douta: OUT std_logic_VECTOR(7 downto 0);
|
else
|
doutb: OUT std_logic_VECTOR(7 downto 0);
|
if (clka'event and clka = '1') then -- rising clock edge
|
ena: IN std_logic;
|
case addra is
|
enb: IN std_logic);
|
when X"00" =>
|
end component;
|
douta <= X"70";
|
|
when X"01" =>
|
-- Configuration specification
|
douta <= X"82";
|
for all : wrapped_sbox1 use entity XilinxCoreLib.blkmemdp_v6_3(behavioral)
|
when X"02" =>
|
generic map(
|
douta <= X"2C";
|
c_reg_inputsb => 0,
|
when X"03" =>
|
c_reg_inputsa => 0,
|
douta <= X"EC";
|
c_has_ndb => 0,
|
when X"04" =>
|
c_has_nda => 0,
|
douta <= X"B3";
|
c_ytop_addr => "1024",
|
when X"05" =>
|
c_has_rfdb => 0,
|
douta <= X"27";
|
c_has_rfda => 0,
|
when X"06" =>
|
c_ywea_is_high => 1,
|
douta <= X"C0";
|
c_yena_is_high => 1,
|
when X"07" =>
|
c_yclka_is_rising => 1,
|
douta <= X"E5";
|
c_yhierarchy => "hierarchy1",
|
when X"08" =>
|
c_ysinita_is_high => 1,
|
douta <= X"E4";
|
c_ybottom_addr => "0",
|
when X"09" =>
|
c_width_b => 8,
|
douta <= X"85";
|
c_width_a => 8,
|
when X"0A" =>
|
c_sinita_value => "0",
|
douta <= X"57";
|
c_sinitb_value => "0",
|
when X"0B" =>
|
c_limit_data_pitch => 18,
|
douta <= X"35";
|
c_write_modeb => 0,
|
when X"0C" =>
|
c_write_modea => 0,
|
douta <= X"EA";
|
c_has_rdyb => 0,
|
when X"0D" =>
|
c_yuse_single_primitive => 0,
|
douta <= X"0C";
|
c_has_rdya => 0,
|
when X"0E" =>
|
c_addra_width => 8,
|
douta <= X"AE";
|
c_addrb_width => 8,
|
when X"0F" =>
|
c_has_limit_data_pitch => 0,
|
douta <= X"41";
|
c_default_data => "0",
|
when X"10" =>
|
c_pipe_stages_b => 0,
|
douta <= X"23";
|
c_yweb_is_high => 1,
|
when X"11" =>
|
c_yenb_is_high => 1,
|
douta <= X"EF";
|
c_pipe_stages_a => 0,
|
when X"12" =>
|
c_yclkb_is_rising => 1,
|
douta <= X"6B";
|
c_yydisable_warnings => 1,
|
when X"13" =>
|
c_enable_rlocs => 0,
|
douta <= X"93";
|
c_ysinitb_is_high => 1,
|
when X"14" =>
|
c_has_web => 0,
|
douta <= X"45";
|
c_has_default_data => 0,
|
when X"15" =>
|
c_has_sinitb => 0,
|
douta <= X"19";
|
c_has_wea => 0,
|
when X"16" =>
|
c_has_sinita => 0,
|
douta <= X"A5";
|
c_has_dinb => 0,
|
when X"17" =>
|
c_has_dina => 0,
|
douta <= X"21";
|
c_ymake_bmm => 0,
|
when X"18" =>
|
c_sim_collision_check => "NONE",
|
douta <= X"ED";
|
c_has_enb => 1,
|
when X"19" =>
|
c_has_ena => 1,
|
douta <= X"0E";
|
c_mem_init_file => "sbox1.mif",
|
when X"1A" =>
|
c_depth_b => 256,
|
douta <= X"4F";
|
c_depth_a => 256,
|
when X"1B" =>
|
c_has_doutb => 1,
|
douta <= X"4E";
|
c_has_douta => 1,
|
when X"1C" =>
|
c_yprimitive_type => "16kx1");
|
douta <= X"1D";
|
-- synthesis translate_on
|
when X"1D" =>
|
BEGIN
|
douta <= X"65";
|
-- synthesis translate_off
|
when X"1E" =>
|
U0 : wrapped_sbox1
|
douta <= X"92";
|
port map (
|
when X"1F" =>
|
addra => addra,
|
douta <= X"BD";
|
addrb => addrb,
|
when X"20" =>
|
clka => clka,
|
douta <= X"86";
|
clkb => clkb,
|
when X"21" =>
|
douta => douta,
|
douta <= X"B8";
|
doutb => doutb,
|
when X"22" =>
|
ena => ena,
|
douta <= X"AF";
|
enb => enb);
|
when X"23" =>
|
-- synthesis translate_on
|
douta <= X"8F";
|
|
when X"24" =>
|
|
douta <= X"7C";
|
|
when X"25" =>
|
|
douta <= X"EB";
|
|
when X"26" =>
|
|
douta <= X"1F";
|
|
when X"27" =>
|
|
douta <= X"CE";
|
|
when X"28" =>
|
|
douta <= X"3E";
|
|
when X"29" =>
|
|
douta <= X"30";
|
|
when X"2A" =>
|
|
douta <= X"DC";
|
|
when X"2B" =>
|
|
douta <= X"5F";
|
|
when X"2C" =>
|
|
douta <= X"5E";
|
|
when X"2D" =>
|
|
douta <= X"C5";
|
|
when X"2E" =>
|
|
douta <= X"0B";
|
|
when X"2F" =>
|
|
douta <= X"1A";
|
|
when X"30" =>
|
|
douta <= X"A6";
|
|
when X"31" =>
|
|
douta <= X"E1";
|
|
when X"32" =>
|
|
douta <= X"39";
|
|
when X"33" =>
|
|
douta <= X"CA";
|
|
when X"34" =>
|
|
douta <= X"D5";
|
|
when X"35" =>
|
|
douta <= X"47";
|
|
when X"36" =>
|
|
douta <= X"5D";
|
|
when X"37" =>
|
|
douta <= X"3D";
|
|
when X"38" =>
|
|
douta <= X"D9";
|
|
when X"39" =>
|
|
douta <= X"01";
|
|
when X"3A" =>
|
|
douta <= X"5A";
|
|
when X"3B" =>
|
|
douta <= X"D6";
|
|
when X"3C" =>
|
|
douta <= X"51";
|
|
when X"3D" =>
|
|
douta <= X"56";
|
|
when X"3E" =>
|
|
douta <= X"6C";
|
|
when X"3F" =>
|
|
douta <= X"4D";
|
|
when X"40" =>
|
|
douta <= X"8B";
|
|
when X"41" =>
|
|
douta <= X"0D";
|
|
when X"42" =>
|
|
douta <= X"9A";
|
|
when X"43" =>
|
|
douta <= X"66";
|
|
when X"44" =>
|
|
douta <= X"FB";
|
|
when X"45" =>
|
|
douta <= X"CC";
|
|
when X"46" =>
|
|
douta <= X"B0";
|
|
when X"47" =>
|
|
douta <= X"2D";
|
|
when X"48" =>
|
|
douta <= X"74";
|
|
when X"49" =>
|
|
douta <= X"12";
|
|
when X"4A" =>
|
|
douta <= X"2B";
|
|
when X"4B" =>
|
|
douta <= X"20";
|
|
when X"4C" =>
|
|
douta <= X"F0";
|
|
when X"4D" =>
|
|
douta <= X"B1";
|
|
when X"4E" =>
|
|
douta <= X"84";
|
|
when X"4F" =>
|
|
douta <= X"99";
|
|
when X"50" =>
|
|
douta <= X"DF";
|
|
when X"51" =>
|
|
douta <= X"4C";
|
|
when X"52" =>
|
|
douta <= X"CB";
|
|
when X"53" =>
|
|
douta <= X"C2";
|
|
when X"54" =>
|
|
douta <= X"34";
|
|
when X"55" =>
|
|
douta <= X"7E";
|
|
when X"56" =>
|
|
douta <= X"76";
|
|
when X"57" =>
|
|
douta <= X"05";
|
|
when X"58" =>
|
|
douta <= X"6D";
|
|
when X"59" =>
|
|
douta <= X"B7";
|
|
when X"5A" =>
|
|
douta <= X"A9";
|
|
when X"5B" =>
|
|
douta <= X"31";
|
|
when X"5C" =>
|
|
douta <= X"D1";
|
|
when X"5D" =>
|
|
douta <= X"17";
|
|
when X"5E" =>
|
|
douta <= X"04";
|
|
when X"5F" =>
|
|
douta <= X"D7";
|
|
when X"60" =>
|
|
douta <= X"14";
|
|
when X"61" =>
|
|
douta <= X"58";
|
|
when X"62" =>
|
|
douta <= X"3A";
|
|
when X"63" =>
|
|
douta <= X"61";
|
|
when X"64" =>
|
|
douta <= X"DE";
|
|
when X"65" =>
|
|
douta <= X"1B";
|
|
when X"66" =>
|
|
douta <= X"11";
|
|
when X"67" =>
|
|
douta <= X"1C";
|
|
when X"68" =>
|
|
douta <= X"32";
|
|
when X"69" =>
|
|
douta <= X"0F";
|
|
when X"6A" =>
|
|
douta <= X"9C";
|
|
when X"6B" =>
|
|
douta <= X"16";
|
|
when X"6C" =>
|
|
douta <= X"53";
|
|
when X"6D" =>
|
|
douta <= X"18";
|
|
when X"6E" =>
|
|
douta <= X"F2";
|
|
when X"6F" =>
|
|
douta <= X"22";
|
|
when X"70" =>
|
|
douta <= X"FE";
|
|
when X"71" =>
|
|
douta <= X"44";
|
|
when X"72" =>
|
|
douta <= X"CF";
|
|
when X"73" =>
|
|
douta <= X"B2";
|
|
when X"74" =>
|
|
douta <= X"C3";
|
|
when X"75" =>
|
|
douta <= X"B5";
|
|
when X"76" =>
|
|
douta <= X"7A";
|
|
when X"77" =>
|
|
douta <= X"91";
|
|
when X"78" =>
|
|
douta <= X"24";
|
|
when X"79" =>
|
|
douta <= X"08";
|
|
when X"7A" =>
|
|
douta <= X"E8";
|
|
when X"7B" =>
|
|
douta <= X"A8";
|
|
when X"7C" =>
|
|
douta <= X"60";
|
|
when X"7D" =>
|
|
douta <= X"FC";
|
|
when X"7E" =>
|
|
douta <= X"69";
|
|
when X"7F" =>
|
|
douta <= X"50";
|
|
when X"80" =>
|
|
douta <= X"AA";
|
|
when X"81" =>
|
|
douta <= X"D0";
|
|
when X"82" =>
|
|
douta <= X"A0";
|
|
when X"83" =>
|
|
douta <= X"7D";
|
|
when X"84" =>
|
|
douta <= X"A1";
|
|
when X"85" =>
|
|
douta <= X"89";
|
|
when X"86" =>
|
|
douta <= X"62";
|
|
when X"87" =>
|
|
douta <= X"97";
|
|
when X"88" =>
|
|
douta <= X"54";
|
|
when X"89" =>
|
|
douta <= X"5B";
|
|
when X"8A" =>
|
|
douta <= X"1E";
|
|
when X"8B" =>
|
|
douta <= X"95";
|
|
when X"8C" =>
|
|
douta <= X"E0";
|
|
when X"8D" =>
|
|
douta <= X"FF";
|
|
when X"8E" =>
|
|
douta <= X"64";
|
|
when X"8F" =>
|
|
douta <= X"D2";
|
|
when X"90" =>
|
|
douta <= X"10";
|
|
when X"91" =>
|
|
douta <= X"C4";
|
|
when X"92" =>
|
|
douta <= X"00";
|
|
when X"93" =>
|
|
douta <= X"48";
|
|
when X"94" =>
|
|
douta <= X"A3";
|
|
when X"95" =>
|
|
douta <= X"F7";
|
|
when X"96" =>
|
|
douta <= X"75";
|
|
when X"97" =>
|
|
douta <= X"DB";
|
|
when X"98" =>
|
|
douta <= X"8A";
|
|
when X"99" =>
|
|
douta <= X"03";
|
|
when X"9A" =>
|
|
douta <= X"E6";
|
|
when X"9B" =>
|
|
douta <= X"DA";
|
|
when X"9C" =>
|
|
douta <= X"09";
|
|
when X"9D" =>
|
|
douta <= X"3F";
|
|
when X"9E" =>
|
|
douta <= X"DD";
|
|
when X"9F" =>
|
|
douta <= X"94";
|
|
when X"A0" =>
|
|
douta <= X"87";
|
|
when X"A1" =>
|
|
douta <= X"5C";
|
|
when X"A2" =>
|
|
douta <= X"83";
|
|
when X"A3" =>
|
|
douta <= X"02";
|
|
when X"A4" =>
|
|
douta <= X"CD";
|
|
when X"A5" =>
|
|
douta <= X"4A";
|
|
when X"A6" =>
|
|
douta <= X"90";
|
|
when X"A7" =>
|
|
douta <= X"33";
|
|
when X"A8" =>
|
|
douta <= X"73";
|
|
when X"A9" =>
|
|
douta <= X"67";
|
|
when X"AA" =>
|
|
douta <= X"F6";
|
|
when X"AB" =>
|
|
douta <= X"F3";
|
|
when X"AC" =>
|
|
douta <= X"9D";
|
|
when X"AD" =>
|
|
douta <= X"7F";
|
|
when X"AE" =>
|
|
douta <= X"BF";
|
|
when X"AF" =>
|
|
douta <= X"E2";
|
|
when X"B0" =>
|
|
douta <= X"52";
|
|
when X"B1" =>
|
|
douta <= X"9B";
|
|
when X"B2" =>
|
|
douta <= X"D8";
|
|
when X"B3" =>
|
|
douta <= X"26";
|
|
when X"B4" =>
|
|
douta <= X"C8";
|
|
when X"B5" =>
|
|
douta <= X"37";
|
|
when X"B6" =>
|
|
douta <= X"C6";
|
|
when X"B7" =>
|
|
douta <= X"3B";
|
|
when X"B8" =>
|
|
douta <= X"81";
|
|
when X"B9" =>
|
|
douta <= X"96";
|
|
when X"BA" =>
|
|
douta <= X"6F";
|
|
when X"BB" =>
|
|
douta <= X"4B";
|
|
when X"BC" =>
|
|
douta <= X"13";
|
|
when X"BD" =>
|
|
douta <= X"BE";
|
|
when X"BE" =>
|
|
douta <= X"63";
|
|
when X"BF" =>
|
|
douta <= X"2E";
|
|
when X"C0" =>
|
|
douta <= X"E9";
|
|
when X"C1" =>
|
|
douta <= X"79";
|
|
when X"C2" =>
|
|
douta <= X"A7";
|
|
when X"C3" =>
|
|
douta <= X"8C";
|
|
when X"C4" =>
|
|
douta <= X"9F";
|
|
when X"C5" =>
|
|
douta <= X"6E";
|
|
when X"C6" =>
|
|
douta <= X"BC";
|
|
when X"C7" =>
|
|
douta <= X"8E";
|
|
when X"C8" =>
|
|
douta <= X"29";
|
|
when X"C9" =>
|
|
douta <= X"F5";
|
|
when X"CA" =>
|
|
douta <= X"F9";
|
|
when X"CB" =>
|
|
douta <= X"B6";
|
|
when X"CC" =>
|
|
douta <= X"2F";
|
|
when X"CD" =>
|
|
douta <= X"FD";
|
|
when X"CE" =>
|
|
douta <= X"B4";
|
|
when X"CF" =>
|
|
douta <= X"59";
|
|
when X"D0" =>
|
|
douta <= X"78";
|
|
when X"D1" =>
|
|
douta <= X"98";
|
|
when X"D2" =>
|
|
douta <= X"06";
|
|
when X"D3" =>
|
|
douta <= X"6A";
|
|
when X"D4" =>
|
|
douta <= X"E7";
|
|
when X"D5" =>
|
|
douta <= X"46";
|
|
when X"D6" =>
|
|
douta <= X"71";
|
|
when X"D7" =>
|
|
douta <= X"BA";
|
|
when X"D8" =>
|
|
douta <= X"D4";
|
|
when X"D9" =>
|
|
douta <= X"25";
|
|
when X"DA" =>
|
|
douta <= X"AB";
|
|
when X"DB" =>
|
|
douta <= X"42";
|
|
when X"DC" =>
|
|
douta <= X"88";
|
|
when X"DD" =>
|
|
douta <= X"A2";
|
|
when X"DE" =>
|
|
douta <= X"8D";
|
|
when X"DF" =>
|
|
douta <= X"FA";
|
|
when X"E0" =>
|
|
douta <= X"72";
|
|
when X"E1" =>
|
|
douta <= X"07";
|
|
when X"E2" =>
|
|
douta <= X"B9";
|
|
when X"E3" =>
|
|
douta <= X"55";
|
|
when X"E4" =>
|
|
douta <= X"F8";
|
|
when X"E5" =>
|
|
douta <= X"EE";
|
|
when X"E6" =>
|
|
douta <= X"AC";
|
|
when X"E7" =>
|
|
douta <= X"0A";
|
|
when X"E8" =>
|
|
douta <= X"36";
|
|
when X"E9" =>
|
|
douta <= X"49";
|
|
when X"EA" =>
|
|
douta <= X"2A";
|
|
when X"EB" =>
|
|
douta <= X"68";
|
|
when X"EC" =>
|
|
douta <= X"3C";
|
|
when X"ED" =>
|
|
douta <= X"38";
|
|
when X"EE" =>
|
|
douta <= X"F1";
|
|
when X"EF" =>
|
|
douta <= X"A4";
|
|
when X"F0" =>
|
|
douta <= X"40";
|
|
when X"F1" =>
|
|
douta <= X"28";
|
|
when X"F2" =>
|
|
douta <= X"D3";
|
|
when X"F3" =>
|
|
douta <= X"7B";
|
|
when X"F4" =>
|
|
douta <= X"BB";
|
|
when X"F5" =>
|
|
douta <= X"C9";
|
|
when X"F6" =>
|
|
douta <= X"43";
|
|
when X"F7" =>
|
|
douta <= X"C1";
|
|
when X"F8" =>
|
|
douta <= X"15";
|
|
when X"F9" =>
|
|
douta <= X"E3";
|
|
when X"FA" =>
|
|
douta <= X"AD";
|
|
when X"FB" =>
|
|
douta <= X"F4";
|
|
when X"FC" =>
|
|
douta <= X"77";
|
|
when X"FD" =>
|
|
douta <= X"C7";
|
|
when X"FE" =>
|
|
douta <= X"80";
|
|
when X"FF" =>
|
|
douta <= X"9E";
|
|
when others =>
|
|
douta <= (others=>'-');
|
|
end case;
|
|
end if;
|
|
end if;
|
|
|
|
end process;
|
|
|
|
|
|
|
|
CHB : process(enb, clkb)
|
|
begin
|
|
|
|
if (enb = '0') then
|
|
doutb <= (others=>'0');
|
|
else
|
|
if (clkb'event and clkb = '1') then -- rising clock edge
|
|
case addrb is
|
|
when X"00" =>
|
|
doutb <= X"70";
|
|
when X"01" =>
|
|
doutb <= X"82";
|
|
when X"02" =>
|
|
doutb <= X"2C";
|
|
when X"03" =>
|
|
doutb <= X"EC";
|
|
when X"04" =>
|
|
doutb <= X"B3";
|
|
when X"05" =>
|
|
doutb <= X"27";
|
|
when X"06" =>
|
|
doutb <= X"C0";
|
|
when X"07" =>
|
|
doutb <= X"E5";
|
|
when X"08" =>
|
|
doutb <= X"E4";
|
|
when X"09" =>
|
|
doutb <= X"85";
|
|
when X"0A" =>
|
|
doutb <= X"57";
|
|
when X"0B" =>
|
|
doutb <= X"35";
|
|
when X"0C" =>
|
|
doutb <= X"EA";
|
|
when X"0D" =>
|
|
doutb <= X"0C";
|
|
when X"0E" =>
|
|
doutb <= X"AE";
|
|
when X"0F" =>
|
|
doutb <= X"41";
|
|
when X"10" =>
|
|
doutb <= X"23";
|
|
when X"11" =>
|
|
doutb <= X"EF";
|
|
when X"12" =>
|
|
doutb <= X"6B";
|
|
when X"13" =>
|
|
doutb <= X"93";
|
|
when X"14" =>
|
|
doutb <= X"45";
|
|
when X"15" =>
|
|
doutb <= X"19";
|
|
when X"16" =>
|
|
doutb <= X"A5";
|
|
when X"17" =>
|
|
doutb <= X"21";
|
|
when X"18" =>
|
|
doutb <= X"ED";
|
|
when X"19" =>
|
|
doutb <= X"0E";
|
|
when X"1A" =>
|
|
doutb <= X"4F";
|
|
when X"1B" =>
|
|
doutb <= X"4E";
|
|
when X"1C" =>
|
|
doutb <= X"1D";
|
|
when X"1D" =>
|
|
doutb <= X"65";
|
|
when X"1E" =>
|
|
doutb <= X"92";
|
|
when X"1F" =>
|
|
doutb <= X"BD";
|
|
when X"20" =>
|
|
doutb <= X"86";
|
|
when X"21" =>
|
|
doutb <= X"B8";
|
|
when X"22" =>
|
|
doutb <= X"AF";
|
|
when X"23" =>
|
|
doutb <= X"8F";
|
|
when X"24" =>
|
|
doutb <= X"7C";
|
|
when X"25" =>
|
|
doutb <= X"EB";
|
|
when X"26" =>
|
|
doutb <= X"1F";
|
|
when X"27" =>
|
|
doutb <= X"CE";
|
|
when X"28" =>
|
|
doutb <= X"3E";
|
|
when X"29" =>
|
|
doutb <= X"30";
|
|
when X"2A" =>
|
|
doutb <= X"DC";
|
|
when X"2B" =>
|
|
doutb <= X"5F";
|
|
when X"2C" =>
|
|
doutb <= X"5E";
|
|
when X"2D" =>
|
|
doutb <= X"C5";
|
|
when X"2E" =>
|
|
doutb <= X"0B";
|
|
when X"2F" =>
|
|
doutb <= X"1A";
|
|
when X"30" =>
|
|
doutb <= X"A6";
|
|
when X"31" =>
|
|
doutb <= X"E1";
|
|
when X"32" =>
|
|
doutb <= X"39";
|
|
when X"33" =>
|
|
doutb <= X"CA";
|
|
when X"34" =>
|
|
doutb <= X"D5";
|
|
when X"35" =>
|
|
doutb <= X"47";
|
|
when X"36" =>
|
|
doutb <= X"5D";
|
|
when X"37" =>
|
|
doutb <= X"3D";
|
|
when X"38" =>
|
|
doutb <= X"D9";
|
|
when X"39" =>
|
|
doutb <= X"01";
|
|
when X"3A" =>
|
|
doutb <= X"5A";
|
|
when X"3B" =>
|
|
doutb <= X"D6";
|
|
when X"3C" =>
|
|
doutb <= X"51";
|
|
when X"3D" =>
|
|
doutb <= X"56";
|
|
when X"3E" =>
|
|
doutb <= X"6C";
|
|
when X"3F" =>
|
|
doutb <= X"4D";
|
|
when X"40" =>
|
|
doutb <= X"8B";
|
|
when X"41" =>
|
|
doutb <= X"0D";
|
|
when X"42" =>
|
|
doutb <= X"9A";
|
|
when X"43" =>
|
|
doutb <= X"66";
|
|
when X"44" =>
|
|
doutb <= X"FB";
|
|
when X"45" =>
|
|
doutb <= X"CC";
|
|
when X"46" =>
|
|
doutb <= X"B0";
|
|
when X"47" =>
|
|
doutb <= X"2D";
|
|
when X"48" =>
|
|
doutb <= X"74";
|
|
when X"49" =>
|
|
doutb <= X"12";
|
|
when X"4A" =>
|
|
doutb <= X"2B";
|
|
when X"4B" =>
|
|
doutb <= X"20";
|
|
when X"4C" =>
|
|
doutb <= X"F0";
|
|
when X"4D" =>
|
|
doutb <= X"B1";
|
|
when X"4E" =>
|
|
doutb <= X"84";
|
|
when X"4F" =>
|
|
doutb <= X"99";
|
|
when X"50" =>
|
|
doutb <= X"DF";
|
|
when X"51" =>
|
|
doutb <= X"4C";
|
|
when X"52" =>
|
|
doutb <= X"CB";
|
|
when X"53" =>
|
|
doutb <= X"C2";
|
|
when X"54" =>
|
|
doutb <= X"34";
|
|
when X"55" =>
|
|
doutb <= X"7E";
|
|
when X"56" =>
|
|
doutb <= X"76";
|
|
when X"57" =>
|
|
doutb <= X"05";
|
|
when X"58" =>
|
|
doutb <= X"6D";
|
|
when X"59" =>
|
|
doutb <= X"B7";
|
|
when X"5A" =>
|
|
doutb <= X"A9";
|
|
when X"5B" =>
|
|
doutb <= X"31";
|
|
when X"5C" =>
|
|
doutb <= X"D1";
|
|
when X"5D" =>
|
|
doutb <= X"17";
|
|
when X"5E" =>
|
|
doutb <= X"04";
|
|
when X"5F" =>
|
|
doutb <= X"D7";
|
|
when X"60" =>
|
|
doutb <= X"14";
|
|
when X"61" =>
|
|
doutb <= X"58";
|
|
when X"62" =>
|
|
doutb <= X"3A";
|
|
when X"63" =>
|
|
doutb <= X"61";
|
|
when X"64" =>
|
|
doutb <= X"DE";
|
|
when X"65" =>
|
|
doutb <= X"1B";
|
|
when X"66" =>
|
|
doutb <= X"11";
|
|
when X"67" =>
|
|
doutb <= X"1C";
|
|
when X"68" =>
|
|
doutb <= X"32";
|
|
when X"69" =>
|
|
doutb <= X"0F";
|
|
when X"6A" =>
|
|
doutb <= X"9C";
|
|
when X"6B" =>
|
|
doutb <= X"16";
|
|
when X"6C" =>
|
|
doutb <= X"53";
|
|
when X"6D" =>
|
|
doutb <= X"18";
|
|
when X"6E" =>
|
|
doutb <= X"F2";
|
|
when X"6F" =>
|
|
doutb <= X"22";
|
|
when X"70" =>
|
|
doutb <= X"FE";
|
|
when X"71" =>
|
|
doutb <= X"44";
|
|
when X"72" =>
|
|
doutb <= X"CF";
|
|
when X"73" =>
|
|
doutb <= X"B2";
|
|
when X"74" =>
|
|
doutb <= X"C3";
|
|
when X"75" =>
|
|
doutb <= X"B5";
|
|
when X"76" =>
|
|
doutb <= X"7A";
|
|
when X"77" =>
|
|
doutb <= X"91";
|
|
when X"78" =>
|
|
doutb <= X"24";
|
|
when X"79" =>
|
|
doutb <= X"08";
|
|
when X"7A" =>
|
|
doutb <= X"E8";
|
|
when X"7B" =>
|
|
doutb <= X"A8";
|
|
when X"7C" =>
|
|
doutb <= X"60";
|
|
when X"7D" =>
|
|
doutb <= X"FC";
|
|
when X"7E" =>
|
|
doutb <= X"69";
|
|
when X"7F" =>
|
|
doutb <= X"50";
|
|
when X"80" =>
|
|
doutb <= X"AA";
|
|
when X"81" =>
|
|
doutb <= X"D0";
|
|
when X"82" =>
|
|
doutb <= X"A0";
|
|
when X"83" =>
|
|
doutb <= X"7D";
|
|
when X"84" =>
|
|
doutb <= X"A1";
|
|
when X"85" =>
|
|
doutb <= X"89";
|
|
when X"86" =>
|
|
doutb <= X"62";
|
|
when X"87" =>
|
|
doutb <= X"97";
|
|
when X"88" =>
|
|
doutb <= X"54";
|
|
when X"89" =>
|
|
doutb <= X"5B";
|
|
when X"8A" =>
|
|
doutb <= X"1E";
|
|
when X"8B" =>
|
|
doutb <= X"95";
|
|
when X"8C" =>
|
|
doutb <= X"E0";
|
|
when X"8D" =>
|
|
doutb <= X"FF";
|
|
when X"8E" =>
|
|
doutb <= X"64";
|
|
when X"8F" =>
|
|
doutb <= X"D2";
|
|
when X"90" =>
|
|
doutb <= X"10";
|
|
when X"91" =>
|
|
doutb <= X"C4";
|
|
when X"92" =>
|
|
doutb <= X"00";
|
|
when X"93" =>
|
|
doutb <= X"48";
|
|
when X"94" =>
|
|
doutb <= X"A3";
|
|
when X"95" =>
|
|
doutb <= X"F7";
|
|
when X"96" =>
|
|
doutb <= X"75";
|
|
when X"97" =>
|
|
doutb <= X"DB";
|
|
when X"98" =>
|
|
doutb <= X"8A";
|
|
when X"99" =>
|
|
doutb <= X"03";
|
|
when X"9A" =>
|
|
doutb <= X"E6";
|
|
when X"9B" =>
|
|
doutb <= X"DA";
|
|
when X"9C" =>
|
|
doutb <= X"09";
|
|
when X"9D" =>
|
|
doutb <= X"3F";
|
|
when X"9E" =>
|
|
doutb <= X"DD";
|
|
when X"9F" =>
|
|
doutb <= X"94";
|
|
when X"A0" =>
|
|
doutb <= X"87";
|
|
when X"A1" =>
|
|
doutb <= X"5C";
|
|
when X"A2" =>
|
|
doutb <= X"83";
|
|
when X"A3" =>
|
|
doutb <= X"02";
|
|
when X"A4" =>
|
|
doutb <= X"CD";
|
|
when X"A5" =>
|
|
doutb <= X"4A";
|
|
when X"A6" =>
|
|
doutb <= X"90";
|
|
when X"A7" =>
|
|
doutb <= X"33";
|
|
when X"A8" =>
|
|
doutb <= X"73";
|
|
when X"A9" =>
|
|
doutb <= X"67";
|
|
when X"AA" =>
|
|
doutb <= X"F6";
|
|
when X"AB" =>
|
|
doutb <= X"F3";
|
|
when X"AC" =>
|
|
doutb <= X"9D";
|
|
when X"AD" =>
|
|
doutb <= X"7F";
|
|
when X"AE" =>
|
|
doutb <= X"BF";
|
|
when X"AF" =>
|
|
doutb <= X"E2";
|
|
when X"B0" =>
|
|
doutb <= X"52";
|
|
when X"B1" =>
|
|
doutb <= X"9B";
|
|
when X"B2" =>
|
|
doutb <= X"D8";
|
|
when X"B3" =>
|
|
doutb <= X"26";
|
|
when X"B4" =>
|
|
doutb <= X"C8";
|
|
when X"B5" =>
|
|
doutb <= X"37";
|
|
when X"B6" =>
|
|
doutb <= X"C6";
|
|
when X"B7" =>
|
|
doutb <= X"3B";
|
|
when X"B8" =>
|
|
doutb <= X"81";
|
|
when X"B9" =>
|
|
doutb <= X"96";
|
|
when X"BA" =>
|
|
doutb <= X"6F";
|
|
when X"BB" =>
|
|
doutb <= X"4B";
|
|
when X"BC" =>
|
|
doutb <= X"13";
|
|
when X"BD" =>
|
|
doutb <= X"BE";
|
|
when X"BE" =>
|
|
doutb <= X"63";
|
|
when X"BF" =>
|
|
doutb <= X"2E";
|
|
when X"C0" =>
|
|
doutb <= X"E9";
|
|
when X"C1" =>
|
|
doutb <= X"79";
|
|
when X"C2" =>
|
|
doutb <= X"A7";
|
|
when X"C3" =>
|
|
doutb <= X"8C";
|
|
when X"C4" =>
|
|
doutb <= X"9F";
|
|
when X"C5" =>
|
|
doutb <= X"6E";
|
|
when X"C6" =>
|
|
doutb <= X"BC";
|
|
when X"C7" =>
|
|
doutb <= X"8E";
|
|
when X"C8" =>
|
|
doutb <= X"29";
|
|
when X"C9" =>
|
|
doutb <= X"F5";
|
|
when X"CA" =>
|
|
doutb <= X"F9";
|
|
when X"CB" =>
|
|
doutb <= X"B6";
|
|
when X"CC" =>
|
|
doutb <= X"2F";
|
|
when X"CD" =>
|
|
doutb <= X"FD";
|
|
when X"CE" =>
|
|
doutb <= X"B4";
|
|
when X"CF" =>
|
|
doutb <= X"59";
|
|
when X"D0" =>
|
|
doutb <= X"78";
|
|
when X"D1" =>
|
|
doutb <= X"98";
|
|
when X"D2" =>
|
|
doutb <= X"06";
|
|
when X"D3" =>
|
|
doutb <= X"6A";
|
|
when X"D4" =>
|
|
doutb <= X"E7";
|
|
when X"D5" =>
|
|
doutb <= X"46";
|
|
when X"D6" =>
|
|
doutb <= X"71";
|
|
when X"D7" =>
|
|
doutb <= X"BA";
|
|
when X"D8" =>
|
|
doutb <= X"D4";
|
|
when X"D9" =>
|
|
doutb <= X"25";
|
|
when X"DA" =>
|
|
doutb <= X"AB";
|
|
when X"DB" =>
|
|
doutb <= X"42";
|
|
when X"DC" =>
|
|
doutb <= X"88";
|
|
when X"DD" =>
|
|
doutb <= X"A2";
|
|
when X"DE" =>
|
|
doutb <= X"8D";
|
|
when X"DF" =>
|
|
doutb <= X"FA";
|
|
when X"E0" =>
|
|
doutb <= X"72";
|
|
when X"E1" =>
|
|
doutb <= X"07";
|
|
when X"E2" =>
|
|
doutb <= X"B9";
|
|
when X"E3" =>
|
|
doutb <= X"55";
|
|
when X"E4" =>
|
|
doutb <= X"F8";
|
|
when X"E5" =>
|
|
doutb <= X"EE";
|
|
when X"E6" =>
|
|
doutb <= X"AC";
|
|
when X"E7" =>
|
|
doutb <= X"0A";
|
|
when X"E8" =>
|
|
doutb <= X"36";
|
|
when X"E9" =>
|
|
doutb <= X"49";
|
|
when X"EA" =>
|
|
doutb <= X"2A";
|
|
when X"EB" =>
|
|
doutb <= X"68";
|
|
when X"EC" =>
|
|
doutb <= X"3C";
|
|
when X"ED" =>
|
|
doutb <= X"38";
|
|
when X"EE" =>
|
|
doutb <= X"F1";
|
|
when X"EF" =>
|
|
doutb <= X"A4";
|
|
when X"F0" =>
|
|
doutb <= X"40";
|
|
when X"F1" =>
|
|
doutb <= X"28";
|
|
when X"F2" =>
|
|
doutb <= X"D3";
|
|
when X"F3" =>
|
|
doutb <= X"7B";
|
|
when X"F4" =>
|
|
doutb <= X"BB";
|
|
when X"F5" =>
|
|
doutb <= X"C9";
|
|
when X"F6" =>
|
|
doutb <= X"43";
|
|
when X"F7" =>
|
|
doutb <= X"C1";
|
|
when X"F8" =>
|
|
doutb <= X"15";
|
|
when X"F9" =>
|
|
doutb <= X"E3";
|
|
when X"FA" =>
|
|
doutb <= X"AD";
|
|
when X"FB" =>
|
|
doutb <= X"F4";
|
|
when X"FC" =>
|
|
doutb <= X"77";
|
|
when X"FD" =>
|
|
doutb <= X"C7";
|
|
when X"FE" =>
|
|
doutb <= X"80";
|
|
when X"FF" =>
|
|
doutb <= X"9E";
|
|
when others =>
|
|
doutb <= (others=>'-');
|
|
end case;
|
|
end if;
|
|
end if;
|
|
|
|
end process;
|
|
|
|
|
END sbox1_a;
|
|
|
end RTL;
|
|
|
|
No newline at end of file
|
No newline at end of file
|