-- Généré le Sun, 27 Apr 2014 14:56:21 GMT -- par http://127.0.0.1/index.dev.html -- yasep/VHDL/config.js version 2014/04/27-bork-dev -- Profile name : microYASEP Library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; package yasep_definitions is ---------------------------------------------------------- -- user defined values : constant YASEP_SIZE : natural := 16; constant YASEP_MUL : natural := 0; constant Enable_CondR1 : natural := 1; constant Enable_Parking : natural := 1; constant PC_LENGTH : natural := 16; ---------------------------------------------------------- -- exported from the JavaScript definitions : subtype SLV2 is std_logic_vector( 1 downto 0); subtype SLV3 is std_logic_vector( 2 downto 0); subtype SLV4 is std_logic_vector( 3 downto 0); subtype SLV5 is std_logic_vector( 4 downto 0); subtype SLV6 is std_logic_vector( 5 downto 0); subtype SLV8 is std_logic_vector( 7 downto 0); subtype SLV16 is std_logic_vector(15 downto 0); subtype SLV32 is std_logic_vector(31 downto 0); subtype SLVr64 is std_logic_vector(0 to 63); subtype SLVY is std_logic_vector(YASEP_SIZE-1 downto 0); subtype SLVAI is std_logic_vector(PC_LENGTH-1 downto 1); constant REG_PC : SLV4 := "0000"; constant REG_R1 : SLV4 := "0001"; constant REG_R2 : SLV4 := "0010"; constant REG_R3 : SLV4 := "0011"; constant REG_R4 : SLV4 := "0100"; constant REG_R5 : SLV4 := "0101"; constant REG_D1 : SLV4 := "0110"; constant REG_A1 : SLV4 := "0111"; constant REG_D2 : SLV4 := "1000"; constant REG_A2 : SLV4 := "1001"; constant REG_D3 : SLV4 := "1010"; constant REG_A3 : SLV4 := "1011"; constant REG_D4 : SLV4 := "1100"; constant REG_A4 : SLV4 := "1101"; constant REG_D5 : SLV4 := "1110"; constant REG_A5 : SLV4 := "1111"; constant GROUP_CTL : SLV3 := "000"; constant Op_NOP : SLV6 := "000000"; constant F_NOP : SLV3 := "000"; constant Op_CRIT : SLV6 := "001000"; constant F_CRIT : SLV3 := "001"; -- disabled constant Op_GET : SLV6 := "010000"; constant F_GET : SLV3 := "010"; constant Op_PUT : SLV6 := "011000"; constant F_PUT : SLV3 := "011"; constant Op_IN : SLV6 := "100000"; constant F_IN : SLV3 := "100"; -- disabled constant Op_OUT : SLV6 := "101000"; constant F_OUT : SLV3 := "101"; -- disabled constant Op_CALL : SLV6 := "110000"; constant F_CALL : SLV3 := "110"; constant Op_CALL2 : SLV6 := "111000"; constant F_CALL2 : SLV3 := "111"; -- disabled constant GROUP_SMT : SLV3 := "001"; constant Op_HALT : SLV6 := "000001"; constant F_HALT : SLV3 := "000"; -- disabled constant Op_IPC : SLV6 := "001001"; constant F_IPC : SLV3 := "001"; -- disabled constant Op_IPE : SLV6 := "010001"; constant F_IPE : SLV3 := "010"; -- disabled constant Op_IPR : SLV6 := "011001"; constant F_IPR : SLV3 := "011"; -- disabled constant GROUP_IE : SLV3 := "010"; constant Op_MOV : SLV6 := "000010"; constant F_MOV : SLV3 := "000"; constant Op_IB : SLV6 := "001010"; constant F_IB : SLV3 := "001"; -- disabled constant Op_EZB : SLV6 := "010010"; constant F_EZB : SLV3 := "010"; -- disabled constant Op_ESB : SLV6 := "011010"; constant F_ESB : SLV3 := "011"; -- disabled constant Op_MOVH : SLV6 := "100010"; constant F_MOVH : SLV3 := "100"; -- disabled constant Op_IH : SLV6 := "101010"; constant F_IH : SLV3 := "101"; -- disabled constant Op_EZH : SLV6 := "110010"; constant F_EZH : SLV3 := "110"; -- disabled constant Op_ESH : SLV6 := "111010"; constant F_ESH : SLV3 := "111"; -- disabled constant GROUP_SHL : SLV3 := "011"; constant Op_SHR : SLV6 := "000011"; constant F_SHR : SLV3 := "000"; constant Op_SHRO : SLV6 := "001011"; constant F_SHRO : SLV3 := "001"; -- disabled constant Op_SAR : SLV6 := "010011"; constant F_SAR : SLV3 := "010"; constant Op_SHL : SLV6 := "011011"; constant F_SHL : SLV3 := "011"; constant Op_SHLO : SLV6 := "100011"; constant F_SHLO : SLV3 := "100"; -- disabled constant Op_ROR : SLV6 := "101011"; constant F_ROR : SLV3 := "101"; constant Op_ROL : SLV6 := "110011"; constant F_ROL : SLV3 := "110"; constant Op_BSWAP : SLV6 := "111011"; constant F_BSWAP : SLV3 := "111"; -- disabled constant GROUP_ROP2 : SLV3 := "100"; constant Op_AND : SLV6 := "000100"; constant F_AND : SLV3 := "000"; constant Op_ANDN : SLV6 := "001100"; constant F_ANDN : SLV3 := "001"; constant Op_NAND : SLV6 := "010100"; constant F_NAND : SLV3 := "010"; constant Op_ORN : SLV6 := "011100"; constant F_ORN : SLV3 := "011"; constant Op_OR : SLV6 := "100100"; constant F_OR : SLV3 := "100"; constant Op_NOR : SLV6 := "101100"; constant F_NOR : SLV3 := "101"; constant Op_XOR : SLV6 := "110100"; constant F_XOR : SLV3 := "110"; constant Op_XORN : SLV6 := "111100"; constant F_XORN : SLV3 := "111"; constant GROUP_ASU : SLV3 := "101"; constant Op_ADD : SLV6 := "000101"; constant F_ADD : SLV3 := "000"; constant Op_SUB : SLV6 := "001101"; constant F_SUB : SLV3 := "001"; constant Op_CMPU : SLV6 := "010101"; constant F_CMPU : SLV3 := "010"; constant Op_CMPS : SLV6 := "011101"; constant F_CMPS : SLV3 := "011"; constant Op_UMIN : SLV6 := "100101"; constant F_UMIN : SLV3 := "100"; -- disabled constant Op_SMIN : SLV6 := "101101"; constant F_SMIN : SLV3 := "101"; -- disabled constant Op_UMAX : SLV6 := "110101"; constant F_UMAX : SLV3 := "110"; -- disabled constant Op_SMAX : SLV6 := "111101"; constant F_SMAX : SLV3 := "111"; -- disabled constant GROUP_MUL : SLV3 := "110"; constant Op_MUL8L : SLV6 := "000110"; constant F_MUL8L : SLV3 := "000"; -- disabled constant Op_MUL8H : SLV6 := "001110"; constant F_MUL8H : SLV3 := "001"; -- disabled constant Op_MULI : SLV6 := "010110"; constant F_MULI : SLV3 := "010"; -- disabled constant Op_LUT8 : SLV6 := "011110"; constant F_LUT8 : SLV3 := "011"; -- disabled constant Op_MUL16L : SLV6 := "100110"; constant F_MUL16L : SLV3 := "100"; -- disabled constant Op_MUL16H : SLV6 := "101110"; constant F_MUL16H : SLV3 := "101"; -- disabled constant GROUP_RSV : SLV3 := "111"; constant Op_INV : SLV6 := "111111"; constant F_INV : SLV3 := "111"; -- Flags : constant FlagValidInstruction : SLVr64 := "1011110000001100100111001001110000001000000110001001100000001001"; -- Compacted mask: BC0C9C9C08189809; constant FlagNoWriteBack : SLVr64 := "1000000000000000000001001000010000000000000000000000000000000001"; constant FlagNoCondition : SLVr64 := "1000000000000000000000001000000000000000000000000000000000000001"; constant FlagIMM16_5LSB : SLVr64 := "0001000000000000000100000001000000000000000100000001000000000000"; constant FlagAbortWrite : SLVr64 := "0000000000000000000000000000000000000000000000000000000000000000"; constant FlagIgnoreSND_short : SLVr64 := "1000000000000000000000000000000000000000000000000000000000000000"; constant FlagIgnoreSND_Long : SLVr64 := "1000000000000000100000000000000000000000000000001000000000000000"; constant FlagIgnoreSI4 : SLVr64 := "1000000000000000000000000000000000000000000000000000000000000001"; constant FlagIgnoreImm16 : SLVr64 := "1000000000000000000000000000000000000000000000000000000000000001"; constant FlagChangeCarry : SLVr64 := "0000010000000100000001000000010000000000000000000000000000000000"; constant FlagChangeEqual : SLVr64 := "0000000000000000000001000000010000000000000000000000000000000000"; constant FlagImm20 : SLVr64 := "0000000000000000000000000000000000000000000000000000000000000000"; end yasep_definitions; package body yasep_definitions is -- empty end yasep_definitions;