-- File Name		:MAX16068.BSD
-- Created by		:Maxim Integrated Products
-- Documentation	:MAX16068 data sheet
--
-- 
--
-- BSDL Revision	:1.0  
--
-- Date created	        :9/29/2009
-- Date modified        :12/1/2009
-- Device	        :MAX16068
-- Package	        :28-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 
-- here in this BSDL file.
--
-- The characters "/", "(", ")" and "*" have been removed from signal names for 
-- compatibility with BSDL file format.
-- 
-- 
entity MAX16068 is
generic (PHYSICAL_PIN_MAP : string := "TQFN_28");

port (
GPIO1                                      :linkage bit;
GPIO2                                      :linkage bit;
GPIO3                                      :linkage bit;
GPIO4                                      :linkage bit;
GPIO5                                      :linkage bit;
GPIO6                                      :linkage bit;
GND                                        :linkage bit_vector(1 to 2);
A0                                         :linkage bit;
SCL                                        :linkage bit;
SDA                                        :linkage bit;
TDO                                        :linkage bit;
TDI, TCK, TMS                              :linkage bit;
NC                                         :linkage bit_vector(1 to 2);
EN                                         :linkage bit;
DBP, VCC, ABP                              :linkage bit;
MONx                                       :linkage bit_vector(1 to 6);
RESET                                      :linkage bit
);

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

attribute PIN_MAP of MAX16068 : entity is PHYSICAL_PIN_MAP;
constant TQFN_28 : PIN_MAP_STRING :=
"GPIO1:27, GPIO2:28, GPIO3:1, GPIO4:2, GPIO5:3, GPIO6:4,"&
"GND:(5, 19),"&
"A0:6, SCL:7, SDA:8, TDO:9, TDI:10, TCK:11, TMS:12,"&
"NC:(13, 14),"&
"EN:15, DBP:16, VCC:17, ABP:18,"&
"MONx:(20, 21, 22, 23, 24, 25),"&
"RESET:26";

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 MAX16068	:entity is 5;
attribute INSTRUCTION_OPCODE of MAX16068	:entity is
"BYPASS     (11111),"&
"IDCODE     (00000),"&
"SAMPLE     (00001),"&
"PRELOAD    (00001),"&
"EXTEST     (00010),"&
"USERCODE   (00011),"&
"LOADADDR   (00100),"&
"READ       (00101),"&
"WRITE      (00110),"&
"REBOOT     (00111),"&
"SAVE       (01000),"&
"SETFLSHADD (01001),"&
"RSTFLSHADD (01010),"&
"SETUSRFLSH (01011),"&
"RSTUSRFLSH (01100)";
                                                 
attribute INSTRUCTION_CAPTURE of MAX16068 :entity is "X0001";
                                                   -- ^ Bit 4=BUSY (1 if device is busy)
attribute INSTRUCTION_PRIVATE of MAX16068 :entity is 
"REBOOT, SAVE, SETFLSHADD, RSTFLSHADD, SETUSRFLSH, RSTUSRFLSH";
-- REBOOT, SAVE, SETUSRFLSH, RSTUSRFLSH, SETFLSHADD, and RSTFLSHADD 
-- 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 MAX16068 :entity is
"XXXX"&                   -- Version for any revision
--"0001"&                 -- Version for rev 1
"1000000000000100"&       -- Device ID
"00011001011"&            -- Manufacturer ID
"1";                      -- Mandatory bit

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

attribute REGISTER_ACCESS of MAX16068 :entity is
"MEMADDR[8] (LOADADDR), "&
"MEMREAD[8] (READ), "&
"MEMWRITE[8] (WRITE)";

-- The MAX16068 does not implement boundary scan registers.
attribute BOUNDARY_LENGTH of MAX16068 :entity is 17;
attribute BOUNDARY_REGISTER of MAX16068 :entity is
"0  (BC_1, *, internal, 1),"&
"1  (BC_1, *, internal, 1),"&
"2  (BC_1, *, internal, 1),"&
"3  (BC_1, *, internal, 1),"&
"4  (BC_1, *, internal, 1),"&
"5  (BC_1, *, internal, 1),"&
"6  (BC_1, *, internal, 1),"&
"7  (BC_1, *, internal, 1),"&
"8  (BC_1, *, internal, 1),"&
"9  (BC_1, *, internal, 1),"&
"10  (BC_1, *, internal, 1),"&
"11  (BC_1, *, internal, 1),"&
"12  (BC_1, *, internal, 1),"&
"13  (BC_1, *, internal, 1),"&
"14  (BC_1, *, internal, 1),"&
"15  (BC_4, *, internal, 1),"&  
"16  (BC_1, *, internal, 1)";
end MAX16068;