0
__ASSERT== M 12.2, FALSE // >0
__ASSERT== M 12.3, FALSE // <0
__ASSERT== M 12.4, TRUE // >=0
__ASSERT== M 12.5, TRUE // <=0
__ASSERT== M 12.6, FALSE // OV
__ASSERT== M 12.7, FALSE // UO
__ASSERT== M 13.0, TRUE // ENO
__ASSERT== MW 20, 0
__ASSERT== M 22.0, FALSE // OV or UO
__ASSERT== M 22.1, FALSE // OV
__ASSERT== MW 30, 0
__ASSERT== M 32.0, FALSE // OV or UO
__ASSERT== M 32.1, FALSE // OV
L 0
T MW 10
T MW 12
T MW 20
T MW 22
T MW 30
T MW 32
__STWRST
CALL "FC_arith_7" (
// VAR_INPUT
IN00 := -1, // INT
IN01 := 0, // INT
EN0 := TRUE, // BOOL
IN10 := -2, // INT
IN11 := 0, // INT
EN1 := TRUE, // BOOL
IN20 := -3, // INT
IN21 := 0, // INT
// VAR_OUTPUT
OUT0 := MW 10, // INT
OUT0_EQ0 := M 12.0, // BOOL
OUT0_NE0 := M 12.1, // BOOL
OUT0_GT0 := M 12.2, // BOOL
OUT0_LT0 := M 12.3, // BOOL
OUT0_GE0 := M 12.4, // BOOL
OUT0_LE0 := M 12.5, // BOOL
OUT0_OV := M 12.6, // BOOL
OUT0_UO := M 12.7, // BOOL
ENO0 := M 13.0, // BOOL
OUT1 := MW 20, // INT
OUT1_OV_UO := M 22.0, // BOOL
OUT1_OV := M 22.1, // BOOL
OUT2 := MW 30, // INT
OUT2_OV_UO := M 32.0, // BOOL
OUT2_OV := M 32.1, // BOOL
)
__ASSERT== MW 10, -1
__ASSERT== M 12.0, FALSE // ==0
__ASSERT== M 12.1, TRUE // <>0
__ASSERT== M 12.2, FALSE // >0
__ASSERT== M 12.3, TRUE // <0
__ASSERT== M 12.4, FALSE // >=0
__ASSERT== M 12.5, TRUE // <=0
__ASSERT== M 12.6, FALSE // OV
__ASSERT== M 12.7, FALSE // UO
__ASSERT== M 13.0, TRUE // ENO
__ASSERT== MW 20, -2
__ASSERT== M 22.0, FALSE // OV or UO
__ASSERT== M 22.1, FALSE // OV
__ASSERT== MW 30, -3
__ASSERT== M 32.0, FALSE // OV or UO
__ASSERT== M 32.1, FALSE // OV
L 0
T MW 10
T MW 12
T MW 20
T MW 22
T MW 30
T MW 32
__STWRST
CALL "FC_arith_7" (
// VAR_INPUT
IN00 := 0, // INT
IN01 := 1, // INT
EN0 := TRUE, // BOOL
IN10 := 0, // INT
IN11 := 2, // INT
EN1 := TRUE, // BOOL
IN20 := 0, // INT
IN21 := 3, // INT
// VAR_OUTPUT
OUT0 := MW 10, // INT
OUT0_EQ0 := M 12.0, // BOOL
OUT0_NE0 := M 12.1, // BOOL
OUT0_GT0 := M 12.2, // BOOL
OUT0_LT0 := M 12.3, // BOOL
OUT0_GE0 := M 12.4, // BOOL
OUT0_LE0 := M 12.5, // BOOL
OUT0_OV := M 12.6, // BOOL
OUT0_UO := M 12.7, // BOOL
ENO0 := M 13.0, // BOOL
OUT1 := MW 20, // INT
OUT1_OV_UO := M 22.0, // BOOL
OUT1_OV := M 22.1, // BOOL
OUT2 := MW 30, // INT
OUT2_OV_UO := M 32.0, // BOOL
OUT2_OV := M 32.1, // BOOL
)
__ASSERT== MW 10, 1
__ASSERT== M 12.0, FALSE // ==0
__ASSERT== M 12.1, TRUE // <>0
__ASSERT== M 12.2, TRUE // >0
__ASSERT== M 12.3, FALSE // <0
__ASSERT== M 12.4, TRUE // >=0
__ASSERT== M 12.5, FALSE // <=0
__ASSERT== M 12.6, FALSE // OV
__ASSERT== M 12.7, FALSE // UO
__ASSERT== M 13.0, TRUE // ENO
__ASSERT== MW 20, 2
__ASSERT== M 22.0, FALSE // OV or UO
__ASSERT== M 22.1, FALSE // OV
__ASSERT== MW 30, 3
__ASSERT== M 32.0, FALSE // OV or UO
__ASSERT== M 32.1, FALSE // OV
L 0
T MW 10
T MW 12
T MW 20
T MW 22
T MW 30
T MW 32
__STWRST
CALL "FC_arith_7" (
// VAR_INPUT
IN00 := 32767, // INT
IN01 := 1, // INT
EN0 := TRUE, // BOOL
IN10 := 32767, // INT
IN11 := 2, // INT
EN1 := TRUE, // BOOL
IN20 := 32767, // INT
IN21 := 3, // INT
// VAR_OUTPUT
OUT0 := MW 10, // INT
OUT0_EQ0 := M 12.0, // BOOL
OUT0_NE0 := M 12.1, // BOOL
OUT0_GT0 := M 12.2, // BOOL
OUT0_LT0 := M 12.3, // BOOL
OUT0_GE0 := M 12.4, // BOOL
OUT0_LE0 := M 12.5, // BOOL
OUT0_OV := M 12.6, // BOOL
OUT0_UO := M 12.7, // BOOL
ENO0 := M 13.0, // BOOL
OUT1 := MW 20, // INT
OUT1_OV_UO := M 22.0, // BOOL
OUT1_OV := M 22.1, // BOOL
OUT2 := MW 30, // INT
OUT2_OV_UO := M 32.0, // BOOL
OUT2_OV := M 32.1, // BOOL
)
__ASSERT== MW 10, -32768
__ASSERT== M 12.0, FALSE // ==0
__ASSERT== M 12.1, TRUE // <>0
__ASSERT== M 12.2, FALSE // >0
__ASSERT== M 12.3, TRUE // <0
__ASSERT== M 12.4, FALSE // >=0
__ASSERT== M 12.5, TRUE // <=0
__ASSERT== M 12.6, TRUE // OV
__ASSERT== M 12.7, FALSE // UO
__ASSERT== M 13.0, TRUE // ENO
__ASSERT== MW 20, -32767
__ASSERT== M 22.0, TRUE // OV or UO
__ASSERT== M 22.1, TRUE // OV
__ASSERT== MW 30, -32766
__ASSERT== M 32.0, TRUE // OV or UO
__ASSERT== M 32.1, TRUE // OV
///////////////////////////
// EN=0, memory init = 0
///////////////////////////
L 0
T MW 10
T MW 12
T MW 20
T MW 22
T MW 30
T MW 32
__STWRST
CALL "FC_arith_7" (
// VAR_INPUT
IN00 := -1, // INT
IN01 := 1, // INT
EN0 := FALSE, // BOOL
IN10 := -2, // INT
IN11 := 2, // INT
EN1 := FALSE, // BOOL
IN20 := -3, // INT
IN21 := 3, // INT
// VAR_OUTPUT
OUT0 := MW 10, // INT
OUT0_EQ0 := M 12.0, // BOOL
OUT0_NE0 := M 12.1, // BOOL
OUT0_GT0 := M 12.2, // BOOL
OUT0_LT0 := M 12.3, // BOOL
OUT0_GE0 := M 12.4, // BOOL
OUT0_LE0 := M 12.5, // BOOL
OUT0_OV := M 12.6, // BOOL
OUT0_UO := M 12.7, // BOOL
ENO0 := M 13.0, // BOOL
OUT1 := MW 20, // INT
OUT1_OV_UO := M 22.0, // BOOL
OUT1_OV := M 22.1, // BOOL
OUT2 := MW 30, // INT
OUT2_OV_UO := M 32.0, // BOOL
OUT2_OV := M 32.1, // BOOL
)
__ASSERT== MW 10, 0
__ASSERT== M 12.0, FALSE // ==0
__ASSERT== M 12.1, FALSE // <>0
__ASSERT== M 12.2, FALSE // >0
__ASSERT== M 12.3, FALSE // <0
__ASSERT== M 12.4, FALSE // >=0
__ASSERT== M 12.5, FALSE // <=0
__ASSERT== M 12.6, FALSE // OV
__ASSERT== M 12.7, FALSE // UO
__ASSERT== M 13.0, FALSE // ENO
__ASSERT== MW 20, 0
__ASSERT== M 22.0, FALSE // OV or UO
__ASSERT== M 22.1, FALSE // OV
__ASSERT== MW 30, 0
__ASSERT== M 32.0, FALSE // OV or UO
__ASSERT== M 32.1, FALSE // OV
L 0
T MW 10
T MW 12
T MW 20
T MW 22
T MW 30
T MW 32
__STWRST
CALL "FC_arith_7" (
// VAR_INPUT
IN00 := -1, // INT
IN01 := 0, // INT
EN0 := FALSE, // BOOL
IN10 := -2, // INT
IN11 := 0, // INT
EN1 := FALSE, // BOOL
IN20 := -3, // INT
IN21 := 0, // INT
// VAR_OUTPUT
OUT0 := MW 10, // INT
OUT0_EQ0 := M 12.0, // BOOL
OUT0_NE0 := M 12.1, // BOOL
OUT0_GT0 := M 12.2, // BOOL
OUT0_LT0 := M 12.3, // BOOL
OUT0_GE0 := M 12.4, // BOOL
OUT0_LE0 := M 12.5, // BOOL
OUT0_OV := M 12.6, // BOOL
OUT0_UO := M 12.7, // BOOL
ENO0 := M 13.0, // BOOL
OUT1 := MW 20, // INT
OUT1_OV_UO := M 22.0, // BOOL
OUT1_OV := M 22.1, // BOOL
OUT2 := MW 30, // INT
OUT2_OV_UO := M 32.0, // BOOL
OUT2_OV := M 32.1, // BOOL
)
__ASSERT== MW 10, 0
__ASSERT== M 12.0, FALSE // ==0
__ASSERT== M 12.1, FALSE // <>0
__ASSERT== M 12.2, FALSE // >0
__ASSERT== M 12.3, FALSE // <0
__ASSERT== M 12.4, FALSE // >=0
__ASSERT== M 12.5, FALSE // <=0
__ASSERT== M 12.6, FALSE // OV
__ASSERT== M 12.7, FALSE // UO
__ASSERT== M 13.0, FALSE // ENO
__ASSERT== MW 20, 0
__ASSERT== M 22.0, FALSE // OV or UO
__ASSERT== M 22.1, FALSE // OV
__ASSERT== MW 30, -3
__ASSERT== M 32.0, FALSE // OV or UO
__ASSERT== M 32.1, FALSE // OV
L 0
T MW 10
T MW 12
T MW 20
T MW 22
T MW 30
T MW 32
__STWRST
CALL "FC_arith_7" (
// VAR_INPUT
IN00 := 0, // INT
IN01 := 1, // INT
EN0 := FALSE, // BOOL
IN10 := 0, // INT
IN11 := 2, // INT
EN1 := FALSE, // BOOL
IN20 := 0, // INT
IN21 := 3, // INT
// VAR_OUTPUT
OUT0 := MW 10, // INT
OUT0_EQ0 := M 12.0, // BOOL
OUT0_NE0 := M 12.1, // BOOL
OUT0_GT0 := M 12.2, // BOOL
OUT0_LT0 := M 12.3, // BOOL
OUT0_GE0 := M 12.4, // BOOL
OUT0_LE0 := M 12.5, // BOOL
OUT0_OV := M 12.6, // BOOL
OUT0_UO := M 12.7, // BOOL
ENO0 := M 13.0, // BOOL
OUT1 := MW 20, // INT
OUT1_OV_UO := M 22.0, // BOOL
OUT1_OV := M 22.1, // BOOL
OUT2 := MW 30, // INT
OUT2_OV_UO := M 32.0, // BOOL
OUT2_OV := M 32.1, // BOOL
)
__ASSERT== MW 10, 0
__ASSERT== M 12.0, FALSE // ==0
__ASSERT== M 12.1, FALSE // <>0
__ASSERT== M 12.2, FALSE // >0
__ASSERT== M 12.3, FALSE // <0
__ASSERT== M 12.4, FALSE // >=0
__ASSERT== M 12.5, FALSE // <=0
__ASSERT== M 12.6, FALSE // OV
__ASSERT== M 12.7, FALSE // UO
__ASSERT== M 13.0, FALSE // ENO
__ASSERT== MW 20, 0
__ASSERT== M 22.0, FALSE // OV or UO
__ASSERT== M 22.1, FALSE // OV
__ASSERT== MW 30, 3
__ASSERT== M 32.0, FALSE // OV or UO
__ASSERT== M 32.1, FALSE // OV
L 0
T MW 10
T MW 12
T MW 20
T MW 22
T MW 30
T MW 32
__STWRST
CALL "FC_arith_7" (
// VAR_INPUT
IN00 := 32767, // INT
IN01 := 1, // INT
EN0 := FALSE, // BOOL
IN10 := 32767, // INT
IN11 := 2, // INT
EN1 := FALSE, // BOOL
IN20 := 32767, // INT
IN21 := 3, // INT
// VAR_OUTPUT
OUT0 := MW 10, // INT
OUT0_EQ0 := M 12.0, // BOOL
OUT0_NE0 := M 12.1, // BOOL
OUT0_GT0 := M 12.2, // BOOL
OUT0_LT0 := M 12.3, // BOOL
OUT0_GE0 := M 12.4, // BOOL
OUT0_LE0 := M 12.5, // BOOL
OUT0_OV := M 12.6, // BOOL
OUT0_UO := M 12.7, // BOOL
ENO0 := M 13.0, // BOOL
OUT1 := MW 20, // INT
OUT1_OV_UO := M 22.0, // BOOL
OUT1_OV := M 22.1, // BOOL
OUT2 := MW 30, // INT
OUT2_OV_UO := M 32.0, // BOOL
OUT2_OV := M 32.1, // BOOL
)
__ASSERT== MW 10, 0
__ASSERT== M 12.0, FALSE // ==0
__ASSERT== M 12.1, FALSE // <>0
__ASSERT== M 12.2, FALSE // >0
__ASSERT== M 12.3, FALSE // <0
__ASSERT== M 12.4, FALSE // >=0
__ASSERT== M 12.5, FALSE // <=0
__ASSERT== M 12.6, FALSE // OV
__ASSERT== M 12.7, FALSE // UO
__ASSERT== M 13.0, FALSE // ENO
__ASSERT== MW 20, 0
__ASSERT== M 22.0, FALSE // OV or UO
__ASSERT== M 22.1, FALSE // OV
__ASSERT== MW 30, -32766
__ASSERT== M 32.0, TRUE // OV or UO
__ASSERT== M 32.1, TRUE // OV
///////////////////////////
// EN=0, memory init = 1
///////////////////////////
L W#16#FFFF
T MW 10
T MW 12
T MW 20
T MW 22
T MW 30
T MW 32
__STWRST
CALL "FC_arith_7" (
// VAR_INPUT
IN00 := -1, // INT
IN01 := 1, // INT
EN0 := FALSE, // BOOL
IN10 := -2, // INT
IN11 := 2, // INT
EN1 := FALSE, // BOOL
IN20 := -3, // INT
IN21 := 3, // INT
// VAR_OUTPUT
OUT0 := MW 10, // INT
OUT0_EQ0 := M 12.0, // BOOL
OUT0_NE0 := M 12.1, // BOOL
OUT0_GT0 := M 12.2, // BOOL
OUT0_LT0 := M 12.3, // BOOL
OUT0_GE0 := M 12.4, // BOOL
OUT0_LE0 := M 12.5, // BOOL
OUT0_OV := M 12.6, // BOOL
OUT0_UO := M 12.7, // BOOL
ENO0 := M 13.0, // BOOL
OUT1 := MW 20, // INT
OUT1_OV_UO := M 22.0, // BOOL
OUT1_OV := M 22.1, // BOOL
OUT2 := MW 30, // INT
OUT2_OV_UO := M 32.0, // BOOL
OUT2_OV := M 32.1, // BOOL
)
__ASSERT== MW 10, W#16#FFFF
__ASSERT== M 12.0, FALSE // ==0
__ASSERT== M 12.1, FALSE // <>0
__ASSERT== M 12.2, FALSE // >0
__ASSERT== M 12.3, FALSE // <0
__ASSERT== M 12.4, FALSE // >=0
__ASSERT== M 12.5, FALSE // <=0
__ASSERT== M 12.6, FALSE // OV
__ASSERT== M 12.7, FALSE // UO
__ASSERT== M 13.0, FALSE // ENO
__ASSERT== MW 20, W#16#FFFF
__ASSERT== M 22.0, FALSE // OV or UO
__ASSERT== M 22.1, FALSE // OV
__ASSERT== MW 30, 0
__ASSERT== M 32.0, FALSE // OV or UO
__ASSERT== M 32.1, FALSE // OV
L W#16#FFFF
T MW 10
T MW 12
T MW 20
T MW 22
T MW 30
T MW 32
__STWRST
CALL "FC_arith_7" (
// VAR_INPUT
IN00 := -1, // INT
IN01 := 0, // INT
EN0 := FALSE, // BOOL
IN10 := -2, // INT
IN11 := 0, // INT
EN1 := FALSE, // BOOL
IN20 := -3, // INT
IN21 := 0, // INT
// VAR_OUTPUT
OUT0 := MW 10, // INT
OUT0_EQ0 := M 12.0, // BOOL
OUT0_NE0 := M 12.1, // BOOL
OUT0_GT0 := M 12.2, // BOOL
OUT0_LT0 := M 12.3, // BOOL
OUT0_GE0 := M 12.4, // BOOL
OUT0_LE0 := M 12.5, // BOOL
OUT0_OV := M 12.6, // BOOL
OUT0_UO := M 12.7, // BOOL
ENO0 := M 13.0, // BOOL
OUT1 := MW 20, // INT
OUT1_OV_UO := M 22.0, // BOOL
OUT1_OV := M 22.1, // BOOL
OUT2 := MW 30, // INT
OUT2_OV_UO := M 32.0, // BOOL
OUT2_OV := M 32.1, // BOOL
)
__ASSERT== MW 10, W#16#FFFF
__ASSERT== M 12.0, FALSE // ==0
__ASSERT== M 12.1, FALSE // <>0
__ASSERT== M 12.2, FALSE // >0
__ASSERT== M 12.3, FALSE // <0
__ASSERT== M 12.4, FALSE // >=0
__ASSERT== M 12.5, FALSE // <=0
__ASSERT== M 12.6, FALSE // OV
__ASSERT== M 12.7, FALSE // UO
__ASSERT== M 13.0, FALSE // ENO
__ASSERT== MW 20, W#16#FFFF
__ASSERT== M 22.0, FALSE // OV or UO
__ASSERT== M 22.1, FALSE // OV
__ASSERT== MW 30, -3
__ASSERT== M 32.0, FALSE // OV or UO
__ASSERT== M 32.1, FALSE // OV
L W#16#FFFF
T MW 10
T MW 12
T MW 20
T MW 22
T MW 30
T MW 32
__STWRST
CALL "FC_arith_7" (
// VAR_INPUT
IN00 := 0, // INT
IN01 := 1, // INT
EN0 := FALSE, // BOOL
IN10 := 0, // INT
IN11 := 2, // INT
EN1 := FALSE, // BOOL
IN20 := 0, // INT
IN21 := 3, // INT
// VAR_OUTPUT
OUT0 := MW 10, // INT
OUT0_EQ0 := M 12.0, // BOOL
OUT0_NE0 := M 12.1, // BOOL
OUT0_GT0 := M 12.2, // BOOL
OUT0_LT0 := M 12.3, // BOOL
OUT0_GE0 := M 12.4, // BOOL
OUT0_LE0 := M 12.5, // BOOL
OUT0_OV := M 12.6, // BOOL
OUT0_UO := M 12.7, // BOOL
ENO0 := M 13.0, // BOOL
OUT1 := MW 20, // INT
OUT1_OV_UO := M 22.0, // BOOL
OUT1_OV := M 22.1, // BOOL
OUT2 := MW 30, // INT
OUT2_OV_UO := M 32.0, // BOOL
OUT2_OV := M 32.1, // BOOL
)
__ASSERT== MW 10, W#16#FFFF
__ASSERT== M 12.0, FALSE // ==0
__ASSERT== M 12.1, FALSE // <>0
__ASSERT== M 12.2, FALSE // >0
__ASSERT== M 12.3, FALSE // <0
__ASSERT== M 12.4, FALSE // >=0
__ASSERT== M 12.5, FALSE // <=0
__ASSERT== M 12.6, FALSE // OV
__ASSERT== M 12.7, FALSE // UO
__ASSERT== M 13.0, FALSE // ENO
__ASSERT== MW 20, W#16#FFFF
__ASSERT== M 22.0, FALSE // OV or UO
__ASSERT== M 22.1, FALSE // OV
__ASSERT== MW 30, 3
__ASSERT== M 32.0, FALSE // OV or UO
__ASSERT== M 32.1, FALSE // OV
L W#16#FFFF
T MW 10
T MW 12
T MW 20
T MW 22
T MW 30
T MW 32
__STWRST
CALL "FC_arith_7" (
// VAR_INPUT
IN00 := 32767, // INT
IN01 := 1, // INT
EN0 := FALSE, // BOOL
IN10 := 32767, // INT
IN11 := 2, // INT
EN1 := FALSE, // BOOL
IN20 := 32767, // INT
IN21 := 3, // INT
// VAR_OUTPUT
OUT0 := MW 10, // INT
OUT0_EQ0 := M 12.0, // BOOL
OUT0_NE0 := M 12.1, // BOOL
OUT0_GT0 := M 12.2, // BOOL
OUT0_LT0 := M 12.3, // BOOL
OUT0_GE0 := M 12.4, // BOOL
OUT0_LE0 := M 12.5, // BOOL
OUT0_OV := M 12.6, // BOOL
OUT0_UO := M 12.7, // BOOL
ENO0 := M 13.0, // BOOL
OUT1 := MW 20, // INT
OUT1_OV_UO := M 22.0, // BOOL
OUT1_OV := M 22.1, // BOOL
OUT2 := MW 30, // INT
OUT2_OV_UO := M 32.0, // BOOL
OUT2_OV := M 32.1, // BOOL
)
__ASSERT== MW 10, W#16#FFFF
__ASSERT== M 12.0, FALSE // ==0
__ASSERT== M 12.1, FALSE // <>0
__ASSERT== M 12.2, FALSE // >0
__ASSERT== M 12.3, FALSE // <0
__ASSERT== M 12.4, FALSE // >=0
__ASSERT== M 12.5, FALSE // <=0
__ASSERT== M 12.6, FALSE // OV
__ASSERT== M 12.7, FALSE // UO
__ASSERT== M 13.0, FALSE // ENO
__ASSERT== MW 20, W#16#FFFF
__ASSERT== M 22.0, FALSE // OV or UO
__ASSERT== M 22.1, FALSE // OV
__ASSERT== MW 30, -32766
__ASSERT== M 32.0, TRUE // OV or UO
__ASSERT== M 32.1, TRUE // OV
END_FUNCTION
]]>
]]>
]]>
]]>
]]>
]]>
]]>
]]>
]]>
]]>