DEVICE NAME := "TFP410 PanelBus DVI Transmitter"
PINS
RA := 36,37,38,39,40,41,42,43;
GA := 44,45,46,47,50,51,52,53;
BA := 54,55,58,59,60,61,62,63;
ICLK := 57,56;
HSYNC := 4;
VSYNC := 5;
RST := 13;
SCL := 15;
SDA := 14;
END;
TEST COVERAGE
SCL := OPEN HI LO;
SDA := OPEN HI LO;
RST := OPEN HI LO;
RA := SHORTS OPEN HI LO;
END;
FILES
"IIC.xje";
END;
END;
CONST INT IIC_ADDRESS := 0x70;
CONST INT IIC_ADDRESS_BYTES := 1;
CONST INT IIC_WRITE_PAGE_SIZE := 1;
CONST INT IIC_READ_PAGE_SIZE := 1;
CONST INT REG_VEN_ID_LO := 0x00;
CONST INT REG_VEN_ID_HI := 0x01;
CONST INT REG_DEV_ID_LO := 0x02;
CONST INT REG_DEV_ID_HI := 0x03;
CONST INT REG_REV_ID := 0x04;
CONST INT REG_CFG := 0x0B;
CONST INT REG_DE_DLY := 0x32;
CONST INT VENDOR_ID := 0x014C;
CONST INT DEVICE_ID := 0x0410;
CONST INT DE_DLY_DEFAULT := 0x00;
CONST INT DEBUG := FALSE;
CONST INT EXIT_ON_ERROR := FALSE;
Test()(INT result)
INT i, localResult;
result := RESULT_FAIL;
SET RST := 0;
SET RST := 1;
IIC_Read(REG_VEN_ID_LO, 1)(i, localResult);
IF (localResult) THEN IF EXIT_ON_ERROR THEN RETURN; END; END;
IF (i != VENDOR_ID[7..0]) THEN PRINT("DVI OP chip ",DEVICE_REF," IIC failed to read vendor ID (LO)");
IF EXIT_ON_ERROR THEN RETURN; END;
END;
IIC_Read(REG_VEN_ID_HI, 1)(i, localResult);
IF (localResult) THEN IF EXIT_ON_ERROR THEN RETURN; END;; END;
IF (i != VENDOR_ID[15..8]) THEN PRINT("DVI OP chip ",DEVICE_REF," IIC failed to read vendor ID (HI)\n");
IF EXIT_ON_ERROR THEN RETURN; END;
END;
IIC_Read(REG_DEV_ID_LO, 1)(i, localResult);
IF (localResult) THEN IF EXIT_ON_ERROR THEN RETURN; END;; END;
IF (i != DEVICE_ID[7..0]) THEN PRINT("DVI OP chip ",DEVICE_REF," IIC failed to read device ID (LO)\n");
IF EXIT_ON_ERROR THEN RETURN; END;
END;
IIC_Read(REG_DEV_ID_HI, 1)(i, localResult);
IF (localResult) THEN IF EXIT_ON_ERROR THEN RETURN; END;; END;
IF (i != DEVICE_ID[15..8]) THEN PRINT("DVI OP chip ",DEVICE_REF," IIC failed to read device ID (HI)\n");
IF EXIT_ON_ERROR THEN RETURN; END;
END;
IIC_Read(REG_DE_DLY, 1)(i, localResult);
IF (localResult) THEN IF EXIT_ON_ERROR THEN RETURN; END;; END;
IF (i != DE_DLY_DEFAULT) THEN PRINT("DVI OP chip ",DEVICE_REF," IIC failed to read DE_DLY register\n");
IF EXIT_ON_ERROR THEN RETURN; END;
END;
IIC_Write(REG_DE_DLY, 1,0xFF)(localResult);
IF (localResult) THEN PRINT("DVI OP chip ",DEVICE_REF," IIC failed to write DE_DLY register\n");
IF EXIT_ON_ERROR THEN RETURN; END;
END;
IIC_Read(REG_DE_DLY, 1)(i, localResult);
IF (localResult) THEN IF EXIT_ON_ERROR THEN RETURN; END;; END;
IF (i != 0xFF) THEN PRINT("DVI OP chip ",DEVICE_REF," IIC failed to read DE_DLY register\n");
IF EXIT_ON_ERROR THEN RETURN; END;
END;
SET RST := 0;
SET RST := 1;
IIC_Read(REG_DE_DLY, 1)(i, localResult);
IF (localResult) THEN IF EXIT_ON_ERROR THEN RETURN; END;; END;
IF (i != DE_DLY_DEFAULT) THEN PRINT("DVI OP chip ",DEVICE_REF," reset failed.\n");
IF EXIT_ON_ERROR THEN RETURN; END;
END;
SET RA := 0x55;
IIC_Read(REG_CFG, 1)(i, localResult);
IF (localResult) THEN IF EXIT_ON_ERROR THEN RETURN; END;; END;
IF (i != 0x55) THEN PRINT("DVI OP chip ",DEVICE_REF," D[23:16] failed.\n");
IF EXIT_ON_ERROR THEN RETURN; END;
END;
SET RA := 0xAA;
IIC_Read(REG_CFG, 1)(i, localResult);
IF (localResult) THEN IF EXIT_ON_ERROR THEN RETURN; END;; END;
IF (i != 0xAA) THEN PRINT("DVI OP chip ",DEVICE_REF," D[23:16] failed.\n");
IF EXIT_ON_ERROR THEN RETURN; END;
END;
result := RESULT_PASS;
END;