OpenCores
URL https://opencores.org/ocsvn/camellia-vhdl/camellia-vhdl/trunk

Subversion Repositories camellia-vhdl

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 4 to Rev 5
    Reverse comparison

Rev 4 → Rev 5

/trunk/pipelining/camellia128_tb.do
25,4 → 25,4
add wave -HEX -ports /uut/fl2/*
add wave -divider "six3"
add wave -HEX -ports /uut/six3/*
run 1000 ns
run 150 ns
/trunk/pipelining/camellia128_tb.vhd
55,8 → 55,7
signal c : STD_LOGIC_VECTOR(0 to 127);
 
-- Time constants
constant ClockPeriod : TIME := 30 ns;
constant InitReset : TIME := 20 ns;
constant ClockPeriod : TIME := 5 ns;
 
-- Misc
signal clk_count : INTEGER range 0 to 30;
86,26 → 85,27
begin
reset <= '1';
clk_count <= 0;
wait for InitReset;
wait for ClockPeriod*2; --falling clock edge
reset <= '0';
wait until clk = '1';
m <= X"0123456789ABCDEFFEDCBA9876543210";
k <= X"0123456789ABCDEFFEDCBA9876543210";
dec <= '0';
wait for ClockPeriod;
wait until clk = '1';
m <= X"17E02528D6655CEA7BE6B8548FC2DA65";
k <= X"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE";
dec <= '1';
clk_count <= clk_count + 1;
wait for ClockPeriod;
wait until clk = '1';
m <= X"67673138549669730857065648EABE43";
k <= X"0123456789ABCDEFFEDCBA9876543210";
dec <= '1';
clk_count <= clk_count + 1;
for I in 0 to 26 loop
wait for ClockPeriod;
wait until clk = '1';
clk_count <= clk_count + 1;
end loop;
reset <= '1';
wait;
end process;
 
/trunk/pipelining/sbox1.vhd
1,1106 → 1,140
 
--------------------------------------------------------------------------------
-- Designer: Paolo Fulgoni <pfulgoni@opencores.org>
--
-- Create Date: 09/14/2007
-- Last Update: 10/15/2007
-- Project Name: camellia-vhdl
-- Description: Dual-port SBOX1
--
-- Copyright (C) 2007 Paolo Fulgoni
-- This file is part of camellia-vhdl.
-- camellia-vhdl is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 3 of the License, or
-- (at your option) any later version.
-- camellia-vhdl is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
--
-- The Camellia cipher algorithm is 128 bit cipher developed by NTT and
-- Mitsubishi Electric researchers.
-- http://info.isl.ntt.co.jp/crypt/eng/camellia/
-- This file is owned and controlled by Xilinx and must be used --
-- solely for design, simulation, implementation and creation of --
-- design files limited to Xilinx devices or technologies. Use --
-- with non-Xilinx devices or technologies is expressly prohibited --
-- and immediately terminates your license. --
-- --
-- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" --
-- SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR --
-- XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION --
-- AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION --
-- OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS --
-- IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, --
-- AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE --
-- FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY --
-- WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE --
-- IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR --
-- REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF --
-- INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS --
-- FOR A PARTICULAR PURPOSE. --
-- --
-- Xilinx products are not intended for use in life support --
-- appliances, devices, or systems. Use in such applications are --
-- expressly prohibited. --
-- --
-- (c) Copyright 1995-2007 Xilinx, Inc. --
-- All rights reserved. --
--------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.all;
-- You must compile the wrapper file sbox1.vhd when simulating
-- 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".
 
-- 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).
 
entity SBOX1 is
port (
addra : IN STD_LOGIC_VECTOR(0 to 7);
addrb : IN STD_LOGIC_VECTOR(0 to 7);
clka : IN STD_LOGIC;
clkb : IN STD_LOGIC;
douta : OUT STD_LOGIC_VECTOR(0 to 7);
doutb : OUT STD_LOGIC_VECTOR(0 to 7);
ena : IN STD_LOGIC;
enb : IN STD_LOGIC
);
end SBOX1;
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
-- synthesis translate_off
Library XilinxCoreLib;
-- synthesis translate_on
ENTITY sbox1 IS
port (
addra: IN std_logic_VECTOR(7 downto 0);
addrb: IN std_logic_VECTOR(7 downto 0);
clka: IN std_logic;
clkb: IN std_logic;
douta: OUT std_logic_VECTOR(7 downto 0);
doutb: OUT std_logic_VECTOR(7 downto 0);
ena: IN std_logic;
enb: IN std_logic);
END sbox1;
 
architecture RTL of SBOX1 is
begin
ARCHITECTURE sbox1_a OF sbox1 IS
-- synthesis translate_off
component wrapped_sbox1
port (
addra: IN std_logic_VECTOR(7 downto 0);
addrb: IN std_logic_VECTOR(7 downto 0);
clka: IN std_logic;
clkb: IN std_logic;
douta: OUT std_logic_VECTOR(7 downto 0);
doutb: OUT std_logic_VECTOR(7 downto 0);
ena: IN std_logic;
enb: IN std_logic);
end component;
 
CHA : process(ena, clka)
begin
-- Configuration specification
for all : wrapped_sbox1 use entity XilinxCoreLib.blkmemdp_v6_3(behavioral)
generic map(
c_reg_inputsb => 0,
c_reg_inputsa => 0,
c_has_ndb => 0,
c_has_nda => 0,
c_ytop_addr => "1024",
c_has_rfdb => 0,
c_has_rfda => 0,
c_ywea_is_high => 1,
c_yena_is_high => 1,
c_yclka_is_rising => 1,
c_yhierarchy => "hierarchy1",
c_ysinita_is_high => 1,
c_ybottom_addr => "0",
c_width_b => 8,
c_width_a => 8,
c_sinita_value => "0",
c_sinitb_value => "0",
c_limit_data_pitch => 18,
c_write_modeb => 0,
c_write_modea => 0,
c_has_rdyb => 0,
c_yuse_single_primitive => 0,
c_has_rdya => 0,
c_addra_width => 8,
c_addrb_width => 8,
c_has_limit_data_pitch => 0,
c_default_data => "0",
c_pipe_stages_b => 0,
c_yweb_is_high => 1,
c_yenb_is_high => 1,
c_pipe_stages_a => 0,
c_yclkb_is_rising => 1,
c_yydisable_warnings => 1,
c_enable_rlocs => 0,
c_ysinitb_is_high => 1,
c_has_web => 0,
c_has_default_data => 0,
c_has_sinitb => 0,
c_has_wea => 0,
c_has_sinita => 0,
c_has_dinb => 0,
c_has_dina => 0,
c_ymake_bmm => 0,
c_sim_collision_check => "NONE",
c_has_enb => 1,
c_has_ena => 1,
c_mem_init_file => "sbox1.mif",
c_depth_b => 256,
c_depth_a => 256,
c_has_doutb => 1,
c_has_douta => 1,
c_yprimitive_type => "16kx1");
-- synthesis translate_on
BEGIN
-- synthesis translate_off
U0 : wrapped_sbox1
port map (
addra => addra,
addrb => addrb,
clka => clka,
clkb => clkb,
douta => douta,
doutb => doutb,
ena => ena,
enb => enb);
-- synthesis translate_on
 
if (ena = '0') then
douta <= (others=>'0');
else
if (clka'event and clka = '1') then -- rising clock edge
case addra is
when X"00" =>
douta <= X"70";
when X"01" =>
douta <= X"82";
when X"02" =>
douta <= X"2C";
when X"03" =>
douta <= X"EC";
when X"04" =>
douta <= X"B3";
when X"05" =>
douta <= X"27";
when X"06" =>
douta <= X"C0";
when X"07" =>
douta <= X"E5";
when X"08" =>
douta <= X"E4";
when X"09" =>
douta <= X"85";
when X"0A" =>
douta <= X"57";
when X"0B" =>
douta <= X"35";
when X"0C" =>
douta <= X"EA";
when X"0D" =>
douta <= X"0C";
when X"0E" =>
douta <= X"AE";
when X"0F" =>
douta <= X"41";
when X"10" =>
douta <= X"23";
when X"11" =>
douta <= X"EF";
when X"12" =>
douta <= X"6B";
when X"13" =>
douta <= X"93";
when X"14" =>
douta <= X"45";
when X"15" =>
douta <= X"19";
when X"16" =>
douta <= X"A5";
when X"17" =>
douta <= X"21";
when X"18" =>
douta <= X"ED";
when X"19" =>
douta <= X"0E";
when X"1A" =>
douta <= X"4F";
when X"1B" =>
douta <= X"4E";
when X"1C" =>
douta <= X"1D";
when X"1D" =>
douta <= X"65";
when X"1E" =>
douta <= X"92";
when X"1F" =>
douta <= X"BD";
when X"20" =>
douta <= X"86";
when X"21" =>
douta <= X"B8";
when X"22" =>
douta <= X"AF";
when X"23" =>
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 sbox1_a;
 
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 RTL;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.