-- File Name		:MAX16046.BSD
-- Created by		:Maxim Integrated Products
-- Documentation		:MAX16046/MAX16048, MAX16047/MAX16049 data sheet
--
-- 
--
-- BSDL Revision		:1.0  
--
-- Date created	      :11/19/07
-- Date modified
-- Device	            :MAX16046
-- Package	            :56-pin TQFN
-- 
-- 
--			IMPORTANT NOTICE
-- Maxim customers are advised to obtain the latest version of device 
-- specifications before relying on any published information contained 
-- herein. Maxim Integrated Products assumes no responsibility or liability 
-- arising out of the application of any information described herein.
--
--
--
--			IMPORTANT NOTICE ABOUT THE REVISION
--
-- Maxim customers are advised to check the revision of the  
-- device they will be using.  All the codes for the device revisions are 
-- herein this BSDL file.
--
-- The characters "/", "(", ")" and "*" have been removed from signal names for 
-- compatibility with BSDL file format.
-- 
-- 
entity MAX16046 is
generic (PHYSICAL_PIN_MAP : string := "TQFN_56");

port (
MONx                                       :linkage bit_vector(1 to 12);
RESET                                      :linkage bit;
A0                                         :linkage bit;
SCL                                        :linkage bit;
SDA                                        :linkage bit;
TMS, TCK, TDI                              :in bit;
TDO                                        :out bit;
GND                                        :linkage bit_vector(1 to 2);
GPIOx                                      :linkage bit_vector(1 to 6);
EN                                         :linkage bit;
DACOUTx                                    :linkage bit_vector(1 to 12);
ABP, DBP                                   :linkage bit;
VCC                                        :linkage bit;
EN_OUTx                                    :linkage bit_vector(1 to 12)
);

use STD_1149_1_2001.all;
attribute COMPONENT_CONFORMANCE of MAX16046 : entity is "STD_1149_1_2001";

attribute PIN_MAP of MAX16046 : entity is PHYSICAL_PIN_MAP;
constant TQFN_56 : PIN_MAP_STRING :=
"MONx:(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12),"&
"RESET:13, A0:14, SCL:15, SDA:16,"&
"TMS:17, TDI:18, TCK:19, TDO:20, EN:24,"&
"DACOUTx:(25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36),"&
"ABP:37, VCC:38, DBP:39, GND:(21, 40),"&
"GPIOx:(41, 42, 43, 44, 23, 22),"&
"EN_OUTx:(45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)";

attribute TAP_SCAN_CLOCK of TCK		        :signal is (1.00e6,BOTH);
attribute TAP_SCAN_IN of TDI			:signal is true;
attribute TAP_SCAN_MODE of TMS		        :signal is true;
attribute TAP_SCAN_OUT of TDO			:signal is true;

attribute INSTRUCTION_LENGTH of MAX16046	:entity is 5;
attribute INSTRUCTION_OPCODE of MAX16046	:entity is
"BYPASS    (11111),"&
"IDCODE    (00000),"&
"SAMPLE    (00001),"&  -- WARNING: UNIMPLEMENTED, DO NOT USE
"PRELOAD   (00001),"&  -- WARNING: UNIMPLEMENTED, DO NOT USE
"EXTEST    (00010),"&  -- WARNING: UNIMPLEMENTED, DO NOT USE
"USERCODE  (00011),"&
"LOADADDR  (00100),"&
"READ      (00101),"&
"WRITE     (00110),"&
"REBOOT    (00111),"&
"SAVE      (01000),"&
"SETEXTRAM (01001),"&
"RSTEXTRAM (01010),"&
"SETEEPADD (01011),"&
"RSTEEPADD (01100),"&
"RESERVED1 (10000),"&
"RESERVED2 (10001)";
                                                 
attribute INSTRUCTION_CAPTURE of MAX16046 :entity is "X0001";
                                                   -- ^ Bit 4=BUSY (1 if device is busy)
attribute INSTRUCTION_PRIVATE of MAX16046 :entity is "REBOOT, SAVE, SETEXTRAM, RSTEXTRAM,"&
                                                     "SETEEPADD, RSTEEPADD, RESERVED1, RESERVED2";
-- REBOOT, SAVE, SETEXTRAM, RSTEXTRAM, SETEEPADD, and RSTEEPADD are available for customer use, but
-- they are classified as private because they do not access a particular test data register.

attribute IDCODE_REGISTER of MAX16046 :entity is
"0000"&                   -- Version
"0000000000000001"&       -- Device ID
"00011001011"&            -- Manufacturer ID
"1";                      -- Mandatory bit

attribute USERCODE_REGISTER of MAX16046 :entity is
"00000000000000000"&      -- Unused
"XXXXXXX"&                -- I2C Slave address
"XXXXXXXX";               -- Register r61h[7:0] contents

attribute REGISTER_ACCESS of MAX16046 :entity is
"MEMADDR[8] (LOADADDR), "&
"MEMREAD[8] (READ), "&
"MEMWRITE[8] (WRITE)";    -- Data shifted out is status byte: Bit 0= 1 if EEPROM is busy), Bit 1= 1 if address invalid.

-- The MAX16046 does not implement boundary scan registers.
attribute BOUNDARY_LENGTH of MAX16046 :entity is 1;
attribute BOUNDARY_REGISTER of MAX16046 :entity is "0 (BC_1, *, internal,X)";

end MAX16046;