FSD124: GUI and Compiler function requirements, module tests and integration tests

Products

Safety Simplifier

Requirements

FSD114, FSD120

Purpose

GUI and Compiler function requirements, module tests and integration tests.

Input

FSD123, FSD121, FSD114, FSD120

Output

61508 Refs

61508-2 clause 7.2 - 7.7

Table of contents

Document Description

This document contains the requirement specifications, integration tests, and module tests for GUI function blocks and Compiler function blocks, according to FSD123: Function block development procedure.

To read the test results refer to the test results of FSD124 in pdf format: FSD124v10 results

Test setup and equipment

The different test setups are described in the appendix. Each test specifies the test setup, equipment, and software that is being used.

Software

Relevant software used is specified for each test. Firmware version is specified for both processors.

Equipment

  • Power supply: Kiprim DC605S

  • Oscilloscope: RIGOL DS1054Z

  • Logic analyzer: Saleae Logic Pro (8/16)

  • PC: Windows 11 64-bit

  • Multimeter: UNI-T UT132E

  • Multimeter: UNI-T UT33A

  • Multimeter: Victor 70C

  • Micro-USB cable

  • USB type C cable

  • 802.15.4 USB radio dongle

GUI function blocks

2.1 Single Input

@startuml

' Config

left to right direction


' Nodes definition 

node "<size:12>Market requirement</size>\n**Function block:**\n**Single Input**\n<size:10>MREQ_SINGLE_INPUT</size>" as MREQ_SINGLE_INPUT [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_SINGLE_INPUT]] #FFA76D
node "<size:12>Hazard</size>\n**Function block:**\n**Single Input**\n<size:10>HAZARD_SINGLE_INPUT_01</size>" as HAZARD_SINGLE_INPUT_01 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#HAZARD_SINGLE_INPUT_01]] #FFA76D
node "<size:12>Specification</size>\n**Function block:**\n**Single Input**\n<size:10>SPEC_SINGLE_INPUT</size>" as SPEC_SINGLE_INPUT [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_SINGLE_INPUT]] #FEDCD2
node "<size:12>Hazard</size>\n**Function block:**\n**Single Input**\n<size:10>HAZARD_SINGLE_INPUT_02</size>" as HAZARD_SINGLE_INPUT_02 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#HAZARD_SINGLE_INPUT_02]] #FFA76D
node "<size:12>TEST</size>\n**Single Input in**\n**safety manual**\n<size:10>TEST_SINGLE_INPUT_3</size>" as TEST_SINGLE_INPUT_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SINGLE_INPUT_3]] #DCB239
node "<size:12>RESULT</size>\n**Single Input in**\n**safety manual**\n<size:10>RESULT_SINGLE_INPUT_3</size>" as RESULT_SINGLE_INPUT_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SINGLE_INPUT_3]] #FFA76D
node "<size:12>TEST</size>\n**Verify Single**\n**Input function**\n<size:10>TEST_SINGLE_INPUT_2</size>" as TEST_SINGLE_INPUT_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SINGLE_INPUT_2]] #DCB239
node "<size:12>Requirement</size>\n**Transistor IO**\n<size:10>SWSREQ_015A</size>" as SWSREQ_015A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_015A]] #BFD8D2
node "<size:12>Requirement</size>\n**Up to 14 inputs**\n<size:10>DREQ_114E</size>" as DREQ_114E [[../fsd/FSD120-design-requirements-specification.html#DREQ_114E]] #BFD8D2
node "<size:12>Requirement</size>\n**Digital inputs**\n<size:10>SREQ_13B</size>" as SREQ_13B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_13B]] #BFD8D2
node "<size:12>Requirement</size>\n**External**\n**failures shall**\n**be detected and**\n**handled**\n<size:10>SREQ_N_02</size>" as SREQ_N_02 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_02]] #BFD8D2
node "<size:12>Hazard</size>\n**External**\n**hardware**\n**failure**\n<size:10>HAZARD_02</size>" as HAZARD_02 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_02]] #FFA76D
node "<size:12>Requirement</size>\n**Digital outputs**\n<size:10>SREQ_13A</size>" as SREQ_13A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_13A]] #BFD8D2
node "<size:12>Requirement</size>\n**No external**\n**control**\n<size:10>DREQ_15A</size>" as DREQ_15A [[../fsd/FSD120-design-requirements-specification.html#DREQ_15A]] #BFD8D2
node "<size:12>Requirement</size>\n**No external**\n**control**\n<size:10>SREQ_02</size>" as SREQ_02 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_02]] #BFD8D2
node "<size:12>Hazard</size>\n**User interface**\n**controlling**\n**outputs**\n<size:10>HAZARD_20</size>" as HAZARD_20 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_20]] #FFA76D
node "<size:12>Requirement</size>\n**No user**\n**interface to**\n**control safety**\n**outputs**\n<size:10>SWSREQ_020A</size>" as SWSREQ_020A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_020A]] #BFD8D2
node "<size:12>TEST</size>\n**Configuration**\n**tool connection**\n**without**\n**activation**\n<size:10>TEST_150_002</size>" as TEST_150_002 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_002]] #DCB239
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030G</size>" as SWSREQ_030G [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030G]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200G</size>" as DREQ_LOGIC_200G [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200G]] #BFD8D2
node "<size:12>Requirement</size>\n**Modes of**\n**operation**\n<size:10>SREQ_15A</size>" as SREQ_15A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_15A]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state**\n**during**\n**configuration**\n<size:10>SREQ_N_03</size>" as SREQ_N_03 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_03]] #BFD8D2
node "<size:12>Hazard</size>\n**Active or**\n**sporadically**\n**active outputs**\n**during system**\n**configuration**\n<size:10>HAZARD_03</size>" as HAZARD_03 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_03]] #FFA76D
node "<size:12>Requirement</size>\n**Safe state**\n**during software**\n**upgrade**\n<size:10>SREQ_21</size>" as SREQ_21 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_21]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state in**\n**other nodes**\n**during**\n**configuration**\n<size:10>SREQ_N_04</size>" as SREQ_N_04 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_04]] #BFD8D2
node "<size:12>Hazard</size>\n**Active or**\n**sporadically**\n**active outputs**\n**in other Safety**\n**Simplifiers**\n**during system**\n**configuration**\n<size:10>HAZARD_04</size>" as HAZARD_04 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_04]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SREQ_15B</size>" as SREQ_15B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_15B]] #BFD8D2
node "<size:12>RESULT</size>\n**Configuration**\n**mode and**\n**reconfiguration**\n<size:10>RESULT_150_001</size>" as RESULT_150_001 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_001]] #FFA76D
node "<size:12>TEST</size>\n**Configuration**\n**mode and**\n**reconfiguration**\n<size:10>TEST_150_001</size>" as TEST_150_001 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_001]] #DCB239
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030D</size>" as SWSREQ_030D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030D]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030C</size>" as SWSREQ_030C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030C]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030B</size>" as SWSREQ_030B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030B]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030A</size>" as SWSREQ_030A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030A]] #BFD8D2
node "<size:12>Requirement</size>\n**Static safe**\n**state**\n<size:10>SREQ_05</size>" as SREQ_05 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_05]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200D</size>" as DREQ_LOGIC_200D [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200D]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200C</size>" as DREQ_LOGIC_200C [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200C]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200B</size>" as DREQ_LOGIC_200B [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200B]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200A</size>" as DREQ_LOGIC_200A [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200A]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state**\n<size:10>DREQ_SAFESTAE_2</size>" as DREQ_SAFESTAE_2 [[../fsd/FSD120-design-requirements-specification.html#DREQ_SAFESTAE_2]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state non**\n**returning**\n**function**\n<size:10>SWSREQ_024B</size>" as SWSREQ_024B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_024B]] #BFD8D2
node "<size:12>TEST</size>\n**Fatal error**\n**turns off all**\n**outputs**\n<size:10>TEST_150_010</size>" as TEST_150_010 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_010]] #DCB239
node "<size:12>Requirement</size>\n**Safe state mode**\n<size:10>SWSREQ_029A</size>" as SWSREQ_029A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_029A]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state**\n<size:10>SWSREQ_024A</size>" as SWSREQ_024A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_024A]] #BFD8D2
node "<size:12>Requirement</size>\n**Fatal error**\n**mode**\n<size:10>SREQ_15C</size>" as SREQ_15C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_15C]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state**\n**during fatal**\n**error**\n<size:10>SREQ_N_05</size>" as SREQ_N_05 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_05]] #BFD8D2
node "<size:12>Hazard</size>\n**Active or**\n**sporadically**\n**active outputs**\n**after detecting**\n**a fault**\n<size:10>HAZARD_5</size>" as HAZARD_5 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_5]] #FFA76D
node "<size:12>Requirement</size>\n**Dangerous**\n**failure**\n**response time**\n<size:10>SREQ_09A</size>" as SREQ_09A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_09A]] #BFD8D2
node "<size:12>Requirement</size>\n**Timing accuracy**\n<size:10>SREQ_27</size>" as SREQ_27 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_27]] #BFD8D2
node "<size:12>Requirement</size>\n**Time measurment**\n**accuracy**\n<size:10>SREQ_N_15A</size>" as SREQ_N_15A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_15A]] #BFD8D2
node "<size:12>Hazard</size>\n**Inaccurate time**\n**measurment in**\n**logic**\n<size:10>HAZARD_15</size>" as HAZARD_15 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_15]] #FFA76D
node "<size:12>Requirement</size>\n**Time measurment**\n**faults**\n<size:10>SREQ_N_15B</size>" as SREQ_N_15B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_15B]] #BFD8D2
node "<size:12>Requirement</size>\n**Logic**\n**calculation**\n**interval**\n**measurment**\n<size:10>DREQ_108B</size>" as DREQ_108B [[../fsd/FSD120-design-requirements-specification.html#DREQ_108B]] #BFD8D2
node "<size:12>Requirement</size>\n**Logic**\n**calculation**\n**interval**\n<size:10>SWSREQ_007C</size>" as SWSREQ_007C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_007C]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #21**\n<size:10>TEST_300_121</size>" as TEST_300_121 [[../fsd/FSD300-software-module-tests.html#TEST_300_121]] #FFA76D
node "<size:12>Requirement</size>\n**Logic**\n**calculation**\n**interval**\n<size:10>SWSREQ_007A</size>" as SWSREQ_007A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_007A]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #20**\n<size:10>TEST_300_120</size>" as TEST_300_120 [[../fsd/FSD300-software-module-tests.html#TEST_300_120]] #FFA76D
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #19**\n<size:10>TEST_300_119</size>" as TEST_300_119 [[../fsd/FSD300-software-module-tests.html#TEST_300_119]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #22**\n<size:10>TEST_300_022</size>" as TEST_300_022 [[../fsd/FSD300-software-module-tests.html#TEST_300_022]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #21**\n<size:10>TEST_300_021</size>" as TEST_300_021 [[../fsd/FSD300-software-module-tests.html#TEST_300_021]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #23**\n<size:10>TEST_300_023</size>" as TEST_300_023 [[../fsd/FSD300-software-module-tests.html#TEST_300_023]] #FFA76D
node "<size:12>Requirement</size>\n**Logic**\n**calculation**\n**interval**\n<size:10>SWSREQ_007B</size>" as SWSREQ_007B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_007B]] #BFD8D2
node "<size:12>Requirement</size>\n**Logic**\n**calculation**\n**interval**\n<size:10>DREQ_108A</size>" as DREQ_108A [[../fsd/FSD120-design-requirements-specification.html#DREQ_108A]] #BFD8D2
node "<size:12>Requirement</size>\n**Internal**\n**failure**\n**monitoring**\n<size:10>SREQ_03A</size>" as SREQ_03A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_03A]] #BFD8D2
node "<size:12>Requirement</size>\n**Dangerous**\n**internal**\n**hardware**\n**failures shall**\n**be detected**\n<size:10>SREQ_N_01</size>" as SREQ_N_01 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_01]] #BFD8D2
node "<size:12>Hazard</size>\n**Internal**\n**hardware**\n**failure**\n<size:10>HAZARD_01</size>" as HAZARD_01 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_01]] #FFA76D
node "<size:12>Requirement</size>\n**Startup/contino**\n**us tests &**\n**diagnostic**\n<size:10>SREQ_16A</size>" as SREQ_16A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_16A]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**hash**\n<size:10>DREQ_LOGIC_202B</size>" as DREQ_LOGIC_202B [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_202B]] #BFD8D2
node "<size:12>Requirement</size>\n**Startup/contino**\n**us tests &**\n**diagnostic**\n<size:10>SREQ_16B</size>" as SREQ_16B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_16B]] #BFD8D2
node "<size:12>Requirement</size>\n**Restart and**\n**reset**\n<size:10>SREQ_N_19</size>" as SREQ_N_19 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_19]] #BFD8D2
node "<size:12>Hazard</size>\n**Restart can**\n**cause undefined**\n**function**\n<size:10>HAZARD_19</size>" as HAZARD_19 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_19]] #FFA76D
node "<size:12>Requirement</size>\n**Power supply**\n<size:10>SREQ_24</size>" as SREQ_24 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_24]] #BFD8D2
node "<size:12>Requirement</size>\n**Power supply**\n<size:10>SREQ_N_10</size>" as SREQ_N_10 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_10]] #BFD8D2
node "<size:12>Hazard</size>\n**Power supply**\n**failures**\n<size:10>HAZARD_10</size>" as HAZARD_10 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_10]] #FFA76D
node "<size:12>Requirement</size>\n**Over Voltage**\n**safe state**\n<size:10>DREQ_24D</size>" as DREQ_24D [[../fsd/FSD120-design-requirements-specification.html#DREQ_24D]] #BFD8D2
node "<size:12>Requirement</size>\n**ES1 according**\n**to IEC/EN**\n**62368-1**\n<size:10>SREQ_18B</size>" as SREQ_18B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_18B]] #BFD8D2
node "<size:12>Requirement</size>\n**Environmental**\n**conditions**\n<size:10>SREQ_N_18</size>" as SREQ_N_18 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_18]] #BFD8D2
node "<size:12>Hazard</size>\n**Environmental**\n**factors**\n<size:10>HAZARD_18</size>" as HAZARD_18 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_18]] #FFA76D
node "<size:12>Requirement</size>\n**CE/EMC**\n<size:10>SREQ_19</size>" as SREQ_19 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_19]] #BFD8D2
node "<size:12>Requirement</size>\n**Environment**\n**tests 61131-2**\n<size:10>DREQ_113A</size>" as DREQ_113A [[../fsd/FSD120-design-requirements-specification.html#DREQ_113A]] #BFD8D2
node "<size:12>Requirement</size>\n**SIL3/CAT4/PLe**\n<size:10>SREQ_01A</size>" as SREQ_01A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_01A]] #BFD8D2
node "<size:12>Market requirement</size>\n**SIL3/CAT4/PLe**\n<size:10>MREQ_01</size>" as MREQ_01 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_01]] #FFA76D
node "<size:12>Requirement</size>\n**High demand or**\n**continuous mode**\n**calculations**\n<size:10>SREQ_06B</size>" as SREQ_06B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_06B]] #BFD8D2
node "<size:12>Motivation</size>\n**high demand/con**\n**tinuous mode**\n<size:10>MOTIVATION_114_007</size>" as MOTIVATION_114_007 [[../fsd/FSD114-safety-requirements-specification.html#MOTIVATION_114_007]] #FFA76D
node "<size:12>Requirement</size>\n**High demand/con**\n**tinous mode**\n<size:10>SREQ_06A</size>" as SREQ_06A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_06A]] #BFD8D2
node "<size:12>Requirement</size>\n**Temperature**\n**tests**\n<size:10>DREQ_17C</size>" as DREQ_17C [[../fsd/FSD120-design-requirements-specification.html#DREQ_17C]] #BFD8D2
node "<size:12>Certificate</size>\n**60068-2 and**\n**61131-2**\n<size:10>CERT_0006</size>" as CERT_0006 [[../fsd/FSD103-standards-and-certifications-overview.html#CERT_0006]] #FFA76D
node "<size:12>Requirement</size>\n**Vibration tests**\n<size:10>DREQ_17B</size>" as DREQ_17B [[../fsd/FSD120-design-requirements-specification.html#DREQ_17B]] #BFD8D2
node "<size:12>Requirement</size>\n**Max total 70**\n**fits**\n<size:10>DREQ_107A</size>" as DREQ_107A [[../fsd/FSD120-design-requirements-specification.html#DREQ_107A]] #BFD8D2
node "<size:12>Certificate</size>\n**HW evaluation**\n**report**\n<size:10>CERT_0008</size>" as CERT_0008 [[../fsd/FSD103-standards-and-certifications-overview.html#CERT_0008]] #FFA76D
node "<size:12>Requirement</size>\n**Logic**\n**redundancy**\n**13849-1**\n<size:10>DREQ_REDUNDANCY_1</size>" as DREQ_REDUNDANCY_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_REDUNDANCY_1]] #BFD8D2
node "<size:12>Requirement</size>\n**PLC**\n<size:10>SREQ_01B</size>" as SREQ_01B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_01B]] #BFD8D2
node "<size:12>Market requirement</size>\n**PLC**\n<size:10>MREQ_02</size>" as MREQ_02 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_02]] #FFA76D
node "<size:12>Requirement</size>\n**Function block**\n**development**\n**procedure**\n<size:10>DREQ_LOGIC_201B</size>" as DREQ_LOGIC_201B [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_201B]] #BFD8D2
node "<size:12>Specification</size>\n**Function block**\n**development**\n**procedure**\n<size:10>FSD123_SPEC1</size>" as FSD123_SPEC1 [[../fsd/FSD123-function-block-development-procedure.html#FSD123_SPEC1]] #FEDCD2
node "<size:12>Requirement</size>\n**Function block**\n**programming**\n<size:10>DREQ_LOGIC_201A</size>" as DREQ_LOGIC_201A [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_201A]] #BFD8D2
node "<size:12>Requirement</size>\n**Block diagram**\n<size:10>SWSREQ_008A</size>" as SWSREQ_008A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_008A]] #BFD8D2
node "<size:12>Requirement</size>\n**Logic function**\n<size:10>DREQ_118A</size>" as DREQ_118A [[../fsd/FSD120-design-requirements-specification.html#DREQ_118A]] #BFD8D2
node "<size:12>Motivation</size>\n**SWSREQ_008A**\n<size:10>MOTIVATION_124_001</size>" as MOTIVATION_124_001 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MOTIVATION_124_001]] #FFA76D
node "<size:12>Requirement</size>\n**Output as**\n**function of**\n**inputs**\n<size:10>DREQ_122A</size>" as DREQ_122A [[../fsd/FSD120-design-requirements-specification.html#DREQ_122A]] #BFD8D2
node "<size:12>Motivation</size>\n**Element safety**\n**functions**\n<size:10>MOTIVATION_115_001</size>" as MOTIVATION_115_001 [[../fsd/FSD115-element-safety-functions.html#MOTIVATION_115_001]] #FFA76D
node "<size:12>Requirement</size>\n**Relays 10 fits**\n<size:10>DREQ_105A</size>" as DREQ_105A [[../fsd/FSD120-design-requirements-specification.html#DREQ_105A]] #BFD8D2
node "<size:12>Requirement</size>\n**Potential free**\n**outputs**\n<size:10>SREQ_12</size>" as SREQ_12 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_12]] #BFD8D2
node "<size:12>Market requirement</size>\n**Relay outputs**\n<size:10>MREQ_04</size>" as MREQ_04 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_04]] #FFA76D
node "<size:12>Requirement</size>\n**Relays in**\n**series/parallel**\n<size:10>DREQ_127A</size>" as DREQ_127A [[../fsd/FSD120-design-requirements-specification.html#DREQ_127A]] #BFD8D2
node "<size:12>Motivation</size>\n**Relays in**\n**parallel/series**\n<size:10>MOTIVATION_220_009</size>" as MOTIVATION_220_009 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_009]] #FFA76D
node "<size:12>Requirement</size>\n**Redundant**\n**relays**\n<size:10>DREQ_12A</size>" as DREQ_12A [[../fsd/FSD120-design-requirements-specification.html#DREQ_12A]] #BFD8D2
node "<size:12>Requirement</size>\n**Relay outputs**\n<size:10>SWSREQ_023A</size>" as SWSREQ_023A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_023A]] #BFD8D2
node "<size:12>RESULT</size>\n**HW module test**\n**#1**\n<size:10>TEST_300_201</size>" as TEST_300_201 [[../fsd/FSD300-software-module-tests.html#TEST_300_201]] #FFA76D
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #26**\n<size:10>TEST_300_126</size>" as TEST_300_126 [[../fsd/FSD300-software-module-tests.html#TEST_300_126]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #41**\n<size:10>TEST_300_041</size>" as TEST_300_041 [[../fsd/FSD300-software-module-tests.html#TEST_300_041]] #FFA76D
node "<size:12>Motivation</size>\n**Redundant**\n**relays**\n<size:10>MOTIVATION_220_008</size>" as MOTIVATION_220_008 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_008]] #FFA76D
node "<size:12>Requirement</size>\n**Redundancy**\n**relays**\n<size:10>DREQ_01E</size>" as DREQ_01E [[../fsd/FSD120-design-requirements-specification.html#DREQ_01E]] #BFD8D2
node "<size:12>Motivation</size>\n**SFF>99%**\n<size:10>MOTIVATION_212_001</size>" as MOTIVATION_212_001 [[../fsd/FSD212-Derivation_of_SFF.html#MOTIVATION_212_001]] #FFA76D
node "<size:12>Requirement</size>\n**Logic < 10 fits**\n<size:10>DREQ_103A</size>" as DREQ_103A [[../fsd/FSD120-design-requirements-specification.html#DREQ_103A]] #BFD8D2
node "<size:12>Requirement</size>\n**CAT4/HFT 1**\n<size:10>DREQ_CAT4_1</size>" as DREQ_CAT4_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_CAT4_1]] #BFD8D2
node "<size:12>Certificate</size>\n**IEC 61131-2**\n<size:10>CERT_0001</size>" as CERT_0001 [[../fsd/FSD103-standards-and-certifications-overview.html#CERT_0001]] #FFA76D
node "<size:12>Requirement</size>\n**RED (Radio**\n**Equipment**\n**Directive)**\n<size:10>DREQ_EMC_2</size>" as DREQ_EMC_2 [[../fsd/FSD120-design-requirements-specification.html#DREQ_EMC_2]] #BFD8D2
node "<size:12>Certificate</size>\n**RED**\n<size:10>CERT_0007</size>" as CERT_0007 [[../fsd/FSD103-standards-and-certifications-overview.html#CERT_0007]] #FFA76D
node "<size:12>Requirement</size>\n**EMC**\n<size:10>DREQ_EMC_1</size>" as DREQ_EMC_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_EMC_1]] #BFD8D2
node "<size:12>Requirement</size>\n**ES1 according**\n**to IEC/EN**\n**62368-1**\n<size:10>SREQ_18C</size>" as SREQ_18C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_18C]] #BFD8D2
node "<size:12>Requirement</size>\n**Voltage**\n**requirement**\n<size:10>DREQ_MANUAL_10</size>" as DREQ_MANUAL_10 [[../fsd/FSD120-design-requirements-specification.html#DREQ_MANUAL_10]] #BFD8D2
node "<size:12>Motivation</size>\n**Voltages in**\n**manual**\n<size:10>MOTIVATION_501_100</size>" as MOTIVATION_501_100 [[../fsd/FSD501-safety-manual.html#MOTIVATION_501_100]] #FFA76D
node "<size:12>Requirement</size>\n**ES1 according**\n**to IEC/EN**\n**62368-1**\n<size:10>SREQ_18A</size>" as SREQ_18A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_18A]] #BFD8D2
node "<size:12>Requirement</size>\n**Environmental**\n**conditions**\n<size:10>SREQ_17D</size>" as SREQ_17D [[../fsd/FSD114-safety-requirements-specification.html#SREQ_17D]] #BFD8D2
node "<size:12>Requirement</size>\n**Manual**\n**environmental**\n**conditions**\n<size:10>DREQ_MANUAL_11</size>" as DREQ_MANUAL_11 [[../fsd/FSD120-design-requirements-specification.html#DREQ_MANUAL_11]] #BFD8D2
node "<size:12>Motivation</size>\n**Storage and**\n**operating**\n**environment**\n<size:10>MOTIVATION_501_102</size>" as MOTIVATION_501_102 [[../fsd/FSD501-safety-manual.html#MOTIVATION_501_102]] #FFA76D
node "<size:12>Requirement</size>\n**Operating**\n**temperature**\n<size:10>SREQ_17C</size>" as SREQ_17C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_17C]] #BFD8D2
node "<size:12>Market requirement</size>\n**Environmental**\n**conditions**\n<size:10>MREQ_09</size>" as MREQ_09 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_09]] #FFA76D
node "<size:12>Requirement</size>\n**Overheating**\n**shut off**\n<size:10>DREQ_17D</size>" as DREQ_17D [[../fsd/FSD120-design-requirements-specification.html#DREQ_17D]] #BFD8D2
node "<size:12>TEST</size>\n**Overheating**\n**shut off**\n<size:10>TEST_150_013</size>" as TEST_150_013 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_013]] #DCB239
node "<size:12>RESULT</size>\n**Overheating**\n**shut off**\n<size:10>RESULT_150_013</size>" as RESULT_150_013 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_013]] #FFA76D
node "<size:12>Requirement</size>\n**Storage**\n**temperature**\n<size:10>SREQ_17B</size>" as SREQ_17B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_17B]] #BFD8D2
node "<size:12>Requirement</size>\n**Environmental**\n**conditions**\n<size:10>SREQ_17A</size>" as SREQ_17A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_17A]] #BFD8D2
node "<size:12>Requirement</size>\n**User selectable**\n**max/min power**\n**supply voltage**\n<size:10>DREQ_124A</size>" as DREQ_124A [[../fsd/FSD120-design-requirements-specification.html#DREQ_124A]] #BFD8D2
node "<size:12>TEST</size>\n**Voltage**\n**threshold**\n**configuration**\n<size:10>TEST_150_022</size>" as TEST_150_022 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_022]] #DCB239
node "<size:12>RESULT</size>\n**Voltage**\n**threshold**\n**configuration**\n<size:10>RESULT_150_022</size>" as RESULT_150_022 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_022]] #FFA76D
node "<size:12>Requirement</size>\n**Power supply <**\n**20 fits**\n<size:10>DREQ_101A</size>" as DREQ_101A [[../fsd/FSD120-design-requirements-specification.html#DREQ_101A]] #BFD8D2
node "<size:12>Requirement</size>\n**PSU CAT4/SIL3**\n<size:10>DREQ_PSU_01</size>" as DREQ_PSU_01 [[../fsd/FSD120-design-requirements-specification.html#DREQ_PSU_01]] #BFD8D2
node "<size:12>Requirement</size>\n**Maximum voltage**\n<size:10>SWSREQ_005B</size>" as SWSREQ_005B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_005B]] #BFD8D2
node "<size:12>TEST</size>\n**Overvoltage**\n**results in safe**\n**state**\n<size:10>TEST_150_005</size>" as TEST_150_005 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_005]] #DCB239
node "<size:12>RESULT</size>\n**Overvoltage**\n**results in safe**\n**state**\n<size:10>RESULT_150_005</size>" as RESULT_150_005 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_005]] #FFA76D
node "<size:12>Requirement</size>\n**Maximum voltage**\n<size:10>SWSREQ_005A</size>" as SWSREQ_005A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_005A]] #BFD8D2
node "<size:12>Motivation</size>\n**SWSREQ_004A**\n<size:10>MOTIVATION_124_003</size>" as MOTIVATION_124_003 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MOTIVATION_124_003]] #FFA76D
node "<size:12>Requirement</size>\n**Minimum voltage**\n<size:10>SWSREQ_004A</size>" as SWSREQ_004A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_004A]] #BFD8D2
node "<size:12>TEST</size>\n**Undervoltage**\n**results in safe**\n**state**\n<size:10>TEST_150_004</size>" as TEST_150_004 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_004]] #DCB239
node "<size:12>Requirement</size>\n**Minimum voltage**\n<size:10>SWSREQ_004B</size>" as SWSREQ_004B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_004B]] #BFD8D2
node "<size:12>RESULT</size>\n**Undervoltage**\n**results in safe**\n**state**\n<size:10>RESULT_150_004</size>" as RESULT_150_004 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_004]] #FFA76D
node "<size:12>Requirement</size>\n**Unstable**\n**Voltage safe**\n**state**\n<size:10>DREQ_24C</size>" as DREQ_24C [[../fsd/FSD120-design-requirements-specification.html#DREQ_24C]] #BFD8D2
node "<size:12>Requirement</size>\n**Under voltage**\n**safe state**\n<size:10>DREQ_24B</size>" as DREQ_24B [[../fsd/FSD120-design-requirements-specification.html#DREQ_24B]] #BFD8D2
node "<size:12>Requirement</size>\n**Loss of power**\n**safe state**\n<size:10>DREQ_24A</size>" as DREQ_24A [[../fsd/FSD120-design-requirements-specification.html#DREQ_24A]] #BFD8D2
node "<size:12>Requirement</size>\n**Loss of power**\n**safe state**\n<size:10>SWSREQ_003A</size>" as SWSREQ_003A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_003A]] #BFD8D2
node "<size:12>TEST</size>\n**Loss of power**\n**results in safe**\n**state**\n<size:10>TEST_150_003</size>" as TEST_150_003 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_003]] #DCB239
node "<size:12>RESULT</size>\n**Loss of power**\n**results in safe**\n**state**\n<size:10>RESULT_150_003</size>" as RESULT_150_003 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_003]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n<size:10>SREQ_N_07C</size>" as SREQ_N_07C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_07C]] #BFD8D2
node "<size:12>Hazard</size>\n**Corrupted**\n**configuration**\n<size:10>HAZARD_13</size>" as HAZARD_13 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_13]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n<size:10>SREQ_N_07B</size>" as SREQ_N_07B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_07B]] #BFD8D2
node "<size:12>Hazard</size>\n**Failure to**\n**download**\n<size:10>HAZARD_12</size>" as HAZARD_12 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_12]] #FFA76D
node "<size:12>Hazard</size>\n**Downloading of**\n**configuration**\n**to wrong**\n**destination**\n**nodes**\n<size:10>HAZARD_11</size>" as HAZARD_11 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_11]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n<size:10>SREQ_N_07D</size>" as SREQ_N_07D [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_07D]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**download**\n**correct unit**\n<size:10>DREQ_LOGIC_210C</size>" as DREQ_LOGIC_210C [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_210C]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**correct**\n**addressing**\n<size:10>SWSREQ_031B</size>" as SWSREQ_031B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_031B]] #BFD8D2
node "<size:12>TEST</size>\n**addressing via**\n**radio**\n<size:10>TEST_150_017</size>" as TEST_150_017 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_017]] #DCB239
node "<size:12>RESULT</size>\n**addressing via**\n**radio**\n<size:10>RESULT_150_017</size>" as RESULT_150_017 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_017]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**download**\n**correct unit**\n<size:10>DREQ_LOGIC_210B</size>" as DREQ_LOGIC_210B [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_210B]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**download**\n**correct unit**\n<size:10>DREQ_LOGIC_210A</size>" as DREQ_LOGIC_210A [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_210A]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**correct**\n**addressing**\n<size:10>SWSREQ_031A</size>" as SWSREQ_031A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_031A]] #BFD8D2
node "<size:12>TEST</size>\n**Configuration**\n**correct**\n**addressing**\n<size:10>TEST_150_016</size>" as TEST_150_016 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_016]] #DCB239
node "<size:12>RESULT</size>\n**Configuration**\n**correct**\n**addressing**\n<size:10>RESULT_150_016</size>" as RESULT_150_016 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_016]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**mode interfaces**\n<size:10>DREQ_LOGIC_200H</size>" as DREQ_LOGIC_200H [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200H]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode interfaces**\n<size:10>SWSREQ_030H</size>" as SWSREQ_030H [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030H]] #BFD8D2
node "<size:12>TEST</size>\n**Configure via**\n**USB, radio, and**\n**CAN**\n<size:10>TEST_150_015</size>" as TEST_150_015 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_015]] #DCB239
node "<size:12>RESULT</size>\n**Configure via**\n**USB, radio, and**\n**CAN**\n<size:10>RESULT_150_015</size>" as RESULT_150_015 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_015]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200E</size>" as DREQ_LOGIC_200E [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200E]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**authorization**\n<size:10>SREQ_10B</size>" as SREQ_10B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_10B]] #BFD8D2
node "<size:12>Requirement</size>\n**Unauthorized**\n**use**\n<size:10>SREQ_N_17</size>" as SREQ_N_17 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_17]] #BFD8D2
node "<size:12>Hazard</size>\n**Unauthorized**\n**access**\n**(malicious and**\n**unintentional)**\n<size:10>HAZARD_17</size>" as HAZARD_17 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_17]] #FFA76D
node "<size:12>Requirement</size>\n**Means of**\n**configuration**\n<size:10>SREQ_10A</size>" as SREQ_10A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_10A]] #BFD8D2
node "<size:12>Market requirement</size>\n**Memory card**\n<size:10>MREQ_03</size>" as MREQ_03 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_03]] #FFA76D
node "<size:12>Requirement</size>\n**Memory card**\n**replacement**\n<size:10>DREQ_10B</size>" as DREQ_10B [[../fsd/FSD120-design-requirements-specification.html#DREQ_10B]] #BFD8D2
node "<size:12>Requirement</size>\n**Memory card**\n**replacement**\n<size:10>SWSREQ_031E</size>" as SWSREQ_031E [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_031E]] #BFD8D2
node "<size:12>TEST</size>\n**Memory card**\n**replacement**\n<size:10>TEST_150_020</size>" as TEST_150_020 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_020]] #DCB239
node "<size:12>RESULT</size>\n**Memory card**\n**replacement**\n<size:10>RESULT_150_020</size>" as RESULT_150_020 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_020]] #FFA76D
node "<size:12>Motivation</size>\n**Memory card**\n<size:10>MOTIVATION_220_012</size>" as MOTIVATION_220_012 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_012]] #FFA76D
node "<size:12>Requirement</size>\n**No user**\n**interface for**\n**unit setup**\n<size:10>DREQ_10A</size>" as DREQ_10A [[../fsd/FSD120-design-requirements-specification.html#DREQ_10A]] #BFD8D2
node "<size:12>Requirement</size>\n**No user**\n**interface for**\n**unit setup**\n<size:10>SWSREQ_031D</size>" as SWSREQ_031D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_031D]] #BFD8D2
node "<size:12>TEST</size>\n**No direct user**\n**interface for**\n**unit setup**\n<size:10>TEST_150_019</size>" as TEST_150_019 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_019]] #DCB239
node "<size:12>RESULT</size>\n**No direct user**\n**interface for**\n**unit setup**\n<size:10>RESULT_150_019</size>" as RESULT_150_019 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_019]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030E</size>" as SWSREQ_030E [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030E]] #BFD8D2
node "<size:12>TEST</size>\n**Wrong password**\n**prevents**\n**configuration**\n<size:10>TEST_150_014</size>" as TEST_150_014 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_014]] #DCB239
node "<size:12>RESULT</size>\n**Wrong password**\n**prevents**\n**configuration**\n<size:10>RESULT_150_014</size>" as RESULT_150_014 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_014]] #FFA76D
node "<size:12>Hazard</size>\n**During service,**\n**replacement of**\n**a unit results**\n**in wrong**\n**configuration**\n**or pairing**\n<size:10>HAZARD_08</size>" as HAZARD_08 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_08]] #FFA76D
node "<size:12>Hazard</size>\n**Human error**\n**during**\n**configuration**\n<size:10>HAZARD_7</size>" as HAZARD_7 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_7]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**download**\n**success/fail**\n<size:10>DREQ_LOGIC_210D</size>" as DREQ_LOGIC_210D [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_210D]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**success or**\n**failure**\n<size:10>SWSREQ_031C</size>" as SWSREQ_031C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_031C]] #BFD8D2
node "<size:12>TEST</size>\n**Configuration**\n**success or**\n**failure**\n<size:10>TEST_150_018</size>" as TEST_150_018 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_018]] #DCB239
node "<size:12>RESULT</size>\n**Configuration**\n**success or**\n**failure**\n<size:10>RESULT_150_018</size>" as RESULT_150_018 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_018]] #FFA76D
node "<size:12>Requirement</size>\n**Procedures for**\n**correctly**\n**configuring**\n**Safety**\n**Simplifier**\n<size:10>SREQ_N_07A</size>" as SREQ_N_07A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_07A]] #BFD8D2
node "<size:12>Requirement</size>\n**Manual, user**\n**configuration**\n**CAN**\n<size:10>DREQ_MANUAL_22</size>" as DREQ_MANUAL_22 [[../fsd/FSD120-design-requirements-specification.html#DREQ_MANUAL_22]] #BFD8D2
node "<size:12>Motivation</size>\n**USB programming**\n**and**\n**configuration**\n<size:10>MOTIVATION_501_105</size>" as MOTIVATION_501_105 [[../fsd/FSD501-safety-manual.html#MOTIVATION_501_105]] #FFA76D
node "<size:12>Requirement</size>\n**Manual, user**\n**configuration**\n**radio**\n<size:10>DREQ_MANUAL_21</size>" as DREQ_MANUAL_21 [[../fsd/FSD120-design-requirements-specification.html#DREQ_MANUAL_21]] #BFD8D2
node "<size:12>Motivation</size>\n**Radio**\n**programming**\n<size:10>MOTIVATION_501_104</size>" as MOTIVATION_501_104 [[../fsd/FSD501-safety-manual.html#MOTIVATION_501_104]] #FFA76D
node "<size:12>Requirement</size>\n**Manual, user**\n**configuration**\n**USB**\n<size:10>DREQ_MANUAL_20</size>" as DREQ_MANUAL_20 [[../fsd/FSD120-design-requirements-specification.html#DREQ_MANUAL_20]] #BFD8D2
node "<size:12>Motivation</size>\n**USB programming**\n<size:10>MOTIVATION_501_103</size>" as MOTIVATION_501_103 [[../fsd/FSD501-safety-manual.html#MOTIVATION_501_103]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**hash**\n<size:10>DREQ_LOGIC_202A</size>" as DREQ_LOGIC_202A [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_202A]] #BFD8D2
node "<size:12>Requirement</size>\n**Start-up**\n**configuration**\n**check**\n<size:10>SWSREQ_032C</size>" as SWSREQ_032C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_032C]] #BFD8D2
node "<size:12>Requirement</size>\n**CPUs check same**\n**configuration**\n<size:10>DREQ_C2C_7</size>" as DREQ_C2C_7 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_7]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU2CPU**\n**communication**\n<size:10>SREQ_N_09D</size>" as SREQ_N_09D [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_09D]] #BFD8D2
node "<size:12>Hazard</size>\n**Communication**\n**errors for all**\n**communication**\n**interfaces, as**\n**defined in**\n**61784-3**\n<size:10>HAZARD_09</size>" as HAZARD_09 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_09]] #FFA76D
node "<size:12>Requirement</size>\n**General black**\n**channel**\n**interface**\n<size:10>SREQ_N_09C</size>" as SREQ_N_09C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_09C]] #BFD8D2
node "<size:12>Black Channel</size>\n**General Black**\n**Channel type 1**\n**- Point-to-**\n**Point**\n<size:10>BLCH0002</size>" as BLCH0002 [[../black_channels/BLCH0002-GBLCH1.html#BLCH0002]] #FFA76D
node "<size:12>Requirement</size>\n**CAN**\n**communication**\n<size:10>SREQ_N_09B</size>" as SREQ_N_09B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_09B]] #BFD8D2
node "<size:12>Market requirement</size>\n**SimpleCAN**\n<size:10>MREQ_08</size>" as MREQ_08 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_08]] #FFA76D
node "<size:12>Market requirement</size>\n**CAN**\n**communication**\n<size:10>MREQ_07</size>" as MREQ_07 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_07]] #FFA76D
node "<size:12>Requirement</size>\n**CAN**\n**communication**\n**protocol**\n<size:10>DREQ_CAN_2</size>" as DREQ_CAN_2 [[../fsd/FSD120-design-requirements-specification.html#DREQ_CAN_2]] #BFD8D2
node "<size:12>Requirement</size>\n**SimpleCAN**\n<size:10>SWSREQ_038A</size>" as SWSREQ_038A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_038A]] #BFD8D2
node "<size:12>Requirement</size>\n**SimpleCAN**\n**requirements**\n<size:10>SIMPLECAN_ALL_REQS</size>" as SIMPLECAN_ALL_REQS [[../specs/simplecan-reqs.html#SIMPLECAN_ALL_REQS]] #BFD8D2
node "<size:12>Requirement</size>\n**Safety manual**\n**requirements**\n<size:10>SC_REQ_46</size>" as SC_REQ_46 [[../specs/simplecan-reqs.html#SC_REQ_46]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_042</size>" as MOTIVATION_230_042 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_042]] #FFA76D
node "<size:12>Requirement</size>\n**Response time**\n<size:10>SC_REQ_45</size>" as SC_REQ_45 [[../specs/simplecan-reqs.html#SC_REQ_45]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_041</size>" as MOTIVATION_230_041 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_041]] #FFA76D
node "<size:12>Requirement</size>\n**Installation**\n**requirements**\n<size:10>SC_REQ_44</size>" as SC_REQ_44 [[../specs/simplecan-reqs.html#SC_REQ_44]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_040</size>" as MOTIVATION_230_040 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_040]] #FFA76D
node "<size:12>Requirement</size>\n**Unauthorized**\n**access to SRLDs**\n<size:10>SC_REQ_43</size>" as SC_REQ_43 [[../specs/simplecan-reqs.html#SC_REQ_43]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_039</size>" as MOTIVATION_230_039 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_039]] #FFA76D
node "<size:12>Requirement</size>\n**Maximum packets**\n**with incorrect**\n**CRC**\n<size:10>SC_REQ_42</size>" as SC_REQ_42 [[../specs/simplecan-reqs.html#SC_REQ_42]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_038</size>" as MOTIVATION_230_038 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_038]] #FFA76D
node "<size:12>Requirement</size>\n**Warm start**\n**after fault**\n<size:10>SC_REQ_41</size>" as SC_REQ_41 [[../specs/simplecan-reqs.html#SC_REQ_41]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_037</size>" as MOTIVATION_230_037 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_037]] #FFA76D
node "<size:12>Requirement</size>\n**No safety**\n**communication**\n**in safe state**\n<size:10>SC_REQ_40</size>" as SC_REQ_40 [[../specs/simplecan-reqs.html#SC_REQ_40]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_036</size>" as MOTIVATION_230_036 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_036]] #FFA76D
node "<size:12>Requirement</size>\n**Change of**\n**configuration**\n**only possible**\n**in safe state**\n<size:10>SC_REQ_39</size>" as SC_REQ_39 [[../specs/simplecan-reqs.html#SC_REQ_39]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_035</size>" as MOTIVATION_230_035 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_035]] #FFA76D
node "<size:12>Requirement</size>\n**SR**\n**configuration**\n**tool aid user**\n**for addressing**\n<size:10>SC_REQ_38</size>" as SC_REQ_38 [[../specs/simplecan-reqs.html#SC_REQ_38]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_034</size>" as MOTIVATION_230_034 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_034]] #FFA76D
node "<size:12>Requirement</size>\n**SR**\n**configuration**\n**addressing**\n<size:10>SC_REQ_37</size>" as SC_REQ_37 [[../specs/simplecan-reqs.html#SC_REQ_37]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_033</size>" as MOTIVATION_230_033 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_033]] #FFA76D
node "<size:12>Requirement</size>\n**SR**\n**configuration**\n**tool**\n**verification**\n<size:10>SC_REQ_36</size>" as SC_REQ_36 [[../specs/simplecan-reqs.html#SC_REQ_36]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_032</size>" as MOTIVATION_230_032 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_032]] #FFA76D
node "<size:12>Requirement</size>\n**SR**\n**configuration**\n**tool**\n<size:10>SC_REQ_35</size>" as SC_REQ_35 [[../specs/simplecan-reqs.html#SC_REQ_35]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_031</size>" as MOTIVATION_230_031 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_031]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**verification at**\n**startup**\n<size:10>SC_REQ_34</size>" as SC_REQ_34 [[../specs/simplecan-reqs.html#SC_REQ_34]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_030</size>" as MOTIVATION_230_030 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_030]] #FFA76D
node "<size:12>Requirement</size>\n**Maximum**\n**received packet**\n**buffering**\n<size:10>SC_REQ_33</size>" as SC_REQ_33 [[../specs/simplecan-reqs.html#SC_REQ_33]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_029</size>" as MOTIVATION_230_029 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_029]] #FFA76D
node "<size:12>Requirement</size>\n**Time sync max**\n**delay**\n<size:10>SC_REQ_32</size>" as SC_REQ_32 [[../specs/simplecan-reqs.html#SC_REQ_32]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_028</size>" as MOTIVATION_230_028 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_028]] #FFA76D
node "<size:12>Requirement</size>\n**Clock drift**\n<size:10>SC_REQ_31</size>" as SC_REQ_31 [[../specs/simplecan-reqs.html#SC_REQ_31]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_027</size>" as MOTIVATION_230_027 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_027]] #FFA76D
node "<size:12>Requirement</size>\n**SCL enter**\n**synced state**\n<size:10>SC_REQ_30</size>" as SC_REQ_30 [[../specs/simplecan-reqs.html#SC_REQ_30]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_026</size>" as MOTIVATION_230_026 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_026]] #FFA76D
node "<size:12>Requirement</size>\n**Startup in**\n**unsynced state**\n<size:10>SC_REQ_29</size>" as SC_REQ_29 [[../specs/simplecan-reqs.html#SC_REQ_29]] #BFD8D2
node "<size:12>Requirement</size>\n**Time sync**\n**transmission**\n**errors**\n<size:10>SC_REQ_28</size>" as SC_REQ_28 [[../specs/simplecan-reqs.html#SC_REQ_28]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_024</size>" as MOTIVATION_230_024 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_024]] #FFA76D
node "<size:12>Requirement</size>\n**Master time**\n**sync wait**\n**before tx**\n<size:10>SC_REQ_27</size>" as SC_REQ_27 [[../specs/simplecan-reqs.html#SC_REQ_27]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_023</size>" as MOTIVATION_230_023 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_023]] #FFA76D
node "<size:12>Requirement</size>\n**Multiple**\n**masters safe**\n**state**\n<size:10>SC_REQ_26</size>" as SC_REQ_26 [[../specs/simplecan-reqs.html#SC_REQ_26]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_022</size>" as MOTIVATION_230_022 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_022]] #FFA76D
node "<size:12>Requirement</size>\n**Master**\n**determination**\n<size:10>SC_REQ_25</size>" as SC_REQ_25 [[../specs/simplecan-reqs.html#SC_REQ_25]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_021</size>" as MOTIVATION_230_021 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_021]] #FFA76D
node "<size:12>Requirement</size>\n**Model A SCL**\n**forwarding**\n<size:10>SC_REQ_24</size>" as SC_REQ_24 [[../specs/simplecan-reqs.html#SC_REQ_24]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_020</size>" as MOTIVATION_230_020 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_020]] #FFA76D
node "<size:12>Requirement</size>\n**Time sync**\n**control packets**\n**abort**\n<size:10>SC_REQ_23</size>" as SC_REQ_23 [[../specs/simplecan-reqs.html#SC_REQ_23]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_019</size>" as MOTIVATION_230_019 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_019]] #FFA76D
node "<size:12>Requirement</size>\n**master packet**\n**time sync**\n**frequencies**\n<size:10>SC_REQ_22</size>" as SC_REQ_22 [[../specs/simplecan-reqs.html#SC_REQ_22]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_018</size>" as MOTIVATION_230_018 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_018]] #FFA76D
node "<size:12>Requirement</size>\n**SR data**\n**transmission**\n**cycle**\n**requirement**\n<size:10>SC_REQ_21</size>" as SC_REQ_21 [[../specs/simplecan-reqs.html#SC_REQ_21]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_017</size>" as MOTIVATION_230_017 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_017]] #FFA76D
node "<size:12>Requirement</size>\n**SR data**\n**transmission**\n**consumers**\n<size:10>SC_REQ_20</size>" as SC_REQ_20 [[../specs/simplecan-reqs.html#SC_REQ_20]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_016</size>" as MOTIVATION_230_016 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_016]] #FFA76D
node "<size:12>Requirement</size>\n**SR data**\n**transmission**\n**producers**\n<size:10>SC_REQ_19</size>" as SC_REQ_19 [[../specs/simplecan-reqs.html#SC_REQ_19]] #BFD8D2
node "<size:12>Requirement</size>\n**SR data**\n**transmission**\n<size:10>SC_REQ_18</size>" as SC_REQ_18 [[../specs/simplecan-reqs.html#SC_REQ_18]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_015</size>" as MOTIVATION_230_015 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_015]] #FFA76D
node "<size:12>Requirement</size>\n**CRC algorithm**\n**usage**\n<size:10>SC_REQ_17</size>" as SC_REQ_17 [[../specs/simplecan-reqs.html#SC_REQ_17]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_014</size>" as MOTIVATION_230_014 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_014]] #FFA76D
node "<size:12>Requirement</size>\n**safety related**\n**configuration**\n<size:10>SC_REQ_16</size>" as SC_REQ_16 [[../specs/simplecan-reqs.html#SC_REQ_16]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_013</size>" as MOTIVATION_230_013 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_013]] #FFA76D
node "<size:12>Requirement</size>\n**SC-ID node hash**\n<size:10>SC_REQ_15</size>" as SC_REQ_15 [[../specs/simplecan-reqs.html#SC_REQ_15]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_012</size>" as MOTIVATION_230_012 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_012]] #FFA76D
node "<size:12>Requirement</size>\n**SRLD safe state**\n<size:10>SC_REQ_14</size>" as SC_REQ_14 [[../specs/simplecan-reqs.html#SC_REQ_14]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_011</size>" as MOTIVATION_230_011 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_011]] #FFA76D
node "<size:12>Requirement</size>\n**SDD**\n**requirements**\n<size:10>SC_REQ_12</size>" as SC_REQ_12 [[../specs/simplecan-reqs.html#SC_REQ_12]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_010</size>" as MOTIVATION_230_010 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_010]] #FFA76D
node "<size:12>Requirement</size>\n**SimpleCAN and**\n**EN 11989-1**\n<size:10>SC_REQ_11</size>" as SC_REQ_11 [[../specs/simplecan-reqs.html#SC_REQ_11]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_009</size>" as MOTIVATION_230_009 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_009]] #FFA76D
node "<size:12>Requirement</size>\n**single field-**\n**bus usage**\n<size:10>SC_REQ_10</size>" as SC_REQ_10 [[../specs/simplecan-reqs.html#SC_REQ_10]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_008</size>" as MOTIVATION_230_008 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_008]] #FFA76D
node "<size:12>Requirement</size>\n**SR data**\n**acknowledgement**\n<size:10>SC_REQ_09</size>" as SC_REQ_09 [[../specs/simplecan-reqs.html#SC_REQ_09]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_007</size>" as MOTIVATION_230_007 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_007]] #FFA76D
node "<size:12>Requirement</size>\n**SR**\n**communication**\n**independance**\n<size:10>SC_REQ_08</size>" as SC_REQ_08 [[../specs/simplecan-reqs.html#SC_REQ_08]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_006</size>" as MOTIVATION_230_006 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_006]] #FFA76D
node "<size:12>Requirement</size>\n**safety devices**\n**compliance with**\n**IEC 61326-3-1**\n**and IEC**\n**61000-6-7**\n<size:10>SC_REQ_07</size>" as SC_REQ_07 [[../specs/simplecan-reqs.html#SC_REQ_07]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_005</size>" as MOTIVATION_230_005 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_005]] #FFA76D
node "<size:12>Requirement</size>\n**SRCP and EN**\n**61508**\n<size:10>SC_REQ_06</size>" as SC_REQ_06 [[../specs/simplecan-reqs.html#SC_REQ_06]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_004</size>" as MOTIVATION_230_004 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_004]] #FFA76D
node "<size:12>Requirement</size>\n**safe state**\n**definitions**\n<size:10>SC_REQ_05</size>" as SC_REQ_05 [[../specs/simplecan-reqs.html#SC_REQ_05]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_003</size>" as MOTIVATION_230_003 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_003]] #FFA76D
node "<size:12>Requirement</size>\n**SRCP**\n**contribution**\n<size:10>SC_REQ_04</size>" as SC_REQ_04 [[../specs/simplecan-reqs.html#SC_REQ_04]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_002</size>" as MOTIVATION_230_002 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_002]] #FFA76D
node "<size:12>Requirement</size>\n**high demand**\n**continuous mode**\n<size:10>SC_REQ_03</size>" as SC_REQ_03 [[../specs/simplecan-reqs.html#SC_REQ_03]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_001</size>" as MOTIVATION_230_001 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_001]] #FFA76D
node "<size:12>Requirement</size>\n**SRCP document**\n**requirements**\n<size:10>SC_REQ_02</size>" as SC_REQ_02 [[../specs/simplecan-reqs.html#SC_REQ_02]] #BFD8D2
node "<size:12>Requirement</size>\n**Mandatory**\n**functions**\n<size:10>SC_REQ_01</size>" as SC_REQ_01 [[../specs/simplecan-reqs.html#SC_REQ_01]] #BFD8D2
node "<size:12>Requirement</size>\n**CAN**\n**communication**\n**HW**\n<size:10>DREQ_CAN_1</size>" as DREQ_CAN_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_CAN_1]] #BFD8D2
node "<size:12>Requirement</size>\n**Radio**\n**communication**\n<size:10>SREQ_N_09A</size>" as SREQ_N_09A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_09A]] #BFD8D2
node "<size:12>Requirement</size>\n**HW radio black**\n**channel**\n<size:10>DREQ_RADIO_1</size>" as DREQ_RADIO_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_1]] #BFD8D2
node "<size:12>Requirement</size>\n**Radio black**\n**channel**\n<size:10>SWSREQ_034A</size>" as SWSREQ_034A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_034A]] #BFD8D2
node "<size:12>Black Channel</size>\n**Radio**\n**Communication**\n<size:10>BLCH0001</size>" as BLCH0001 [[../black_channels/BLCH0001-Radio.html#BLCH0001]] #FFA76D
node "<size:12>Requirement</size>\n**Radio timeout**\n<size:10>SWSREQ_035D</size>" as SWSREQ_035D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_035D]] #BFD8D2
node "<size:12>Requirement</size>\n**Radio timeout**\n<size:10>DREQ_RADIO_3B</size>" as DREQ_RADIO_3B [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_3B]] #BFD8D2
node "<size:12>Market requirement</size>\n**Radio**\n**communication**\n<size:10>MREQ_06</size>" as MREQ_06 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_06]] #FFA76D
node "<size:12>Requirement</size>\n**No safety**\n**critical**\n**failure**\n**indication**\n<size:10>DREQ_RADIO_11</size>" as DREQ_RADIO_11 [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_11]] #BFD8D2
node "<size:12>Requirement</size>\n**Global memories**\n**startup test**\n<size:10>DREQ_RADIO_10</size>" as DREQ_RADIO_10 [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_10]] #BFD8D2
node "<size:12>TEST</size>\n**Global memory**\n**startup test**\n<size:10>TEST_150_023</size>" as TEST_150_023 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_023]] #DCB239
node "<size:12>RESULT</size>\n**Global memory**\n**startup test**\n<size:10>RESULT_150_023</size>" as RESULT_150_023 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_023]] #FFA76D
node "<size:12>Requirement</size>\n**Communication**\n**timeouts**\n<size:10>DREQ_RADIO_3A</size>" as DREQ_RADIO_3A [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_3A]] #BFD8D2
node "<size:12>Requirement</size>\n**Global memories**\n**per system**\n<size:10>DREQ_RADIO_2B</size>" as DREQ_RADIO_2B [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_2B]] #BFD8D2
node "<size:12>Requirement</size>\n**Global memories**\n<size:10>DREQ_RADIO_2A</size>" as DREQ_RADIO_2A [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_2A]] #BFD8D2
node "<size:12>Requirement</size>\n**Global memories**\n**(safety**\n**information)**\n<size:10>SWSREQ_035C</size>" as SWSREQ_035C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_035C]] #BFD8D2
node "<size:12>Requirement</size>\n**Global memories**\n**(safety**\n**information)**\n<size:10>SWSREQ_035B</size>" as SWSREQ_035B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_035B]] #BFD8D2
node "<size:12>Requirement</size>\n**Global memories**\n**(safety**\n**information)**\n<size:10>SWSREQ_035A</size>" as SWSREQ_035A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_035A]] #BFD8D2
node "<size:12>Requirement</size>\n**Timeout**\n<size:10>SWSREQ_034F</size>" as SWSREQ_034F [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_034F]] #BFD8D2
node "<size:12>Requirement</size>\n**Stateless**\n**safety**\n**information**\n<size:10>SWSREQ_034E</size>" as SWSREQ_034E [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_034E]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe data hash**\n<size:10>SWSREQ_034D</size>" as SWSREQ_034D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_034D]] #BFD8D2
node "<size:12>Requirement</size>\n**Networks**\n<size:10>SREQ_29B</size>" as SREQ_29B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_29B]] #BFD8D2
node "<size:12>Requirement</size>\n**Radio source**\n**nodes**\n<size:10>SREQ_20</size>" as SREQ_20 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_20]] #BFD8D2
node "<size:12>Requirement</size>\n**Network same**\n**firmware**\n<size:10>SWSREQ_037B</size>" as SWSREQ_037B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_037B]] #BFD8D2
node "<size:12>TEST</size>\n**Firmware**\n**mismatch**\n**prevents**\n**communication**\n<size:10>TEST_150_006</size>" as TEST_150_006 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_006]] #DCB239
node "<size:12>Requirement</size>\n**Start-up**\n**firmware**\n**version check**\n<size:10>SWSREQ_032B</size>" as SWSREQ_032B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_032B]] #BFD8D2
node "<size:12>Requirement</size>\n**Start-up**\n**firmware check**\n<size:10>SWSREQ_032A</size>" as SWSREQ_032A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_032A]] #BFD8D2
node "<size:12>RESULT</size>\n**Firmware**\n**mismatch**\n**prevents**\n**communication**\n<size:10>RESULT_150_006</size>" as RESULT_150_006 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_006]] #FFA76D
node "<size:12>Requirement</size>\n**Network same**\n**configuration**\n<size:10>SWSREQ_037A</size>" as SWSREQ_037A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_037A]] #BFD8D2
node "<size:12>Requirement</size>\n**All nodes in a**\n**network shall**\n**be specified in**\n**the**\n**configuration**\n<size:10>SREQ_N_16B</size>" as SREQ_N_16B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_16B]] #BFD8D2
node "<size:12>Hazard</size>\n**Nodes being**\n**part of**\n**multiple**\n**networks, or**\n**networks**\n**including nodes**\n**that should not**\n**be part of the**\n**network**\n<size:10>HAZARD_16</size>" as HAZARD_16 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_16]] #FFA76D
node "<size:12>Requirement</size>\n**All units shall**\n**have a unique**\n**identifier**\n<size:10>SREQ_N_16A</size>" as SREQ_N_16A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_16A]] #BFD8D2
node "<size:12>Requirement</size>\n**Unique IDs**\n<size:10>SREQ_28C</size>" as SREQ_28C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_28C]] #BFD8D2
node "<size:12>Requirement</size>\n**Valid serial**\n**numbers**\n<size:10>DREQ_28C</size>" as DREQ_28C [[../fsd/FSD120-design-requirements-specification.html#DREQ_28C]] #BFD8D2
node "<size:12>Requirement</size>\n**Production**\n**procedures**\n<size:10>DREQ_28D</size>" as DREQ_28D [[../fsd/FSD120-design-requirements-specification.html#DREQ_28D]] #BFD8D2
node "<size:12>Requirement</size>\n**Globally unique**\n**serial numbers**\n<size:10>DREQ_28A</size>" as DREQ_28A [[../fsd/FSD120-design-requirements-specification.html#DREQ_28A]] #BFD8D2
node "<size:12>Requirement</size>\n**Unique ID**\n<size:10>SREQ_28B</size>" as SREQ_28B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_28B]] #BFD8D2
node "<size:12>Requirement</size>\n**Unique ID**\n<size:10>SREQ_28A</size>" as SREQ_28A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_28A]] #BFD8D2
node "<size:12>Requirement</size>\n**Radio CRC**\n<size:10>SWSREQ_034C</size>" as SWSREQ_034C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_034C]] #BFD8D2
node "<size:12>Requirement</size>\n**Radio sequence**\n**counter**\n<size:10>SWSREQ_034B</size>" as SWSREQ_034B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_034B]] #BFD8D2
node "<size:12>Requirement</size>\n**CPUs check same**\n**configuration**\n<size:10>DREQ_C2C_8</size>" as DREQ_C2C_8 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_8]] #BFD8D2
node "<size:12>Requirement</size>\n**Valid ID**\n**numbers**\n<size:10>SWSREQ_033A</size>" as SWSREQ_033A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_033A]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #31**\n<size:10>TEST_300_031</size>" as TEST_300_031 [[../fsd/FSD300-software-module-tests.html#TEST_300_031]] #FFA76D
node "<size:12>Requirement</size>\n**Valid ID**\n**numbers**\n<size:10>SWSREQ_033B</size>" as SWSREQ_033B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_033B]] #BFD8D2
node "<size:12>Requirement</size>\n**Start-up always**\n**safe**\n<size:10>SWSREQ_032E</size>" as SWSREQ_032E [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_032E]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #29**\n<size:10>TEST_300_029</size>" as TEST_300_029 [[../fsd/FSD300-software-module-tests.html#TEST_300_029]] #FFA76D
node "<size:12>Requirement</size>\n**Start-up check**\n**production data**\n<size:10>SWSREQ_032D</size>" as SWSREQ_032D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_032D]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n**update**\n**frequency**\n<size:10>DREQ_C2C_5</size>" as DREQ_C2C_5 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_5]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>SWSREQ_010A</size>" as SWSREQ_010A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_010A]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #56**\n<size:10>TEST_300_056</size>" as TEST_300_056 [[../fsd/FSD300-software-module-tests.html#TEST_300_056]] #FFA76D
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>SWSREQ_010D</size>" as SWSREQ_010D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_010D]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>SWSREQ_010C</size>" as SWSREQ_010C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_010C]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #54**\n<size:10>TEST_300_054</size>" as TEST_300_054 [[../fsd/FSD300-software-module-tests.html#TEST_300_054]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #53**\n<size:10>TEST_300_053</size>" as TEST_300_053 [[../fsd/FSD300-software-module-tests.html#TEST_300_053]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #48**\n<size:10>TEST_300_048</size>" as TEST_300_048 [[../fsd/FSD300-software-module-tests.html#TEST_300_048]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #47**\n<size:10>TEST_300_047</size>" as TEST_300_047 [[../fsd/FSD300-software-module-tests.html#TEST_300_047]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #9**\n<size:10>TEST_300_009</size>" as TEST_300_009 [[../fsd/FSD300-software-module-tests.html#TEST_300_009]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #8**\n<size:10>TEST_300_008</size>" as TEST_300_008 [[../fsd/FSD300-software-module-tests.html#TEST_300_008]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #7**\n<size:10>TEST_300_007</size>" as TEST_300_007 [[../fsd/FSD300-software-module-tests.html#TEST_300_007]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #6**\n<size:10>TEST_300_006</size>" as TEST_300_006 [[../fsd/FSD300-software-module-tests.html#TEST_300_006]] #FFA76D
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>SWSREQ_010G</size>" as SWSREQ_010G [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_010G]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>SWSREQ_010E</size>" as SWSREQ_010E [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_010E]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #4**\n<size:10>TEST_300_004</size>" as TEST_300_004 [[../fsd/FSD300-software-module-tests.html#TEST_300_004]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #3**\n<size:10>TEST_300_003</size>" as TEST_300_003 [[../fsd/FSD300-software-module-tests.html#TEST_300_003]] #FFA76D
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>SWSREQ_010B</size>" as SWSREQ_010B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_010B]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #3**\n<size:10>TEST_300_103</size>" as TEST_300_103 [[../fsd/FSD300-software-module-tests.html#TEST_300_103]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #2**\n<size:10>TEST_300_002</size>" as TEST_300_002 [[../fsd/FSD300-software-module-tests.html#TEST_300_002]] #FFA76D
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n**timeout safe**\n**state**\n<size:10>DREQ_C2C_4</size>" as DREQ_C2C_4 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_4]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n**CRC**\n<size:10>DREQ_C2C_3</size>" as DREQ_C2C_3 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_3]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n**white channel**\n<size:10>DREQ_C2C_2</size>" as DREQ_C2C_2 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_2]] #BFD8D2
node "<size:12>Motivation</size>\n**C2C white**\n**channel**\n<size:10>MOTIVATION_220_014</size>" as MOTIVATION_220_014 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_014]] #FFA76D
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>DREQ_C2C_1</size>" as DREQ_C2C_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_1]] #BFD8D2
node "<size:12>Motivation</size>\n**C2C duplex**\n**channel**\n<size:10>MOTIVATION_220_013</size>" as MOTIVATION_220_013 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_013]] #FFA76D
node "<size:12>TEST</size>\n**Wrong**\n**configuration**\n**prevents**\n**communication**\n<size:10>TEST_150_012</size>" as TEST_150_012 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_012]] #DCB239
node "<size:12>RESULT</size>\n**Wrong**\n**configuration**\n**prevents**\n**communication**\n<size:10>RESULT_150_012</size>" as RESULT_150_012 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_012]] #FFA76D
node "<size:12>TEST</size>\n**Configuration**\n**protected with**\n**CRC**\n<size:10>TEST_150_009</size>" as TEST_150_009 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_009]] #DCB239
node "<size:12>RESULT</size>\n**Configuration**\n**protected with**\n**CRC**\n<size:10>RESULT_150_009</size>" as RESULT_150_009 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_009]] #FFA76D
node "<size:12>Requirement</size>\n**Internal**\n**failure safe**\n**state**\n<size:10>SREQ_03B</size>" as SREQ_03B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_03B]] #BFD8D2
node "<size:12>Requirement</size>\n**Internal**\n**failure safe**\n**state**\n<size:10>DREQ_3A</size>" as DREQ_3A [[../fsd/FSD120-design-requirements-specification.html#DREQ_3A]] #BFD8D2
node "<size:12>Requirement</size>\n**Internal**\n**voltages**\n**monitoring**\n<size:10>SWSREQ_101C</size>" as SWSREQ_101C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_101C]] #BFD8D2
node "<size:12>RESULT</size>\n**HW module test**\n**#13**\n<size:10>TEST_300_213</size>" as TEST_300_213 [[../fsd/FSD300-software-module-tests.html#TEST_300_213]] #FFA76D
node "<size:12>Requirement</size>\n**Internal**\n**voltages**\n**monitoring**\n<size:10>SWSREQ_101B</size>" as SWSREQ_101B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_101B]] #BFD8D2
node "<size:12>RESULT</size>\n**HW module test**\n**#14**\n<size:10>TEST_300_214</size>" as TEST_300_214 [[../fsd/FSD300-software-module-tests.html#TEST_300_214]] #FFA76D
node "<size:12>Requirement</size>\n**Internal**\n**voltages**\n**monitoring**\n<size:10>SWSREQ_101A</size>" as SWSREQ_101A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_101A]] #BFD8D2
node "<size:12>Requirement</size>\n**Internal output**\n**failure**\n<size:10>SWSREQ_018A</size>" as SWSREQ_018A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_018A]] #BFD8D2
node "<size:12>RESULT</size>\n**HW module test**\n**#9**\n<size:10>TEST_300_209</size>" as TEST_300_209 [[../fsd/FSD300-software-module-tests.html#TEST_300_209]] #FFA76D
node "<size:12>RESULT</size>\n**HW module test**\n**#8**\n<size:10>TEST_300_208</size>" as TEST_300_208 [[../fsd/FSD300-software-module-tests.html#TEST_300_208]] #FFA76D
node "<size:12>RESULT</size>\n**HW module test**\n**#7**\n<size:10>TEST_300_207</size>" as TEST_300_207 [[../fsd/FSD300-software-module-tests.html#TEST_300_207]] #FFA76D
node "<size:12>RESULT</size>\n**HW module test**\n**#6**\n<size:10>TEST_300_206</size>" as TEST_300_206 [[../fsd/FSD300-software-module-tests.html#TEST_300_206]] #FFA76D
node "<size:12>RESULT</size>\n**HW module test**\n**#5**\n<size:10>TEST_300_205</size>" as TEST_300_205 [[../fsd/FSD300-software-module-tests.html#TEST_300_205]] #FFA76D
node "<size:12>RESULT</size>\n**HW module test**\n**#2**\n<size:10>TEST_300_202</size>" as TEST_300_202 [[../fsd/FSD300-software-module-tests.html#TEST_300_202]] #FFA76D
node "<size:12>Requirement</size>\n**CPUs check**\n**compatible**\n**firmwares**\n<size:10>DREQ_C2C_6</size>" as DREQ_C2C_6 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_6]] #BFD8D2
node "<size:12>Requirement</size>\n**Continuous RAM**\n**tests**\n<size:10>DREQ_16A</size>" as DREQ_16A [[../fsd/FSD120-design-requirements-specification.html#DREQ_16A]] #BFD8D2
node "<size:12>Requirement</size>\n**RAM test**\n<size:10>SWSREQ_001D</size>" as SWSREQ_001D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_001D]] #BFD8D2
node "<size:12>Motivation</size>\n**RAM test**\n**algorithm**\n<size:10>MOTIVATION_300_311</size>" as MOTIVATION_300_311 [[../fsd/FSD300-software-module-tests.html#MOTIVATION_300_311]] #FFA76D
node "<size:12>Requirement</size>\n**RAM test**\n<size:10>SWSREQ_001C</size>" as SWSREQ_001C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_001C]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #15**\n<size:10>TEST_300_115</size>" as TEST_300_115 [[../fsd/FSD300-software-module-tests.html#TEST_300_115]] #FFA76D
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #14**\n<size:10>TEST_300_114</size>" as TEST_300_114 [[../fsd/FSD300-software-module-tests.html#TEST_300_114]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #17**\n<size:10>TEST_300_017</size>" as TEST_300_017 [[../fsd/FSD300-software-module-tests.html#TEST_300_017]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #16**\n<size:10>TEST_300_016</size>" as TEST_300_016 [[../fsd/FSD300-software-module-tests.html#TEST_300_016]] #FFA76D
node "<size:12>Requirement</size>\n**RAM test**\n<size:10>SWSREQ_001B</size>" as SWSREQ_001B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_001B]] #BFD8D2
node "<size:12>Requirement</size>\n**RAM test**\n<size:10>SWSREQ_001A</size>" as SWSREQ_001A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_001A]] #BFD8D2
node "<size:12>Requirement</size>\n**Continuous**\n**flash tests**\n<size:10>DREQ_16B</size>" as DREQ_16B [[../fsd/FSD120-design-requirements-specification.html#DREQ_16B]] #BFD8D2
node "<size:12>Requirement</size>\n**Flash test**\n<size:10>SWSREQ_002B</size>" as SWSREQ_002B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_002B]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #28**\n<size:10>TEST_300_128</size>" as TEST_300_128 [[../fsd/FSD300-software-module-tests.html#TEST_300_128]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #52**\n<size:10>TEST_300_052</size>" as TEST_300_052 [[../fsd/FSD300-software-module-tests.html#TEST_300_052]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #42**\n<size:10>TEST_300_042</size>" as TEST_300_042 [[../fsd/FSD300-software-module-tests.html#TEST_300_042]] #FFA76D
node "<size:12>Requirement</size>\n**Flash test**\n<size:10>SWSREQ_002A</size>" as SWSREQ_002A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_002A]] #BFD8D2
node "<size:12>Requirement</size>\n**Redundant CPUs**\n<size:10>DREQ_201A</size>" as DREQ_201A [[../fsd/FSD120-design-requirements-specification.html#DREQ_201A]] #BFD8D2
node "<size:12>Motivation</size>\n**Redundant CPUs**\n<size:10>MOTIVATION_220_010</size>" as MOTIVATION_220_010 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_010]] #FFA76D
node "<size:12>Requirement</size>\n**Safe after**\n**restart**\n<size:10>DREQ_111A</size>" as DREQ_111A [[../fsd/FSD120-design-requirements-specification.html#DREQ_111A]] #BFD8D2
node "<size:12>Requirement</size>\n**Valid serial**\n**numbers**\n<size:10>DREQ_28B</size>" as DREQ_28B [[../fsd/FSD120-design-requirements-specification.html#DREQ_28B]] #BFD8D2
node "<size:12>Requirement</size>\n**Time reference**\n**crystal**\n**measurment**\n<size:10>DREQ_27B</size>" as DREQ_27B [[../fsd/FSD120-design-requirements-specification.html#DREQ_27B]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #25**\n<size:10>TEST_300_125</size>" as TEST_300_125 [[../fsd/FSD300-software-module-tests.html#TEST_300_125]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #44**\n<size:10>TEST_300_044</size>" as TEST_300_044 [[../fsd/FSD300-software-module-tests.html#TEST_300_044]] #FFA76D
node "<size:12>Requirement</size>\n**Time reference**\n**crystal 100ppm**\n<size:10>DREQ_27A</size>" as DREQ_27A [[../fsd/FSD120-design-requirements-specification.html#DREQ_27A]] #BFD8D2
node "<size:12>Motivation</size>\n**crystal**\n<size:10>MOTIVATION_220_011</size>" as MOTIVATION_220_011 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_011]] #FFA76D
node "<size:12>Requirement</size>\n**Communication**\n**timeout**\n<size:10>SREQ_22</size>" as SREQ_22 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_22]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state in**\n**other nodes**\n**during fatal**\n**error**\n<size:10>SREQ_N_06</size>" as SREQ_N_06 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_06]] #BFD8D2
node "<size:12>Hazard</size>\n**Active or**\n**sporadically**\n**active outputs**\n**in other Safety**\n**Simplifiers**\n**after detecting**\n**a fault**\n<size:10>HAZARD_6</size>" as HAZARD_6 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_6]] #FFA76D
node "<size:12>Requirement</size>\n**Dangerous**\n**failure**\n**response time**\n**network**\n<size:10>SREQ_09B</size>" as SREQ_09B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_09B]] #BFD8D2
node "<size:12>TEST</size>\n**Communication**\n**timeout**\n<size:10>TEST_150_021</size>" as TEST_150_021 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_021]] #DCB239
node "<size:12>Requirement</size>\n**Selectable**\n**maximum**\n**communication**\n**reaction time**\n<size:10>DREQ_123A</size>" as DREQ_123A [[../fsd/FSD120-design-requirements-specification.html#DREQ_123A]] #BFD8D2
node "<size:12>RESULT</size>\n**Communication**\n**timeout**\n<size:10>RESULT_150_021</size>" as RESULT_150_021 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_021]] #FFA76D
node "<size:12>Requirement</size>\n**Dangerous fault**\n**reaction time**\n<size:10>DREQ_9A</size>" as DREQ_9A [[../fsd/FSD120-design-requirements-specification.html#DREQ_9A]] #BFD8D2
node "<size:12>Requirement</size>\n**Fault reaction**\n**time**\n<size:10>SWSREQ_026A</size>" as SWSREQ_026A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_026A]] #BFD8D2
node "<size:12>TEST</size>\n**Maximum**\n**reaction time**\n**is selectable**\n<size:10>TEST_150_008</size>" as TEST_150_008 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_008]] #DCB239
node "<size:12>RESULT</size>\n**Maximum**\n**reaction time**\n**is selectable**\n<size:10>RESULT_150_008</size>" as RESULT_150_008 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_008]] #FFA76D
node "<size:12>Requirement</size>\n**Link timeout**\n<size:10>SREQ_08B</size>" as SREQ_08B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_08B]] #BFD8D2
node "<size:12>Requirement</size>\n**Response time**\n<size:10>SREQ_08A</size>" as SREQ_08A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_08A]] #BFD8D2
node "<size:12>Requirement</size>\n**Max response**\n**time**\n<size:10>SREQ_07</size>" as SREQ_07 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_07]] #BFD8D2
node "<size:12>Motivation</size>\n**SREQ_09A**\n<size:10>MOTIVATION_300_312</size>" as MOTIVATION_300_312 [[../fsd/FSD300-software-module-tests.html#MOTIVATION_300_312]] #FFA76D
node "<size:12>RESULT</size>\n**Fatal error**\n**turns off all**\n**outputs**\n<size:10>RESULT_150_010</size>" as RESULT_150_010 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_010]] #FFA76D
node "<size:12>Requirement</size>\n**Safe state**\n<size:10>DREQ_SAFESTAE_1</size>" as DREQ_SAFESTAE_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_SAFESTAE_1]] #BFD8D2
node "<size:12>Requirement</size>\n**Normal**\n**operation**\n<size:10>DREQ_NORMALMODE_1</size>" as DREQ_NORMALMODE_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_NORMALMODE_1]] #BFD8D2
node "<size:12>Requirement</size>\n**Operation modes**\n<size:10>DREQ_MODES_1</size>" as DREQ_MODES_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_MODES_1]] #BFD8D2
node "<size:12>Requirement</size>\n**Normal**\n**operation mode**\n<size:10>SWSREQ_028A</size>" as SWSREQ_028A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_028A]] #BFD8D2
node "<size:12>Requirement</size>\n**Operation modes**\n<size:10>SWSREQ_027A</size>" as SWSREQ_027A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_027A]] #BFD8D2
node "<size:12>RESULT</size>\n**Configuration**\n**tool connection**\n**without**\n**activation**\n<size:10>RESULT_150_002</size>" as RESULT_150_002 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_002]] #FFA76D
node "<size:12>Motivation</size>\n**No external**\n**interface**\n<size:10>MOTIVATION_220_007</size>" as MOTIVATION_220_007 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_007]] #FFA76D
node "<size:12>Requirement</size>\n**Both CPUs**\n**control outputs**\n<size:10>SWSREQ_019B</size>" as SWSREQ_019B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_019B]] #BFD8D2
node "<size:12>Requirement</size>\n**Static and**\n**pulsed**\n**transistor**\n**outputs**\n<size:10>DREQ_13A</size>" as DREQ_13A [[../fsd/FSD120-design-requirements-specification.html#DREQ_13A]] #BFD8D2
node "<size:12>Requirement</size>\n**IO ON/OFF**\n**states**\n<size:10>SWSREQ_011C</size>" as SWSREQ_011C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_011C]] #BFD8D2
node "<size:12>Requirement</size>\n**Input/output**\n**signal**\n**combinations**\n<size:10>DREQ_2A</size>" as DREQ_2A [[../fsd/FSD120-design-requirements-specification.html#DREQ_2A]] #BFD8D2
node "<size:12>Requirement</size>\n**Combined inputs**\n**OFF/ON signal**\n**combinations**\n<size:10>SWSREQ_011E</size>" as SWSREQ_011E [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_011E]] #BFD8D2
node "<size:12>Requirement</size>\n**IO ON/OFF**\n**states**\n<size:10>SWSREQ_011D</size>" as SWSREQ_011D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_011D]] #BFD8D2
node "<size:12>Requirement</size>\n**IO ON/OFF**\n**states**\n<size:10>SWSREQ_011A</size>" as SWSREQ_011A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_011A]] #BFD8D2
node "<size:12>TEST</size>\n**Advanced output**\n**module tests**\n<size:10>TEST_GUI_ADVANCED_OUTPUT_1</size>" as TEST_GUI_ADVANCED_OUTPUT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GUI_ADVANCED_OUTPUT_1]] #DCB239
node "<size:12>Requirement</size>\n**Redundant**\n**outputs**\n<size:10>SWSREQ_013A</size>" as SWSREQ_013A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_013A]] #BFD8D2
node "<size:12>TEST</size>\n**Advanced input**\n**module tests**\n<size:10>TEST_GUI_ADVANCED_INPUT_1</size>" as TEST_GUI_ADVANCED_INPUT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GUI_ADVANCED_INPUT_1]] #DCB239
node "<size:12>Requirement</size>\n**Input voltage**\n**range**\n<size:10>SWSREQ_014A</size>" as SWSREQ_014A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_014A]] #BFD8D2
node "<size:12>Requirement</size>\n**Redundant**\n**inputs**\n<size:10>SWSREQ_012A</size>" as SWSREQ_012A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_012A]] #BFD8D2
node "<size:12>Requirement</size>\n**Input filtering**\n<size:10>DREQ_26A</size>" as DREQ_26A [[../fsd/FSD120-design-requirements-specification.html#DREQ_26A]] #BFD8D2
node "<size:12>Requirement</size>\n**Input filter**\n<size:10>SREQ_26B</size>" as SREQ_26B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_26B]] #BFD8D2
node "<size:12>Requirement</size>\n**Fault handling**\n<size:10>SREQ_N_14C</size>" as SREQ_N_14C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_14C]] #BFD8D2
node "<size:12>Hazard</size>\n**Too wide fault**\n**handling, false**\n**positives, and**\n**unreliable**\n**operation**\n<size:10>HAZARD_14</size>" as HAZARD_14 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_14]] #FFA76D
node "<size:12>Requirement</size>\n**Fault handling**\n<size:10>SREQ_N_14B</size>" as SREQ_N_14B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_14B]] #BFD8D2
node "<size:12>Requirement</size>\n**Fatal error**\n**codes and**\n**mitigations**\n<size:10>DREQ_DIAGNOSTIC_01</size>" as DREQ_DIAGNOSTIC_01 [[../fsd/FSD120-design-requirements-specification.html#DREQ_DIAGNOSTIC_01]] #BFD8D2
node "<size:12>Motivation</size>\n**Fatal error**\n**codes**\n<size:10>MOTIVATION_501_109</size>" as MOTIVATION_501_109 [[../fsd/FSD501-safety-manual.html#MOTIVATION_501_109]] #FFA76D
node "<size:12>Requirement</size>\n**Input filter**\n<size:10>SREQ_26A</size>" as SREQ_26A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_26A]] #BFD8D2
node "<size:12>Requirement</size>\n**Fault handling**\n<size:10>SREQ_N_14A</size>" as SREQ_N_14A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_14A]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200F</size>" as DREQ_LOGIC_200F [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200F]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030F</size>" as SWSREQ_030F [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030F]] #BFD8D2
node "<size:12>TEST</size>\n**Configuration**\n**tool connection**\n**during**\n**operation**\n<size:10>TEST_150_011</size>" as TEST_150_011 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_011]] #DCB239
node "<size:12>RESULT</size>\n**Configuration**\n**tool connection**\n**during**\n**operation**\n<size:10>RESULT_150_011</size>" as RESULT_150_011 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_011]] #FFA76D
node "<size:12>TEST</size>\n**Sync inputs:**\n**req_zero_time =**\n**10000,**\n**simultaneity =**\n**10000,**\n**debounce_on =**\n**10000,**\n**debounce_off =**\n**10000,**\n**startup_test =**\n**True**\n<size:10>TEST_GUI_SYNC_INPUTS_2</size>" as TEST_GUI_SYNC_INPUTS_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GUI_SYNC_INPUTS_2]] #DCB239
node "<size:12>RESULT</size>\n**RESULT_GUI_SYNC**\n**_INPUTS_2**\n<size:10>RESULT_GUI_SYNC_INPUTS_2</size>" as RESULT_GUI_SYNC_INPUTS_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GUI_SYNC_INPUTS_2]] #FFA76D
node "<size:12>TEST</size>\n**Sync inputs:**\n**req_zero_time =**\n**0, simultaneity**\n**= 0,**\n**debounce_on =**\n**0, debounce_off**\n**= 0,**\n**startup_test =**\n**True**\n<size:10>TEST_GUI_SYNC_INPUTS_1</size>" as TEST_GUI_SYNC_INPUTS_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GUI_SYNC_INPUTS_1]] #DCB239
node "<size:12>Requirement</size>\n**Input startup**\n**test**\n<size:10>SWSREQ_017A</size>" as SWSREQ_017A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_017A]] #BFD8D2
node "<size:12>RESULT</size>\n**RESULT_GUI_SYNC**\n**_INPUTS_1**\n<size:10>RESULT_GUI_SYNC_INPUTS_1</size>" as RESULT_GUI_SYNC_INPUTS_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GUI_SYNC_INPUTS_1]] #FFA76D
node "<size:12>TEST</size>\n**Single Output**\n**sl3 code review**\n<size:10>TEST_SINGLE_OUTPUT_1</size>" as TEST_SINGLE_OUTPUT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SINGLE_OUTPUT_1]] #DCB239
node "<size:12>Specification</size>\n**Function block:**\n**Single Output**\n**GUI**\n<size:10>SPEC_SINGLE_OUTPUT</size>" as SPEC_SINGLE_OUTPUT [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_SINGLE_OUTPUT]] #FEDCD2
node "<size:12>Hazard</size>\n**Function block:**\n**Single Output**\n**GUI**\n<size:10>HAZARD_SINGLE_OUTPUT_01</size>" as HAZARD_SINGLE_OUTPUT_01 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#HAZARD_SINGLE_OUTPUT_01]] #FFA76D
node "<size:12>Market requirement</size>\n**Function block:**\n**Single Output**\n**GUI**\n<size:10>MREQ_SINGLE_OUTPUT</size>" as MREQ_SINGLE_OUTPUT [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_SINGLE_OUTPUT]] #FFA76D
node "<size:12>TEST</size>\n**Single Output**\n**in safety**\n**manual**\n<size:10>TEST_SINGLE_OUTPUT_3</size>" as TEST_SINGLE_OUTPUT_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SINGLE_OUTPUT_3]] #DCB239
node "<size:12>RESULT</size>\n**Single Output**\n**in safety**\n**manual**\n<size:10>RESULT_SINGLE_OUTPUT_3</size>" as RESULT_SINGLE_OUTPUT_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SINGLE_OUTPUT_3]] #FFA76D
node "<size:12>RESULT</size>\n**Single Output**\n**sl3 code review**\n<size:10>RESULT_SINGLE_OUTPUT_1</size>" as RESULT_SINGLE_OUTPUT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SINGLE_OUTPUT_1]] #FFA76D
node "<size:12>Requirement</size>\n**External output**\n**failure**\n<size:10>SWSREQ_019A</size>" as SWSREQ_019A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_019A]] #BFD8D2
node "<size:12>Requirement</size>\n**External**\n**failure safe**\n**state**\n<size:10>DREQ_4A</size>" as DREQ_4A [[../fsd/FSD120-design-requirements-specification.html#DREQ_4A]] #BFD8D2
node "<size:12>TEST</size>\n**ossd: code**\n**review 3**\n<size:10>TEST_CFB_OSSD_3</size>" as TEST_CFB_OSSD_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_CFB_OSSD_3]] #DCB239
node "<size:12>Requirement</size>\n**OSSD**\n<size:10>SWSREQ_022A</size>" as SWSREQ_022A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_022A]] #BFD8D2
node "<size:12>RESULT</size>\n**RESULT_CFB_OSSD**\n**_3**\n<size:10>RESULT_CFB_OSSD_3</size>" as RESULT_CFB_OSSD_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_CFB_OSSD_3]] #FFA76D
node "<size:12>TEST</size>\n**ossd: code**\n**review 2**\n<size:10>TEST_CFB_OSSD_2</size>" as TEST_CFB_OSSD_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_CFB_OSSD_2]] #DCB239
node "<size:12>RESULT</size>\n**RESULT_CFB_OSSD**\n**_2**\n<size:10>RESULT_CFB_OSSD_2</size>" as RESULT_CFB_OSSD_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_CFB_OSSD_2]] #FFA76D
node "<size:12>TEST</size>\n**ossd: code**\n**review 1**\n<size:10>TEST_CFB_OSSD_1</size>" as TEST_CFB_OSSD_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_CFB_OSSD_1]] #DCB239
node "<size:12>RESULT</size>\n**RESULT_CFB_OSSD**\n**_1**\n<size:10>RESULT_CFB_OSSD_1</size>" as RESULT_CFB_OSSD_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_CFB_OSSD_1]] #FFA76D
node "<size:12>Requirement</size>\n**IO ON/OFF**\n**states**\n<size:10>SWSREQ_011B</size>" as SWSREQ_011B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_011B]] #BFD8D2
node "<size:12>Requirement</size>\n**Coded output**\n**signals**\n<size:10>DREQ_126A</size>" as DREQ_126A [[../fsd/FSD120-design-requirements-specification.html#DREQ_126A]] #BFD8D2
node "<size:12>Requirement</size>\n**14 transistor**\n**outputs**\n<size:10>DREQ_115F</size>" as DREQ_115F [[../fsd/FSD120-design-requirements-specification.html#DREQ_115F]] #BFD8D2
node "<size:12>Requirement</size>\n**OSSD detection**\n**same node**\n<size:10>DREQ_115E</size>" as DREQ_115E [[../fsd/FSD120-design-requirements-specification.html#DREQ_115E]] #BFD8D2
node "<size:12>Requirement</size>\n**OSSD**\n<size:10>DREQ_115D</size>" as DREQ_115D [[../fsd/FSD120-design-requirements-specification.html#DREQ_115D]] #BFD8D2
node "<size:12>Requirement</size>\n**Outputs read**\n**back voltage**\n<size:10>DREQ_115C</size>" as DREQ_115C [[../fsd/FSD120-design-requirements-specification.html#DREQ_115C]] #BFD8D2
node "<size:12>Requirement</size>\n**Analog mismatch**\n**check**\n<size:10>SWSREQ_016A</size>" as SWSREQ_016A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_016A]] #BFD8D2
node "<size:12>RESULT</size>\n**HW module test**\n**#16**\n<size:10>TEST_300_216</size>" as TEST_300_216 [[../fsd/FSD300-software-module-tests.html#TEST_300_216]] #FFA76D
node "<size:12>Requirement</size>\n**Transistor**\n**inputs**\n**monitored by**\n**both CPUs**\n<size:10>SWSREQ_015B</size>" as SWSREQ_015B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_015B]] #BFD8D2
node "<size:12>Motivation</size>\n**Transistor**\n**output control**\n<size:10>MOTIVATION_220_006</size>" as MOTIVATION_220_006 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_006]] #FFA76D
node "<size:12>Requirement</size>\n**Transistor**\n**outputs**\n**redundant**\n**transistors**\n<size:10>DREQ_115B</size>" as DREQ_115B [[../fsd/FSD120-design-requirements-specification.html#DREQ_115B]] #BFD8D2
node "<size:12>Motivation</size>\n**Redundant**\n**output**\n**transistors**\n<size:10>MOTIVATION_220_005</size>" as MOTIVATION_220_005 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_005]] #FFA76D
node "<size:12>Requirement</size>\n**Transistor**\n**output**\n**distinguish**\n**faults**\n<size:10>DREQ_115A</size>" as DREQ_115A [[../fsd/FSD120-design-requirements-specification.html#DREQ_115A]] #BFD8D2
node "<size:12>Motivation</size>\n**Output control**\n<size:10>MOTIVATION_220_004</size>" as MOTIVATION_220_004 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_004]] #FFA76D
node "<size:12>Requirement</size>\n**Transistor**\n**outputs 10 fits**\n<size:10>DREQ_104A</size>" as DREQ_104A [[../fsd/FSD120-design-requirements-specification.html#DREQ_104A]] #BFD8D2
node "<size:12>Requirement</size>\n**Redundant**\n**outputs CAT4**\n<size:10>DREQ_01F</size>" as DREQ_01F [[../fsd/FSD120-design-requirements-specification.html#DREQ_01F]] #BFD8D2
node "<size:12>Requirement</size>\n**Design safe**\n**state**\n<size:10>SREQ_04B</size>" as SREQ_04B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_04B]] #BFD8D2
node "<size:12>Requirement</size>\n**External**\n**failure safe**\n**state**\n<size:10>SREQ_04A</size>" as SREQ_04A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_04A]] #BFD8D2
node "<size:12>Market requirement</size>\n**Digital IO**\n<size:10>MREQ_05</size>" as MREQ_05 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_05]] #FFA76D
node "<size:12>Requirement</size>\n**Combo I/O min**\n**read time**\n<size:10>DREQ_116A</size>" as DREQ_116A [[../fsd/FSD120-design-requirements-specification.html#DREQ_116A]] #BFD8D2
node "<size:12>Requirement</size>\n**Combined IO**\n**function**\n<size:10>SWSREQ_021A</size>" as SWSREQ_021A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_021A]] #BFD8D2
node "<size:12>TEST</size>\n**combo: code**\n**review 1**\n<size:10>TEST_CFB_COMBO_1</size>" as TEST_CFB_COMBO_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_CFB_COMBO_1]] #DCB239
node "<size:12>RESULT</size>\n**RESULT_CFB_COMB**\n**O_1**\n<size:10>RESULT_CFB_COMBO_1</size>" as RESULT_CFB_COMBO_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_CFB_COMBO_1]] #FFA76D
node "<size:12>Requirement</size>\n**I/O ON/OFF**\n**states**\n<size:10>SREQ_11</size>" as SREQ_11 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_11]] #BFD8D2
node "<size:12>Requirement</size>\n**Coded input**\n**signals**\n<size:10>DREQ_126B</size>" as DREQ_126B [[../fsd/FSD120-design-requirements-specification.html#DREQ_126B]] #BFD8D2
node "<size:12>Requirement</size>\n**I/O ON and OFF**\n**states**\n<size:10>DREQ_11A</size>" as DREQ_11A [[../fsd/FSD120-design-requirements-specification.html#DREQ_11A]] #BFD8D2
node "<size:12>Requirement</size>\n**All inputs**\n**analog**\n<size:10>DREQ_14A</size>" as DREQ_14A [[../fsd/FSD120-design-requirements-specification.html#DREQ_14A]] #BFD8D2
node "<size:12>Motivation</size>\n**Analog muxes**\n<size:10>MOTIVATION_220_003</size>" as MOTIVATION_220_003 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_003]] #FFA76D
node "<size:12>Requirement</size>\n**Inputs startup**\n**test**\n<size:10>DREQ_116C</size>" as DREQ_116C [[../fsd/FSD120-design-requirements-specification.html#DREQ_116C]] #BFD8D2
node "<size:12>Requirement</size>\n**Combined inputs**\n**OFF/ON signal**\n**combinations**\n<size:10>DREQ_116B</size>" as DREQ_116B [[../fsd/FSD120-design-requirements-specification.html#DREQ_116B]] #BFD8D2
node "<size:12>Requirement</size>\n**Input OFF/ON**\n**conditions**\n<size:10>DREQ_114D</size>" as DREQ_114D [[../fsd/FSD120-design-requirements-specification.html#DREQ_114D]] #BFD8D2
node "<size:12>Requirement</size>\n**Two CPUs**\n**monitor inputs**\n<size:10>DREQ_114C</size>" as DREQ_114C [[../fsd/FSD120-design-requirements-specification.html#DREQ_114C]] #BFD8D2
node "<size:12>Motivation</size>\n**Input voltage**\n**range**\n<size:10>MOTIVATION_220_001</size>" as MOTIVATION_220_001 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_001]] #FFA76D
node "<size:12>Requirement</size>\n**Input signal**\n**types**\n<size:10>DREQ_114B</size>" as DREQ_114B [[../fsd/FSD120-design-requirements-specification.html#DREQ_114B]] #BFD8D2
node "<size:12>Requirement</size>\n**Input**\n**asymmetrical**\n**resistor**\n**dividers**\n<size:10>DREQ_16C</size>" as DREQ_16C [[../fsd/FSD120-design-requirements-specification.html#DREQ_16C]] #BFD8D2
node "<size:12>Requirement</size>\n**Input voltage**\n**range**\n<size:10>DREQ_114A</size>" as DREQ_114A [[../fsd/FSD120-design-requirements-specification.html#DREQ_114A]] #BFD8D2
node "<size:12>Requirement</size>\n**Inputs < 10**\n**fits**\n<size:10>DREQ_102A</size>" as DREQ_102A [[../fsd/FSD120-design-requirements-specification.html#DREQ_102A]] #BFD8D2
node "<size:12>Requirement</size>\n**Redundant**\n**inputs**\n<size:10>DREQ_01C</size>" as DREQ_01C [[../fsd/FSD120-design-requirements-specification.html#DREQ_01C]] #BFD8D2
node "<size:12>Motivation</size>\n**14 SIO**\n<size:10>MOTIVATION_220_002</size>" as MOTIVATION_220_002 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_002]] #FFA76D
node "<size:12>TEST</size>\n**Verify Single**\n**Output function**\n<size:10>TEST_SINGLE_OUTPUT_2</size>" as TEST_SINGLE_OUTPUT_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SINGLE_OUTPUT_2]] #DCB239
node "<size:12>RESULT</size>\n**Verify Single**\n**Output function**\n<size:10>RESULT_SINGLE_OUTPUT_2</size>" as RESULT_SINGLE_OUTPUT_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SINGLE_OUTPUT_2]] #FFA76D
node "<size:12>RESULT</size>\n**Verify Single**\n**Input function**\n<size:10>RESULT_SINGLE_INPUT_2</size>" as RESULT_SINGLE_INPUT_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SINGLE_INPUT_2]] #FFA76D
node "<size:12>TEST</size>\n**Single Input**\n**sl3 code review**\n<size:10>TEST_SINGLE_INPUT_1</size>" as TEST_SINGLE_INPUT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SINGLE_INPUT_1]] #DCB239
node "<size:12>RESULT</size>\n**Single Input**\n**sl3 code review**\n<size:10>RESULT_SINGLE_INPUT_1</size>" as RESULT_SINGLE_INPUT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SINGLE_INPUT_1]] #FFA76D

' Connection definition 

MREQ_SINGLE_INPUT --> HAZARD_SINGLE_INPUT_01
HAZARD_SINGLE_INPUT_01 --> SPEC_SINGLE_INPUT
SPEC_SINGLE_INPUT --> TEST_SINGLE_INPUT_1
SPEC_SINGLE_INPUT --> TEST_SINGLE_INPUT_2
SPEC_SINGLE_INPUT --> TEST_SINGLE_INPUT_3
HAZARD_SINGLE_INPUT_02 --> SPEC_SINGLE_INPUT
TEST_SINGLE_INPUT_3 --> RESULT_SINGLE_INPUT_3
TEST_SINGLE_INPUT_2 --> RESULT_SINGLE_INPUT_2
SWSREQ_015A --> TEST_SINGLE_INPUT_2
SWSREQ_015A --> TEST_SINGLE_OUTPUT_2
DREQ_114E --> MOTIVATION_220_002
DREQ_114E --> SWSREQ_015A
SREQ_13B --> DREQ_01C
SREQ_13B --> DREQ_102A
SREQ_13B --> DREQ_114A
SREQ_13B --> DREQ_16C
SREQ_13B --> DREQ_114B
SREQ_13B --> DREQ_114C
SREQ_13B --> DREQ_114D
SREQ_13B --> DREQ_114E
SREQ_13B --> DREQ_116B
SREQ_13B --> DREQ_116C
SREQ_13B --> DREQ_14A
SREQ_13B --> DREQ_11A
SREQ_13B --> DREQ_126B
SREQ_N_02 --> SREQ_04A
SREQ_N_02 --> SREQ_04B
SREQ_N_02 --> SREQ_13A
SREQ_N_02 --> SREQ_13B
HAZARD_02 --> SREQ_N_02
SREQ_13A --> DREQ_01F
SREQ_13A --> DREQ_104A
SREQ_13A --> DREQ_115A
SREQ_13A --> DREQ_115B
SREQ_13A --> DREQ_115C
SREQ_13A --> DREQ_115D
SREQ_13A --> DREQ_115E
SREQ_13A --> DREQ_115F
SREQ_13A --> DREQ_126A
SREQ_13A --> DREQ_13A
SREQ_13A --> DREQ_15A
DREQ_15A --> MOTIVATION_220_007
DREQ_15A --> SWSREQ_020A
SREQ_02 --> DREQ_15A
HAZARD_20 --> SREQ_02
SWSREQ_020A --> TEST_150_002
TEST_150_002 --> RESULT_150_002
SWSREQ_030G --> TEST_150_002
DREQ_LOGIC_200G --> SWSREQ_030G
SREQ_15A --> DREQ_MODES_1
SREQ_15A --> DREQ_NORMALMODE_1
SREQ_15A --> DREQ_SAFESTAE_1
SREQ_15A --> DREQ_SAFESTAE_2
SREQ_15A --> DREQ_LOGIC_200A
SREQ_15A --> DREQ_LOGIC_200B
SREQ_15A --> DREQ_LOGIC_200C
SREQ_15A --> DREQ_LOGIC_200D
SREQ_15A --> DREQ_LOGIC_200G
SREQ_N_03 --> SREQ_05
SREQ_N_03 --> SREQ_15A
SREQ_N_03 --> SREQ_15B
SREQ_N_03 --> SREQ_21
HAZARD_03 --> SREQ_N_03
SREQ_21 --> DREQ_LOGIC_200A
SREQ_21 --> DREQ_LOGIC_200B
SREQ_N_04 --> SREQ_04B
SREQ_N_04 --> SREQ_21
HAZARD_04 --> SREQ_N_04
SREQ_15B --> RESULT_150_001
TEST_150_001 --> RESULT_150_001
SWSREQ_030D --> TEST_150_001
SWSREQ_030C --> TEST_150_001
SWSREQ_030B --> TEST_150_001
SWSREQ_030A --> TEST_150_001
SREQ_05 --> DREQ_SAFESTAE_1
SREQ_05 --> DREQ_SAFESTAE_2
DREQ_LOGIC_200D --> SWSREQ_030D
DREQ_LOGIC_200C --> SWSREQ_030C
DREQ_LOGIC_200B --> SWSREQ_030B
DREQ_LOGIC_200A --> SWSREQ_030A
DREQ_SAFESTAE_2 --> SWSREQ_024B
SWSREQ_024B --> TEST_150_010
TEST_150_010 --> RESULT_150_010
SWSREQ_029A --> TEST_150_010
SWSREQ_024A --> TEST_150_010
SREQ_15C --> TEST_150_010
SREQ_N_05 --> SREQ_15C
HAZARD_5 --> SREQ_N_05
SREQ_09A --> TEST_150_010
SREQ_09A --> MOTIVATION_300_312
SREQ_27 --> SREQ_08A
SREQ_27 --> SREQ_08B
SREQ_27 --> SREQ_09A
SREQ_27 --> SREQ_09B
SREQ_27 --> SREQ_22
SREQ_N_15A --> SREQ_07
SREQ_N_15A --> SREQ_27
HAZARD_15 --> SREQ_N_15A
HAZARD_15 --> SREQ_N_15B
SREQ_N_15B --> DREQ_27A
SREQ_N_15B --> DREQ_27B
SREQ_N_15B --> DREQ_108A
SREQ_N_15B --> DREQ_108B
DREQ_108B --> SWSREQ_007B
DREQ_108B --> SWSREQ_007C
SWSREQ_007C --> TEST_300_023
SWSREQ_007C --> TEST_300_121
SWSREQ_007A --> TEST_300_021
SWSREQ_007A --> TEST_300_022
SWSREQ_007A --> TEST_300_023
SWSREQ_007A --> TEST_300_119
SWSREQ_007A --> TEST_300_120
SWSREQ_007A --> TEST_300_121
SWSREQ_007B --> TEST_300_021
SWSREQ_007B --> TEST_300_022
SWSREQ_007B --> TEST_300_119
SWSREQ_007B --> TEST_300_120
DREQ_108A --> SWSREQ_007A
DREQ_108A --> SWSREQ_007B
SREQ_03A --> DREQ_28B
SREQ_03A --> DREQ_111A
SREQ_03A --> DREQ_16C
SREQ_03A --> DREQ_01F
SREQ_03A --> DREQ_115A
SREQ_03A --> DREQ_115B
SREQ_03A --> DREQ_201A
SREQ_03A --> DREQ_27B
SREQ_03A --> DREQ_16B
SREQ_03A --> DREQ_16A
SREQ_03A --> DREQ_108A
SREQ_03A --> DREQ_C2C_6
SREQ_N_01 --> SREQ_03A
SREQ_N_01 --> SREQ_03B
SREQ_N_01 --> SREQ_16A
HAZARD_01 --> SREQ_N_01
SREQ_16A --> DREQ_16B
SREQ_16A --> DREQ_16A
SREQ_16A --> DREQ_16C
SREQ_16A --> DREQ_LOGIC_202B
DREQ_LOGIC_202B --> SWSREQ_032C
SREQ_16B --> DREQ_111A
SREQ_16B --> DREQ_LOGIC_202B
SREQ_N_19 --> SREQ_16B
SREQ_N_19 --> SREQ_24
HAZARD_19 --> SREQ_N_19
SREQ_24 --> DREQ_24A
SREQ_24 --> DREQ_24B
SREQ_24 --> DREQ_24C
SREQ_24 --> DREQ_24D
SREQ_N_10 --> SREQ_24
HAZARD_10 --> SREQ_N_10
DREQ_24D --> SWSREQ_005A
DREQ_24D --> SWSREQ_005B
SREQ_18B --> DREQ_PSU_01
SREQ_18B --> DREQ_24A
SREQ_18B --> DREQ_24B
SREQ_18B --> DREQ_24C
SREQ_18B --> DREQ_24D
SREQ_18B --> DREQ_101A
SREQ_18B --> DREQ_111A
SREQ_18B --> DREQ_124A
SREQ_N_18 --> SREQ_17A
SREQ_N_18 --> SREQ_17B
SREQ_N_18 --> SREQ_17C
SREQ_N_18 --> SREQ_17D
SREQ_N_18 --> SREQ_18A
SREQ_N_18 --> SREQ_18B
SREQ_N_18 --> SREQ_18C
SREQ_N_18 --> SREQ_19
HAZARD_18 --> SREQ_N_18
SREQ_19 --> DREQ_EMC_1
SREQ_19 --> DREQ_EMC_2
SREQ_19 --> DREQ_113A
DREQ_113A --> CERT_0001
SREQ_01A --> DREQ_CAT4_1
SREQ_01A --> DREQ_103A
SREQ_01A --> DREQ_REDUNDANCY_1
SREQ_01A --> DREQ_EMC_1
SREQ_01A --> DREQ_EMC_2
SREQ_01A --> DREQ_107A
SREQ_01A --> DREQ_113A
SREQ_01A --> DREQ_17B
SREQ_01A --> DREQ_17C
MREQ_01 --> SREQ_01A
MREQ_01 --> SREQ_06A
MREQ_01 --> SREQ_06B
SREQ_06B --> MOTIVATION_114_007
SREQ_06A --> DREQ_NORMALMODE_1
DREQ_17C --> CERT_0006
DREQ_17B --> CERT_0006
DREQ_107A --> CERT_0008
DREQ_REDUNDANCY_1 --> MOTIVATION_212_001
DREQ_REDUNDANCY_1 --> MOTIVATION_115_001
SREQ_01B --> DREQ_122A
SREQ_01B --> DREQ_201A
SREQ_01B --> DREQ_LOGIC_201A
SREQ_01B --> DREQ_LOGIC_201B
SREQ_01B --> DREQ_CAT4_1
SREQ_01B --> DREQ_REDUNDANCY_1
MREQ_02 --> SREQ_01B
DREQ_LOGIC_201B --> FSD123_SPEC1
DREQ_LOGIC_201A --> SWSREQ_008A
SWSREQ_008A --> MOTIVATION_124_001
DREQ_118A --> SWSREQ_008A
DREQ_122A --> SWSREQ_008A
DREQ_105A --> MOTIVATION_212_001
DREQ_105A --> MOTIVATION_115_001
SREQ_12 --> DREQ_12A
SREQ_12 --> DREQ_01E
SREQ_12 --> DREQ_105A
SREQ_12 --> DREQ_127A
MREQ_04 --> SREQ_12
DREQ_127A --> MOTIVATION_220_009
DREQ_12A --> MOTIVATION_220_008
DREQ_12A --> SWSREQ_023A
SWSREQ_023A --> TEST_300_041
SWSREQ_023A --> TEST_300_126
SWSREQ_023A --> TEST_300_201
DREQ_01E --> MOTIVATION_220_008
DREQ_01E --> MOTIVATION_212_001
DREQ_01E --> MOTIVATION_115_001
DREQ_103A --> MOTIVATION_212_001
DREQ_103A --> MOTIVATION_115_001
DREQ_CAT4_1 --> MOTIVATION_212_001
DREQ_CAT4_1 --> MOTIVATION_115_001
DREQ_EMC_2 --> CERT_0007
DREQ_EMC_1 --> CERT_0001
SREQ_18C --> DREQ_MANUAL_10
DREQ_MANUAL_10 --> MOTIVATION_501_100
SREQ_18A --> CERT_0007
SREQ_17D --> DREQ_17B
SREQ_17D --> DREQ_MANUAL_11
DREQ_MANUAL_11 --> MOTIVATION_501_102
SREQ_17C --> DREQ_17C
SREQ_17C --> DREQ_17D
SREQ_17C --> DREQ_MANUAL_11
MREQ_09 --> SREQ_17A
MREQ_09 --> SREQ_17B
MREQ_09 --> SREQ_17C
DREQ_17D --> TEST_150_013
TEST_150_013 --> RESULT_150_013
SREQ_17B --> DREQ_17C
SREQ_17B --> DREQ_MANUAL_11
SREQ_17A --> DREQ_17C
SREQ_17A --> DREQ_MANUAL_11
DREQ_124A --> TEST_150_022
TEST_150_022 --> RESULT_150_022
DREQ_101A --> MOTIVATION_212_001
DREQ_101A --> MOTIVATION_115_001
DREQ_PSU_01 --> MOTIVATION_212_001
DREQ_PSU_01 --> MOTIVATION_115_001
SWSREQ_005B --> TEST_150_005
TEST_150_005 --> RESULT_150_005
SWSREQ_005A --> MOTIVATION_124_003
SWSREQ_005A --> TEST_150_005
SWSREQ_004A --> MOTIVATION_124_003
SWSREQ_004A --> TEST_150_004
TEST_150_004 --> RESULT_150_004
SWSREQ_004B --> TEST_150_004
DREQ_24C --> DREQ_24B
DREQ_24C --> DREQ_24D
DREQ_24B --> SWSREQ_004A
DREQ_24B --> SWSREQ_004B
DREQ_24A --> SWSREQ_003A
SWSREQ_003A --> TEST_150_003
TEST_150_003 --> RESULT_150_003
SREQ_N_07C --> DREQ_LOGIC_202A
SREQ_N_07C --> DREQ_LOGIC_202B
HAZARD_13 --> SREQ_N_07A
HAZARD_13 --> SREQ_N_07B
HAZARD_13 --> SREQ_N_07C
SREQ_N_07B --> DREQ_LOGIC_210D
HAZARD_12 --> SREQ_N_07A
HAZARD_12 --> SREQ_N_07B
HAZARD_11 --> SREQ_N_07A
HAZARD_11 --> SREQ_N_07B
HAZARD_11 --> SREQ_N_07D
SREQ_N_07D --> DREQ_LOGIC_200E
SREQ_N_07D --> DREQ_LOGIC_200H
SREQ_N_07D --> DREQ_LOGIC_210A
SREQ_N_07D --> DREQ_LOGIC_210B
SREQ_N_07D --> DREQ_LOGIC_210C
DREQ_LOGIC_210C --> SWSREQ_031B
SWSREQ_031B --> TEST_150_017
TEST_150_017 --> RESULT_150_017
DREQ_LOGIC_210B --> SWSREQ_031B
DREQ_LOGIC_210A --> SWSREQ_031A
SWSREQ_031A --> TEST_150_016
TEST_150_016 --> RESULT_150_016
DREQ_LOGIC_200H --> SWSREQ_030H
SWSREQ_030H --> TEST_150_015
TEST_150_015 --> RESULT_150_015
DREQ_LOGIC_200E --> SWSREQ_030E
SREQ_10B --> DREQ_LOGIC_200E
SREQ_N_17 --> SREQ_10A
SREQ_N_17 --> SREQ_10B
HAZARD_17 --> SREQ_N_17
SREQ_10A --> DREQ_10A
SREQ_10A --> DREQ_10B
MREQ_03 --> SREQ_10A
DREQ_10B --> MOTIVATION_220_012
DREQ_10B --> SWSREQ_031E
SWSREQ_031E --> TEST_150_020
TEST_150_020 --> RESULT_150_020
DREQ_10A --> SWSREQ_031D
SWSREQ_031D --> TEST_150_019
TEST_150_019 --> RESULT_150_019
SWSREQ_030E --> TEST_150_014
TEST_150_014 --> RESULT_150_014
HAZARD_08 --> SREQ_N_07A
HAZARD_08 --> SREQ_N_07B
HAZARD_7 --> SREQ_N_07A
HAZARD_7 --> SREQ_N_07B
DREQ_LOGIC_210D --> SWSREQ_031C
SWSREQ_031C --> TEST_150_018
TEST_150_018 --> RESULT_150_018
SREQ_N_07A --> DREQ_MANUAL_20
SREQ_N_07A --> DREQ_MANUAL_21
SREQ_N_07A --> DREQ_MANUAL_22
SREQ_N_07A --> DREQ_LOGIC_210B
SREQ_N_07A --> DREQ_LOGIC_210C
DREQ_MANUAL_22 --> MOTIVATION_501_105
DREQ_MANUAL_21 --> MOTIVATION_501_104
DREQ_MANUAL_20 --> MOTIVATION_501_103
DREQ_LOGIC_202A --> SWSREQ_032C
SWSREQ_032C --> TEST_150_009
SWSREQ_032C --> TEST_150_012
DREQ_C2C_7 --> SWSREQ_032C
SREQ_N_09D --> DREQ_C2C_1
SREQ_N_09D --> DREQ_C2C_2
SREQ_N_09D --> DREQ_C2C_3
SREQ_N_09D --> DREQ_C2C_4
SREQ_N_09D --> DREQ_C2C_5
SREQ_N_09D --> DREQ_C2C_6
SREQ_N_09D --> DREQ_C2C_7
SREQ_N_09D --> DREQ_C2C_8
HAZARD_09 --> SREQ_N_09A
HAZARD_09 --> SREQ_N_09B
HAZARD_09 --> SREQ_N_09C
HAZARD_09 --> SREQ_N_09D
SREQ_N_09C --> BLCH0002
SREQ_N_09B --> DREQ_CAN_1
SREQ_N_09B --> DREQ_CAN_2
MREQ_08 --> SREQ_N_09B
MREQ_07 --> SREQ_N_09B
DREQ_CAN_2 --> SWSREQ_038A
SWSREQ_038A --> SIMPLECAN_ALL_REQS
SIMPLECAN_ALL_REQS --> SC_REQ_01
SIMPLECAN_ALL_REQS --> SC_REQ_02
SIMPLECAN_ALL_REQS --> SC_REQ_03
SIMPLECAN_ALL_REQS --> SC_REQ_04
SIMPLECAN_ALL_REQS --> SC_REQ_05
SIMPLECAN_ALL_REQS --> SC_REQ_06
SIMPLECAN_ALL_REQS --> SC_REQ_07
SIMPLECAN_ALL_REQS --> SC_REQ_08
SIMPLECAN_ALL_REQS --> SC_REQ_09
SIMPLECAN_ALL_REQS --> SC_REQ_10
SIMPLECAN_ALL_REQS --> SC_REQ_11
SIMPLECAN_ALL_REQS --> SC_REQ_12
SIMPLECAN_ALL_REQS --> SC_REQ_14
SIMPLECAN_ALL_REQS --> SC_REQ_15
SIMPLECAN_ALL_REQS --> SC_REQ_16
SIMPLECAN_ALL_REQS --> SC_REQ_17
SIMPLECAN_ALL_REQS --> SC_REQ_18
SIMPLECAN_ALL_REQS --> SC_REQ_19
SIMPLECAN_ALL_REQS --> SC_REQ_20
SIMPLECAN_ALL_REQS --> SC_REQ_21
SIMPLECAN_ALL_REQS --> SC_REQ_22
SIMPLECAN_ALL_REQS --> SC_REQ_23
SIMPLECAN_ALL_REQS --> SC_REQ_24
SIMPLECAN_ALL_REQS --> SC_REQ_25
SIMPLECAN_ALL_REQS --> SC_REQ_26
SIMPLECAN_ALL_REQS --> SC_REQ_27
SIMPLECAN_ALL_REQS --> SC_REQ_28
SIMPLECAN_ALL_REQS --> SC_REQ_29
SIMPLECAN_ALL_REQS --> SC_REQ_30
SIMPLECAN_ALL_REQS --> SC_REQ_31
SIMPLECAN_ALL_REQS --> SC_REQ_32
SIMPLECAN_ALL_REQS --> SC_REQ_33
SIMPLECAN_ALL_REQS --> SC_REQ_34
SIMPLECAN_ALL_REQS --> SC_REQ_35
SIMPLECAN_ALL_REQS --> SC_REQ_36
SIMPLECAN_ALL_REQS --> SC_REQ_37
SIMPLECAN_ALL_REQS --> SC_REQ_38
SIMPLECAN_ALL_REQS --> SC_REQ_39
SIMPLECAN_ALL_REQS --> SC_REQ_40
SIMPLECAN_ALL_REQS --> SC_REQ_41
SIMPLECAN_ALL_REQS --> SC_REQ_42
SIMPLECAN_ALL_REQS --> SC_REQ_43
SIMPLECAN_ALL_REQS --> SC_REQ_44
SIMPLECAN_ALL_REQS --> SC_REQ_45
SIMPLECAN_ALL_REQS --> SC_REQ_46
SC_REQ_46 --> MOTIVATION_230_042
SC_REQ_45 --> MOTIVATION_230_041
SC_REQ_44 --> MOTIVATION_230_040
SC_REQ_43 --> MOTIVATION_230_039
SC_REQ_42 --> MOTIVATION_230_038
SC_REQ_41 --> MOTIVATION_230_037
SC_REQ_40 --> MOTIVATION_230_036
SC_REQ_39 --> MOTIVATION_230_035
SC_REQ_38 --> MOTIVATION_230_034
SC_REQ_37 --> MOTIVATION_230_033
SC_REQ_36 --> MOTIVATION_230_032
SC_REQ_35 --> MOTIVATION_230_031
SC_REQ_34 --> MOTIVATION_230_030
SC_REQ_33 --> MOTIVATION_230_029
SC_REQ_32 --> MOTIVATION_230_028
SC_REQ_31 --> MOTIVATION_230_027
SC_REQ_30 --> MOTIVATION_230_026
SC_REQ_29 --> MOTIVATION_230_029
SC_REQ_28 --> MOTIVATION_230_024
SC_REQ_27 --> MOTIVATION_230_023
SC_REQ_26 --> MOTIVATION_230_022
SC_REQ_25 --> MOTIVATION_230_021
SC_REQ_24 --> MOTIVATION_230_020
SC_REQ_23 --> MOTIVATION_230_019
SC_REQ_22 --> MOTIVATION_230_018
SC_REQ_21 --> MOTIVATION_230_017
SC_REQ_20 --> MOTIVATION_230_016
SC_REQ_18 --> MOTIVATION_230_015
SC_REQ_17 --> MOTIVATION_230_014
SC_REQ_16 --> MOTIVATION_230_013
SC_REQ_15 --> MOTIVATION_230_012
SC_REQ_14 --> MOTIVATION_230_011
SC_REQ_12 --> MOTIVATION_230_010
SC_REQ_11 --> MOTIVATION_230_009
SC_REQ_10 --> MOTIVATION_230_008
SC_REQ_09 --> MOTIVATION_230_007
SC_REQ_08 --> MOTIVATION_230_006
SC_REQ_07 --> MOTIVATION_230_005
SC_REQ_06 --> MOTIVATION_230_004
SC_REQ_05 --> MOTIVATION_230_003
SC_REQ_04 --> MOTIVATION_230_002
SC_REQ_03 --> MOTIVATION_230_001
DREQ_CAN_1 --> SWSREQ_038A
SREQ_N_09A --> DREQ_RADIO_1
DREQ_RADIO_1 --> SWSREQ_034A
SWSREQ_034A --> BLCH0001
SWSREQ_035D --> BLCH0001
DREQ_RADIO_3B --> SWSREQ_035D
MREQ_06 --> DREQ_RADIO_2A
MREQ_06 --> DREQ_RADIO_2B
MREQ_06 --> DREQ_RADIO_3A
MREQ_06 --> DREQ_RADIO_3B
MREQ_06 --> DREQ_RADIO_10
MREQ_06 --> DREQ_RADIO_11
DREQ_RADIO_11 --> SWSREQ_034E
DREQ_RADIO_11 --> SWSREQ_034F
DREQ_RADIO_10 --> TEST_150_023
TEST_150_023 --> RESULT_150_023
DREQ_RADIO_3A --> SWSREQ_035C
DREQ_RADIO_2B --> SWSREQ_035A
DREQ_RADIO_2B --> SWSREQ_035B
DREQ_RADIO_2A --> SWSREQ_035A
DREQ_RADIO_2A --> SWSREQ_035B
SWSREQ_035C --> BLCH0001
SWSREQ_035B --> BLCH0001
SWSREQ_035A --> BLCH0001
SWSREQ_034F --> BLCH0001
SWSREQ_034E --> BLCH0001
SWSREQ_034D --> BLCH0001
SREQ_29B --> SWSREQ_034D
SREQ_20 --> SWSREQ_034D
SREQ_20 --> SWSREQ_037A
SREQ_20 --> SWSREQ_037B
SWSREQ_037B --> TEST_150_006
TEST_150_006 --> RESULT_150_006
SWSREQ_032B --> TEST_150_006
SWSREQ_032A --> TEST_150_006
SWSREQ_037A --> TEST_150_012
SREQ_N_16B --> SREQ_20
SREQ_N_16B --> SREQ_29B
SREQ_N_16B --> SWSREQ_034D
HAZARD_16 --> SREQ_N_16A
HAZARD_16 --> SREQ_N_16B
SREQ_N_16A --> SREQ_28A
SREQ_N_16A --> SREQ_28B
SREQ_N_16A --> SREQ_28C
SREQ_28C --> DREQ_28C
DREQ_28C --> DREQ_28D
DREQ_28A --> DREQ_28D
SREQ_28B --> DREQ_28C
SREQ_28A --> DREQ_28A
SREQ_28A --> DREQ_28B
SWSREQ_034C --> BLCH0001
SWSREQ_034B --> BLCH0001
DREQ_C2C_8 --> SWSREQ_032D
DREQ_C2C_8 --> SWSREQ_033A
SWSREQ_033A --> TEST_300_031
SWSREQ_033B --> TEST_300_031
SWSREQ_032E --> TEST_300_029
SWSREQ_032E --> TEST_300_031
SWSREQ_032D --> TEST_300_029
DREQ_C2C_5 --> SWSREQ_010A
SWSREQ_010A --> TEST_300_002
SWSREQ_010A --> TEST_300_003
SWSREQ_010A --> TEST_300_004
SWSREQ_010A --> TEST_300_006
SWSREQ_010A --> TEST_300_007
SWSREQ_010A --> TEST_300_008
SWSREQ_010A --> TEST_300_009
SWSREQ_010A --> TEST_300_047
SWSREQ_010A --> TEST_300_048
SWSREQ_010A --> TEST_300_053
SWSREQ_010A --> TEST_300_054
SWSREQ_010A --> TEST_300_056
SWSREQ_010D --> TEST_300_002
SWSREQ_010D --> TEST_300_003
SWSREQ_010D --> TEST_300_004
SWSREQ_010D --> TEST_300_006
SWSREQ_010D --> TEST_300_007
SWSREQ_010D --> TEST_300_008
SWSREQ_010D --> TEST_300_009
SWSREQ_010D --> TEST_300_047
SWSREQ_010D --> TEST_300_048
SWSREQ_010D --> TEST_300_053
SWSREQ_010D --> TEST_300_054
SWSREQ_010D --> TEST_300_056
SWSREQ_010C --> TEST_300_002
SWSREQ_010C --> TEST_300_003
SWSREQ_010C --> TEST_300_004
SWSREQ_010C --> TEST_300_006
SWSREQ_010C --> TEST_300_007
SWSREQ_010C --> TEST_300_008
SWSREQ_010C --> TEST_300_009
SWSREQ_010C --> TEST_300_047
SWSREQ_010C --> TEST_300_048
SWSREQ_010C --> TEST_300_053
SWSREQ_010C --> TEST_300_054
SWSREQ_010C --> TEST_300_056
SWSREQ_010G --> TEST_300_006
SWSREQ_010E --> TEST_300_006
SWSREQ_010B --> TEST_300_003
SWSREQ_010B --> TEST_300_103
DREQ_C2C_4 --> SWSREQ_010E
DREQ_C2C_3 --> SWSREQ_010B
DREQ_C2C_3 --> SWSREQ_010D
DREQ_C2C_2 --> MOTIVATION_220_014
DREQ_C2C_2 --> SWSREQ_010C
DREQ_C2C_1 --> MOTIVATION_220_013
DREQ_C2C_1 --> SWSREQ_010G
TEST_150_012 --> RESULT_150_012
TEST_150_009 --> RESULT_150_009
SREQ_03B --> DREQ_3A
DREQ_3A --> SWSREQ_018A
DREQ_3A --> SWSREQ_101A
DREQ_3A --> SWSREQ_101B
DREQ_3A --> SWSREQ_101C
SWSREQ_101C --> TEST_300_213
SWSREQ_101B --> TEST_300_214
SWSREQ_101A --> TEST_300_214
SWSREQ_018A --> TEST_300_202
SWSREQ_018A --> TEST_300_205
SWSREQ_018A --> TEST_300_206
SWSREQ_018A --> TEST_300_207
SWSREQ_018A --> TEST_300_208
SWSREQ_018A --> TEST_300_209
DREQ_C2C_6 --> SWSREQ_032B
DREQ_16A --> SWSREQ_001A
DREQ_16A --> SWSREQ_001B
DREQ_16A --> SWSREQ_001C
DREQ_16A --> SWSREQ_001D
SWSREQ_001D --> MOTIVATION_300_311
SWSREQ_001C --> TEST_300_016
SWSREQ_001C --> TEST_300_017
SWSREQ_001C --> TEST_300_114
SWSREQ_001C --> TEST_300_115
SWSREQ_001B --> TEST_300_016
SWSREQ_001B --> TEST_300_017
SWSREQ_001B --> TEST_300_114
SWSREQ_001B --> TEST_300_115
SWSREQ_001A --> TEST_300_016
SWSREQ_001A --> TEST_300_017
SWSREQ_001A --> TEST_300_114
SWSREQ_001A --> TEST_300_115
DREQ_16B --> SWSREQ_002A
DREQ_16B --> SWSREQ_002B
SWSREQ_002B --> TEST_300_042
SWSREQ_002B --> TEST_300_052
SWSREQ_002B --> TEST_300_128
SWSREQ_002A --> TEST_300_042
SWSREQ_002A --> TEST_300_052
SWSREQ_002A --> TEST_300_128
DREQ_201A --> MOTIVATION_220_010
DREQ_111A --> SWSREQ_032E
DREQ_111A --> SWSREQ_032A
DREQ_111A --> SWSREQ_032B
DREQ_111A --> SWSREQ_032C
DREQ_111A --> SWSREQ_032D
DREQ_28B --> SWSREQ_033A
DREQ_28B --> SWSREQ_033B
DREQ_27B --> TEST_300_044
DREQ_27B --> TEST_300_125
DREQ_27A --> MOTIVATION_220_011
SREQ_22 --> DREQ_RADIO_3A
SREQ_22 --> DREQ_RADIO_3B
SREQ_N_06 --> SREQ_22
HAZARD_6 --> SREQ_N_06
SREQ_09B --> DREQ_9A
SREQ_09B --> TEST_150_021
TEST_150_021 --> RESULT_150_021
DREQ_123A --> TEST_150_021
DREQ_9A --> SWSREQ_026A
SWSREQ_026A --> TEST_150_008
TEST_150_008 --> RESULT_150_008
SREQ_08B --> DREQ_RADIO_3A
SREQ_08B --> DREQ_RADIO_3B
SREQ_08B --> DREQ_123A
SREQ_08A --> DREQ_27A
SREQ_08A --> DREQ_27B
SREQ_07 --> SREQ_08A
SREQ_07 --> SREQ_08B
SREQ_07 --> SREQ_09A
SREQ_07 --> SREQ_09B
SREQ_07 --> SREQ_22
DREQ_SAFESTAE_1 --> SWSREQ_029A
DREQ_SAFESTAE_1 --> SWSREQ_024A
DREQ_NORMALMODE_1 --> SWSREQ_028A
DREQ_MODES_1 --> SWSREQ_027A
SWSREQ_028A --> TEST_150_002
SWSREQ_027A --> TEST_150_010
SWSREQ_027A --> TEST_150_001
SWSREQ_027A --> TEST_150_002
SWSREQ_019B --> MOTIVATION_220_007
DREQ_13A --> SWSREQ_011B
DREQ_13A --> SWSREQ_011C
SWSREQ_011C --> TEST_SINGLE_INPUT_1
SWSREQ_011C --> TEST_SINGLE_OUTPUT_1
SWSREQ_011C --> TEST_GUI_ADVANCED_INPUT_1
SWSREQ_011C --> TEST_GUI_ADVANCED_OUTPUT_1
DREQ_2A --> SWSREQ_011A
DREQ_2A --> SWSREQ_011B
DREQ_2A --> SWSREQ_011C
DREQ_2A --> SWSREQ_011D
DREQ_2A --> SWSREQ_011E
SWSREQ_011E --> TEST_SINGLE_INPUT_1
SWSREQ_011E --> TEST_GUI_ADVANCED_INPUT_1
SWSREQ_011D --> TEST_SINGLE_INPUT_1
SWSREQ_011D --> TEST_GUI_ADVANCED_INPUT_1
SWSREQ_011A --> TEST_SINGLE_INPUT_1
SWSREQ_011A --> TEST_SINGLE_OUTPUT_1
SWSREQ_011A --> TEST_GUI_ADVANCED_INPUT_1
SWSREQ_011A --> TEST_GUI_ADVANCED_OUTPUT_1
SWSREQ_013A --> TEST_GUI_ADVANCED_OUTPUT_1
SWSREQ_014A --> TEST_GUI_ADVANCED_INPUT_1
SWSREQ_012A --> TEST_GUI_ADVANCED_INPUT_1
DREQ_26A --> TEST_GUI_SYNC_INPUTS_1
DREQ_26A --> TEST_GUI_SYNC_INPUTS_2
DREQ_26A --> TEST_GUI_ADVANCED_INPUT_1
SREQ_26B --> DREQ_26A
SREQ_N_14C --> SREQ_26A
SREQ_N_14C --> SREQ_26B
HAZARD_14 --> SREQ_N_14A
HAZARD_14 --> SREQ_N_14B
HAZARD_14 --> SREQ_N_14C
SREQ_N_14B --> DREQ_DIAGNOSTIC_01
DREQ_DIAGNOSTIC_01 --> MOTIVATION_501_109
SREQ_26A --> DREQ_14A
SREQ_N_14A --> SREQ_26A
SREQ_N_14A --> SREQ_26B
SREQ_N_14A --> DREQ_LOGIC_200F
DREQ_LOGIC_200F --> SWSREQ_030F
SWSREQ_030F --> TEST_150_011
TEST_150_011 --> RESULT_150_011
TEST_GUI_SYNC_INPUTS_2 --> RESULT_GUI_SYNC_INPUTS_2
TEST_GUI_SYNC_INPUTS_1 --> RESULT_GUI_SYNC_INPUTS_1
SWSREQ_017A --> TEST_GUI_SYNC_INPUTS_1
TEST_SINGLE_OUTPUT_1 --> RESULT_SINGLE_OUTPUT_1
SPEC_SINGLE_OUTPUT --> TEST_SINGLE_OUTPUT_1
SPEC_SINGLE_OUTPUT --> TEST_SINGLE_OUTPUT_2
SPEC_SINGLE_OUTPUT --> TEST_SINGLE_OUTPUT_3
HAZARD_SINGLE_OUTPUT_01 --> SPEC_SINGLE_OUTPUT
MREQ_SINGLE_OUTPUT --> HAZARD_SINGLE_OUTPUT_01
TEST_SINGLE_OUTPUT_3 --> RESULT_SINGLE_OUTPUT_3
SWSREQ_019A --> RESULT_SINGLE_OUTPUT_1
SWSREQ_019A --> TEST_CFB_OSSD_1
SWSREQ_019A --> TEST_CFB_OSSD_2
SWSREQ_019A --> TEST_CFB_OSSD_3
DREQ_4A --> SWSREQ_019A
TEST_CFB_OSSD_3 --> RESULT_CFB_OSSD_3
SWSREQ_022A --> TEST_CFB_OSSD_1
SWSREQ_022A --> TEST_CFB_OSSD_2
SWSREQ_022A --> TEST_CFB_OSSD_3
TEST_CFB_OSSD_2 --> RESULT_CFB_OSSD_2
TEST_CFB_OSSD_1 --> RESULT_CFB_OSSD_1
SWSREQ_011B --> TEST_SINGLE_INPUT_1
SWSREQ_011B --> TEST_SINGLE_OUTPUT_1
SWSREQ_011B --> TEST_GUI_ADVANCED_INPUT_1
SWSREQ_011B --> TEST_GUI_ADVANCED_OUTPUT_1
DREQ_126A --> SWSREQ_011B
DREQ_126A --> SWSREQ_011C
DREQ_115F --> MOTIVATION_220_002
DREQ_115E --> SWSREQ_022A
DREQ_115D --> SWSREQ_011B
DREQ_115D --> SWSREQ_022A
DREQ_115C --> MOTIVATION_220_006
DREQ_115C --> SWSREQ_016A
DREQ_115C --> SWSREQ_018A
DREQ_115C --> SWSREQ_019A
SWSREQ_016A --> TEST_300_216
SWSREQ_015B --> TEST_300_216
DREQ_115B --> MOTIVATION_220_005
DREQ_115B --> SWSREQ_019B
DREQ_115A --> MOTIVATION_220_004
DREQ_115A --> SWSREQ_018A
DREQ_115A --> SWSREQ_019A
DREQ_104A --> MOTIVATION_212_001
DREQ_104A --> MOTIVATION_115_001
DREQ_01F --> MOTIVATION_212_001
DREQ_01F --> MOTIVATION_115_001
SREQ_04B --> DREQ_4A
SREQ_04A --> DREQ_4A
MREQ_05 --> SREQ_11
MREQ_05 --> SREQ_13A
MREQ_05 --> SREQ_13B
MREQ_05 --> DREQ_116A
DREQ_116A --> SWSREQ_021A
SWSREQ_021A --> TEST_CFB_COMBO_1
TEST_CFB_COMBO_1 --> RESULT_CFB_COMBO_1
SREQ_11 --> DREQ_11A
SREQ_11 --> DREQ_126B
DREQ_126B --> SWSREQ_011C
DREQ_11A --> SWSREQ_011A
DREQ_11A --> SWSREQ_011B
DREQ_11A --> SWSREQ_011C
DREQ_11A --> SWSREQ_011D
DREQ_14A --> MOTIVATION_220_003
DREQ_14A --> SWSREQ_014A
DREQ_14A --> SWSREQ_016A
DREQ_116C --> SWSREQ_017A
DREQ_116B --> SWSREQ_011E
DREQ_114D --> SWSREQ_011C
DREQ_114D --> SWSREQ_011D
DREQ_114C --> SWSREQ_015B
DREQ_114C --> MOTIVATION_220_001
DREQ_114B --> SWSREQ_011D
DREQ_16C --> SWSREQ_016A
DREQ_16C --> MOTIVATION_220_001
DREQ_114A --> SWSREQ_014A
DREQ_114A --> MOTIVATION_220_001
DREQ_102A --> MOTIVATION_212_001
DREQ_102A --> MOTIVATION_115_001
DREQ_01C --> MOTIVATION_212_001
DREQ_01C --> MOTIVATION_115_001
TEST_SINGLE_OUTPUT_2 --> RESULT_SINGLE_OUTPUT_2
TEST_SINGLE_INPUT_1 --> RESULT_SINGLE_INPUT_1

@enduml

Single Input requirements flow diagram

Market requirement: Function block: Single Input MREQ_SINGLE_INPUT
status: PASS
tags: mreq, block, single_input

A Single Input function block shall be available to users in Simplifier Manager. The block should be able to configure a single pin as a digital input, and optionaly set specific or relative voltage thresholds. It may also be configured to use different signal types as ON/OFF (e.g. high/low voltage or X-pulses).

Hazard: Function block: Single Input HAZARD_SINGLE_INPUT_01
status: PASS
tags: hazard, block, single_input

If the voltage thresholds are not set correctly, the block may incorrectly identify the input signal as a high signal even if it should be low.

Hazard: Function block: Single Input HAZARD_SINGLE_INPUT_02
status: PASS
tags: hazard, block, single_input

If the block (due to a bug) uses the wrong pin, it may to the user seem like an input is working correctly, but it is measuring another pin.

Specification: Function block: Single Input SPEC_SINGLE_INPUT
status: PASS
tags: spec, block, single_input

The Single Input function block shall allow the user to configure a single input pin with optional voltage thresholds.

Inputs

None (in the actual block diagram).

Outputs

  • “on”: 1 when the input signal is above the high threshold, and 0 when it is below the low threshold.

Properties

  • pin number [1,16]: Which pin to use as input.

  • OFF [0V, nX-pulse]: Which signal type to consider as OFF state.

  • ON [VDC, X-pulse]: Which signal type to consider as ON state.

Specific voltage thresholds can optionally be set for the ON and OFF states. If not set, the block should use the default thresholds for the specific signal type. The default is specified per node in the SL3 configuration file.

Underlying Compiler Blocks

To simplify the implementation in the compiler, two different blocks are created, depending on the signal type.

  • dig_input: This block is used when the ON/OFF signal types are VDC/0V (i.e., standard digital input).

  • pulse_input: This block is used when any signal type is X-pulse.

Only one of these are used in the final SL3 code, depending on the configuration of the block.

2.1.2 Module tests

TEST: Single Input sl3 code review TEST_SINGLE_INPUT_1
status: PASS
tags: single_input_test

Preconditions

Generate a Single Input block with the on output connected to the input of any other block and the following properties:

  • Pin = 1

  • OFF = 0V

  • ON = VDC

  • specific voltage thresholds not set

Procedure

  • Verify that the generated sl3 code contains a Single Input function with the correct inputs and output, according to the underlying compiler block spec.

  • Verify that all input signals to the block are in the correct place in the sl3 output.

  • Adjust the pin number to 2 and verify that the generated sl3 code is updated accordingly.

  • Set the specific high and low voltage thresholds and verify that the generated sl3 code is updated accordingly.

  • Set the ON/OFF signal types to different X-pulses and verify that the generated sl3 code uses the pulse_input block, and that the correct signal types are used.

2.1.3 Integration tests

TEST: Verify Single Input function TEST_SINGLE_INPUT_2
status: PASS
tags: single_input_test

Preconditions

Compile a Single Input connected to a Single Output and the following properties:

  • Pin = 1

  • OFF = 0V

  • ON = VDC

  • default voltage thresholds

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Verify that the output is LOW/OFF/0V.

  2. Apply a high signal to the input and verify that the output turns on within X ms of the high flank on the input.

  3. Vary the voltage of the input signal to below and above the low and high thresholds and verify that the output changes accordingly.

TEST: Single Input in safety manual TEST_SINGLE_INPUT_3
status: PASS
tags: single_input_test

Verify that the safety aspects of the Single Input block are documented in the safety manual.

2.1.4 Test results

ID

Tags

Status

TEST_SINGLE_INPUT_1

single_input_test

PASS

TEST_SINGLE_INPUT_2

single_input_test

PASS

TEST_SINGLE_INPUT_3

single_input_test

PASS




2.2 Single Output

@startuml

' Config

left to right direction


' Nodes definition 

node "<size:12>Market requirement</size>\n**Function block:**\n**Single Output**\n**GUI**\n<size:10>MREQ_SINGLE_OUTPUT</size>" as MREQ_SINGLE_OUTPUT [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_SINGLE_OUTPUT]] #FFA76D
node "<size:12>Hazard</size>\n**Function block:**\n**Single Output**\n**GUI**\n<size:10>HAZARD_SINGLE_OUTPUT_01</size>" as HAZARD_SINGLE_OUTPUT_01 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#HAZARD_SINGLE_OUTPUT_01]] #FFA76D
node "<size:12>Specification</size>\n**Function block:**\n**Single Output**\n**GUI**\n<size:10>SPEC_SINGLE_OUTPUT</size>" as SPEC_SINGLE_OUTPUT [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_SINGLE_OUTPUT]] #FEDCD2
node "<size:12>TEST</size>\n**Single Output**\n**in safety**\n**manual**\n<size:10>TEST_SINGLE_OUTPUT_3</size>" as TEST_SINGLE_OUTPUT_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SINGLE_OUTPUT_3]] #DCB239
node "<size:12>RESULT</size>\n**Single Output**\n**in safety**\n**manual**\n<size:10>RESULT_SINGLE_OUTPUT_3</size>" as RESULT_SINGLE_OUTPUT_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SINGLE_OUTPUT_3]] #FFA76D
node "<size:12>TEST</size>\n**Verify Single**\n**Output function**\n<size:10>TEST_SINGLE_OUTPUT_2</size>" as TEST_SINGLE_OUTPUT_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SINGLE_OUTPUT_2]] #DCB239
node "<size:12>Requirement</size>\n**Transistor IO**\n<size:10>SWSREQ_015A</size>" as SWSREQ_015A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_015A]] #BFD8D2
node "<size:12>Requirement</size>\n**Up to 14 inputs**\n<size:10>DREQ_114E</size>" as DREQ_114E [[../fsd/FSD120-design-requirements-specification.html#DREQ_114E]] #BFD8D2
node "<size:12>Requirement</size>\n**Digital inputs**\n<size:10>SREQ_13B</size>" as SREQ_13B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_13B]] #BFD8D2
node "<size:12>Requirement</size>\n**External**\n**failures shall**\n**be detected and**\n**handled**\n<size:10>SREQ_N_02</size>" as SREQ_N_02 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_02]] #BFD8D2
node "<size:12>Hazard</size>\n**External**\n**hardware**\n**failure**\n<size:10>HAZARD_02</size>" as HAZARD_02 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_02]] #FFA76D
node "<size:12>Requirement</size>\n**Digital outputs**\n<size:10>SREQ_13A</size>" as SREQ_13A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_13A]] #BFD8D2
node "<size:12>Requirement</size>\n**No external**\n**control**\n<size:10>DREQ_15A</size>" as DREQ_15A [[../fsd/FSD120-design-requirements-specification.html#DREQ_15A]] #BFD8D2
node "<size:12>Requirement</size>\n**No external**\n**control**\n<size:10>SREQ_02</size>" as SREQ_02 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_02]] #BFD8D2
node "<size:12>Hazard</size>\n**User interface**\n**controlling**\n**outputs**\n<size:10>HAZARD_20</size>" as HAZARD_20 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_20]] #FFA76D
node "<size:12>Requirement</size>\n**No user**\n**interface to**\n**control safety**\n**outputs**\n<size:10>SWSREQ_020A</size>" as SWSREQ_020A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_020A]] #BFD8D2
node "<size:12>TEST</size>\n**Configuration**\n**tool connection**\n**without**\n**activation**\n<size:10>TEST_150_002</size>" as TEST_150_002 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_002]] #DCB239
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030G</size>" as SWSREQ_030G [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030G]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200G</size>" as DREQ_LOGIC_200G [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200G]] #BFD8D2
node "<size:12>Requirement</size>\n**Modes of**\n**operation**\n<size:10>SREQ_15A</size>" as SREQ_15A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_15A]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state**\n**during**\n**configuration**\n<size:10>SREQ_N_03</size>" as SREQ_N_03 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_03]] #BFD8D2
node "<size:12>Hazard</size>\n**Active or**\n**sporadically**\n**active outputs**\n**during system**\n**configuration**\n<size:10>HAZARD_03</size>" as HAZARD_03 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_03]] #FFA76D
node "<size:12>Requirement</size>\n**Safe state**\n**during software**\n**upgrade**\n<size:10>SREQ_21</size>" as SREQ_21 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_21]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state in**\n**other nodes**\n**during**\n**configuration**\n<size:10>SREQ_N_04</size>" as SREQ_N_04 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_04]] #BFD8D2
node "<size:12>Hazard</size>\n**Active or**\n**sporadically**\n**active outputs**\n**in other Safety**\n**Simplifiers**\n**during system**\n**configuration**\n<size:10>HAZARD_04</size>" as HAZARD_04 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_04]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SREQ_15B</size>" as SREQ_15B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_15B]] #BFD8D2
node "<size:12>RESULT</size>\n**Configuration**\n**mode and**\n**reconfiguration**\n<size:10>RESULT_150_001</size>" as RESULT_150_001 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_001]] #FFA76D
node "<size:12>TEST</size>\n**Configuration**\n**mode and**\n**reconfiguration**\n<size:10>TEST_150_001</size>" as TEST_150_001 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_001]] #DCB239
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030D</size>" as SWSREQ_030D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030D]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030C</size>" as SWSREQ_030C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030C]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030B</size>" as SWSREQ_030B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030B]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030A</size>" as SWSREQ_030A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030A]] #BFD8D2
node "<size:12>Requirement</size>\n**Static safe**\n**state**\n<size:10>SREQ_05</size>" as SREQ_05 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_05]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200D</size>" as DREQ_LOGIC_200D [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200D]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200C</size>" as DREQ_LOGIC_200C [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200C]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200B</size>" as DREQ_LOGIC_200B [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200B]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200A</size>" as DREQ_LOGIC_200A [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200A]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state**\n<size:10>DREQ_SAFESTAE_2</size>" as DREQ_SAFESTAE_2 [[../fsd/FSD120-design-requirements-specification.html#DREQ_SAFESTAE_2]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state non**\n**returning**\n**function**\n<size:10>SWSREQ_024B</size>" as SWSREQ_024B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_024B]] #BFD8D2
node "<size:12>TEST</size>\n**Fatal error**\n**turns off all**\n**outputs**\n<size:10>TEST_150_010</size>" as TEST_150_010 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_010]] #DCB239
node "<size:12>Requirement</size>\n**Safe state mode**\n<size:10>SWSREQ_029A</size>" as SWSREQ_029A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_029A]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state**\n<size:10>SWSREQ_024A</size>" as SWSREQ_024A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_024A]] #BFD8D2
node "<size:12>Requirement</size>\n**Fatal error**\n**mode**\n<size:10>SREQ_15C</size>" as SREQ_15C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_15C]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state**\n**during fatal**\n**error**\n<size:10>SREQ_N_05</size>" as SREQ_N_05 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_05]] #BFD8D2
node "<size:12>Hazard</size>\n**Active or**\n**sporadically**\n**active outputs**\n**after detecting**\n**a fault**\n<size:10>HAZARD_5</size>" as HAZARD_5 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_5]] #FFA76D
node "<size:12>Requirement</size>\n**Dangerous**\n**failure**\n**response time**\n<size:10>SREQ_09A</size>" as SREQ_09A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_09A]] #BFD8D2
node "<size:12>Requirement</size>\n**Timing accuracy**\n<size:10>SREQ_27</size>" as SREQ_27 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_27]] #BFD8D2
node "<size:12>Requirement</size>\n**Time measurment**\n**accuracy**\n<size:10>SREQ_N_15A</size>" as SREQ_N_15A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_15A]] #BFD8D2
node "<size:12>Hazard</size>\n**Inaccurate time**\n**measurment in**\n**logic**\n<size:10>HAZARD_15</size>" as HAZARD_15 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_15]] #FFA76D
node "<size:12>Requirement</size>\n**Time measurment**\n**faults**\n<size:10>SREQ_N_15B</size>" as SREQ_N_15B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_15B]] #BFD8D2
node "<size:12>Requirement</size>\n**Logic**\n**calculation**\n**interval**\n**measurment**\n<size:10>DREQ_108B</size>" as DREQ_108B [[../fsd/FSD120-design-requirements-specification.html#DREQ_108B]] #BFD8D2
node "<size:12>Requirement</size>\n**Logic**\n**calculation**\n**interval**\n<size:10>SWSREQ_007C</size>" as SWSREQ_007C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_007C]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #21**\n<size:10>TEST_300_121</size>" as TEST_300_121 [[../fsd/FSD300-software-module-tests.html#TEST_300_121]] #FFA76D
node "<size:12>Requirement</size>\n**Logic**\n**calculation**\n**interval**\n<size:10>SWSREQ_007A</size>" as SWSREQ_007A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_007A]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #20**\n<size:10>TEST_300_120</size>" as TEST_300_120 [[../fsd/FSD300-software-module-tests.html#TEST_300_120]] #FFA76D
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #19**\n<size:10>TEST_300_119</size>" as TEST_300_119 [[../fsd/FSD300-software-module-tests.html#TEST_300_119]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #22**\n<size:10>TEST_300_022</size>" as TEST_300_022 [[../fsd/FSD300-software-module-tests.html#TEST_300_022]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #21**\n<size:10>TEST_300_021</size>" as TEST_300_021 [[../fsd/FSD300-software-module-tests.html#TEST_300_021]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #23**\n<size:10>TEST_300_023</size>" as TEST_300_023 [[../fsd/FSD300-software-module-tests.html#TEST_300_023]] #FFA76D
node "<size:12>Requirement</size>\n**Logic**\n**calculation**\n**interval**\n<size:10>SWSREQ_007B</size>" as SWSREQ_007B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_007B]] #BFD8D2
node "<size:12>Requirement</size>\n**Logic**\n**calculation**\n**interval**\n<size:10>DREQ_108A</size>" as DREQ_108A [[../fsd/FSD120-design-requirements-specification.html#DREQ_108A]] #BFD8D2
node "<size:12>Requirement</size>\n**Internal**\n**failure**\n**monitoring**\n<size:10>SREQ_03A</size>" as SREQ_03A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_03A]] #BFD8D2
node "<size:12>Requirement</size>\n**Dangerous**\n**internal**\n**hardware**\n**failures shall**\n**be detected**\n<size:10>SREQ_N_01</size>" as SREQ_N_01 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_01]] #BFD8D2
node "<size:12>Hazard</size>\n**Internal**\n**hardware**\n**failure**\n<size:10>HAZARD_01</size>" as HAZARD_01 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_01]] #FFA76D
node "<size:12>Requirement</size>\n**Startup/contino**\n**us tests &**\n**diagnostic**\n<size:10>SREQ_16A</size>" as SREQ_16A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_16A]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**hash**\n<size:10>DREQ_LOGIC_202B</size>" as DREQ_LOGIC_202B [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_202B]] #BFD8D2
node "<size:12>Requirement</size>\n**Startup/contino**\n**us tests &**\n**diagnostic**\n<size:10>SREQ_16B</size>" as SREQ_16B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_16B]] #BFD8D2
node "<size:12>Requirement</size>\n**Restart and**\n**reset**\n<size:10>SREQ_N_19</size>" as SREQ_N_19 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_19]] #BFD8D2
node "<size:12>Hazard</size>\n**Restart can**\n**cause undefined**\n**function**\n<size:10>HAZARD_19</size>" as HAZARD_19 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_19]] #FFA76D
node "<size:12>Requirement</size>\n**Power supply**\n<size:10>SREQ_24</size>" as SREQ_24 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_24]] #BFD8D2
node "<size:12>Requirement</size>\n**Power supply**\n<size:10>SREQ_N_10</size>" as SREQ_N_10 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_10]] #BFD8D2
node "<size:12>Hazard</size>\n**Power supply**\n**failures**\n<size:10>HAZARD_10</size>" as HAZARD_10 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_10]] #FFA76D
node "<size:12>Requirement</size>\n**Over Voltage**\n**safe state**\n<size:10>DREQ_24D</size>" as DREQ_24D [[../fsd/FSD120-design-requirements-specification.html#DREQ_24D]] #BFD8D2
node "<size:12>Requirement</size>\n**ES1 according**\n**to IEC/EN**\n**62368-1**\n<size:10>SREQ_18B</size>" as SREQ_18B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_18B]] #BFD8D2
node "<size:12>Requirement</size>\n**Environmental**\n**conditions**\n<size:10>SREQ_N_18</size>" as SREQ_N_18 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_18]] #BFD8D2
node "<size:12>Hazard</size>\n**Environmental**\n**factors**\n<size:10>HAZARD_18</size>" as HAZARD_18 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_18]] #FFA76D
node "<size:12>Requirement</size>\n**CE/EMC**\n<size:10>SREQ_19</size>" as SREQ_19 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_19]] #BFD8D2
node "<size:12>Requirement</size>\n**Environment**\n**tests 61131-2**\n<size:10>DREQ_113A</size>" as DREQ_113A [[../fsd/FSD120-design-requirements-specification.html#DREQ_113A]] #BFD8D2
node "<size:12>Requirement</size>\n**SIL3/CAT4/PLe**\n<size:10>SREQ_01A</size>" as SREQ_01A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_01A]] #BFD8D2
node "<size:12>Market requirement</size>\n**SIL3/CAT4/PLe**\n<size:10>MREQ_01</size>" as MREQ_01 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_01]] #FFA76D
node "<size:12>Requirement</size>\n**High demand or**\n**continuous mode**\n**calculations**\n<size:10>SREQ_06B</size>" as SREQ_06B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_06B]] #BFD8D2
node "<size:12>Motivation</size>\n**high demand/con**\n**tinuous mode**\n<size:10>MOTIVATION_114_007</size>" as MOTIVATION_114_007 [[../fsd/FSD114-safety-requirements-specification.html#MOTIVATION_114_007]] #FFA76D
node "<size:12>Requirement</size>\n**High demand/con**\n**tinous mode**\n<size:10>SREQ_06A</size>" as SREQ_06A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_06A]] #BFD8D2
node "<size:12>Requirement</size>\n**Temperature**\n**tests**\n<size:10>DREQ_17C</size>" as DREQ_17C [[../fsd/FSD120-design-requirements-specification.html#DREQ_17C]] #BFD8D2
node "<size:12>Certificate</size>\n**60068-2 and**\n**61131-2**\n<size:10>CERT_0006</size>" as CERT_0006 [[../fsd/FSD103-standards-and-certifications-overview.html#CERT_0006]] #FFA76D
node "<size:12>Requirement</size>\n**Vibration tests**\n<size:10>DREQ_17B</size>" as DREQ_17B [[../fsd/FSD120-design-requirements-specification.html#DREQ_17B]] #BFD8D2
node "<size:12>Requirement</size>\n**Max total 70**\n**fits**\n<size:10>DREQ_107A</size>" as DREQ_107A [[../fsd/FSD120-design-requirements-specification.html#DREQ_107A]] #BFD8D2
node "<size:12>Certificate</size>\n**HW evaluation**\n**report**\n<size:10>CERT_0008</size>" as CERT_0008 [[../fsd/FSD103-standards-and-certifications-overview.html#CERT_0008]] #FFA76D
node "<size:12>Requirement</size>\n**Logic**\n**redundancy**\n**13849-1**\n<size:10>DREQ_REDUNDANCY_1</size>" as DREQ_REDUNDANCY_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_REDUNDANCY_1]] #BFD8D2
node "<size:12>Requirement</size>\n**PLC**\n<size:10>SREQ_01B</size>" as SREQ_01B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_01B]] #BFD8D2
node "<size:12>Market requirement</size>\n**PLC**\n<size:10>MREQ_02</size>" as MREQ_02 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_02]] #FFA76D
node "<size:12>Requirement</size>\n**Function block**\n**development**\n**procedure**\n<size:10>DREQ_LOGIC_201B</size>" as DREQ_LOGIC_201B [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_201B]] #BFD8D2
node "<size:12>Specification</size>\n**Function block**\n**development**\n**procedure**\n<size:10>FSD123_SPEC1</size>" as FSD123_SPEC1 [[../fsd/FSD123-function-block-development-procedure.html#FSD123_SPEC1]] #FEDCD2
node "<size:12>Requirement</size>\n**Function block**\n**programming**\n<size:10>DREQ_LOGIC_201A</size>" as DREQ_LOGIC_201A [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_201A]] #BFD8D2
node "<size:12>Requirement</size>\n**Block diagram**\n<size:10>SWSREQ_008A</size>" as SWSREQ_008A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_008A]] #BFD8D2
node "<size:12>Requirement</size>\n**Logic function**\n<size:10>DREQ_118A</size>" as DREQ_118A [[../fsd/FSD120-design-requirements-specification.html#DREQ_118A]] #BFD8D2
node "<size:12>Motivation</size>\n**SWSREQ_008A**\n<size:10>MOTIVATION_124_001</size>" as MOTIVATION_124_001 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MOTIVATION_124_001]] #FFA76D
node "<size:12>Requirement</size>\n**Output as**\n**function of**\n**inputs**\n<size:10>DREQ_122A</size>" as DREQ_122A [[../fsd/FSD120-design-requirements-specification.html#DREQ_122A]] #BFD8D2
node "<size:12>Motivation</size>\n**Element safety**\n**functions**\n<size:10>MOTIVATION_115_001</size>" as MOTIVATION_115_001 [[../fsd/FSD115-element-safety-functions.html#MOTIVATION_115_001]] #FFA76D
node "<size:12>Requirement</size>\n**Relays 10 fits**\n<size:10>DREQ_105A</size>" as DREQ_105A [[../fsd/FSD120-design-requirements-specification.html#DREQ_105A]] #BFD8D2
node "<size:12>Requirement</size>\n**Potential free**\n**outputs**\n<size:10>SREQ_12</size>" as SREQ_12 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_12]] #BFD8D2
node "<size:12>Market requirement</size>\n**Relay outputs**\n<size:10>MREQ_04</size>" as MREQ_04 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_04]] #FFA76D
node "<size:12>Requirement</size>\n**Relays in**\n**series/parallel**\n<size:10>DREQ_127A</size>" as DREQ_127A [[../fsd/FSD120-design-requirements-specification.html#DREQ_127A]] #BFD8D2
node "<size:12>Motivation</size>\n**Relays in**\n**parallel/series**\n<size:10>MOTIVATION_220_009</size>" as MOTIVATION_220_009 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_009]] #FFA76D
node "<size:12>Requirement</size>\n**Redundant**\n**relays**\n<size:10>DREQ_12A</size>" as DREQ_12A [[../fsd/FSD120-design-requirements-specification.html#DREQ_12A]] #BFD8D2
node "<size:12>Requirement</size>\n**Relay outputs**\n<size:10>SWSREQ_023A</size>" as SWSREQ_023A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_023A]] #BFD8D2
node "<size:12>RESULT</size>\n**HW module test**\n**#1**\n<size:10>TEST_300_201</size>" as TEST_300_201 [[../fsd/FSD300-software-module-tests.html#TEST_300_201]] #FFA76D
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #26**\n<size:10>TEST_300_126</size>" as TEST_300_126 [[../fsd/FSD300-software-module-tests.html#TEST_300_126]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #41**\n<size:10>TEST_300_041</size>" as TEST_300_041 [[../fsd/FSD300-software-module-tests.html#TEST_300_041]] #FFA76D
node "<size:12>Motivation</size>\n**Redundant**\n**relays**\n<size:10>MOTIVATION_220_008</size>" as MOTIVATION_220_008 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_008]] #FFA76D
node "<size:12>Requirement</size>\n**Redundancy**\n**relays**\n<size:10>DREQ_01E</size>" as DREQ_01E [[../fsd/FSD120-design-requirements-specification.html#DREQ_01E]] #BFD8D2
node "<size:12>Motivation</size>\n**SFF>99%**\n<size:10>MOTIVATION_212_001</size>" as MOTIVATION_212_001 [[../fsd/FSD212-Derivation_of_SFF.html#MOTIVATION_212_001]] #FFA76D
node "<size:12>Requirement</size>\n**Logic < 10 fits**\n<size:10>DREQ_103A</size>" as DREQ_103A [[../fsd/FSD120-design-requirements-specification.html#DREQ_103A]] #BFD8D2
node "<size:12>Requirement</size>\n**CAT4/HFT 1**\n<size:10>DREQ_CAT4_1</size>" as DREQ_CAT4_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_CAT4_1]] #BFD8D2
node "<size:12>Certificate</size>\n**IEC 61131-2**\n<size:10>CERT_0001</size>" as CERT_0001 [[../fsd/FSD103-standards-and-certifications-overview.html#CERT_0001]] #FFA76D
node "<size:12>Requirement</size>\n**RED (Radio**\n**Equipment**\n**Directive)**\n<size:10>DREQ_EMC_2</size>" as DREQ_EMC_2 [[../fsd/FSD120-design-requirements-specification.html#DREQ_EMC_2]] #BFD8D2
node "<size:12>Certificate</size>\n**RED**\n<size:10>CERT_0007</size>" as CERT_0007 [[../fsd/FSD103-standards-and-certifications-overview.html#CERT_0007]] #FFA76D
node "<size:12>Requirement</size>\n**EMC**\n<size:10>DREQ_EMC_1</size>" as DREQ_EMC_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_EMC_1]] #BFD8D2
node "<size:12>Requirement</size>\n**ES1 according**\n**to IEC/EN**\n**62368-1**\n<size:10>SREQ_18C</size>" as SREQ_18C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_18C]] #BFD8D2
node "<size:12>Requirement</size>\n**Voltage**\n**requirement**\n<size:10>DREQ_MANUAL_10</size>" as DREQ_MANUAL_10 [[../fsd/FSD120-design-requirements-specification.html#DREQ_MANUAL_10]] #BFD8D2
node "<size:12>Motivation</size>\n**Voltages in**\n**manual**\n<size:10>MOTIVATION_501_100</size>" as MOTIVATION_501_100 [[../fsd/FSD501-safety-manual.html#MOTIVATION_501_100]] #FFA76D
node "<size:12>Requirement</size>\n**ES1 according**\n**to IEC/EN**\n**62368-1**\n<size:10>SREQ_18A</size>" as SREQ_18A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_18A]] #BFD8D2
node "<size:12>Requirement</size>\n**Environmental**\n**conditions**\n<size:10>SREQ_17D</size>" as SREQ_17D [[../fsd/FSD114-safety-requirements-specification.html#SREQ_17D]] #BFD8D2
node "<size:12>Requirement</size>\n**Manual**\n**environmental**\n**conditions**\n<size:10>DREQ_MANUAL_11</size>" as DREQ_MANUAL_11 [[../fsd/FSD120-design-requirements-specification.html#DREQ_MANUAL_11]] #BFD8D2
node "<size:12>Motivation</size>\n**Storage and**\n**operating**\n**environment**\n<size:10>MOTIVATION_501_102</size>" as MOTIVATION_501_102 [[../fsd/FSD501-safety-manual.html#MOTIVATION_501_102]] #FFA76D
node "<size:12>Requirement</size>\n**Operating**\n**temperature**\n<size:10>SREQ_17C</size>" as SREQ_17C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_17C]] #BFD8D2
node "<size:12>Market requirement</size>\n**Environmental**\n**conditions**\n<size:10>MREQ_09</size>" as MREQ_09 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_09]] #FFA76D
node "<size:12>Requirement</size>\n**Overheating**\n**shut off**\n<size:10>DREQ_17D</size>" as DREQ_17D [[../fsd/FSD120-design-requirements-specification.html#DREQ_17D]] #BFD8D2
node "<size:12>TEST</size>\n**Overheating**\n**shut off**\n<size:10>TEST_150_013</size>" as TEST_150_013 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_013]] #DCB239
node "<size:12>RESULT</size>\n**Overheating**\n**shut off**\n<size:10>RESULT_150_013</size>" as RESULT_150_013 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_013]] #FFA76D
node "<size:12>Requirement</size>\n**Storage**\n**temperature**\n<size:10>SREQ_17B</size>" as SREQ_17B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_17B]] #BFD8D2
node "<size:12>Requirement</size>\n**Environmental**\n**conditions**\n<size:10>SREQ_17A</size>" as SREQ_17A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_17A]] #BFD8D2
node "<size:12>Requirement</size>\n**User selectable**\n**max/min power**\n**supply voltage**\n<size:10>DREQ_124A</size>" as DREQ_124A [[../fsd/FSD120-design-requirements-specification.html#DREQ_124A]] #BFD8D2
node "<size:12>TEST</size>\n**Voltage**\n**threshold**\n**configuration**\n<size:10>TEST_150_022</size>" as TEST_150_022 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_022]] #DCB239
node "<size:12>RESULT</size>\n**Voltage**\n**threshold**\n**configuration**\n<size:10>RESULT_150_022</size>" as RESULT_150_022 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_022]] #FFA76D
node "<size:12>Requirement</size>\n**Power supply <**\n**20 fits**\n<size:10>DREQ_101A</size>" as DREQ_101A [[../fsd/FSD120-design-requirements-specification.html#DREQ_101A]] #BFD8D2
node "<size:12>Requirement</size>\n**PSU CAT4/SIL3**\n<size:10>DREQ_PSU_01</size>" as DREQ_PSU_01 [[../fsd/FSD120-design-requirements-specification.html#DREQ_PSU_01]] #BFD8D2
node "<size:12>Requirement</size>\n**Maximum voltage**\n<size:10>SWSREQ_005B</size>" as SWSREQ_005B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_005B]] #BFD8D2
node "<size:12>TEST</size>\n**Overvoltage**\n**results in safe**\n**state**\n<size:10>TEST_150_005</size>" as TEST_150_005 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_005]] #DCB239
node "<size:12>RESULT</size>\n**Overvoltage**\n**results in safe**\n**state**\n<size:10>RESULT_150_005</size>" as RESULT_150_005 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_005]] #FFA76D
node "<size:12>Requirement</size>\n**Maximum voltage**\n<size:10>SWSREQ_005A</size>" as SWSREQ_005A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_005A]] #BFD8D2
node "<size:12>Motivation</size>\n**SWSREQ_004A**\n<size:10>MOTIVATION_124_003</size>" as MOTIVATION_124_003 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MOTIVATION_124_003]] #FFA76D
node "<size:12>Requirement</size>\n**Minimum voltage**\n<size:10>SWSREQ_004A</size>" as SWSREQ_004A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_004A]] #BFD8D2
node "<size:12>TEST</size>\n**Undervoltage**\n**results in safe**\n**state**\n<size:10>TEST_150_004</size>" as TEST_150_004 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_004]] #DCB239
node "<size:12>Requirement</size>\n**Minimum voltage**\n<size:10>SWSREQ_004B</size>" as SWSREQ_004B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_004B]] #BFD8D2
node "<size:12>RESULT</size>\n**Undervoltage**\n**results in safe**\n**state**\n<size:10>RESULT_150_004</size>" as RESULT_150_004 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_004]] #FFA76D
node "<size:12>Requirement</size>\n**Unstable**\n**Voltage safe**\n**state**\n<size:10>DREQ_24C</size>" as DREQ_24C [[../fsd/FSD120-design-requirements-specification.html#DREQ_24C]] #BFD8D2
node "<size:12>Requirement</size>\n**Under voltage**\n**safe state**\n<size:10>DREQ_24B</size>" as DREQ_24B [[../fsd/FSD120-design-requirements-specification.html#DREQ_24B]] #BFD8D2
node "<size:12>Requirement</size>\n**Loss of power**\n**safe state**\n<size:10>DREQ_24A</size>" as DREQ_24A [[../fsd/FSD120-design-requirements-specification.html#DREQ_24A]] #BFD8D2
node "<size:12>Requirement</size>\n**Loss of power**\n**safe state**\n<size:10>SWSREQ_003A</size>" as SWSREQ_003A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_003A]] #BFD8D2
node "<size:12>TEST</size>\n**Loss of power**\n**results in safe**\n**state**\n<size:10>TEST_150_003</size>" as TEST_150_003 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_003]] #DCB239
node "<size:12>RESULT</size>\n**Loss of power**\n**results in safe**\n**state**\n<size:10>RESULT_150_003</size>" as RESULT_150_003 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_003]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n<size:10>SREQ_N_07C</size>" as SREQ_N_07C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_07C]] #BFD8D2
node "<size:12>Hazard</size>\n**Corrupted**\n**configuration**\n<size:10>HAZARD_13</size>" as HAZARD_13 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_13]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n<size:10>SREQ_N_07B</size>" as SREQ_N_07B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_07B]] #BFD8D2
node "<size:12>Hazard</size>\n**Failure to**\n**download**\n<size:10>HAZARD_12</size>" as HAZARD_12 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_12]] #FFA76D
node "<size:12>Hazard</size>\n**Downloading of**\n**configuration**\n**to wrong**\n**destination**\n**nodes**\n<size:10>HAZARD_11</size>" as HAZARD_11 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_11]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n<size:10>SREQ_N_07D</size>" as SREQ_N_07D [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_07D]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**download**\n**correct unit**\n<size:10>DREQ_LOGIC_210C</size>" as DREQ_LOGIC_210C [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_210C]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**correct**\n**addressing**\n<size:10>SWSREQ_031B</size>" as SWSREQ_031B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_031B]] #BFD8D2
node "<size:12>TEST</size>\n**addressing via**\n**radio**\n<size:10>TEST_150_017</size>" as TEST_150_017 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_017]] #DCB239
node "<size:12>RESULT</size>\n**addressing via**\n**radio**\n<size:10>RESULT_150_017</size>" as RESULT_150_017 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_017]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**download**\n**correct unit**\n<size:10>DREQ_LOGIC_210B</size>" as DREQ_LOGIC_210B [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_210B]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**download**\n**correct unit**\n<size:10>DREQ_LOGIC_210A</size>" as DREQ_LOGIC_210A [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_210A]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**correct**\n**addressing**\n<size:10>SWSREQ_031A</size>" as SWSREQ_031A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_031A]] #BFD8D2
node "<size:12>TEST</size>\n**Configuration**\n**correct**\n**addressing**\n<size:10>TEST_150_016</size>" as TEST_150_016 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_016]] #DCB239
node "<size:12>RESULT</size>\n**Configuration**\n**correct**\n**addressing**\n<size:10>RESULT_150_016</size>" as RESULT_150_016 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_016]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**mode interfaces**\n<size:10>DREQ_LOGIC_200H</size>" as DREQ_LOGIC_200H [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200H]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode interfaces**\n<size:10>SWSREQ_030H</size>" as SWSREQ_030H [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030H]] #BFD8D2
node "<size:12>TEST</size>\n**Configure via**\n**USB, radio, and**\n**CAN**\n<size:10>TEST_150_015</size>" as TEST_150_015 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_015]] #DCB239
node "<size:12>RESULT</size>\n**Configure via**\n**USB, radio, and**\n**CAN**\n<size:10>RESULT_150_015</size>" as RESULT_150_015 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_015]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200E</size>" as DREQ_LOGIC_200E [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200E]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**authorization**\n<size:10>SREQ_10B</size>" as SREQ_10B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_10B]] #BFD8D2
node "<size:12>Requirement</size>\n**Unauthorized**\n**use**\n<size:10>SREQ_N_17</size>" as SREQ_N_17 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_17]] #BFD8D2
node "<size:12>Hazard</size>\n**Unauthorized**\n**access**\n**(malicious and**\n**unintentional)**\n<size:10>HAZARD_17</size>" as HAZARD_17 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_17]] #FFA76D
node "<size:12>Requirement</size>\n**Means of**\n**configuration**\n<size:10>SREQ_10A</size>" as SREQ_10A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_10A]] #BFD8D2
node "<size:12>Market requirement</size>\n**Memory card**\n<size:10>MREQ_03</size>" as MREQ_03 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_03]] #FFA76D
node "<size:12>Requirement</size>\n**Memory card**\n**replacement**\n<size:10>DREQ_10B</size>" as DREQ_10B [[../fsd/FSD120-design-requirements-specification.html#DREQ_10B]] #BFD8D2
node "<size:12>Requirement</size>\n**Memory card**\n**replacement**\n<size:10>SWSREQ_031E</size>" as SWSREQ_031E [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_031E]] #BFD8D2
node "<size:12>TEST</size>\n**Memory card**\n**replacement**\n<size:10>TEST_150_020</size>" as TEST_150_020 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_020]] #DCB239
node "<size:12>RESULT</size>\n**Memory card**\n**replacement**\n<size:10>RESULT_150_020</size>" as RESULT_150_020 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_020]] #FFA76D
node "<size:12>Motivation</size>\n**Memory card**\n<size:10>MOTIVATION_220_012</size>" as MOTIVATION_220_012 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_012]] #FFA76D
node "<size:12>Requirement</size>\n**No user**\n**interface for**\n**unit setup**\n<size:10>DREQ_10A</size>" as DREQ_10A [[../fsd/FSD120-design-requirements-specification.html#DREQ_10A]] #BFD8D2
node "<size:12>Requirement</size>\n**No user**\n**interface for**\n**unit setup**\n<size:10>SWSREQ_031D</size>" as SWSREQ_031D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_031D]] #BFD8D2
node "<size:12>TEST</size>\n**No direct user**\n**interface for**\n**unit setup**\n<size:10>TEST_150_019</size>" as TEST_150_019 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_019]] #DCB239
node "<size:12>RESULT</size>\n**No direct user**\n**interface for**\n**unit setup**\n<size:10>RESULT_150_019</size>" as RESULT_150_019 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_019]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030E</size>" as SWSREQ_030E [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030E]] #BFD8D2
node "<size:12>TEST</size>\n**Wrong password**\n**prevents**\n**configuration**\n<size:10>TEST_150_014</size>" as TEST_150_014 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_014]] #DCB239
node "<size:12>RESULT</size>\n**Wrong password**\n**prevents**\n**configuration**\n<size:10>RESULT_150_014</size>" as RESULT_150_014 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_014]] #FFA76D
node "<size:12>Hazard</size>\n**During service,**\n**replacement of**\n**a unit results**\n**in wrong**\n**configuration**\n**or pairing**\n<size:10>HAZARD_08</size>" as HAZARD_08 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_08]] #FFA76D
node "<size:12>Hazard</size>\n**Human error**\n**during**\n**configuration**\n<size:10>HAZARD_7</size>" as HAZARD_7 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_7]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**download**\n**success/fail**\n<size:10>DREQ_LOGIC_210D</size>" as DREQ_LOGIC_210D [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_210D]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**success or**\n**failure**\n<size:10>SWSREQ_031C</size>" as SWSREQ_031C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_031C]] #BFD8D2
node "<size:12>TEST</size>\n**Configuration**\n**success or**\n**failure**\n<size:10>TEST_150_018</size>" as TEST_150_018 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_018]] #DCB239
node "<size:12>RESULT</size>\n**Configuration**\n**success or**\n**failure**\n<size:10>RESULT_150_018</size>" as RESULT_150_018 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_018]] #FFA76D
node "<size:12>Requirement</size>\n**Procedures for**\n**correctly**\n**configuring**\n**Safety**\n**Simplifier**\n<size:10>SREQ_N_07A</size>" as SREQ_N_07A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_07A]] #BFD8D2
node "<size:12>Requirement</size>\n**Manual, user**\n**configuration**\n**CAN**\n<size:10>DREQ_MANUAL_22</size>" as DREQ_MANUAL_22 [[../fsd/FSD120-design-requirements-specification.html#DREQ_MANUAL_22]] #BFD8D2
node "<size:12>Motivation</size>\n**USB programming**\n**and**\n**configuration**\n<size:10>MOTIVATION_501_105</size>" as MOTIVATION_501_105 [[../fsd/FSD501-safety-manual.html#MOTIVATION_501_105]] #FFA76D
node "<size:12>Requirement</size>\n**Manual, user**\n**configuration**\n**radio**\n<size:10>DREQ_MANUAL_21</size>" as DREQ_MANUAL_21 [[../fsd/FSD120-design-requirements-specification.html#DREQ_MANUAL_21]] #BFD8D2
node "<size:12>Motivation</size>\n**Radio**\n**programming**\n<size:10>MOTIVATION_501_104</size>" as MOTIVATION_501_104 [[../fsd/FSD501-safety-manual.html#MOTIVATION_501_104]] #FFA76D
node "<size:12>Requirement</size>\n**Manual, user**\n**configuration**\n**USB**\n<size:10>DREQ_MANUAL_20</size>" as DREQ_MANUAL_20 [[../fsd/FSD120-design-requirements-specification.html#DREQ_MANUAL_20]] #BFD8D2
node "<size:12>Motivation</size>\n**USB programming**\n<size:10>MOTIVATION_501_103</size>" as MOTIVATION_501_103 [[../fsd/FSD501-safety-manual.html#MOTIVATION_501_103]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**hash**\n<size:10>DREQ_LOGIC_202A</size>" as DREQ_LOGIC_202A [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_202A]] #BFD8D2
node "<size:12>Requirement</size>\n**Start-up**\n**configuration**\n**check**\n<size:10>SWSREQ_032C</size>" as SWSREQ_032C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_032C]] #BFD8D2
node "<size:12>Requirement</size>\n**CPUs check same**\n**configuration**\n<size:10>DREQ_C2C_7</size>" as DREQ_C2C_7 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_7]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU2CPU**\n**communication**\n<size:10>SREQ_N_09D</size>" as SREQ_N_09D [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_09D]] #BFD8D2
node "<size:12>Hazard</size>\n**Communication**\n**errors for all**\n**communication**\n**interfaces, as**\n**defined in**\n**61784-3**\n<size:10>HAZARD_09</size>" as HAZARD_09 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_09]] #FFA76D
node "<size:12>Requirement</size>\n**General black**\n**channel**\n**interface**\n<size:10>SREQ_N_09C</size>" as SREQ_N_09C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_09C]] #BFD8D2
node "<size:12>Black Channel</size>\n**General Black**\n**Channel type 1**\n**- Point-to-**\n**Point**\n<size:10>BLCH0002</size>" as BLCH0002 [[../black_channels/BLCH0002-GBLCH1.html#BLCH0002]] #FFA76D
node "<size:12>Requirement</size>\n**CAN**\n**communication**\n<size:10>SREQ_N_09B</size>" as SREQ_N_09B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_09B]] #BFD8D2
node "<size:12>Market requirement</size>\n**SimpleCAN**\n<size:10>MREQ_08</size>" as MREQ_08 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_08]] #FFA76D
node "<size:12>Market requirement</size>\n**CAN**\n**communication**\n<size:10>MREQ_07</size>" as MREQ_07 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_07]] #FFA76D
node "<size:12>Requirement</size>\n**CAN**\n**communication**\n**protocol**\n<size:10>DREQ_CAN_2</size>" as DREQ_CAN_2 [[../fsd/FSD120-design-requirements-specification.html#DREQ_CAN_2]] #BFD8D2
node "<size:12>Requirement</size>\n**SimpleCAN**\n<size:10>SWSREQ_038A</size>" as SWSREQ_038A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_038A]] #BFD8D2
node "<size:12>Requirement</size>\n**SimpleCAN**\n**requirements**\n<size:10>SIMPLECAN_ALL_REQS</size>" as SIMPLECAN_ALL_REQS [[../specs/simplecan-reqs.html#SIMPLECAN_ALL_REQS]] #BFD8D2
node "<size:12>Requirement</size>\n**Safety manual**\n**requirements**\n<size:10>SC_REQ_46</size>" as SC_REQ_46 [[../specs/simplecan-reqs.html#SC_REQ_46]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_042</size>" as MOTIVATION_230_042 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_042]] #FFA76D
node "<size:12>Requirement</size>\n**Response time**\n<size:10>SC_REQ_45</size>" as SC_REQ_45 [[../specs/simplecan-reqs.html#SC_REQ_45]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_041</size>" as MOTIVATION_230_041 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_041]] #FFA76D
node "<size:12>Requirement</size>\n**Installation**\n**requirements**\n<size:10>SC_REQ_44</size>" as SC_REQ_44 [[../specs/simplecan-reqs.html#SC_REQ_44]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_040</size>" as MOTIVATION_230_040 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_040]] #FFA76D
node "<size:12>Requirement</size>\n**Unauthorized**\n**access to SRLDs**\n<size:10>SC_REQ_43</size>" as SC_REQ_43 [[../specs/simplecan-reqs.html#SC_REQ_43]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_039</size>" as MOTIVATION_230_039 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_039]] #FFA76D
node "<size:12>Requirement</size>\n**Maximum packets**\n**with incorrect**\n**CRC**\n<size:10>SC_REQ_42</size>" as SC_REQ_42 [[../specs/simplecan-reqs.html#SC_REQ_42]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_038</size>" as MOTIVATION_230_038 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_038]] #FFA76D
node "<size:12>Requirement</size>\n**Warm start**\n**after fault**\n<size:10>SC_REQ_41</size>" as SC_REQ_41 [[../specs/simplecan-reqs.html#SC_REQ_41]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_037</size>" as MOTIVATION_230_037 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_037]] #FFA76D
node "<size:12>Requirement</size>\n**No safety**\n**communication**\n**in safe state**\n<size:10>SC_REQ_40</size>" as SC_REQ_40 [[../specs/simplecan-reqs.html#SC_REQ_40]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_036</size>" as MOTIVATION_230_036 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_036]] #FFA76D
node "<size:12>Requirement</size>\n**Change of**\n**configuration**\n**only possible**\n**in safe state**\n<size:10>SC_REQ_39</size>" as SC_REQ_39 [[../specs/simplecan-reqs.html#SC_REQ_39]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_035</size>" as MOTIVATION_230_035 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_035]] #FFA76D
node "<size:12>Requirement</size>\n**SR**\n**configuration**\n**tool aid user**\n**for addressing**\n<size:10>SC_REQ_38</size>" as SC_REQ_38 [[../specs/simplecan-reqs.html#SC_REQ_38]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_034</size>" as MOTIVATION_230_034 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_034]] #FFA76D
node "<size:12>Requirement</size>\n**SR**\n**configuration**\n**addressing**\n<size:10>SC_REQ_37</size>" as SC_REQ_37 [[../specs/simplecan-reqs.html#SC_REQ_37]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_033</size>" as MOTIVATION_230_033 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_033]] #FFA76D
node "<size:12>Requirement</size>\n**SR**\n**configuration**\n**tool**\n**verification**\n<size:10>SC_REQ_36</size>" as SC_REQ_36 [[../specs/simplecan-reqs.html#SC_REQ_36]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_032</size>" as MOTIVATION_230_032 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_032]] #FFA76D
node "<size:12>Requirement</size>\n**SR**\n**configuration**\n**tool**\n<size:10>SC_REQ_35</size>" as SC_REQ_35 [[../specs/simplecan-reqs.html#SC_REQ_35]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_031</size>" as MOTIVATION_230_031 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_031]] #FFA76D
node "<size:12>Requirement</size>\n**Configuration**\n**verification at**\n**startup**\n<size:10>SC_REQ_34</size>" as SC_REQ_34 [[../specs/simplecan-reqs.html#SC_REQ_34]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_030</size>" as MOTIVATION_230_030 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_030]] #FFA76D
node "<size:12>Requirement</size>\n**Maximum**\n**received packet**\n**buffering**\n<size:10>SC_REQ_33</size>" as SC_REQ_33 [[../specs/simplecan-reqs.html#SC_REQ_33]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_029</size>" as MOTIVATION_230_029 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_029]] #FFA76D
node "<size:12>Requirement</size>\n**Time sync max**\n**delay**\n<size:10>SC_REQ_32</size>" as SC_REQ_32 [[../specs/simplecan-reqs.html#SC_REQ_32]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_028</size>" as MOTIVATION_230_028 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_028]] #FFA76D
node "<size:12>Requirement</size>\n**Clock drift**\n<size:10>SC_REQ_31</size>" as SC_REQ_31 [[../specs/simplecan-reqs.html#SC_REQ_31]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_027</size>" as MOTIVATION_230_027 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_027]] #FFA76D
node "<size:12>Requirement</size>\n**SCL enter**\n**synced state**\n<size:10>SC_REQ_30</size>" as SC_REQ_30 [[../specs/simplecan-reqs.html#SC_REQ_30]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_026</size>" as MOTIVATION_230_026 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_026]] #FFA76D
node "<size:12>Requirement</size>\n**Startup in**\n**unsynced state**\n<size:10>SC_REQ_29</size>" as SC_REQ_29 [[../specs/simplecan-reqs.html#SC_REQ_29]] #BFD8D2
node "<size:12>Requirement</size>\n**Time sync**\n**transmission**\n**errors**\n<size:10>SC_REQ_28</size>" as SC_REQ_28 [[../specs/simplecan-reqs.html#SC_REQ_28]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_024</size>" as MOTIVATION_230_024 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_024]] #FFA76D
node "<size:12>Requirement</size>\n**Master time**\n**sync wait**\n**before tx**\n<size:10>SC_REQ_27</size>" as SC_REQ_27 [[../specs/simplecan-reqs.html#SC_REQ_27]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_023</size>" as MOTIVATION_230_023 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_023]] #FFA76D
node "<size:12>Requirement</size>\n**Multiple**\n**masters safe**\n**state**\n<size:10>SC_REQ_26</size>" as SC_REQ_26 [[../specs/simplecan-reqs.html#SC_REQ_26]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_022</size>" as MOTIVATION_230_022 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_022]] #FFA76D
node "<size:12>Requirement</size>\n**Master**\n**determination**\n<size:10>SC_REQ_25</size>" as SC_REQ_25 [[../specs/simplecan-reqs.html#SC_REQ_25]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_021</size>" as MOTIVATION_230_021 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_021]] #FFA76D
node "<size:12>Requirement</size>\n**Model A SCL**\n**forwarding**\n<size:10>SC_REQ_24</size>" as SC_REQ_24 [[../specs/simplecan-reqs.html#SC_REQ_24]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_020</size>" as MOTIVATION_230_020 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_020]] #FFA76D
node "<size:12>Requirement</size>\n**Time sync**\n**control packets**\n**abort**\n<size:10>SC_REQ_23</size>" as SC_REQ_23 [[../specs/simplecan-reqs.html#SC_REQ_23]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_019</size>" as MOTIVATION_230_019 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_019]] #FFA76D
node "<size:12>Requirement</size>\n**master packet**\n**time sync**\n**frequencies**\n<size:10>SC_REQ_22</size>" as SC_REQ_22 [[../specs/simplecan-reqs.html#SC_REQ_22]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_018</size>" as MOTIVATION_230_018 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_018]] #FFA76D
node "<size:12>Requirement</size>\n**SR data**\n**transmission**\n**cycle**\n**requirement**\n<size:10>SC_REQ_21</size>" as SC_REQ_21 [[../specs/simplecan-reqs.html#SC_REQ_21]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_017</size>" as MOTIVATION_230_017 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_017]] #FFA76D
node "<size:12>Requirement</size>\n**SR data**\n**transmission**\n**consumers**\n<size:10>SC_REQ_20</size>" as SC_REQ_20 [[../specs/simplecan-reqs.html#SC_REQ_20]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_016</size>" as MOTIVATION_230_016 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_016]] #FFA76D
node "<size:12>Requirement</size>\n**SR data**\n**transmission**\n**producers**\n<size:10>SC_REQ_19</size>" as SC_REQ_19 [[../specs/simplecan-reqs.html#SC_REQ_19]] #BFD8D2
node "<size:12>Requirement</size>\n**SR data**\n**transmission**\n<size:10>SC_REQ_18</size>" as SC_REQ_18 [[../specs/simplecan-reqs.html#SC_REQ_18]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_015</size>" as MOTIVATION_230_015 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_015]] #FFA76D
node "<size:12>Requirement</size>\n**CRC algorithm**\n**usage**\n<size:10>SC_REQ_17</size>" as SC_REQ_17 [[../specs/simplecan-reqs.html#SC_REQ_17]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_014</size>" as MOTIVATION_230_014 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_014]] #FFA76D
node "<size:12>Requirement</size>\n**safety related**\n**configuration**\n<size:10>SC_REQ_16</size>" as SC_REQ_16 [[../specs/simplecan-reqs.html#SC_REQ_16]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_013</size>" as MOTIVATION_230_013 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_013]] #FFA76D
node "<size:12>Requirement</size>\n**SC-ID node hash**\n<size:10>SC_REQ_15</size>" as SC_REQ_15 [[../specs/simplecan-reqs.html#SC_REQ_15]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_012</size>" as MOTIVATION_230_012 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_012]] #FFA76D
node "<size:12>Requirement</size>\n**SRLD safe state**\n<size:10>SC_REQ_14</size>" as SC_REQ_14 [[../specs/simplecan-reqs.html#SC_REQ_14]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_011</size>" as MOTIVATION_230_011 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_011]] #FFA76D
node "<size:12>Requirement</size>\n**SDD**\n**requirements**\n<size:10>SC_REQ_12</size>" as SC_REQ_12 [[../specs/simplecan-reqs.html#SC_REQ_12]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_010</size>" as MOTIVATION_230_010 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_010]] #FFA76D
node "<size:12>Requirement</size>\n**SimpleCAN and**\n**EN 11989-1**\n<size:10>SC_REQ_11</size>" as SC_REQ_11 [[../specs/simplecan-reqs.html#SC_REQ_11]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_009</size>" as MOTIVATION_230_009 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_009]] #FFA76D
node "<size:12>Requirement</size>\n**single field-**\n**bus usage**\n<size:10>SC_REQ_10</size>" as SC_REQ_10 [[../specs/simplecan-reqs.html#SC_REQ_10]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_008</size>" as MOTIVATION_230_008 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_008]] #FFA76D
node "<size:12>Requirement</size>\n**SR data**\n**acknowledgement**\n<size:10>SC_REQ_09</size>" as SC_REQ_09 [[../specs/simplecan-reqs.html#SC_REQ_09]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_007</size>" as MOTIVATION_230_007 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_007]] #FFA76D
node "<size:12>Requirement</size>\n**SR**\n**communication**\n**independance**\n<size:10>SC_REQ_08</size>" as SC_REQ_08 [[../specs/simplecan-reqs.html#SC_REQ_08]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_006</size>" as MOTIVATION_230_006 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_006]] #FFA76D
node "<size:12>Requirement</size>\n**safety devices**\n**compliance with**\n**IEC 61326-3-1**\n**and IEC**\n**61000-6-7**\n<size:10>SC_REQ_07</size>" as SC_REQ_07 [[../specs/simplecan-reqs.html#SC_REQ_07]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_005</size>" as MOTIVATION_230_005 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_005]] #FFA76D
node "<size:12>Requirement</size>\n**SRCP and EN**\n**61508**\n<size:10>SC_REQ_06</size>" as SC_REQ_06 [[../specs/simplecan-reqs.html#SC_REQ_06]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_004</size>" as MOTIVATION_230_004 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_004]] #FFA76D
node "<size:12>Requirement</size>\n**safe state**\n**definitions**\n<size:10>SC_REQ_05</size>" as SC_REQ_05 [[../specs/simplecan-reqs.html#SC_REQ_05]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_003</size>" as MOTIVATION_230_003 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_003]] #FFA76D
node "<size:12>Requirement</size>\n**SRCP**\n**contribution**\n<size:10>SC_REQ_04</size>" as SC_REQ_04 [[../specs/simplecan-reqs.html#SC_REQ_04]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_002</size>" as MOTIVATION_230_002 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_002]] #FFA76D
node "<size:12>Requirement</size>\n**high demand**\n**continuous mode**\n<size:10>SC_REQ_03</size>" as SC_REQ_03 [[../specs/simplecan-reqs.html#SC_REQ_03]] #BFD8D2
node "<size:12>Motivation</size>\n**Title**\n<size:10>MOTIVATION_230_001</size>" as MOTIVATION_230_001 [[../fsd/FSD230-simplecan-implementation.html#MOTIVATION_230_001]] #FFA76D
node "<size:12>Requirement</size>\n**SRCP document**\n**requirements**\n<size:10>SC_REQ_02</size>" as SC_REQ_02 [[../specs/simplecan-reqs.html#SC_REQ_02]] #BFD8D2
node "<size:12>Requirement</size>\n**Mandatory**\n**functions**\n<size:10>SC_REQ_01</size>" as SC_REQ_01 [[../specs/simplecan-reqs.html#SC_REQ_01]] #BFD8D2
node "<size:12>Requirement</size>\n**CAN**\n**communication**\n**HW**\n<size:10>DREQ_CAN_1</size>" as DREQ_CAN_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_CAN_1]] #BFD8D2
node "<size:12>Requirement</size>\n**Radio**\n**communication**\n<size:10>SREQ_N_09A</size>" as SREQ_N_09A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_09A]] #BFD8D2
node "<size:12>Requirement</size>\n**HW radio black**\n**channel**\n<size:10>DREQ_RADIO_1</size>" as DREQ_RADIO_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_1]] #BFD8D2
node "<size:12>Requirement</size>\n**Radio black**\n**channel**\n<size:10>SWSREQ_034A</size>" as SWSREQ_034A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_034A]] #BFD8D2
node "<size:12>Black Channel</size>\n**Radio**\n**Communication**\n<size:10>BLCH0001</size>" as BLCH0001 [[../black_channels/BLCH0001-Radio.html#BLCH0001]] #FFA76D
node "<size:12>Requirement</size>\n**Radio timeout**\n<size:10>SWSREQ_035D</size>" as SWSREQ_035D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_035D]] #BFD8D2
node "<size:12>Requirement</size>\n**Radio timeout**\n<size:10>DREQ_RADIO_3B</size>" as DREQ_RADIO_3B [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_3B]] #BFD8D2
node "<size:12>Market requirement</size>\n**Radio**\n**communication**\n<size:10>MREQ_06</size>" as MREQ_06 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_06]] #FFA76D
node "<size:12>Requirement</size>\n**No safety**\n**critical**\n**failure**\n**indication**\n<size:10>DREQ_RADIO_11</size>" as DREQ_RADIO_11 [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_11]] #BFD8D2
node "<size:12>Requirement</size>\n**Global memories**\n**startup test**\n<size:10>DREQ_RADIO_10</size>" as DREQ_RADIO_10 [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_10]] #BFD8D2
node "<size:12>TEST</size>\n**Global memory**\n**startup test**\n<size:10>TEST_150_023</size>" as TEST_150_023 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_023]] #DCB239
node "<size:12>RESULT</size>\n**Global memory**\n**startup test**\n<size:10>RESULT_150_023</size>" as RESULT_150_023 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_023]] #FFA76D
node "<size:12>Requirement</size>\n**Communication**\n**timeouts**\n<size:10>DREQ_RADIO_3A</size>" as DREQ_RADIO_3A [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_3A]] #BFD8D2
node "<size:12>Requirement</size>\n**Global memories**\n**per system**\n<size:10>DREQ_RADIO_2B</size>" as DREQ_RADIO_2B [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_2B]] #BFD8D2
node "<size:12>Requirement</size>\n**Global memories**\n<size:10>DREQ_RADIO_2A</size>" as DREQ_RADIO_2A [[../fsd/FSD120-design-requirements-specification.html#DREQ_RADIO_2A]] #BFD8D2
node "<size:12>Requirement</size>\n**Global memories**\n**(safety**\n**information)**\n<size:10>SWSREQ_035C</size>" as SWSREQ_035C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_035C]] #BFD8D2
node "<size:12>Requirement</size>\n**Global memories**\n**(safety**\n**information)**\n<size:10>SWSREQ_035B</size>" as SWSREQ_035B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_035B]] #BFD8D2
node "<size:12>Requirement</size>\n**Global memories**\n**(safety**\n**information)**\n<size:10>SWSREQ_035A</size>" as SWSREQ_035A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_035A]] #BFD8D2
node "<size:12>Requirement</size>\n**Timeout**\n<size:10>SWSREQ_034F</size>" as SWSREQ_034F [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_034F]] #BFD8D2
node "<size:12>Requirement</size>\n**Stateless**\n**safety**\n**information**\n<size:10>SWSREQ_034E</size>" as SWSREQ_034E [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_034E]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe data hash**\n<size:10>SWSREQ_034D</size>" as SWSREQ_034D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_034D]] #BFD8D2
node "<size:12>Requirement</size>\n**Networks**\n<size:10>SREQ_29B</size>" as SREQ_29B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_29B]] #BFD8D2
node "<size:12>Requirement</size>\n**Radio source**\n**nodes**\n<size:10>SREQ_20</size>" as SREQ_20 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_20]] #BFD8D2
node "<size:12>Requirement</size>\n**Network same**\n**firmware**\n<size:10>SWSREQ_037B</size>" as SWSREQ_037B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_037B]] #BFD8D2
node "<size:12>TEST</size>\n**Firmware**\n**mismatch**\n**prevents**\n**communication**\n<size:10>TEST_150_006</size>" as TEST_150_006 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_006]] #DCB239
node "<size:12>Requirement</size>\n**Start-up**\n**firmware**\n**version check**\n<size:10>SWSREQ_032B</size>" as SWSREQ_032B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_032B]] #BFD8D2
node "<size:12>Requirement</size>\n**Start-up**\n**firmware check**\n<size:10>SWSREQ_032A</size>" as SWSREQ_032A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_032A]] #BFD8D2
node "<size:12>RESULT</size>\n**Firmware**\n**mismatch**\n**prevents**\n**communication**\n<size:10>RESULT_150_006</size>" as RESULT_150_006 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_006]] #FFA76D
node "<size:12>Requirement</size>\n**Network same**\n**configuration**\n<size:10>SWSREQ_037A</size>" as SWSREQ_037A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_037A]] #BFD8D2
node "<size:12>Requirement</size>\n**All nodes in a**\n**network shall**\n**be specified in**\n**the**\n**configuration**\n<size:10>SREQ_N_16B</size>" as SREQ_N_16B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_16B]] #BFD8D2
node "<size:12>Hazard</size>\n**Nodes being**\n**part of**\n**multiple**\n**networks, or**\n**networks**\n**including nodes**\n**that should not**\n**be part of the**\n**network**\n<size:10>HAZARD_16</size>" as HAZARD_16 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_16]] #FFA76D
node "<size:12>Requirement</size>\n**All units shall**\n**have a unique**\n**identifier**\n<size:10>SREQ_N_16A</size>" as SREQ_N_16A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_16A]] #BFD8D2
node "<size:12>Requirement</size>\n**Unique IDs**\n<size:10>SREQ_28C</size>" as SREQ_28C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_28C]] #BFD8D2
node "<size:12>Requirement</size>\n**Valid serial**\n**numbers**\n<size:10>DREQ_28C</size>" as DREQ_28C [[../fsd/FSD120-design-requirements-specification.html#DREQ_28C]] #BFD8D2
node "<size:12>Requirement</size>\n**Production**\n**procedures**\n<size:10>DREQ_28D</size>" as DREQ_28D [[../fsd/FSD120-design-requirements-specification.html#DREQ_28D]] #BFD8D2
node "<size:12>Requirement</size>\n**Globally unique**\n**serial numbers**\n<size:10>DREQ_28A</size>" as DREQ_28A [[../fsd/FSD120-design-requirements-specification.html#DREQ_28A]] #BFD8D2
node "<size:12>Requirement</size>\n**Unique ID**\n<size:10>SREQ_28B</size>" as SREQ_28B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_28B]] #BFD8D2
node "<size:12>Requirement</size>\n**Unique ID**\n<size:10>SREQ_28A</size>" as SREQ_28A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_28A]] #BFD8D2
node "<size:12>Requirement</size>\n**Radio CRC**\n<size:10>SWSREQ_034C</size>" as SWSREQ_034C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_034C]] #BFD8D2
node "<size:12>Requirement</size>\n**Radio sequence**\n**counter**\n<size:10>SWSREQ_034B</size>" as SWSREQ_034B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_034B]] #BFD8D2
node "<size:12>Requirement</size>\n**CPUs check same**\n**configuration**\n<size:10>DREQ_C2C_8</size>" as DREQ_C2C_8 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_8]] #BFD8D2
node "<size:12>Requirement</size>\n**Valid ID**\n**numbers**\n<size:10>SWSREQ_033A</size>" as SWSREQ_033A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_033A]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #31**\n<size:10>TEST_300_031</size>" as TEST_300_031 [[../fsd/FSD300-software-module-tests.html#TEST_300_031]] #FFA76D
node "<size:12>Requirement</size>\n**Valid ID**\n**numbers**\n<size:10>SWSREQ_033B</size>" as SWSREQ_033B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_033B]] #BFD8D2
node "<size:12>Requirement</size>\n**Start-up always**\n**safe**\n<size:10>SWSREQ_032E</size>" as SWSREQ_032E [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_032E]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #29**\n<size:10>TEST_300_029</size>" as TEST_300_029 [[../fsd/FSD300-software-module-tests.html#TEST_300_029]] #FFA76D
node "<size:12>Requirement</size>\n**Start-up check**\n**production data**\n<size:10>SWSREQ_032D</size>" as SWSREQ_032D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_032D]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n**update**\n**frequency**\n<size:10>DREQ_C2C_5</size>" as DREQ_C2C_5 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_5]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>SWSREQ_010A</size>" as SWSREQ_010A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_010A]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #56**\n<size:10>TEST_300_056</size>" as TEST_300_056 [[../fsd/FSD300-software-module-tests.html#TEST_300_056]] #FFA76D
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>SWSREQ_010D</size>" as SWSREQ_010D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_010D]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>SWSREQ_010C</size>" as SWSREQ_010C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_010C]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #54**\n<size:10>TEST_300_054</size>" as TEST_300_054 [[../fsd/FSD300-software-module-tests.html#TEST_300_054]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #53**\n<size:10>TEST_300_053</size>" as TEST_300_053 [[../fsd/FSD300-software-module-tests.html#TEST_300_053]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #48**\n<size:10>TEST_300_048</size>" as TEST_300_048 [[../fsd/FSD300-software-module-tests.html#TEST_300_048]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #47**\n<size:10>TEST_300_047</size>" as TEST_300_047 [[../fsd/FSD300-software-module-tests.html#TEST_300_047]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #9**\n<size:10>TEST_300_009</size>" as TEST_300_009 [[../fsd/FSD300-software-module-tests.html#TEST_300_009]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #8**\n<size:10>TEST_300_008</size>" as TEST_300_008 [[../fsd/FSD300-software-module-tests.html#TEST_300_008]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #7**\n<size:10>TEST_300_007</size>" as TEST_300_007 [[../fsd/FSD300-software-module-tests.html#TEST_300_007]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #6**\n<size:10>TEST_300_006</size>" as TEST_300_006 [[../fsd/FSD300-software-module-tests.html#TEST_300_006]] #FFA76D
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>SWSREQ_010G</size>" as SWSREQ_010G [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_010G]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>SWSREQ_010E</size>" as SWSREQ_010E [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_010E]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #4**\n<size:10>TEST_300_004</size>" as TEST_300_004 [[../fsd/FSD300-software-module-tests.html#TEST_300_004]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #3**\n<size:10>TEST_300_003</size>" as TEST_300_003 [[../fsd/FSD300-software-module-tests.html#TEST_300_003]] #FFA76D
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>SWSREQ_010B</size>" as SWSREQ_010B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_010B]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #3**\n<size:10>TEST_300_103</size>" as TEST_300_103 [[../fsd/FSD300-software-module-tests.html#TEST_300_103]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #2**\n<size:10>TEST_300_002</size>" as TEST_300_002 [[../fsd/FSD300-software-module-tests.html#TEST_300_002]] #FFA76D
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n**timeout safe**\n**state**\n<size:10>DREQ_C2C_4</size>" as DREQ_C2C_4 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_4]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n**CRC**\n<size:10>DREQ_C2C_3</size>" as DREQ_C2C_3 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_3]] #BFD8D2
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n**white channel**\n<size:10>DREQ_C2C_2</size>" as DREQ_C2C_2 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_2]] #BFD8D2
node "<size:12>Motivation</size>\n**C2C white**\n**channel**\n<size:10>MOTIVATION_220_014</size>" as MOTIVATION_220_014 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_014]] #FFA76D
node "<size:12>Requirement</size>\n**CPU-CPU**\n**communication**\n<size:10>DREQ_C2C_1</size>" as DREQ_C2C_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_1]] #BFD8D2
node "<size:12>Motivation</size>\n**C2C duplex**\n**channel**\n<size:10>MOTIVATION_220_013</size>" as MOTIVATION_220_013 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_013]] #FFA76D
node "<size:12>TEST</size>\n**Wrong**\n**configuration**\n**prevents**\n**communication**\n<size:10>TEST_150_012</size>" as TEST_150_012 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_012]] #DCB239
node "<size:12>RESULT</size>\n**Wrong**\n**configuration**\n**prevents**\n**communication**\n<size:10>RESULT_150_012</size>" as RESULT_150_012 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_012]] #FFA76D
node "<size:12>TEST</size>\n**Configuration**\n**protected with**\n**CRC**\n<size:10>TEST_150_009</size>" as TEST_150_009 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_009]] #DCB239
node "<size:12>RESULT</size>\n**Configuration**\n**protected with**\n**CRC**\n<size:10>RESULT_150_009</size>" as RESULT_150_009 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_009]] #FFA76D
node "<size:12>Requirement</size>\n**Internal**\n**failure safe**\n**state**\n<size:10>SREQ_03B</size>" as SREQ_03B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_03B]] #BFD8D2
node "<size:12>Requirement</size>\n**Internal**\n**failure safe**\n**state**\n<size:10>DREQ_3A</size>" as DREQ_3A [[../fsd/FSD120-design-requirements-specification.html#DREQ_3A]] #BFD8D2
node "<size:12>Requirement</size>\n**Internal**\n**voltages**\n**monitoring**\n<size:10>SWSREQ_101C</size>" as SWSREQ_101C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_101C]] #BFD8D2
node "<size:12>RESULT</size>\n**HW module test**\n**#13**\n<size:10>TEST_300_213</size>" as TEST_300_213 [[../fsd/FSD300-software-module-tests.html#TEST_300_213]] #FFA76D
node "<size:12>Requirement</size>\n**Internal**\n**voltages**\n**monitoring**\n<size:10>SWSREQ_101B</size>" as SWSREQ_101B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_101B]] #BFD8D2
node "<size:12>RESULT</size>\n**HW module test**\n**#14**\n<size:10>TEST_300_214</size>" as TEST_300_214 [[../fsd/FSD300-software-module-tests.html#TEST_300_214]] #FFA76D
node "<size:12>Requirement</size>\n**Internal**\n**voltages**\n**monitoring**\n<size:10>SWSREQ_101A</size>" as SWSREQ_101A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_101A]] #BFD8D2
node "<size:12>Requirement</size>\n**Internal output**\n**failure**\n<size:10>SWSREQ_018A</size>" as SWSREQ_018A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_018A]] #BFD8D2
node "<size:12>RESULT</size>\n**HW module test**\n**#9**\n<size:10>TEST_300_209</size>" as TEST_300_209 [[../fsd/FSD300-software-module-tests.html#TEST_300_209]] #FFA76D
node "<size:12>RESULT</size>\n**HW module test**\n**#8**\n<size:10>TEST_300_208</size>" as TEST_300_208 [[../fsd/FSD300-software-module-tests.html#TEST_300_208]] #FFA76D
node "<size:12>RESULT</size>\n**HW module test**\n**#7**\n<size:10>TEST_300_207</size>" as TEST_300_207 [[../fsd/FSD300-software-module-tests.html#TEST_300_207]] #FFA76D
node "<size:12>RESULT</size>\n**HW module test**\n**#6**\n<size:10>TEST_300_206</size>" as TEST_300_206 [[../fsd/FSD300-software-module-tests.html#TEST_300_206]] #FFA76D
node "<size:12>RESULT</size>\n**HW module test**\n**#5**\n<size:10>TEST_300_205</size>" as TEST_300_205 [[../fsd/FSD300-software-module-tests.html#TEST_300_205]] #FFA76D
node "<size:12>RESULT</size>\n**HW module test**\n**#2**\n<size:10>TEST_300_202</size>" as TEST_300_202 [[../fsd/FSD300-software-module-tests.html#TEST_300_202]] #FFA76D
node "<size:12>Requirement</size>\n**CPUs check**\n**compatible**\n**firmwares**\n<size:10>DREQ_C2C_6</size>" as DREQ_C2C_6 [[../fsd/FSD120-design-requirements-specification.html#DREQ_C2C_6]] #BFD8D2
node "<size:12>Requirement</size>\n**Continuous RAM**\n**tests**\n<size:10>DREQ_16A</size>" as DREQ_16A [[../fsd/FSD120-design-requirements-specification.html#DREQ_16A]] #BFD8D2
node "<size:12>Requirement</size>\n**RAM test**\n<size:10>SWSREQ_001D</size>" as SWSREQ_001D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_001D]] #BFD8D2
node "<size:12>Motivation</size>\n**RAM test**\n**algorithm**\n<size:10>MOTIVATION_300_311</size>" as MOTIVATION_300_311 [[../fsd/FSD300-software-module-tests.html#MOTIVATION_300_311]] #FFA76D
node "<size:12>Requirement</size>\n**RAM test**\n<size:10>SWSREQ_001C</size>" as SWSREQ_001C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_001C]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #15**\n<size:10>TEST_300_115</size>" as TEST_300_115 [[../fsd/FSD300-software-module-tests.html#TEST_300_115]] #FFA76D
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #14**\n<size:10>TEST_300_114</size>" as TEST_300_114 [[../fsd/FSD300-software-module-tests.html#TEST_300_114]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #17**\n<size:10>TEST_300_017</size>" as TEST_300_017 [[../fsd/FSD300-software-module-tests.html#TEST_300_017]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #16**\n<size:10>TEST_300_016</size>" as TEST_300_016 [[../fsd/FSD300-software-module-tests.html#TEST_300_016]] #FFA76D
node "<size:12>Requirement</size>\n**RAM test**\n<size:10>SWSREQ_001B</size>" as SWSREQ_001B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_001B]] #BFD8D2
node "<size:12>Requirement</size>\n**RAM test**\n<size:10>SWSREQ_001A</size>" as SWSREQ_001A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_001A]] #BFD8D2
node "<size:12>Requirement</size>\n**Continuous**\n**flash tests**\n<size:10>DREQ_16B</size>" as DREQ_16B [[../fsd/FSD120-design-requirements-specification.html#DREQ_16B]] #BFD8D2
node "<size:12>Requirement</size>\n**Flash test**\n<size:10>SWSREQ_002B</size>" as SWSREQ_002B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_002B]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #28**\n<size:10>TEST_300_128</size>" as TEST_300_128 [[../fsd/FSD300-software-module-tests.html#TEST_300_128]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #52**\n<size:10>TEST_300_052</size>" as TEST_300_052 [[../fsd/FSD300-software-module-tests.html#TEST_300_052]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #42**\n<size:10>TEST_300_042</size>" as TEST_300_042 [[../fsd/FSD300-software-module-tests.html#TEST_300_042]] #FFA76D
node "<size:12>Requirement</size>\n**Flash test**\n<size:10>SWSREQ_002A</size>" as SWSREQ_002A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_002A]] #BFD8D2
node "<size:12>Requirement</size>\n**Redundant CPUs**\n<size:10>DREQ_201A</size>" as DREQ_201A [[../fsd/FSD120-design-requirements-specification.html#DREQ_201A]] #BFD8D2
node "<size:12>Motivation</size>\n**Redundant CPUs**\n<size:10>MOTIVATION_220_010</size>" as MOTIVATION_220_010 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_010]] #FFA76D
node "<size:12>Requirement</size>\n**Safe after**\n**restart**\n<size:10>DREQ_111A</size>" as DREQ_111A [[../fsd/FSD120-design-requirements-specification.html#DREQ_111A]] #BFD8D2
node "<size:12>Requirement</size>\n**Valid serial**\n**numbers**\n<size:10>DREQ_28B</size>" as DREQ_28B [[../fsd/FSD120-design-requirements-specification.html#DREQ_28B]] #BFD8D2
node "<size:12>Requirement</size>\n**Time reference**\n**crystal**\n**measurment**\n<size:10>DREQ_27B</size>" as DREQ_27B [[../fsd/FSD120-design-requirements-specification.html#DREQ_27B]] #BFD8D2
node "<size:12>RESULT</size>\n**CPU2 module**\n**test #25**\n<size:10>TEST_300_125</size>" as TEST_300_125 [[../fsd/FSD300-software-module-tests.html#TEST_300_125]] #FFA76D
node "<size:12>RESULT</size>\n**CPU1 module**\n**test #44**\n<size:10>TEST_300_044</size>" as TEST_300_044 [[../fsd/FSD300-software-module-tests.html#TEST_300_044]] #FFA76D
node "<size:12>Requirement</size>\n**Time reference**\n**crystal 100ppm**\n<size:10>DREQ_27A</size>" as DREQ_27A [[../fsd/FSD120-design-requirements-specification.html#DREQ_27A]] #BFD8D2
node "<size:12>Motivation</size>\n**crystal**\n<size:10>MOTIVATION_220_011</size>" as MOTIVATION_220_011 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_011]] #FFA76D
node "<size:12>Requirement</size>\n**Communication**\n**timeout**\n<size:10>SREQ_22</size>" as SREQ_22 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_22]] #BFD8D2
node "<size:12>Requirement</size>\n**Safe state in**\n**other nodes**\n**during fatal**\n**error**\n<size:10>SREQ_N_06</size>" as SREQ_N_06 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_06]] #BFD8D2
node "<size:12>Hazard</size>\n**Active or**\n**sporadically**\n**active outputs**\n**in other Safety**\n**Simplifiers**\n**after detecting**\n**a fault**\n<size:10>HAZARD_6</size>" as HAZARD_6 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_6]] #FFA76D
node "<size:12>Requirement</size>\n**Dangerous**\n**failure**\n**response time**\n**network**\n<size:10>SREQ_09B</size>" as SREQ_09B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_09B]] #BFD8D2
node "<size:12>TEST</size>\n**Communication**\n**timeout**\n<size:10>TEST_150_021</size>" as TEST_150_021 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_021]] #DCB239
node "<size:12>Requirement</size>\n**Selectable**\n**maximum**\n**communication**\n**reaction time**\n<size:10>DREQ_123A</size>" as DREQ_123A [[../fsd/FSD120-design-requirements-specification.html#DREQ_123A]] #BFD8D2
node "<size:12>RESULT</size>\n**Communication**\n**timeout**\n<size:10>RESULT_150_021</size>" as RESULT_150_021 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_021]] #FFA76D
node "<size:12>Requirement</size>\n**Dangerous fault**\n**reaction time**\n<size:10>DREQ_9A</size>" as DREQ_9A [[../fsd/FSD120-design-requirements-specification.html#DREQ_9A]] #BFD8D2
node "<size:12>Requirement</size>\n**Fault reaction**\n**time**\n<size:10>SWSREQ_026A</size>" as SWSREQ_026A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_026A]] #BFD8D2
node "<size:12>TEST</size>\n**Maximum**\n**reaction time**\n**is selectable**\n<size:10>TEST_150_008</size>" as TEST_150_008 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_008]] #DCB239
node "<size:12>RESULT</size>\n**Maximum**\n**reaction time**\n**is selectable**\n<size:10>RESULT_150_008</size>" as RESULT_150_008 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_008]] #FFA76D
node "<size:12>Requirement</size>\n**Link timeout**\n<size:10>SREQ_08B</size>" as SREQ_08B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_08B]] #BFD8D2
node "<size:12>Requirement</size>\n**Response time**\n<size:10>SREQ_08A</size>" as SREQ_08A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_08A]] #BFD8D2
node "<size:12>Requirement</size>\n**Max response**\n**time**\n<size:10>SREQ_07</size>" as SREQ_07 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_07]] #BFD8D2
node "<size:12>Motivation</size>\n**SREQ_09A**\n<size:10>MOTIVATION_300_312</size>" as MOTIVATION_300_312 [[../fsd/FSD300-software-module-tests.html#MOTIVATION_300_312]] #FFA76D
node "<size:12>RESULT</size>\n**Fatal error**\n**turns off all**\n**outputs**\n<size:10>RESULT_150_010</size>" as RESULT_150_010 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_010]] #FFA76D
node "<size:12>Requirement</size>\n**Safe state**\n<size:10>DREQ_SAFESTAE_1</size>" as DREQ_SAFESTAE_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_SAFESTAE_1]] #BFD8D2
node "<size:12>Requirement</size>\n**Normal**\n**operation**\n<size:10>DREQ_NORMALMODE_1</size>" as DREQ_NORMALMODE_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_NORMALMODE_1]] #BFD8D2
node "<size:12>Requirement</size>\n**Operation modes**\n<size:10>DREQ_MODES_1</size>" as DREQ_MODES_1 [[../fsd/FSD120-design-requirements-specification.html#DREQ_MODES_1]] #BFD8D2
node "<size:12>Requirement</size>\n**Normal**\n**operation mode**\n<size:10>SWSREQ_028A</size>" as SWSREQ_028A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_028A]] #BFD8D2
node "<size:12>Requirement</size>\n**Operation modes**\n<size:10>SWSREQ_027A</size>" as SWSREQ_027A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_027A]] #BFD8D2
node "<size:12>RESULT</size>\n**Configuration**\n**tool connection**\n**without**\n**activation**\n<size:10>RESULT_150_002</size>" as RESULT_150_002 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_002]] #FFA76D
node "<size:12>Motivation</size>\n**No external**\n**interface**\n<size:10>MOTIVATION_220_007</size>" as MOTIVATION_220_007 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_007]] #FFA76D
node "<size:12>Requirement</size>\n**Both CPUs**\n**control outputs**\n<size:10>SWSREQ_019B</size>" as SWSREQ_019B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_019B]] #BFD8D2
node "<size:12>Requirement</size>\n**Static and**\n**pulsed**\n**transistor**\n**outputs**\n<size:10>DREQ_13A</size>" as DREQ_13A [[../fsd/FSD120-design-requirements-specification.html#DREQ_13A]] #BFD8D2
node "<size:12>Requirement</size>\n**IO ON/OFF**\n**states**\n<size:10>SWSREQ_011C</size>" as SWSREQ_011C [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_011C]] #BFD8D2
node "<size:12>Requirement</size>\n**Input/output**\n**signal**\n**combinations**\n<size:10>DREQ_2A</size>" as DREQ_2A [[../fsd/FSD120-design-requirements-specification.html#DREQ_2A]] #BFD8D2
node "<size:12>Requirement</size>\n**Combined inputs**\n**OFF/ON signal**\n**combinations**\n<size:10>SWSREQ_011E</size>" as SWSREQ_011E [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_011E]] #BFD8D2
node "<size:12>Requirement</size>\n**IO ON/OFF**\n**states**\n<size:10>SWSREQ_011D</size>" as SWSREQ_011D [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_011D]] #BFD8D2
node "<size:12>Requirement</size>\n**IO ON/OFF**\n**states**\n<size:10>SWSREQ_011A</size>" as SWSREQ_011A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_011A]] #BFD8D2
node "<size:12>TEST</size>\n**Advanced output**\n**module tests**\n<size:10>TEST_GUI_ADVANCED_OUTPUT_1</size>" as TEST_GUI_ADVANCED_OUTPUT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GUI_ADVANCED_OUTPUT_1]] #DCB239
node "<size:12>Requirement</size>\n**Redundant**\n**outputs**\n<size:10>SWSREQ_013A</size>" as SWSREQ_013A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_013A]] #BFD8D2
node "<size:12>TEST</size>\n**Advanced input**\n**module tests**\n<size:10>TEST_GUI_ADVANCED_INPUT_1</size>" as TEST_GUI_ADVANCED_INPUT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GUI_ADVANCED_INPUT_1]] #DCB239
node "<size:12>Requirement</size>\n**Input voltage**\n**range**\n<size:10>SWSREQ_014A</size>" as SWSREQ_014A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_014A]] #BFD8D2
node "<size:12>Requirement</size>\n**Redundant**\n**inputs**\n<size:10>SWSREQ_012A</size>" as SWSREQ_012A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_012A]] #BFD8D2
node "<size:12>Requirement</size>\n**Input filtering**\n<size:10>DREQ_26A</size>" as DREQ_26A [[../fsd/FSD120-design-requirements-specification.html#DREQ_26A]] #BFD8D2
node "<size:12>Requirement</size>\n**Input filter**\n<size:10>SREQ_26B</size>" as SREQ_26B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_26B]] #BFD8D2
node "<size:12>Requirement</size>\n**Fault handling**\n<size:10>SREQ_N_14C</size>" as SREQ_N_14C [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_14C]] #BFD8D2
node "<size:12>Hazard</size>\n**Too wide fault**\n**handling, false**\n**positives, and**\n**unreliable**\n**operation**\n<size:10>HAZARD_14</size>" as HAZARD_14 [[../fsd/FSD011-hazard-and-risk-analysis.html#HAZARD_14]] #FFA76D
node "<size:12>Requirement</size>\n**Fault handling**\n<size:10>SREQ_N_14B</size>" as SREQ_N_14B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_14B]] #BFD8D2
node "<size:12>Requirement</size>\n**Fatal error**\n**codes and**\n**mitigations**\n<size:10>DREQ_DIAGNOSTIC_01</size>" as DREQ_DIAGNOSTIC_01 [[../fsd/FSD120-design-requirements-specification.html#DREQ_DIAGNOSTIC_01]] #BFD8D2
node "<size:12>Motivation</size>\n**Fatal error**\n**codes**\n<size:10>MOTIVATION_501_109</size>" as MOTIVATION_501_109 [[../fsd/FSD501-safety-manual.html#MOTIVATION_501_109]] #FFA76D
node "<size:12>Requirement</size>\n**Input filter**\n<size:10>SREQ_26A</size>" as SREQ_26A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_26A]] #BFD8D2
node "<size:12>Requirement</size>\n**Fault handling**\n<size:10>SREQ_N_14A</size>" as SREQ_N_14A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_N_14A]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>DREQ_LOGIC_200F</size>" as DREQ_LOGIC_200F [[../fsd/FSD120-design-requirements-specification.html#DREQ_LOGIC_200F]] #BFD8D2
node "<size:12>Requirement</size>\n**Configuration**\n**mode**\n<size:10>SWSREQ_030F</size>" as SWSREQ_030F [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_030F]] #BFD8D2
node "<size:12>TEST</size>\n**Configuration**\n**tool connection**\n**during**\n**operation**\n<size:10>TEST_150_011</size>" as TEST_150_011 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#TEST_150_011]] #DCB239
node "<size:12>RESULT</size>\n**Configuration**\n**tool connection**\n**during**\n**operation**\n<size:10>RESULT_150_011</size>" as RESULT_150_011 [[../fsd/FSD150-validation-tests-of-modes-power-supply-and-configuration.html#RESULT_150_011]] #FFA76D
node "<size:12>TEST</size>\n**Sync inputs:**\n**req_zero_time =**\n**10000,**\n**simultaneity =**\n**10000,**\n**debounce_on =**\n**10000,**\n**debounce_off =**\n**10000,**\n**startup_test =**\n**True**\n<size:10>TEST_GUI_SYNC_INPUTS_2</size>" as TEST_GUI_SYNC_INPUTS_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GUI_SYNC_INPUTS_2]] #DCB239
node "<size:12>RESULT</size>\n**RESULT_GUI_SYNC**\n**_INPUTS_2**\n<size:10>RESULT_GUI_SYNC_INPUTS_2</size>" as RESULT_GUI_SYNC_INPUTS_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GUI_SYNC_INPUTS_2]] #FFA76D
node "<size:12>TEST</size>\n**Sync inputs:**\n**req_zero_time =**\n**0, simultaneity**\n**= 0,**\n**debounce_on =**\n**0, debounce_off**\n**= 0,**\n**startup_test =**\n**True**\n<size:10>TEST_GUI_SYNC_INPUTS_1</size>" as TEST_GUI_SYNC_INPUTS_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GUI_SYNC_INPUTS_1]] #DCB239
node "<size:12>Requirement</size>\n**Input startup**\n**test**\n<size:10>SWSREQ_017A</size>" as SWSREQ_017A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_017A]] #BFD8D2
node "<size:12>RESULT</size>\n**RESULT_GUI_SYNC**\n**_INPUTS_1**\n<size:10>RESULT_GUI_SYNC_INPUTS_1</size>" as RESULT_GUI_SYNC_INPUTS_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GUI_SYNC_INPUTS_1]] #FFA76D
node "<size:12>TEST</size>\n**Single Input**\n**sl3 code review**\n<size:10>TEST_SINGLE_INPUT_1</size>" as TEST_SINGLE_INPUT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SINGLE_INPUT_1]] #DCB239
node "<size:12>Specification</size>\n**Function block:**\n**Single Input**\n<size:10>SPEC_SINGLE_INPUT</size>" as SPEC_SINGLE_INPUT [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_SINGLE_INPUT]] #FEDCD2
node "<size:12>Hazard</size>\n**Function block:**\n**Single Input**\n<size:10>HAZARD_SINGLE_INPUT_02</size>" as HAZARD_SINGLE_INPUT_02 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#HAZARD_SINGLE_INPUT_02]] #FFA76D
node "<size:12>Hazard</size>\n**Function block:**\n**Single Input**\n<size:10>HAZARD_SINGLE_INPUT_01</size>" as HAZARD_SINGLE_INPUT_01 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#HAZARD_SINGLE_INPUT_01]] #FFA76D
node "<size:12>Market requirement</size>\n**Function block:**\n**Single Input**\n<size:10>MREQ_SINGLE_INPUT</size>" as MREQ_SINGLE_INPUT [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_SINGLE_INPUT]] #FFA76D
node "<size:12>TEST</size>\n**Single Input in**\n**safety manual**\n<size:10>TEST_SINGLE_INPUT_3</size>" as TEST_SINGLE_INPUT_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SINGLE_INPUT_3]] #DCB239
node "<size:12>RESULT</size>\n**Single Input in**\n**safety manual**\n<size:10>RESULT_SINGLE_INPUT_3</size>" as RESULT_SINGLE_INPUT_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SINGLE_INPUT_3]] #FFA76D
node "<size:12>RESULT</size>\n**Single Input**\n**sl3 code review**\n<size:10>RESULT_SINGLE_INPUT_1</size>" as RESULT_SINGLE_INPUT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SINGLE_INPUT_1]] #FFA76D
node "<size:12>Requirement</size>\n**IO ON/OFF**\n**states**\n<size:10>SWSREQ_011B</size>" as SWSREQ_011B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_011B]] #BFD8D2
node "<size:12>Requirement</size>\n**Coded output**\n**signals**\n<size:10>DREQ_126A</size>" as DREQ_126A [[../fsd/FSD120-design-requirements-specification.html#DREQ_126A]] #BFD8D2
node "<size:12>Requirement</size>\n**14 transistor**\n**outputs**\n<size:10>DREQ_115F</size>" as DREQ_115F [[../fsd/FSD120-design-requirements-specification.html#DREQ_115F]] #BFD8D2
node "<size:12>Requirement</size>\n**OSSD detection**\n**same node**\n<size:10>DREQ_115E</size>" as DREQ_115E [[../fsd/FSD120-design-requirements-specification.html#DREQ_115E]] #BFD8D2
node "<size:12>Requirement</size>\n**OSSD**\n<size:10>SWSREQ_022A</size>" as SWSREQ_022A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_022A]] #BFD8D2
node "<size:12>TEST</size>\n**ossd: code**\n**review 3**\n<size:10>TEST_CFB_OSSD_3</size>" as TEST_CFB_OSSD_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_CFB_OSSD_3]] #DCB239
node "<size:12>Requirement</size>\n**External output**\n**failure**\n<size:10>SWSREQ_019A</size>" as SWSREQ_019A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_019A]] #BFD8D2
node "<size:12>Requirement</size>\n**External**\n**failure safe**\n**state**\n<size:10>DREQ_4A</size>" as DREQ_4A [[../fsd/FSD120-design-requirements-specification.html#DREQ_4A]] #BFD8D2
node "<size:12>RESULT</size>\n**Single Output**\n**sl3 code review**\n<size:10>RESULT_SINGLE_OUTPUT_1</size>" as RESULT_SINGLE_OUTPUT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SINGLE_OUTPUT_1]] #FFA76D
node "<size:12>RESULT</size>\n**RESULT_CFB_OSSD**\n**_3**\n<size:10>RESULT_CFB_OSSD_3</size>" as RESULT_CFB_OSSD_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_CFB_OSSD_3]] #FFA76D
node "<size:12>TEST</size>\n**ossd: code**\n**review 2**\n<size:10>TEST_CFB_OSSD_2</size>" as TEST_CFB_OSSD_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_CFB_OSSD_2]] #DCB239
node "<size:12>RESULT</size>\n**RESULT_CFB_OSSD**\n**_2**\n<size:10>RESULT_CFB_OSSD_2</size>" as RESULT_CFB_OSSD_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_CFB_OSSD_2]] #FFA76D
node "<size:12>TEST</size>\n**ossd: code**\n**review 1**\n<size:10>TEST_CFB_OSSD_1</size>" as TEST_CFB_OSSD_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_CFB_OSSD_1]] #DCB239
node "<size:12>RESULT</size>\n**RESULT_CFB_OSSD**\n**_1**\n<size:10>RESULT_CFB_OSSD_1</size>" as RESULT_CFB_OSSD_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_CFB_OSSD_1]] #FFA76D
node "<size:12>Requirement</size>\n**OSSD**\n<size:10>DREQ_115D</size>" as DREQ_115D [[../fsd/FSD120-design-requirements-specification.html#DREQ_115D]] #BFD8D2
node "<size:12>Requirement</size>\n**Outputs read**\n**back voltage**\n<size:10>DREQ_115C</size>" as DREQ_115C [[../fsd/FSD120-design-requirements-specification.html#DREQ_115C]] #BFD8D2
node "<size:12>Requirement</size>\n**Analog mismatch**\n**check**\n<size:10>SWSREQ_016A</size>" as SWSREQ_016A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_016A]] #BFD8D2
node "<size:12>RESULT</size>\n**HW module test**\n**#16**\n<size:10>TEST_300_216</size>" as TEST_300_216 [[../fsd/FSD300-software-module-tests.html#TEST_300_216]] #FFA76D
node "<size:12>Requirement</size>\n**Transistor**\n**inputs**\n**monitored by**\n**both CPUs**\n<size:10>SWSREQ_015B</size>" as SWSREQ_015B [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_015B]] #BFD8D2
node "<size:12>Motivation</size>\n**Transistor**\n**output control**\n<size:10>MOTIVATION_220_006</size>" as MOTIVATION_220_006 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_006]] #FFA76D
node "<size:12>Requirement</size>\n**Transistor**\n**outputs**\n**redundant**\n**transistors**\n<size:10>DREQ_115B</size>" as DREQ_115B [[../fsd/FSD120-design-requirements-specification.html#DREQ_115B]] #BFD8D2
node "<size:12>Motivation</size>\n**Redundant**\n**output**\n**transistors**\n<size:10>MOTIVATION_220_005</size>" as MOTIVATION_220_005 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_005]] #FFA76D
node "<size:12>Requirement</size>\n**Transistor**\n**output**\n**distinguish**\n**faults**\n<size:10>DREQ_115A</size>" as DREQ_115A [[../fsd/FSD120-design-requirements-specification.html#DREQ_115A]] #BFD8D2
node "<size:12>Motivation</size>\n**Output control**\n<size:10>MOTIVATION_220_004</size>" as MOTIVATION_220_004 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_004]] #FFA76D
node "<size:12>Requirement</size>\n**Transistor**\n**outputs 10 fits**\n<size:10>DREQ_104A</size>" as DREQ_104A [[../fsd/FSD120-design-requirements-specification.html#DREQ_104A]] #BFD8D2
node "<size:12>Requirement</size>\n**Redundant**\n**outputs CAT4**\n<size:10>DREQ_01F</size>" as DREQ_01F [[../fsd/FSD120-design-requirements-specification.html#DREQ_01F]] #BFD8D2
node "<size:12>Requirement</size>\n**Design safe**\n**state**\n<size:10>SREQ_04B</size>" as SREQ_04B [[../fsd/FSD114-safety-requirements-specification.html#SREQ_04B]] #BFD8D2
node "<size:12>Requirement</size>\n**External**\n**failure safe**\n**state**\n<size:10>SREQ_04A</size>" as SREQ_04A [[../fsd/FSD114-safety-requirements-specification.html#SREQ_04A]] #BFD8D2
node "<size:12>Market requirement</size>\n**Digital IO**\n<size:10>MREQ_05</size>" as MREQ_05 [[../fsd/FSD010-concept-and-scope-definition.html#MREQ_05]] #FFA76D
node "<size:12>Requirement</size>\n**Combo I/O min**\n**read time**\n<size:10>DREQ_116A</size>" as DREQ_116A [[../fsd/FSD120-design-requirements-specification.html#DREQ_116A]] #BFD8D2
node "<size:12>Requirement</size>\n**Combined IO**\n**function**\n<size:10>SWSREQ_021A</size>" as SWSREQ_021A [[../fsd/FSD319-software-safety-requirements-specification.html#SWSREQ_021A]] #BFD8D2
node "<size:12>TEST</size>\n**combo: code**\n**review 1**\n<size:10>TEST_CFB_COMBO_1</size>" as TEST_CFB_COMBO_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_CFB_COMBO_1]] #DCB239
node "<size:12>RESULT</size>\n**RESULT_CFB_COMB**\n**O_1**\n<size:10>RESULT_CFB_COMBO_1</size>" as RESULT_CFB_COMBO_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_CFB_COMBO_1]] #FFA76D
node "<size:12>Requirement</size>\n**I/O ON/OFF**\n**states**\n<size:10>SREQ_11</size>" as SREQ_11 [[../fsd/FSD114-safety-requirements-specification.html#SREQ_11]] #BFD8D2
node "<size:12>Requirement</size>\n**Coded input**\n**signals**\n<size:10>DREQ_126B</size>" as DREQ_126B [[../fsd/FSD120-design-requirements-specification.html#DREQ_126B]] #BFD8D2
node "<size:12>Requirement</size>\n**I/O ON and OFF**\n**states**\n<size:10>DREQ_11A</size>" as DREQ_11A [[../fsd/FSD120-design-requirements-specification.html#DREQ_11A]] #BFD8D2
node "<size:12>Requirement</size>\n**All inputs**\n**analog**\n<size:10>DREQ_14A</size>" as DREQ_14A [[../fsd/FSD120-design-requirements-specification.html#DREQ_14A]] #BFD8D2
node "<size:12>Motivation</size>\n**Analog muxes**\n<size:10>MOTIVATION_220_003</size>" as MOTIVATION_220_003 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_003]] #FFA76D
node "<size:12>Requirement</size>\n**Inputs startup**\n**test**\n<size:10>DREQ_116C</size>" as DREQ_116C [[../fsd/FSD120-design-requirements-specification.html#DREQ_116C]] #BFD8D2
node "<size:12>Requirement</size>\n**Combined inputs**\n**OFF/ON signal**\n**combinations**\n<size:10>DREQ_116B</size>" as DREQ_116B [[../fsd/FSD120-design-requirements-specification.html#DREQ_116B]] #BFD8D2
node "<size:12>Requirement</size>\n**Input OFF/ON**\n**conditions**\n<size:10>DREQ_114D</size>" as DREQ_114D [[../fsd/FSD120-design-requirements-specification.html#DREQ_114D]] #BFD8D2
node "<size:12>Requirement</size>\n**Two CPUs**\n**monitor inputs**\n<size:10>DREQ_114C</size>" as DREQ_114C [[../fsd/FSD120-design-requirements-specification.html#DREQ_114C]] #BFD8D2
node "<size:12>Motivation</size>\n**Input voltage**\n**range**\n<size:10>MOTIVATION_220_001</size>" as MOTIVATION_220_001 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_001]] #FFA76D
node "<size:12>Requirement</size>\n**Input signal**\n**types**\n<size:10>DREQ_114B</size>" as DREQ_114B [[../fsd/FSD120-design-requirements-specification.html#DREQ_114B]] #BFD8D2
node "<size:12>Requirement</size>\n**Input**\n**asymmetrical**\n**resistor**\n**dividers**\n<size:10>DREQ_16C</size>" as DREQ_16C [[../fsd/FSD120-design-requirements-specification.html#DREQ_16C]] #BFD8D2
node "<size:12>Requirement</size>\n**Input voltage**\n**range**\n<size:10>DREQ_114A</size>" as DREQ_114A [[../fsd/FSD120-design-requirements-specification.html#DREQ_114A]] #BFD8D2
node "<size:12>Requirement</size>\n**Inputs < 10**\n**fits**\n<size:10>DREQ_102A</size>" as DREQ_102A [[../fsd/FSD120-design-requirements-specification.html#DREQ_102A]] #BFD8D2
node "<size:12>Requirement</size>\n**Redundant**\n**inputs**\n<size:10>DREQ_01C</size>" as DREQ_01C [[../fsd/FSD120-design-requirements-specification.html#DREQ_01C]] #BFD8D2
node "<size:12>Motivation</size>\n**14 SIO**\n<size:10>MOTIVATION_220_002</size>" as MOTIVATION_220_002 [[../fsd/FSD220-hardware-schematic-review.html#MOTIVATION_220_002]] #FFA76D
node "<size:12>TEST</size>\n**Verify Single**\n**Input function**\n<size:10>TEST_SINGLE_INPUT_2</size>" as TEST_SINGLE_INPUT_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SINGLE_INPUT_2]] #DCB239
node "<size:12>RESULT</size>\n**Verify Single**\n**Input function**\n<size:10>RESULT_SINGLE_INPUT_2</size>" as RESULT_SINGLE_INPUT_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SINGLE_INPUT_2]] #FFA76D
node "<size:12>RESULT</size>\n**Verify Single**\n**Output function**\n<size:10>RESULT_SINGLE_OUTPUT_2</size>" as RESULT_SINGLE_OUTPUT_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SINGLE_OUTPUT_2]] #FFA76D
node "<size:12>TEST</size>\n**Single Output**\n**sl3 code review**\n<size:10>TEST_SINGLE_OUTPUT_1</size>" as TEST_SINGLE_OUTPUT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SINGLE_OUTPUT_1]] #DCB239

' Connection definition 

MREQ_SINGLE_OUTPUT --> HAZARD_SINGLE_OUTPUT_01
HAZARD_SINGLE_OUTPUT_01 --> SPEC_SINGLE_OUTPUT
SPEC_SINGLE_OUTPUT --> TEST_SINGLE_OUTPUT_1
SPEC_SINGLE_OUTPUT --> TEST_SINGLE_OUTPUT_2
SPEC_SINGLE_OUTPUT --> TEST_SINGLE_OUTPUT_3
TEST_SINGLE_OUTPUT_3 --> RESULT_SINGLE_OUTPUT_3
TEST_SINGLE_OUTPUT_2 --> RESULT_SINGLE_OUTPUT_2
SWSREQ_015A --> TEST_SINGLE_INPUT_2
SWSREQ_015A --> TEST_SINGLE_OUTPUT_2
DREQ_114E --> MOTIVATION_220_002
DREQ_114E --> SWSREQ_015A
SREQ_13B --> DREQ_01C
SREQ_13B --> DREQ_102A
SREQ_13B --> DREQ_114A
SREQ_13B --> DREQ_16C
SREQ_13B --> DREQ_114B
SREQ_13B --> DREQ_114C
SREQ_13B --> DREQ_114D
SREQ_13B --> DREQ_114E
SREQ_13B --> DREQ_116B
SREQ_13B --> DREQ_116C
SREQ_13B --> DREQ_14A
SREQ_13B --> DREQ_11A
SREQ_13B --> DREQ_126B
SREQ_N_02 --> SREQ_04A
SREQ_N_02 --> SREQ_04B
SREQ_N_02 --> SREQ_13A
SREQ_N_02 --> SREQ_13B
HAZARD_02 --> SREQ_N_02
SREQ_13A --> DREQ_01F
SREQ_13A --> DREQ_104A
SREQ_13A --> DREQ_115A
SREQ_13A --> DREQ_115B
SREQ_13A --> DREQ_115C
SREQ_13A --> DREQ_115D
SREQ_13A --> DREQ_115E
SREQ_13A --> DREQ_115F
SREQ_13A --> DREQ_126A
SREQ_13A --> DREQ_13A
SREQ_13A --> DREQ_15A
DREQ_15A --> MOTIVATION_220_007
DREQ_15A --> SWSREQ_020A
SREQ_02 --> DREQ_15A
HAZARD_20 --> SREQ_02
SWSREQ_020A --> TEST_150_002
TEST_150_002 --> RESULT_150_002
SWSREQ_030G --> TEST_150_002
DREQ_LOGIC_200G --> SWSREQ_030G
SREQ_15A --> DREQ_MODES_1
SREQ_15A --> DREQ_NORMALMODE_1
SREQ_15A --> DREQ_SAFESTAE_1
SREQ_15A --> DREQ_SAFESTAE_2
SREQ_15A --> DREQ_LOGIC_200A
SREQ_15A --> DREQ_LOGIC_200B
SREQ_15A --> DREQ_LOGIC_200C
SREQ_15A --> DREQ_LOGIC_200D
SREQ_15A --> DREQ_LOGIC_200G
SREQ_N_03 --> SREQ_05
SREQ_N_03 --> SREQ_15A
SREQ_N_03 --> SREQ_15B
SREQ_N_03 --> SREQ_21
HAZARD_03 --> SREQ_N_03
SREQ_21 --> DREQ_LOGIC_200A
SREQ_21 --> DREQ_LOGIC_200B
SREQ_N_04 --> SREQ_04B
SREQ_N_04 --> SREQ_21
HAZARD_04 --> SREQ_N_04
SREQ_15B --> RESULT_150_001
TEST_150_001 --> RESULT_150_001
SWSREQ_030D --> TEST_150_001
SWSREQ_030C --> TEST_150_001
SWSREQ_030B --> TEST_150_001
SWSREQ_030A --> TEST_150_001
SREQ_05 --> DREQ_SAFESTAE_1
SREQ_05 --> DREQ_SAFESTAE_2
DREQ_LOGIC_200D --> SWSREQ_030D
DREQ_LOGIC_200C --> SWSREQ_030C
DREQ_LOGIC_200B --> SWSREQ_030B
DREQ_LOGIC_200A --> SWSREQ_030A
DREQ_SAFESTAE_2 --> SWSREQ_024B
SWSREQ_024B --> TEST_150_010
TEST_150_010 --> RESULT_150_010
SWSREQ_029A --> TEST_150_010
SWSREQ_024A --> TEST_150_010
SREQ_15C --> TEST_150_010
SREQ_N_05 --> SREQ_15C
HAZARD_5 --> SREQ_N_05
SREQ_09A --> TEST_150_010
SREQ_09A --> MOTIVATION_300_312
SREQ_27 --> SREQ_08A
SREQ_27 --> SREQ_08B
SREQ_27 --> SREQ_09A
SREQ_27 --> SREQ_09B
SREQ_27 --> SREQ_22
SREQ_N_15A --> SREQ_07
SREQ_N_15A --> SREQ_27
HAZARD_15 --> SREQ_N_15A
HAZARD_15 --> SREQ_N_15B
SREQ_N_15B --> DREQ_27A
SREQ_N_15B --> DREQ_27B
SREQ_N_15B --> DREQ_108A
SREQ_N_15B --> DREQ_108B
DREQ_108B --> SWSREQ_007B
DREQ_108B --> SWSREQ_007C
SWSREQ_007C --> TEST_300_023
SWSREQ_007C --> TEST_300_121
SWSREQ_007A --> TEST_300_021
SWSREQ_007A --> TEST_300_022
SWSREQ_007A --> TEST_300_023
SWSREQ_007A --> TEST_300_119
SWSREQ_007A --> TEST_300_120
SWSREQ_007A --> TEST_300_121
SWSREQ_007B --> TEST_300_021
SWSREQ_007B --> TEST_300_022
SWSREQ_007B --> TEST_300_119
SWSREQ_007B --> TEST_300_120
DREQ_108A --> SWSREQ_007A
DREQ_108A --> SWSREQ_007B
SREQ_03A --> DREQ_28B
SREQ_03A --> DREQ_111A
SREQ_03A --> DREQ_16C
SREQ_03A --> DREQ_01F
SREQ_03A --> DREQ_115A
SREQ_03A --> DREQ_115B
SREQ_03A --> DREQ_201A
SREQ_03A --> DREQ_27B
SREQ_03A --> DREQ_16B
SREQ_03A --> DREQ_16A
SREQ_03A --> DREQ_108A
SREQ_03A --> DREQ_C2C_6
SREQ_N_01 --> SREQ_03A
SREQ_N_01 --> SREQ_03B
SREQ_N_01 --> SREQ_16A
HAZARD_01 --> SREQ_N_01
SREQ_16A --> DREQ_16B
SREQ_16A --> DREQ_16A
SREQ_16A --> DREQ_16C
SREQ_16A --> DREQ_LOGIC_202B
DREQ_LOGIC_202B --> SWSREQ_032C
SREQ_16B --> DREQ_111A
SREQ_16B --> DREQ_LOGIC_202B
SREQ_N_19 --> SREQ_16B
SREQ_N_19 --> SREQ_24
HAZARD_19 --> SREQ_N_19
SREQ_24 --> DREQ_24A
SREQ_24 --> DREQ_24B
SREQ_24 --> DREQ_24C
SREQ_24 --> DREQ_24D
SREQ_N_10 --> SREQ_24
HAZARD_10 --> SREQ_N_10
DREQ_24D --> SWSREQ_005A
DREQ_24D --> SWSREQ_005B
SREQ_18B --> DREQ_PSU_01
SREQ_18B --> DREQ_24A
SREQ_18B --> DREQ_24B
SREQ_18B --> DREQ_24C
SREQ_18B --> DREQ_24D
SREQ_18B --> DREQ_101A
SREQ_18B --> DREQ_111A
SREQ_18B --> DREQ_124A
SREQ_N_18 --> SREQ_17A
SREQ_N_18 --> SREQ_17B
SREQ_N_18 --> SREQ_17C
SREQ_N_18 --> SREQ_17D
SREQ_N_18 --> SREQ_18A
SREQ_N_18 --> SREQ_18B
SREQ_N_18 --> SREQ_18C
SREQ_N_18 --> SREQ_19
HAZARD_18 --> SREQ_N_18
SREQ_19 --> DREQ_EMC_1
SREQ_19 --> DREQ_EMC_2
SREQ_19 --> DREQ_113A
DREQ_113A --> CERT_0001
SREQ_01A --> DREQ_CAT4_1
SREQ_01A --> DREQ_103A
SREQ_01A --> DREQ_REDUNDANCY_1
SREQ_01A --> DREQ_EMC_1
SREQ_01A --> DREQ_EMC_2
SREQ_01A --> DREQ_107A
SREQ_01A --> DREQ_113A
SREQ_01A --> DREQ_17B
SREQ_01A --> DREQ_17C
MREQ_01 --> SREQ_01A
MREQ_01 --> SREQ_06A
MREQ_01 --> SREQ_06B
SREQ_06B --> MOTIVATION_114_007
SREQ_06A --> DREQ_NORMALMODE_1
DREQ_17C --> CERT_0006
DREQ_17B --> CERT_0006
DREQ_107A --> CERT_0008
DREQ_REDUNDANCY_1 --> MOTIVATION_212_001
DREQ_REDUNDANCY_1 --> MOTIVATION_115_001
SREQ_01B --> DREQ_122A
SREQ_01B --> DREQ_201A
SREQ_01B --> DREQ_LOGIC_201A
SREQ_01B --> DREQ_LOGIC_201B
SREQ_01B --> DREQ_CAT4_1
SREQ_01B --> DREQ_REDUNDANCY_1
MREQ_02 --> SREQ_01B
DREQ_LOGIC_201B --> FSD123_SPEC1
DREQ_LOGIC_201A --> SWSREQ_008A
SWSREQ_008A --> MOTIVATION_124_001
DREQ_118A --> SWSREQ_008A
DREQ_122A --> SWSREQ_008A
DREQ_105A --> MOTIVATION_212_001
DREQ_105A --> MOTIVATION_115_001
SREQ_12 --> DREQ_12A
SREQ_12 --> DREQ_01E
SREQ_12 --> DREQ_105A
SREQ_12 --> DREQ_127A
MREQ_04 --> SREQ_12
DREQ_127A --> MOTIVATION_220_009
DREQ_12A --> MOTIVATION_220_008
DREQ_12A --> SWSREQ_023A
SWSREQ_023A --> TEST_300_041
SWSREQ_023A --> TEST_300_126
SWSREQ_023A --> TEST_300_201
DREQ_01E --> MOTIVATION_220_008
DREQ_01E --> MOTIVATION_212_001
DREQ_01E --> MOTIVATION_115_001
DREQ_103A --> MOTIVATION_212_001
DREQ_103A --> MOTIVATION_115_001
DREQ_CAT4_1 --> MOTIVATION_212_001
DREQ_CAT4_1 --> MOTIVATION_115_001
DREQ_EMC_2 --> CERT_0007
DREQ_EMC_1 --> CERT_0001
SREQ_18C --> DREQ_MANUAL_10
DREQ_MANUAL_10 --> MOTIVATION_501_100
SREQ_18A --> CERT_0007
SREQ_17D --> DREQ_17B
SREQ_17D --> DREQ_MANUAL_11
DREQ_MANUAL_11 --> MOTIVATION_501_102
SREQ_17C --> DREQ_17C
SREQ_17C --> DREQ_17D
SREQ_17C --> DREQ_MANUAL_11
MREQ_09 --> SREQ_17A
MREQ_09 --> SREQ_17B
MREQ_09 --> SREQ_17C
DREQ_17D --> TEST_150_013
TEST_150_013 --> RESULT_150_013
SREQ_17B --> DREQ_17C
SREQ_17B --> DREQ_MANUAL_11
SREQ_17A --> DREQ_17C
SREQ_17A --> DREQ_MANUAL_11
DREQ_124A --> TEST_150_022
TEST_150_022 --> RESULT_150_022
DREQ_101A --> MOTIVATION_212_001
DREQ_101A --> MOTIVATION_115_001
DREQ_PSU_01 --> MOTIVATION_212_001
DREQ_PSU_01 --> MOTIVATION_115_001
SWSREQ_005B --> TEST_150_005
TEST_150_005 --> RESULT_150_005
SWSREQ_005A --> MOTIVATION_124_003
SWSREQ_005A --> TEST_150_005
SWSREQ_004A --> MOTIVATION_124_003
SWSREQ_004A --> TEST_150_004
TEST_150_004 --> RESULT_150_004
SWSREQ_004B --> TEST_150_004
DREQ_24C --> DREQ_24B
DREQ_24C --> DREQ_24D
DREQ_24B --> SWSREQ_004A
DREQ_24B --> SWSREQ_004B
DREQ_24A --> SWSREQ_003A
SWSREQ_003A --> TEST_150_003
TEST_150_003 --> RESULT_150_003
SREQ_N_07C --> DREQ_LOGIC_202A
SREQ_N_07C --> DREQ_LOGIC_202B
HAZARD_13 --> SREQ_N_07A
HAZARD_13 --> SREQ_N_07B
HAZARD_13 --> SREQ_N_07C
SREQ_N_07B --> DREQ_LOGIC_210D
HAZARD_12 --> SREQ_N_07A
HAZARD_12 --> SREQ_N_07B
HAZARD_11 --> SREQ_N_07A
HAZARD_11 --> SREQ_N_07B
HAZARD_11 --> SREQ_N_07D
SREQ_N_07D --> DREQ_LOGIC_200E
SREQ_N_07D --> DREQ_LOGIC_200H
SREQ_N_07D --> DREQ_LOGIC_210A
SREQ_N_07D --> DREQ_LOGIC_210B
SREQ_N_07D --> DREQ_LOGIC_210C
DREQ_LOGIC_210C --> SWSREQ_031B
SWSREQ_031B --> TEST_150_017
TEST_150_017 --> RESULT_150_017
DREQ_LOGIC_210B --> SWSREQ_031B
DREQ_LOGIC_210A --> SWSREQ_031A
SWSREQ_031A --> TEST_150_016
TEST_150_016 --> RESULT_150_016
DREQ_LOGIC_200H --> SWSREQ_030H
SWSREQ_030H --> TEST_150_015
TEST_150_015 --> RESULT_150_015
DREQ_LOGIC_200E --> SWSREQ_030E
SREQ_10B --> DREQ_LOGIC_200E
SREQ_N_17 --> SREQ_10A
SREQ_N_17 --> SREQ_10B
HAZARD_17 --> SREQ_N_17
SREQ_10A --> DREQ_10A
SREQ_10A --> DREQ_10B
MREQ_03 --> SREQ_10A
DREQ_10B --> MOTIVATION_220_012
DREQ_10B --> SWSREQ_031E
SWSREQ_031E --> TEST_150_020
TEST_150_020 --> RESULT_150_020
DREQ_10A --> SWSREQ_031D
SWSREQ_031D --> TEST_150_019
TEST_150_019 --> RESULT_150_019
SWSREQ_030E --> TEST_150_014
TEST_150_014 --> RESULT_150_014
HAZARD_08 --> SREQ_N_07A
HAZARD_08 --> SREQ_N_07B
HAZARD_7 --> SREQ_N_07A
HAZARD_7 --> SREQ_N_07B
DREQ_LOGIC_210D --> SWSREQ_031C
SWSREQ_031C --> TEST_150_018
TEST_150_018 --> RESULT_150_018
SREQ_N_07A --> DREQ_MANUAL_20
SREQ_N_07A --> DREQ_MANUAL_21
SREQ_N_07A --> DREQ_MANUAL_22
SREQ_N_07A --> DREQ_LOGIC_210B
SREQ_N_07A --> DREQ_LOGIC_210C
DREQ_MANUAL_22 --> MOTIVATION_501_105
DREQ_MANUAL_21 --> MOTIVATION_501_104
DREQ_MANUAL_20 --> MOTIVATION_501_103
DREQ_LOGIC_202A --> SWSREQ_032C
SWSREQ_032C --> TEST_150_009
SWSREQ_032C --> TEST_150_012
DREQ_C2C_7 --> SWSREQ_032C
SREQ_N_09D --> DREQ_C2C_1
SREQ_N_09D --> DREQ_C2C_2
SREQ_N_09D --> DREQ_C2C_3
SREQ_N_09D --> DREQ_C2C_4
SREQ_N_09D --> DREQ_C2C_5
SREQ_N_09D --> DREQ_C2C_6
SREQ_N_09D --> DREQ_C2C_7
SREQ_N_09D --> DREQ_C2C_8
HAZARD_09 --> SREQ_N_09A
HAZARD_09 --> SREQ_N_09B
HAZARD_09 --> SREQ_N_09C
HAZARD_09 --> SREQ_N_09D
SREQ_N_09C --> BLCH0002
SREQ_N_09B --> DREQ_CAN_1
SREQ_N_09B --> DREQ_CAN_2
MREQ_08 --> SREQ_N_09B
MREQ_07 --> SREQ_N_09B
DREQ_CAN_2 --> SWSREQ_038A
SWSREQ_038A --> SIMPLECAN_ALL_REQS
SIMPLECAN_ALL_REQS --> SC_REQ_01
SIMPLECAN_ALL_REQS --> SC_REQ_02
SIMPLECAN_ALL_REQS --> SC_REQ_03
SIMPLECAN_ALL_REQS --> SC_REQ_04
SIMPLECAN_ALL_REQS --> SC_REQ_05
SIMPLECAN_ALL_REQS --> SC_REQ_06
SIMPLECAN_ALL_REQS --> SC_REQ_07
SIMPLECAN_ALL_REQS --> SC_REQ_08
SIMPLECAN_ALL_REQS --> SC_REQ_09
SIMPLECAN_ALL_REQS --> SC_REQ_10
SIMPLECAN_ALL_REQS --> SC_REQ_11
SIMPLECAN_ALL_REQS --> SC_REQ_12
SIMPLECAN_ALL_REQS --> SC_REQ_14
SIMPLECAN_ALL_REQS --> SC_REQ_15
SIMPLECAN_ALL_REQS --> SC_REQ_16
SIMPLECAN_ALL_REQS --> SC_REQ_17
SIMPLECAN_ALL_REQS --> SC_REQ_18
SIMPLECAN_ALL_REQS --> SC_REQ_19
SIMPLECAN_ALL_REQS --> SC_REQ_20
SIMPLECAN_ALL_REQS --> SC_REQ_21
SIMPLECAN_ALL_REQS --> SC_REQ_22
SIMPLECAN_ALL_REQS --> SC_REQ_23
SIMPLECAN_ALL_REQS --> SC_REQ_24
SIMPLECAN_ALL_REQS --> SC_REQ_25
SIMPLECAN_ALL_REQS --> SC_REQ_26
SIMPLECAN_ALL_REQS --> SC_REQ_27
SIMPLECAN_ALL_REQS --> SC_REQ_28
SIMPLECAN_ALL_REQS --> SC_REQ_29
SIMPLECAN_ALL_REQS --> SC_REQ_30
SIMPLECAN_ALL_REQS --> SC_REQ_31
SIMPLECAN_ALL_REQS --> SC_REQ_32
SIMPLECAN_ALL_REQS --> SC_REQ_33
SIMPLECAN_ALL_REQS --> SC_REQ_34
SIMPLECAN_ALL_REQS --> SC_REQ_35
SIMPLECAN_ALL_REQS --> SC_REQ_36
SIMPLECAN_ALL_REQS --> SC_REQ_37
SIMPLECAN_ALL_REQS --> SC_REQ_38
SIMPLECAN_ALL_REQS --> SC_REQ_39
SIMPLECAN_ALL_REQS --> SC_REQ_40
SIMPLECAN_ALL_REQS --> SC_REQ_41
SIMPLECAN_ALL_REQS --> SC_REQ_42
SIMPLECAN_ALL_REQS --> SC_REQ_43
SIMPLECAN_ALL_REQS --> SC_REQ_44
SIMPLECAN_ALL_REQS --> SC_REQ_45
SIMPLECAN_ALL_REQS --> SC_REQ_46
SC_REQ_46 --> MOTIVATION_230_042
SC_REQ_45 --> MOTIVATION_230_041
SC_REQ_44 --> MOTIVATION_230_040
SC_REQ_43 --> MOTIVATION_230_039
SC_REQ_42 --> MOTIVATION_230_038
SC_REQ_41 --> MOTIVATION_230_037
SC_REQ_40 --> MOTIVATION_230_036
SC_REQ_39 --> MOTIVATION_230_035
SC_REQ_38 --> MOTIVATION_230_034
SC_REQ_37 --> MOTIVATION_230_033
SC_REQ_36 --> MOTIVATION_230_032
SC_REQ_35 --> MOTIVATION_230_031
SC_REQ_34 --> MOTIVATION_230_030
SC_REQ_33 --> MOTIVATION_230_029
SC_REQ_32 --> MOTIVATION_230_028
SC_REQ_31 --> MOTIVATION_230_027
SC_REQ_30 --> MOTIVATION_230_026
SC_REQ_29 --> MOTIVATION_230_029
SC_REQ_28 --> MOTIVATION_230_024
SC_REQ_27 --> MOTIVATION_230_023
SC_REQ_26 --> MOTIVATION_230_022
SC_REQ_25 --> MOTIVATION_230_021
SC_REQ_24 --> MOTIVATION_230_020
SC_REQ_23 --> MOTIVATION_230_019
SC_REQ_22 --> MOTIVATION_230_018
SC_REQ_21 --> MOTIVATION_230_017
SC_REQ_20 --> MOTIVATION_230_016
SC_REQ_18 --> MOTIVATION_230_015
SC_REQ_17 --> MOTIVATION_230_014
SC_REQ_16 --> MOTIVATION_230_013
SC_REQ_15 --> MOTIVATION_230_012
SC_REQ_14 --> MOTIVATION_230_011
SC_REQ_12 --> MOTIVATION_230_010
SC_REQ_11 --> MOTIVATION_230_009
SC_REQ_10 --> MOTIVATION_230_008
SC_REQ_09 --> MOTIVATION_230_007
SC_REQ_08 --> MOTIVATION_230_006
SC_REQ_07 --> MOTIVATION_230_005
SC_REQ_06 --> MOTIVATION_230_004
SC_REQ_05 --> MOTIVATION_230_003
SC_REQ_04 --> MOTIVATION_230_002
SC_REQ_03 --> MOTIVATION_230_001
DREQ_CAN_1 --> SWSREQ_038A
SREQ_N_09A --> DREQ_RADIO_1
DREQ_RADIO_1 --> SWSREQ_034A
SWSREQ_034A --> BLCH0001
SWSREQ_035D --> BLCH0001
DREQ_RADIO_3B --> SWSREQ_035D
MREQ_06 --> DREQ_RADIO_2A
MREQ_06 --> DREQ_RADIO_2B
MREQ_06 --> DREQ_RADIO_3A
MREQ_06 --> DREQ_RADIO_3B
MREQ_06 --> DREQ_RADIO_10
MREQ_06 --> DREQ_RADIO_11
DREQ_RADIO_11 --> SWSREQ_034E
DREQ_RADIO_11 --> SWSREQ_034F
DREQ_RADIO_10 --> TEST_150_023
TEST_150_023 --> RESULT_150_023
DREQ_RADIO_3A --> SWSREQ_035C
DREQ_RADIO_2B --> SWSREQ_035A
DREQ_RADIO_2B --> SWSREQ_035B
DREQ_RADIO_2A --> SWSREQ_035A
DREQ_RADIO_2A --> SWSREQ_035B
SWSREQ_035C --> BLCH0001
SWSREQ_035B --> BLCH0001
SWSREQ_035A --> BLCH0001
SWSREQ_034F --> BLCH0001
SWSREQ_034E --> BLCH0001
SWSREQ_034D --> BLCH0001
SREQ_29B --> SWSREQ_034D
SREQ_20 --> SWSREQ_034D
SREQ_20 --> SWSREQ_037A
SREQ_20 --> SWSREQ_037B
SWSREQ_037B --> TEST_150_006
TEST_150_006 --> RESULT_150_006
SWSREQ_032B --> TEST_150_006
SWSREQ_032A --> TEST_150_006
SWSREQ_037A --> TEST_150_012
SREQ_N_16B --> SREQ_20
SREQ_N_16B --> SREQ_29B
SREQ_N_16B --> SWSREQ_034D
HAZARD_16 --> SREQ_N_16A
HAZARD_16 --> SREQ_N_16B
SREQ_N_16A --> SREQ_28A
SREQ_N_16A --> SREQ_28B
SREQ_N_16A --> SREQ_28C
SREQ_28C --> DREQ_28C
DREQ_28C --> DREQ_28D
DREQ_28A --> DREQ_28D
SREQ_28B --> DREQ_28C
SREQ_28A --> DREQ_28A
SREQ_28A --> DREQ_28B
SWSREQ_034C --> BLCH0001
SWSREQ_034B --> BLCH0001
DREQ_C2C_8 --> SWSREQ_032D
DREQ_C2C_8 --> SWSREQ_033A
SWSREQ_033A --> TEST_300_031
SWSREQ_033B --> TEST_300_031
SWSREQ_032E --> TEST_300_029
SWSREQ_032E --> TEST_300_031
SWSREQ_032D --> TEST_300_029
DREQ_C2C_5 --> SWSREQ_010A
SWSREQ_010A --> TEST_300_002
SWSREQ_010A --> TEST_300_003
SWSREQ_010A --> TEST_300_004
SWSREQ_010A --> TEST_300_006
SWSREQ_010A --> TEST_300_007
SWSREQ_010A --> TEST_300_008
SWSREQ_010A --> TEST_300_009
SWSREQ_010A --> TEST_300_047
SWSREQ_010A --> TEST_300_048
SWSREQ_010A --> TEST_300_053
SWSREQ_010A --> TEST_300_054
SWSREQ_010A --> TEST_300_056
SWSREQ_010D --> TEST_300_002
SWSREQ_010D --> TEST_300_003
SWSREQ_010D --> TEST_300_004
SWSREQ_010D --> TEST_300_006
SWSREQ_010D --> TEST_300_007
SWSREQ_010D --> TEST_300_008
SWSREQ_010D --> TEST_300_009
SWSREQ_010D --> TEST_300_047
SWSREQ_010D --> TEST_300_048
SWSREQ_010D --> TEST_300_053
SWSREQ_010D --> TEST_300_054
SWSREQ_010D --> TEST_300_056
SWSREQ_010C --> TEST_300_002
SWSREQ_010C --> TEST_300_003
SWSREQ_010C --> TEST_300_004
SWSREQ_010C --> TEST_300_006
SWSREQ_010C --> TEST_300_007
SWSREQ_010C --> TEST_300_008
SWSREQ_010C --> TEST_300_009
SWSREQ_010C --> TEST_300_047
SWSREQ_010C --> TEST_300_048
SWSREQ_010C --> TEST_300_053
SWSREQ_010C --> TEST_300_054
SWSREQ_010C --> TEST_300_056
SWSREQ_010G --> TEST_300_006
SWSREQ_010E --> TEST_300_006
SWSREQ_010B --> TEST_300_003
SWSREQ_010B --> TEST_300_103
DREQ_C2C_4 --> SWSREQ_010E
DREQ_C2C_3 --> SWSREQ_010B
DREQ_C2C_3 --> SWSREQ_010D
DREQ_C2C_2 --> MOTIVATION_220_014
DREQ_C2C_2 --> SWSREQ_010C
DREQ_C2C_1 --> MOTIVATION_220_013
DREQ_C2C_1 --> SWSREQ_010G
TEST_150_012 --> RESULT_150_012
TEST_150_009 --> RESULT_150_009
SREQ_03B --> DREQ_3A
DREQ_3A --> SWSREQ_018A
DREQ_3A --> SWSREQ_101A
DREQ_3A --> SWSREQ_101B
DREQ_3A --> SWSREQ_101C
SWSREQ_101C --> TEST_300_213
SWSREQ_101B --> TEST_300_214
SWSREQ_101A --> TEST_300_214
SWSREQ_018A --> TEST_300_202
SWSREQ_018A --> TEST_300_205
SWSREQ_018A --> TEST_300_206
SWSREQ_018A --> TEST_300_207
SWSREQ_018A --> TEST_300_208
SWSREQ_018A --> TEST_300_209
DREQ_C2C_6 --> SWSREQ_032B
DREQ_16A --> SWSREQ_001A
DREQ_16A --> SWSREQ_001B
DREQ_16A --> SWSREQ_001C
DREQ_16A --> SWSREQ_001D
SWSREQ_001D --> MOTIVATION_300_311
SWSREQ_001C --> TEST_300_016
SWSREQ_001C --> TEST_300_017
SWSREQ_001C --> TEST_300_114
SWSREQ_001C --> TEST_300_115
SWSREQ_001B --> TEST_300_016
SWSREQ_001B --> TEST_300_017
SWSREQ_001B --> TEST_300_114
SWSREQ_001B --> TEST_300_115
SWSREQ_001A --> TEST_300_016
SWSREQ_001A --> TEST_300_017
SWSREQ_001A --> TEST_300_114
SWSREQ_001A --> TEST_300_115
DREQ_16B --> SWSREQ_002A
DREQ_16B --> SWSREQ_002B
SWSREQ_002B --> TEST_300_042
SWSREQ_002B --> TEST_300_052
SWSREQ_002B --> TEST_300_128
SWSREQ_002A --> TEST_300_042
SWSREQ_002A --> TEST_300_052
SWSREQ_002A --> TEST_300_128
DREQ_201A --> MOTIVATION_220_010
DREQ_111A --> SWSREQ_032E
DREQ_111A --> SWSREQ_032A
DREQ_111A --> SWSREQ_032B
DREQ_111A --> SWSREQ_032C
DREQ_111A --> SWSREQ_032D
DREQ_28B --> SWSREQ_033A
DREQ_28B --> SWSREQ_033B
DREQ_27B --> TEST_300_044
DREQ_27B --> TEST_300_125
DREQ_27A --> MOTIVATION_220_011
SREQ_22 --> DREQ_RADIO_3A
SREQ_22 --> DREQ_RADIO_3B
SREQ_N_06 --> SREQ_22
HAZARD_6 --> SREQ_N_06
SREQ_09B --> DREQ_9A
SREQ_09B --> TEST_150_021
TEST_150_021 --> RESULT_150_021
DREQ_123A --> TEST_150_021
DREQ_9A --> SWSREQ_026A
SWSREQ_026A --> TEST_150_008
TEST_150_008 --> RESULT_150_008
SREQ_08B --> DREQ_RADIO_3A
SREQ_08B --> DREQ_RADIO_3B
SREQ_08B --> DREQ_123A
SREQ_08A --> DREQ_27A
SREQ_08A --> DREQ_27B
SREQ_07 --> SREQ_08A
SREQ_07 --> SREQ_08B
SREQ_07 --> SREQ_09A
SREQ_07 --> SREQ_09B
SREQ_07 --> SREQ_22
DREQ_SAFESTAE_1 --> SWSREQ_029A
DREQ_SAFESTAE_1 --> SWSREQ_024A
DREQ_NORMALMODE_1 --> SWSREQ_028A
DREQ_MODES_1 --> SWSREQ_027A
SWSREQ_028A --> TEST_150_002
SWSREQ_027A --> TEST_150_010
SWSREQ_027A --> TEST_150_001
SWSREQ_027A --> TEST_150_002
SWSREQ_019B --> MOTIVATION_220_007
DREQ_13A --> SWSREQ_011B
DREQ_13A --> SWSREQ_011C
SWSREQ_011C --> TEST_SINGLE_INPUT_1
SWSREQ_011C --> TEST_SINGLE_OUTPUT_1
SWSREQ_011C --> TEST_GUI_ADVANCED_INPUT_1
SWSREQ_011C --> TEST_GUI_ADVANCED_OUTPUT_1
DREQ_2A --> SWSREQ_011A
DREQ_2A --> SWSREQ_011B
DREQ_2A --> SWSREQ_011C
DREQ_2A --> SWSREQ_011D
DREQ_2A --> SWSREQ_011E
SWSREQ_011E --> TEST_SINGLE_INPUT_1
SWSREQ_011E --> TEST_GUI_ADVANCED_INPUT_1
SWSREQ_011D --> TEST_SINGLE_INPUT_1
SWSREQ_011D --> TEST_GUI_ADVANCED_INPUT_1
SWSREQ_011A --> TEST_SINGLE_INPUT_1
SWSREQ_011A --> TEST_SINGLE_OUTPUT_1
SWSREQ_011A --> TEST_GUI_ADVANCED_INPUT_1
SWSREQ_011A --> TEST_GUI_ADVANCED_OUTPUT_1
SWSREQ_013A --> TEST_GUI_ADVANCED_OUTPUT_1
SWSREQ_014A --> TEST_GUI_ADVANCED_INPUT_1
SWSREQ_012A --> TEST_GUI_ADVANCED_INPUT_1
DREQ_26A --> TEST_GUI_SYNC_INPUTS_1
DREQ_26A --> TEST_GUI_SYNC_INPUTS_2
DREQ_26A --> TEST_GUI_ADVANCED_INPUT_1
SREQ_26B --> DREQ_26A
SREQ_N_14C --> SREQ_26A
SREQ_N_14C --> SREQ_26B
HAZARD_14 --> SREQ_N_14A
HAZARD_14 --> SREQ_N_14B
HAZARD_14 --> SREQ_N_14C
SREQ_N_14B --> DREQ_DIAGNOSTIC_01
DREQ_DIAGNOSTIC_01 --> MOTIVATION_501_109
SREQ_26A --> DREQ_14A
SREQ_N_14A --> SREQ_26A
SREQ_N_14A --> SREQ_26B
SREQ_N_14A --> DREQ_LOGIC_200F
DREQ_LOGIC_200F --> SWSREQ_030F
SWSREQ_030F --> TEST_150_011
TEST_150_011 --> RESULT_150_011
TEST_GUI_SYNC_INPUTS_2 --> RESULT_GUI_SYNC_INPUTS_2
TEST_GUI_SYNC_INPUTS_1 --> RESULT_GUI_SYNC_INPUTS_1
SWSREQ_017A --> TEST_GUI_SYNC_INPUTS_1
TEST_SINGLE_INPUT_1 --> RESULT_SINGLE_INPUT_1
SPEC_SINGLE_INPUT --> TEST_SINGLE_INPUT_1
SPEC_SINGLE_INPUT --> TEST_SINGLE_INPUT_2
SPEC_SINGLE_INPUT --> TEST_SINGLE_INPUT_3
HAZARD_SINGLE_INPUT_02 --> SPEC_SINGLE_INPUT
HAZARD_SINGLE_INPUT_01 --> SPEC_SINGLE_INPUT
MREQ_SINGLE_INPUT --> HAZARD_SINGLE_INPUT_01
TEST_SINGLE_INPUT_3 --> RESULT_SINGLE_INPUT_3
SWSREQ_011B --> TEST_SINGLE_INPUT_1
SWSREQ_011B --> TEST_SINGLE_OUTPUT_1
SWSREQ_011B --> TEST_GUI_ADVANCED_INPUT_1
SWSREQ_011B --> TEST_GUI_ADVANCED_OUTPUT_1
DREQ_126A --> SWSREQ_011B
DREQ_126A --> SWSREQ_011C
DREQ_115F --> MOTIVATION_220_002
DREQ_115E --> SWSREQ_022A
SWSREQ_022A --> TEST_CFB_OSSD_1
SWSREQ_022A --> TEST_CFB_OSSD_2
SWSREQ_022A --> TEST_CFB_OSSD_3
TEST_CFB_OSSD_3 --> RESULT_CFB_OSSD_3
SWSREQ_019A --> RESULT_SINGLE_OUTPUT_1
SWSREQ_019A --> TEST_CFB_OSSD_1
SWSREQ_019A --> TEST_CFB_OSSD_2
SWSREQ_019A --> TEST_CFB_OSSD_3
DREQ_4A --> SWSREQ_019A
TEST_CFB_OSSD_2 --> RESULT_CFB_OSSD_2
TEST_CFB_OSSD_1 --> RESULT_CFB_OSSD_1
DREQ_115D --> SWSREQ_011B
DREQ_115D --> SWSREQ_022A
DREQ_115C --> MOTIVATION_220_006
DREQ_115C --> SWSREQ_016A
DREQ_115C --> SWSREQ_018A
DREQ_115C --> SWSREQ_019A
SWSREQ_016A --> TEST_300_216
SWSREQ_015B --> TEST_300_216
DREQ_115B --> MOTIVATION_220_005
DREQ_115B --> SWSREQ_019B
DREQ_115A --> MOTIVATION_220_004
DREQ_115A --> SWSREQ_018A
DREQ_115A --> SWSREQ_019A
DREQ_104A --> MOTIVATION_212_001
DREQ_104A --> MOTIVATION_115_001
DREQ_01F --> MOTIVATION_212_001
DREQ_01F --> MOTIVATION_115_001
SREQ_04B --> DREQ_4A
SREQ_04A --> DREQ_4A
MREQ_05 --> SREQ_11
MREQ_05 --> SREQ_13A
MREQ_05 --> SREQ_13B
MREQ_05 --> DREQ_116A
DREQ_116A --> SWSREQ_021A
SWSREQ_021A --> TEST_CFB_COMBO_1
TEST_CFB_COMBO_1 --> RESULT_CFB_COMBO_1
SREQ_11 --> DREQ_11A
SREQ_11 --> DREQ_126B
DREQ_126B --> SWSREQ_011C
DREQ_11A --> SWSREQ_011A
DREQ_11A --> SWSREQ_011B
DREQ_11A --> SWSREQ_011C
DREQ_11A --> SWSREQ_011D
DREQ_14A --> MOTIVATION_220_003
DREQ_14A --> SWSREQ_014A
DREQ_14A --> SWSREQ_016A
DREQ_116C --> SWSREQ_017A
DREQ_116B --> SWSREQ_011E
DREQ_114D --> SWSREQ_011C
DREQ_114D --> SWSREQ_011D
DREQ_114C --> SWSREQ_015B
DREQ_114C --> MOTIVATION_220_001
DREQ_114B --> SWSREQ_011D
DREQ_16C --> SWSREQ_016A
DREQ_16C --> MOTIVATION_220_001
DREQ_114A --> SWSREQ_014A
DREQ_114A --> MOTIVATION_220_001
DREQ_102A --> MOTIVATION_212_001
DREQ_102A --> MOTIVATION_115_001
DREQ_01C --> MOTIVATION_212_001
DREQ_01C --> MOTIVATION_115_001
TEST_SINGLE_INPUT_2 --> RESULT_SINGLE_INPUT_2
TEST_SINGLE_OUTPUT_1 --> RESULT_SINGLE_OUTPUT_1

@enduml

Single Output requirements flow diagram

Market requirement: Function block: Single Output GUI MREQ_SINGLE_OUTPUT
status: PASS
tags: mreq, block, single_output

There shall exist a GUI function block that allows the user to configure a single output pin with optional voltage thresholds.

Hazard: Function block: Single Output GUI HAZARD_SINGLE_OUTPUT_01
status: PASS
tags: hazard, block, single_output

Safety relies on the Single Output GUI function block to correctly configure a single output pin with optional voltage thresholds. If the Single Output GUI function block is not functioning correctly, the output pin may not be configured correctly, which could lead to an unsafe function.

Specification: Function block: Single Output GUI SPEC_SINGLE_OUTPUT
status: PASS
tags: spec, block, single_output

The Single Output GUI function block shall allow the user to configure a single output pin with optional voltage thresholds.


2.2.2 Module tests

TEST: Single Output sl3 code review TEST_SINGLE_OUTPUT_1
status: PASS
tags: single_output_test

Preconditions

Generate a Single Output block with one input.

Procedure

  • Verify that the generated sl3 code contains a Single Output function with the correct inputs and output.

  • Verify that all input signals to the block are in the correct place in the sl3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the sl3 output.


2.2.3 Integration tests

TEST: Verify Single Output function TEST_SINGLE_OUTPUT_2
status: PASS
tags: single_output_test

Preconditions

Generate a Single Output block with one Single Input block connected to it.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Verify that the input signal is correctly mapped to the output signal.

TEST: Single Output in safety manual TEST_SINGLE_OUTPUT_3
status: PASS
tags: single_output_test

Verify that the safety aspects of the Single Output block are documented in the safety manual.


2.2.4 Test results

ID

Tags

Status

TEST_SINGLE_OUTPUT_1

single_output_test

PASS

TEST_SINGLE_OUTPUT_2

single_output_test

PASS

TEST_SINGLE_OUTPUT_3

single_output_test

PASS




2.5 Advanced input

Inputs, outputs, and properties correspond to the underlying compiler function block inputs, outputs, and parameters respectively.

The safe compiler parameter is hard coded to be always true.

Note: In the compiler, setting the max_diff to 0 disables the simultaneity check, which means “no simultaneity” or “infinite simultaneity”. To a user however, setting the max_diff to 0 intuitively means the pins can never diff (all contacts must close at exactly the same time). To avoid misunderstanding, the Enable Simultaneity property is used to disable simultaneity on the GUI block, which sets the max_diff of the compiler block to 0. Enabling simultaneity allows the user to change the max_diff value

2.5.1 Requirement specification

Inputs

None

Outputs

  • ON: Corresponds to the compiler block output “on”.

  • ERROR: Corresponds to the compiler block output “error”.

Properties

  • StartUp Test: Corresponds to the compiler block parameter startup_test.

  • Filter ON (ms): Corresponds to the compiler block parameter debounce_on.

  • Filter OFF (ms): Corresponds to the compiler block parameter debounce_off. If set to true, enables the Simultaneity (ms) property.

  • Enable Simultaneity [true, false]: If set to false, disables the Simultaneity (ms) property and sets it to 0. If set to true, enables the Simultaneity (ms) property.

  • Simultaneity (ms): Corresponds to the compiler block parameter max_diff. This property can be enabled and disabled by the Enable Simultaneity property

  • OFF state min time (ms): Corresponds to the compiler block parameter req_all_zero.

  • Terminal Count: Sets how many pins should be used in the function

  • Terminal Properties:
    • Terminal Number

    • Signal Type ON

    • Signal Type OFF

    • Voltage High

    • Voltage Low

Underlying Compiler Blocks

2.5.2 Module tests

2.5.3 Integration tests

TEST: Advanced input integration tests TEST_GUI_ADVANCED_INPUT_2
status: PASS

See FSD124 test results.




2.6 Advanced output

Inputs, outputs, and properties correspond to the underlying compiler function block inputs, outputs, and parameters respectively.

2.6.1 Requirement specification

Inputs

  • “ON”: Corresponds to the compiler input “on”.

  • “ERROR reset (optional)”: Corresponds to the compiler input “error_reset”.

  • “Feedback” (optional): Corresponds to the compiler input “allow_rise”.

Outputs

  • “ERROR” (optional): Corresponds to the compiler output “error”.

Properties

  • Enable ERROR Output: Enables the “ERROR” output.

  • Enable ERROR Reset: Enables the “ERROR Reset” input.

  • Enable Feedback: Enables the “Feedback” input.

  • Terminal Count: Specifies how many pins should be used in the function.

  • Terminal Properties:
    • Pin number

    • Signal Type ON

    • Signal Type OFF

    • Error Sets OFF

Underlying Compiler Blocks

Tests

TEST: Advanced output module tests TEST_GUI_ADVANCED_OUTPUT_1

See FSD124 test results.

2.7 Gate

@startuml

' Config

left to right direction


' Nodes definition 

node "<size:12>Market requirement</size>\n**Function block:**\n**Gate**\n<size:10>MREQ_GATE</size>" as MREQ_GATE [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_GATE]] #FFA76D
node "<size:12>Specification</size>\n**Function block:**\n**Gate**\n<size:10>SPEC_GATE</size>" as SPEC_GATE [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_GATE]] #FEDCD2
node "<size:12>TEST</size>\n**Gate in safety**\n**manual**\n<size:10>TEST_GATE_13</size>" as TEST_GATE_13 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GATE_13]] #DCB239
node "<size:12>RESULT</size>\n**Gate in safety**\n**manual**\n<size:10>RESULT_GATE_13</size>" as RESULT_GATE_13 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GATE_13]] #FFA76D
node "<size:12>TEST</size>\n**Verify XNOR**\n**Gate function**\n<size:10>TEST_GATE_12</size>" as TEST_GATE_12 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GATE_12]] #DCB239
node "<size:12>RESULT</size>\n**Verify XNOR**\n**Gate function**\n<size:10>RESULT_GATE_12</size>" as RESULT_GATE_12 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GATE_12]] #FFA76D
node "<size:12>TEST</size>\n**Verify XOR Gate**\n**function**\n<size:10>TEST_GATE_11</size>" as TEST_GATE_11 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GATE_11]] #DCB239
node "<size:12>RESULT</size>\n**Verify XOR Gate**\n**function**\n<size:10>RESULT_GATE_11</size>" as RESULT_GATE_11 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GATE_11]] #FFA76D
node "<size:12>TEST</size>\n**Verify NOR Gate**\n**function**\n<size:10>TEST_GATE_10</size>" as TEST_GATE_10 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GATE_10]] #DCB239
node "<size:12>RESULT</size>\n**Verify NOR Gate**\n**function**\n<size:10>RESULT_GATE_10</size>" as RESULT_GATE_10 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GATE_10]] #FFA76D
node "<size:12>TEST</size>\n**Verify OR Gate**\n**function**\n<size:10>TEST_GATE_9</size>" as TEST_GATE_9 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GATE_9]] #DCB239
node "<size:12>RESULT</size>\n**Verify OR Gate**\n**function**\n<size:10>RESULT_GATE_9</size>" as RESULT_GATE_9 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GATE_9]] #FFA76D
node "<size:12>TEST</size>\n**Verify NAND**\n**Gate function**\n<size:10>TEST_GATE_8</size>" as TEST_GATE_8 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GATE_8]] #DCB239
node "<size:12>RESULT</size>\n**Verify NAND**\n**Gate function**\n<size:10>RESULT_GATE_8</size>" as RESULT_GATE_8 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GATE_8]] #FFA76D
node "<size:12>TEST</size>\n**Verify AND Gate**\n**function**\n<size:10>TEST_GATE_7</size>" as TEST_GATE_7 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GATE_7]] #DCB239
node "<size:12>RESULT</size>\n**Verify AND Gate**\n**function**\n<size:10>RESULT_GATE_7</size>" as RESULT_GATE_7 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GATE_7]] #FFA76D
node "<size:12>TEST</size>\n**XNOR Gate sl3**\n**code review**\n<size:10>TEST_GATE_6</size>" as TEST_GATE_6 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GATE_6]] #DCB239
node "<size:12>RESULT</size>\n**XNOR Gate sl3**\n**code review**\n<size:10>RESULT_GATE_6</size>" as RESULT_GATE_6 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GATE_6]] #FFA76D
node "<size:12>TEST</size>\n**XOR Gate sl3**\n**code review**\n<size:10>TEST_GATE_5</size>" as TEST_GATE_5 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GATE_5]] #DCB239
node "<size:12>RESULT</size>\n**XOR Gate sl3**\n**code review**\n<size:10>RESULT_GATE_5</size>" as RESULT_GATE_5 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GATE_5]] #FFA76D
node "<size:12>TEST</size>\n**NOR Gate sl3**\n**code review**\n<size:10>TEST_GATE_4</size>" as TEST_GATE_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GATE_4]] #DCB239
node "<size:12>RESULT</size>\n**NOR Gate sl3**\n**code review**\n<size:10>RESULT_GATE_4</size>" as RESULT_GATE_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GATE_4]] #FFA76D
node "<size:12>TEST</size>\n**OR Gate sl3**\n**code review**\n<size:10>TEST_GATE_3</size>" as TEST_GATE_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GATE_3]] #DCB239
node "<size:12>RESULT</size>\n**OR Gate sl3**\n**code review**\n<size:10>RESULT_GATE_3</size>" as RESULT_GATE_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GATE_3]] #FFA76D
node "<size:12>TEST</size>\n**NAND Gate sl3**\n**code review**\n<size:10>TEST_GATE_2</size>" as TEST_GATE_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GATE_2]] #DCB239
node "<size:12>RESULT</size>\n**NAND Gate sl3**\n**code review**\n<size:10>RESULT_GATE_2</size>" as RESULT_GATE_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GATE_2]] #FFA76D
node "<size:12>TEST</size>\n**AND Gate sl3**\n**code review**\n<size:10>TEST_GATE_1</size>" as TEST_GATE_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_GATE_1]] #DCB239
node "<size:12>RESULT</size>\n**AND Gate sl3**\n**code review**\n<size:10>RESULT_GATE_1</size>" as RESULT_GATE_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_GATE_1]] #FFA76D

' Connection definition 

MREQ_GATE --> SPEC_GATE
SPEC_GATE --> TEST_GATE_1
SPEC_GATE --> TEST_GATE_2
SPEC_GATE --> TEST_GATE_3
SPEC_GATE --> TEST_GATE_4
SPEC_GATE --> TEST_GATE_5
SPEC_GATE --> TEST_GATE_6
SPEC_GATE --> TEST_GATE_7
SPEC_GATE --> TEST_GATE_8
SPEC_GATE --> TEST_GATE_9
SPEC_GATE --> TEST_GATE_10
SPEC_GATE --> TEST_GATE_11
SPEC_GATE --> TEST_GATE_12
SPEC_GATE --> TEST_GATE_13
TEST_GATE_13 --> RESULT_GATE_13
TEST_GATE_12 --> RESULT_GATE_12
TEST_GATE_11 --> RESULT_GATE_11
TEST_GATE_10 --> RESULT_GATE_10
TEST_GATE_9 --> RESULT_GATE_9
TEST_GATE_8 --> RESULT_GATE_8
TEST_GATE_7 --> RESULT_GATE_7
TEST_GATE_6 --> RESULT_GATE_6
TEST_GATE_5 --> RESULT_GATE_5
TEST_GATE_4 --> RESULT_GATE_4
TEST_GATE_3 --> RESULT_GATE_3
TEST_GATE_2 --> RESULT_GATE_2
TEST_GATE_1 --> RESULT_GATE_1

@enduml

Gate requirements flow diagram

Market requirement: Function block: Gate MREQ_GATE
status: PASS
tags: mreq, block, gate
Derived: SPEC_GATE

There shall exist a GUI function block that allows the user to configure a Gate block with a specified type of boolean operation [AND/NAND/OR/NOR/XOR/XNOR].

Specification: Function block: Gate SPEC_GATE

The Gate function block shall allow the user to configure a gate block with a specified type of boolean operation.

Inputs

  • Configurable between 2-16.

Outputs

  • “”: The result of the operation.

Parameters

  • type [AND/NAND/OR/NOR/XOR/XNOR]: This parameter is used to select the type of gate.

The Gate function block shall perform a specified boolean function on 2-16 input signals.

The function to perform shall be selectable between AND, NAND, OR, NOR, XOR, and XNOR.

Underlying Compiler Blocks

Truth Tables

  • AND

Input 1

Input 2

Input 3

Output

0

0

0

0

0

0

1

0

0

1

0

0

0

1

1

0

1

0

0

0

1

0

1

0

1

1

0

0

1

1

1

1

  • NAND

Input 1

Input 2

Input 3

Output

0

0

0

1

0

0

1

1

0

1

0

1

0

1

1

1

1

0

0

1

1

0

1

1

1

1

0

1

1

1

1

0

  • OR

Input 1

Input 2

Input 3

Output

0

0

0

0

0

0

1

1

0

1

0

1

0

1

1

1

1

0

0

1

1

0

1

1

1

1

0

1

1

1

1

1

  • NOR

Input 1

Input 2

Input 3

Output

0

0

0

1

0

0

1

0

0

1

0

0

0

1

1

0

1

0

0

0

1

0

1

0

1

1

0

0

1

1

1

0

  • XOR

Input 1

Input 2

Input 3

Output

0

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

0

0

1

1

0

1

0

1

1

0

0

1

1

1

1

  • XNOR

Input 1

Input 2

Input 3

Output

0

0

0

1

0

0

1

0

0

1

0

0

0

1

1

1

1

0

0

0

1

0

1

1

1

1

0

1

1

1

1

0

2.7.2 Module tests

TEST: AND Gate sl3 code review TEST_GATE_1
status: PASS
tags: gate_test
Derived: RESULT_GATE_1
Source: SPEC_GATE

Preconditions

Generate a Gate block with the following configuration in the GUI:

  • Type: AND

  • Inputs: 16

Procedure

  • Verify that the generated SL3 code contains a gate function with type=and.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: NAND Gate sl3 code review TEST_GATE_2
status: PASS
tags: gate_test
Derived: RESULT_GATE_2
Source: SPEC_GATE

Preconditions

Generate a Gate block with the following configuration in the GUI:

  • Type: NAND

  • Inputs: 16

Procedure

  • Verify that the generated SL3 code contains a gate function with type=nand.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: OR Gate sl3 code review TEST_GATE_3
status: PASS
tags: gate_test
Derived: RESULT_GATE_3
Source: SPEC_GATE

Preconditions

Generate a Gate block with the following configuration in the GUI:

  • Type: OR

  • Inputs: 16

Procedure

  • Verify that the generated SL3 code contains a gate function with type=or.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: NOR Gate sl3 code review TEST_GATE_4
status: PASS
tags: gate_test
Derived: RESULT_GATE_4
Source: SPEC_GATE

Preconditions

Generate a Gate block with the following configuration in the GUI:

  • Type: NOR

  • Inputs: 16

Procedure

  • Verify that the generated SL3 code contains a gate function with type=nor.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: XOR Gate sl3 code review TEST_GATE_5
status: PASS
tags: gate_test
Derived: RESULT_GATE_5
Source: SPEC_GATE

Preconditions

Generate a Gate block with the following configuration in the GUI:

  • Type: XOR

  • Inputs: 16

Procedure

  • Verify that the generated SL3 code contains a gate function with type=xor.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: XNOR Gate sl3 code review TEST_GATE_6
status: PASS
tags: gate_test
Derived: RESULT_GATE_6
Source: SPEC_GATE

Preconditions

Generate a Gate block with the following configuration in the GUI:

  • Type: XNOR

  • Inputs: 16

Procedure

  • Verify that the generated SL3 code contains a gate function with type=xnor.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

2.7.3 Integration tests

TEST: Verify AND Gate function TEST_GATE_7
status: PASS
tags: gate_test
Derived: RESULT_GATE_7
Source: SPEC_GATE

Preconditions

Compile 16 single input blocks connected to the inputs of an AND Gate block, and the output connected to a single output block.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Use the truth table for an AND gate to verify the output is correct.

  2. Verify that the output is LOW/OFF/0V when all inputs are LOW/OFF/0V.

  3. Verify that the output is HIGH only when all 16 inputs are HIGH.

TEST: Verify NAND Gate function TEST_GATE_8
status: PASS
tags: gate_test
Derived: RESULT_GATE_8
Source: SPEC_GATE

Preconditions

Compile 16 single input blocks connected to the inputs of a NAND Gate block, and the output connected to a single output block.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Use the truth table for a NAND gate to verify the output is correct.

  2. Verify that the output is HIGH when all inputs are LOW/OFF/0V.

  3. Verify that the output is LOW only when all 16 inputs are HIGH.

TEST: Verify OR Gate function TEST_GATE_9
status: PASS
tags: gate_test
Derived: RESULT_GATE_9
Source: SPEC_GATE

Preconditions

Compile 16 single input blocks connected to the inputs of an OR Gate block, and the output connected to a single output block.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Use the truth table for an OR gate to verify the output is correct.

  2. Verify that the output is LOW/OFF/0V when all inputs are LOW/OFF/0V.

  3. Verify that the output is HIGH when any input is HIGH.

TEST: Verify NOR Gate function TEST_GATE_10
status: PASS
tags: gate_test
Source: SPEC_GATE

Preconditions

Compile 16 single input blocks connected to the inputs of a NOR Gate block, and the output connected to a single output block.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Use the truth table for a NOR gate to verify the output is correct.

  2. Verify that the output is HIGH when all inputs are LOW/OFF/0V.

  3. Verify that the output is LOW only when any input is HIGH.

TEST: Verify XOR Gate function TEST_GATE_11
status: PASS
tags: gate_test
Source: SPEC_GATE

Preconditions

Compile 16 single input blocks connected to the inputs of an XOR Gate block, and the output connected to a single output block.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Use the truth table for an XOR gate to verify the output is correct.

  2. Verify that the output is LOW/OFF/0V when all inputs are LOW/OFF/0V.

  3. Verify that the output is HIGH only when an odd number of inputs are HIGH.

TEST: Verify XNOR Gate function TEST_GATE_12
status: PASS
tags: gate_test
Source: SPEC_GATE

Preconditions

Compile 16 single input blocks connected to the inputs of an XNOR Gate block, and the output connected to a single output block.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Use the truth table for an XNOR gate to verify the output is correct.

  2. Verify that the output is HIGH when all inputs are LOW/OFF/0V.

  3. Verify that the output is HIGH only when an even number of inputs are HIGH or all inputs are LOW/OFF/0V.

TEST: Gate in safety manual TEST_GATE_13
status: PASS
tags: gate_test
Source: SPEC_GATE

Verify that the safety aspects of the Gate block are documented in the safety manual.


2.7.4 Test results

ID

Tags

Status

TEST_GATE_1

gate_test

PASS

TEST_GATE_2

gate_test

PASS

TEST_GATE_3

gate_test

PASS

TEST_GATE_4

gate_test

PASS

TEST_GATE_5

gate_test

PASS

TEST_GATE_6

gate_test

PASS

TEST_GATE_7

gate_test

PASS

TEST_GATE_8

gate_test

PASS

TEST_GATE_9

gate_test

PASS

TEST_GATE_10

gate_test

PASS

TEST_GATE_11

gate_test

PASS

TEST_GATE_12

gate_test

PASS

TEST_GATE_13

gate_test

PASS




2.8 NOT

@startuml

' Config

left to right direction


' Nodes definition 

node "<size:12>Market requirement</size>\n**Function block:**\n**NOT**\n<size:10>MREQ_GUI_NOT</size>" as MREQ_GUI_NOT [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_GUI_NOT]] #FFA76D
node "<size:12>Specification</size>\n**Function block:**\n**NOT**\n<size:10>SPEC_GUI_NOT</size>" as SPEC_GUI_NOT [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_GUI_NOT]] #FEDCD2
node "<size:12>TEST</size>\n**NOT in safety**\n**manual**\n<size:10>TEST_NOT_3</size>" as TEST_NOT_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_NOT_3]] #DCB239
node "<size:12>RESULT</size>\n**NOT in safety**\n**manual**\n<size:10>RESULT_NOT_3</size>" as RESULT_NOT_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_NOT_3]] #FFA76D
node "<size:12>TEST</size>\n**Verify NOT**\n**block**\n**functionality**\n**with various**\n**inputs**\n<size:10>TEST_NOT_2</size>" as TEST_NOT_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_NOT_2]] #DCB239
node "<size:12>RESULT</size>\n**Verify NOT**\n**block**\n**functionality**\n**with various**\n**inputs**\n<size:10>RESULT_NOT_2</size>" as RESULT_NOT_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_NOT_2]] #FFA76D
node "<size:12>TEST</size>\n**NOT sl3 code**\n**review**\n<size:10>TEST_NOT_1</size>" as TEST_NOT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_NOT_1]] #DCB239
node "<size:12>RESULT</size>\n**NOT sl3 code**\n**review**\n<size:10>RESULT_NOT_1</size>" as RESULT_NOT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_NOT_1]] #FFA76D

' Connection definition 

MREQ_GUI_NOT --> SPEC_GUI_NOT
SPEC_GUI_NOT --> TEST_NOT_1
SPEC_GUI_NOT --> TEST_NOT_2
SPEC_GUI_NOT --> TEST_NOT_3
TEST_NOT_3 --> RESULT_NOT_3
TEST_NOT_2 --> RESULT_NOT_2
TEST_NOT_1 --> RESULT_NOT_1

@enduml

NOT requirements flow diagram

Market requirement: Function block: NOT MREQ_GUI_NOT
status: PASS
tags: mreq, block, not
Derived: SPEC_GUI_NOT

A NOT function block shall be available to users in Simplifier Manager.

Specification: Function block: NOT SPEC_GUI_NOT
status: PASS
tags: spec, block, not

The NOT function block shall perform a logical negation of the input signal.

  • The NOT function block shall have one input and one output.

  • The NOT function block shall invert the input signal to produce the output signal.

Inputs

  • “input”: Corresponds to the compiler function input “input”.

Outputs

  • output: Corresponds to the compiler function output “”.

Properties

None

Underlying Compiler Blocks


2.8.2 Module tests

TEST: NOT sl3 code review TEST_NOT_1
status: PASS
tags: not_test
Derived: RESULT_NOT_1
Source: SPEC_GUI_NOT

Preconditions

Generate a NOT block with an input and an output.

Procedure

  • Verify that the generated sl3 code contains a NOT function with the correct input and output.

  • Verify that all input signals to the block are in the correct place in the sl3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the sl3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other sl3 parameters).


2.8.3 Integration tests

TEST: Verify NOT block functionality with various inputs TEST_NOT_2
status: PASS
tags: not_test
Derived: RESULT_NOT_2
Source: SPEC_GUI_NOT

Preconditions

Compile a NOT block with a Single Input block connected to the input and a Single Output block connected to the output.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Verify that the input signal is correctly inverted to the output signal.

  2. Repeat the test with various input signals (high/low) and verify that the output is inverted within an acceptable timeframe.

TEST: NOT in safety manual TEST_NOT_3
status: PASS
tags: not_test
Derived: RESULT_NOT_3
Source: SPEC_GUI_NOT

Verify that the safety aspects of the NOT block are documented in the safety manual.


2.8.4 Test results

ID

Tags

Status

TEST_NOT_1

not_test

PASS

TEST_NOT_2

not_test

PASS

TEST_NOT_3

not_test

PASS




2.9 SR Latch

@startuml

' Config

left to right direction


' Nodes definition 

node "<size:12>Market requirement</size>\n**Function block:**\n**SR-latch**\n<size:10>MREQ_BLOCK_SR_LATCH</size>" as MREQ_BLOCK_SR_LATCH [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_BLOCK_SR_LATCH]] #FFA76D
node "<size:12>Hazard</size>\n**Function block:**\n**SR-latch**\n<size:10>HAZARD_BLOCK_SR_LATCH</size>" as HAZARD_BLOCK_SR_LATCH [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#HAZARD_BLOCK_SR_LATCH]] #FFA76D
node "<size:12>Specification</size>\n**Function block:**\n**SR-latch**\n<size:10>SPEC_BLOCK_SR_LATCH</size>" as SPEC_BLOCK_SR_LATCH [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_BLOCK_SR_LATCH]] #FEDCD2
node "<size:12>TEST</size>\n**SR-Latch in**\n**safety manual**\n<size:10>TEST_SR_LATCH_3</size>" as TEST_SR_LATCH_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SR_LATCH_3]] #DCB239
node "<size:12>RESULT</size>\n**SR-Latch in**\n**safety manual**\n<size:10>RESULT_SR_LATCH_3</size>" as RESULT_SR_LATCH_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SR_LATCH_3]] #FFA76D
node "<size:12>TEST</size>\n**Verify SR Latch**\n**function**\n<size:10>TEST_SR_LATCH_2</size>" as TEST_SR_LATCH_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SR_LATCH_2]] #DCB239
node "<size:12>RESULT</size>\n**Verify SR Latch**\n**function**\n<size:10>RESULT_SR_LATCH_2</size>" as RESULT_SR_LATCH_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SR_LATCH_2]] #FFA76D
node "<size:12>TEST</size>\n**SR-Latch sl3**\n**code review**\n<size:10>TEST_SR_LATCH_1</size>" as TEST_SR_LATCH_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SR_LATCH_1]] #DCB239
node "<size:12>RESULT</size>\n**SR-Latch sl3**\n**code review**\n<size:10>RESULT_SR_LATCH_1</size>" as RESULT_SR_LATCH_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SR_LATCH_1]] #FFA76D

' Connection definition 

MREQ_BLOCK_SR_LATCH --> HAZARD_BLOCK_SR_LATCH
HAZARD_BLOCK_SR_LATCH --> SPEC_BLOCK_SR_LATCH
SPEC_BLOCK_SR_LATCH --> TEST_SR_LATCH_1
SPEC_BLOCK_SR_LATCH --> TEST_SR_LATCH_2
SPEC_BLOCK_SR_LATCH --> TEST_SR_LATCH_3
TEST_SR_LATCH_3 --> RESULT_SR_LATCH_3
TEST_SR_LATCH_2 --> RESULT_SR_LATCH_2
TEST_SR_LATCH_1 --> RESULT_SR_LATCH_1

@enduml

SR Latch requirements flow diagram

Market requirement: Function block: SR-latch MREQ_BLOCK_SR_LATCH
status: PASS
tags: mreq, block, sr_latch

An SR-latch function shall be available to users in Simplifier Manager.

Hazard: Function block: SR-latch HAZARD_BLOCK_SR_LATCH
status: PASS
tags: hazard, block, sr_latch

A general SR-latch function has undefined behavior when both inputs are high. This can lead to undefined behavior in the system.

Specification: Function block: SR-latch SPEC_BLOCK_SR_LATCH
status: PASS
tags: spec, block, sr_latch

The SR-latch block performs a general SR-latch function:

  • When the S input is 1, the output Q shall be 1.

  • When the R input is 1, the output Q shall be 0.

  • When both inputs are 0, the output shall retain its previous state.

  • When both inputs are simultaneously 1, the output shall be 0.

Inputs

  • S: A 1 on this input sets the output Q to 1.

  • R: A 1 on this input sets the output Q to 0.

Outputs

  • Q: The latch output.

Properties

None

Compiler blocks

Maps 1:1 to the compiler block 3.5 latch_sr.

2.9.2 Module tests

TEST: SR-Latch sl3 code review TEST_SR_LATCH_1
status: PASS
tags: sr_latch_test

Preconditions

Compile an SR Latch block with all inputs and outputs connected to other function blocks.

Procedure

  • Verify that the generated sl3 code contains an SR Latch function with the correct inputs and output.

  • Verify that all input signals to the block are in the correct place in the sl3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the sl3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other sl3 parameters).

2.9.3 Integration tests

TEST: Verify SR Latch function TEST_SR_LATCH_2
status: PASS
tags: sr_latch_test

Preconditions

Compile two single input blocks connected to the S and R inputs of an SR Latch block, and the Q output connected to a single output block.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Verify that the output is LOW/OFF/0V.

  2. Apply a high signal pulse to the S input and verify that the output turns on within X ms of the high flank on the S input.

  3. Apply a high signal pulse to the R input and verify that the output turns off within X ms of the high flank on the R input.

  4. Apply a high signal to both the S and R inputs and verify that the output is off.

TEST: SR-Latch in safety manual TEST_SR_LATCH_3
status: PASS
tags: sr_latch_test

Verify that the safety aspects of the SR-latch block are documented in the safety manual.

2.9.4 Test results

ID

Tags

Status

TEST_SR_LATCH_1

sr_latch_test

PASS

TEST_SR_LATCH_2

sr_latch_test

PASS

TEST_SR_LATCH_3

sr_latch_test

PASS

2.10 Toggle Latch

@startuml

' Config

left to right direction


' Nodes definition 

node "<size:12>Market requirement</size>\n**Function block:**\n**Toggle Latch**\n<size:10>MREQ_BLOCK_T_LATCH</size>" as MREQ_BLOCK_T_LATCH [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_BLOCK_T_LATCH]] #FFA76D
node "<size:12>Specification</size>\n**Function block:**\n**Toggle Latch**\n<size:10>SPEC_BLOCK_T_LATCH</size>" as SPEC_BLOCK_T_LATCH [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_BLOCK_T_LATCH]] #FEDCD2
node "<size:12>TEST</size>\n**T-Latch in**\n**safety manual**\n<size:10>TEST_T_LATCH_3</size>" as TEST_T_LATCH_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_T_LATCH_3]] #DCB239
node "<size:12>RESULT</size>\n**T-Latch in**\n**safety manual**\n<size:10>RESULT_T_LATCH_3</size>" as RESULT_T_LATCH_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_T_LATCH_3]] #FFA76D
node "<size:12>TEST</size>\n**Verify T Latch**\n**function**\n<size:10>TEST_T_LATCH_2</size>" as TEST_T_LATCH_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_T_LATCH_2]] #DCB239
node "<size:12>RESULT</size>\n**Verify T Latch**\n**function**\n<size:10>RESULT_T_LATCH_2</size>" as RESULT_T_LATCH_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_T_LATCH_2]] #FFA76D
node "<size:12>TEST</size>\n**T-Latch sl3**\n**code review**\n<size:10>TEST_T_LATCH_1</size>" as TEST_T_LATCH_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_T_LATCH_1]] #DCB239
node "<size:12>RESULT</size>\n**T-Latch sl3**\n**code review**\n<size:10>RESULT_T_LATCH_1</size>" as RESULT_T_LATCH_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_T_LATCH_1]] #FFA76D

' Connection definition 

MREQ_BLOCK_T_LATCH --> SPEC_BLOCK_T_LATCH
SPEC_BLOCK_T_LATCH --> TEST_T_LATCH_1
SPEC_BLOCK_T_LATCH --> TEST_T_LATCH_2
SPEC_BLOCK_T_LATCH --> TEST_T_LATCH_3
TEST_T_LATCH_3 --> RESULT_T_LATCH_3
TEST_T_LATCH_2 --> RESULT_T_LATCH_2
TEST_T_LATCH_1 --> RESULT_T_LATCH_1

@enduml

Toggle Latch requirements flow diagram

Market requirement: Function block: Toggle Latch MREQ_BLOCK_T_LATCH
status: PASS
tags: mreq, block, toggle_latch

A Toggle Latch function shall be available to users in Simplifier Manager.

Specification: Function block: Toggle Latch SPEC_BLOCK_T_LATCH
status: PASS
tags: spec, block, t_latch

The Toggle Latch block performs a general toggle latch function:

  • When the T input receives a high flank signal the output Q shall toggle between 0 and 1.

Inputs

  • T: A high signal flank on this input toggles the output Q.

Outputs

  • Q: The latch output.

Properties

None

Syntax:

var.my_t_latch = latch_tog(var.toggle)

2.10.2 Module tests

TEST: T-Latch sl3 code review TEST_T_LATCH_1
status: PASS
tags: t_latch_test

Preconditions

Generate a Toggle Latch block with all inputs and outputs connected to other function blocks.

Procedure

  • Verify that the generated sl3 code contains a Toggle Latch function with the correct inputs and output.

  • Verify that all input signals to the block are in the correct place in the sl3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the sl3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other sl3 parameters).


2.10.3 Integration tests


TEST: Verify T Latch function TEST_T_LATCH_2
status: PASS
tags: t_latch_test

Preconditions

Compile a single input block connected to the T input of a Toggle Latch block, and the output connected to a single output block.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Verify that the output is LOW/OFF/0V.

  2. Apply a high signal to the T input and verify that the output toggles within X ms of the high flank on the T input. Repeat this test multiple times to verify that the output toggles within X ms every time the T input receives a high signal.

TEST: T-Latch in safety manual TEST_T_LATCH_3
status: PASS
tags: t_latch_test

Verify that the safety aspects of the T-latch block are documented in the safety manual.


2.10.4 Test results

ID

Tags

Status

TEST_T_LATCH_1

t_latch_test

PASS

TEST_T_LATCH_2

t_latch_test

PASS

TEST_T_LATCH_3

t_latch_test

PASS


2.11 D Latch

@startuml

' Config

left to right direction


' Nodes definition 

node "<size:12>Market requirement</size>\n**Function block:**\n**D Latch**\n<size:10>MREQ_BLOCK_D_LATCH</size>" as MREQ_BLOCK_D_LATCH [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_BLOCK_D_LATCH]] #FFA76D
node "<size:12>Specification</size>\n**Function block:**\n**D Latch**\n<size:10>SPEC_BLOCK_D_LATCH</size>" as SPEC_BLOCK_D_LATCH [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_BLOCK_D_LATCH]] #FEDCD2
node "<size:12>TEST</size>\n**D-Latch in**\n**safety manual**\n<size:10>TEST_D_LATCH_3</size>" as TEST_D_LATCH_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_D_LATCH_3]] #DCB239
node "<size:12>RESULT</size>\n**D-Latch in**\n**safety manual**\n<size:10>RESULT_D_LATCH_3</size>" as RESULT_D_LATCH_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_D_LATCH_3]] #FFA76D
node "<size:12>TEST</size>\n**Verify D Latch**\n**function**\n<size:10>TEST_D_LATCH_2</size>" as TEST_D_LATCH_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_D_LATCH_2]] #DCB239
node "<size:12>RESULT</size>\n**Verify D Latch**\n**function**\n<size:10>RESULT_D_LATCH_2</size>" as RESULT_D_LATCH_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_D_LATCH_2]] #FFA76D
node "<size:12>TEST</size>\n**D-Latch sl3**\n**code review**\n<size:10>TEST_D_LATCH_1</size>" as TEST_D_LATCH_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_D_LATCH_1]] #DCB239
node "<size:12>RESULT</size>\n**D-Latch sl3**\n**code review**\n<size:10>RESULT_D_LATCH_1</size>" as RESULT_D_LATCH_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_D_LATCH_1]] #FFA76D

' Connection definition 

MREQ_BLOCK_D_LATCH --> SPEC_BLOCK_D_LATCH
SPEC_BLOCK_D_LATCH --> TEST_D_LATCH_1
SPEC_BLOCK_D_LATCH --> TEST_D_LATCH_2
SPEC_BLOCK_D_LATCH --> TEST_D_LATCH_3
TEST_D_LATCH_3 --> RESULT_D_LATCH_3
TEST_D_LATCH_2 --> RESULT_D_LATCH_2
TEST_D_LATCH_1 --> RESULT_D_LATCH_1

@enduml

D Latch requirements flow diagram

Market requirement: Function block: D Latch MREQ_BLOCK_D_LATCH
status: PASS
tags: mreq, block, d_latch

A D Latch function shall be available to users in Simplifier Manager.

Specification: Function block: D Latch SPEC_BLOCK_D_LATCH
status: PASS
tags: spec, block, d_latch

The D Latch block performs a general D latch function:

  • When the E input is high, the output Q shall store the input D.

  • When the E input is low, the output Q shall remain the same even if the input D changes.

Inputs

  • D: The input data.

  • E: The enable signal.

Outputs

  • Q: The latch output.

Properties

None


2.11.2 Module tests

TEST: D-Latch sl3 code review TEST_D_LATCH_1
status: PASS
tags: d_latch_test

Preconditions

Generate a D Latch block with all inputs and outputs connected to other function blocks.

Procedure

  • Verify that the generated sl3 code contains a D Latch function with the correct inputs and output.

  • Verify that all input signals to the block are in the correct place in the sl3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the sl3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other sl3 parameters).


2.11.3 Integration tests

TEST: Verify D Latch function TEST_D_LATCH_2
status: PASS
tags: d_latch_test

Preconditions

Compile 2 single input blocks connected to the D and E inputs of a D Latch block, and the output connected to a single output block.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Verify that the output is LOW/OFF/0V.

  2. Give a high signal to the D input and confirm that the output is not changed.

  3. Give a high signal to the E input and give a high signal to the D input. Confirm that the output changes to the value of the D input when the E input is high.

  4. Give a low signal to the E input and confirm that the output is saved and remains the same even if the D input changes.

TEST: D-Latch in safety manual TEST_D_LATCH_3
status: PASS
tags: d_latch_test

Verify that the safety aspects of the D-latch block are documented in the safety manual.


2.11.4 Test results

ID

Tags

Status

TEST_D_LATCH_1

d_latch_test

PASS

TEST_D_LATCH_2

d_latch_test

PASS

TEST_D_LATCH_3

d_latch_test

PASS




2.12 Sync inputs

There shall exist a GUI function block that allows the user to configure a sync inputs block. This function is useful for applications where multiple signals need to be synchronized, such as two-hand control devices.

Inputs, outputs, and properties correspond to the underlying compiler function block inputs, outputs, and parameters respectively.

  • The Sync Inputs function block shall have configurable inputs between 2-16.

  • The Sync Inputs function block shall ensure that all inputs are in a consistent state before transitioning to the ON state.


2.12.1 Requirement specification

Inputs

  • Configurable between 2-16.

Outputs

  • “on”: This output is 1 if the function is in the ON state.

Parameters

  • Startup-test [true/false]: Maps to startup_test in the compiler block. If true, the function starts in the WAIT_FOR_OFF(OFF) state at the time of power on. If false, the function starts in the OFF state at the time of power on.

  • Filter ON [0-10000ms]: Maps to debounce_on in the compiler block. The function will wait this time when an input goes to 1, before considering that input to be 1. If the input goes back to 0, the time is reset.

  • Filter OFF [0-10000ms]: Maps to debounce_off in the compiler block. The function will wait this time when an input goes from 1 to 0 before considering that input to be 0. If the input goes back to 1 before the given time, the time is reset.

  • OFF state min time [0-10000ms]: Maps to req_all_zero in the compiler block. The function requires all inputs to be 0 for at least this time before it can go to ON state again.

  • Simultaneity [0-10000ms]: Maps to simultaneity in the compiler block. When the function is going from OFF to ON state, the inputs can differ for at most this time. If they differ for more than this time, the function will go to ERROR state and require a new valid OFF state, before it can go to ON state again.

2.12.2 Module tests

ID

Tags

Status

TEST_GUI_SYNC_INPUTS_1

sync_inputs_gui_module_tests

PASS

TEST_GUI_SYNC_INPUTS_2

sync_inputs_gui_module_tests

PASS

TEST_GUI_SYNC_INPUTS_3

sync_inputs_gui_module_tests

PASS


TEST: Sync inputs: req_zero_time = 0, simultaneity = 0, debounce_on = 0, debounce_off = 0, startup_test = True TEST_GUI_SYNC_INPUTS_1
status: PASS
tags: sync_inputs_gui_module_tests

Test specification

Compile a Sync inputs block with the following parameters: req_zero_time = 0, simultaneity = 0, debounce_on = 0, debounce_off = 0, startup_test = True.

Pass Criteria

  • Verify that the generated c code contains a sync_inputs function with a req_zero_time of 0, simultaneity of 0, debounce_on of 0, debounce_off of 0 and a startup_test of True.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: Sync inputs: req_zero_time = 10000, simultaneity = 10000, debounce_on = 10000, debounce_off = 10000, startup_test = True TEST_GUI_SYNC_INPUTS_2
status: PASS
tags: sync_inputs_gui_module_tests

Test specification

Compile a Sync inputs block with the following parameters: req_zero_time = 10000, simultaneity = 10000, debounce_on = 10000, debounce_off = 10000, startup_test = True.

Pass Criteria

  • Verify that the generated c code contains a sync_inputs function with a req_zero_time of 10000, simultaneity of 10000, debounce_on of 10000, debounce_off of 10000 and a startup_test of True.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: Sync inputs: req_zero_time = 1, simultaneity = 2, debounce_on = 3, debounce_off = 4, startup_test = False TEST_GUI_SYNC_INPUTS_3
status: PASS
tags: sync_inputs_gui_module_tests

Test specification

Compile a Sync inputs block with the following parameters: req_zero_time = 1, simultaneity = 2, debounce_on = 3, debounce_off = 4, startup_test = False.

Pass Criteria

  • Verify that the generated c code contains a sync_inputs function with a req_zero_time of 1, simultaneity of 2, debounce_on of 3, debounce_off of 4 and a startup_test of False.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).


2.12.3 Integration tests

Test result summary

ID

Tags

Status

TEST_GUI_SYNC_INPUTS_4

sync_inputs_gui_integration_tests

PASS

TEST_GUI_SYNC_INPUTS_5

sync_inputs_gui_integration_tests

PASS

TEST_GUI_SYNC_INPUTS_6

sync_inputs_gui_integration_tests

PASS

TEST_GUI_SYNC_INPUTS_7

sync_inputs_gui_integration_tests

PASS

TEST_GUI_SYNC_INPUTS_8

sync_inputs_gui_integration_tests

PASS

TEST: Sync inputs: Default values TEST_GUI_SYNC_INPUTS_4
status: PASS
tags: sync_inputs_gui_integration_tests

Test Input

Compile and download a Sync inputs block connected with 2 inputs and 1 output to a node.

Pass Criteria

  • Verify that the generated c code contains a sync_inputs function with the correct inputs and outputs.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: Sync inputs: Minimum values TEST_GUI_SYNC_INPUTS_5
status: PASS
tags: sync_inputs_gui_integration_tests

Test Input

Compile and download a Sync inputs block with the minimum values for all parameters.

Pass Criteria

  • Verify that the generated c code contains a sync_inputs function with the correct inputs and outputs for minimum values.

  • Verify that all input signals to the block are in the correct place in the SL3 output for minimum values.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output for minimum values.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters) for minimum values.

TEST: Sync inputs: Maximum values TEST_GUI_SYNC_INPUTS_6
status: PASS
tags: sync_inputs_gui_integration_tests

Test Input

Compile and download a Sync inputs block with the maximum values for all parameters.

Pass Criteria

  • Verify that the generated c code contains a sync_inputs function with the correct inputs and outputs for maximum values.

  • Verify that all input signals to the block are in the correct place in the SL3 output for maximum values.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output for maximum values.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters) for maximum values.

TEST: Sync inputs: Simultaneous changes TEST_GUI_SYNC_INPUTS_7
status: PASS
tags: sync_inputs_gui_integration_tests

Test Input

Compile and download a Sync inputs block with simultaneous changes in multiple inputs.

Pass Criteria

  • Verify that the generated c code contains a sync_inputs function with the correct inputs and outputs for simultaneous changes.

  • Verify that all input signals to the block are in the correct place in the SL3 output for simultaneous changes.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output for simultaneous changes.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters) for simultaneous changes.

TEST: Sync inputs: Timing verification TEST_GUI_SYNC_INPUTS_8
status: PASS
tags: sync_inputs_gui_integration_tests

Test Input

Compile and download a Sync inputs block and perform timing verification using an oscilloscope or logic analyzer.

Pass Criteria

  • Verify that the timing behavior of the generated c code matches the expected behavior.

  • Verify that all input signals to the block are in the correct place in the SL3 output for timing verification.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output for timing verification.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters) for timing verification.




2.13 Square wave

@startuml

' Config

left to right direction


' Nodes definition 

node "<size:12>Market requirement</size>\n**Function block:**\n**Square wave**\n<size:10>MREQ_BLOCK_SQUARE_WAVE</size>" as MREQ_BLOCK_SQUARE_WAVE [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_BLOCK_SQUARE_WAVE]] #FFA76D
node "<size:12>Specification</size>\n**Function block:**\n**Square wave**\n<size:10>SPEC_BLOCK_SQUARE_WAVE</size>" as SPEC_BLOCK_SQUARE_WAVE [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_BLOCK_SQUARE_WAVE]] #FEDCD2
node "<size:12>TEST</size>\n**Square wave in**\n**safety manual**\n<size:10>TEST_SQUARE_WAVE_5</size>" as TEST_SQUARE_WAVE_5 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SQUARE_WAVE_5]] #DCB239
node "<size:12>RESULT</size>\n**Square wave in**\n**safety manual**\n<size:10>RESULT_SQUARE_WAVE_5</size>" as RESULT_SQUARE_WAVE_5 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SQUARE_WAVE_5]] #FFA76D
node "<size:12>TEST</size>\n**Verify Square**\n**Wave function**\n<size:10>TEST_SQUARE_WAVE_4</size>" as TEST_SQUARE_WAVE_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SQUARE_WAVE_4]] #DCB239
node "<size:12>RESULT</size>\n**Verify Square**\n**Wave function**\n<size:10>RESULT_SQUARE_WAVE_4</size>" as RESULT_SQUARE_WAVE_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SQUARE_WAVE_4]] #FFA76D
node "<size:12>TEST</size>\n**Square wave:**\n**Max values**\n<size:10>TEST_SQUARE_WAVE_3</size>" as TEST_SQUARE_WAVE_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SQUARE_WAVE_3]] #DCB239
node "<size:12>RESULT</size>\n**Square wave:**\n**Max values**\n<size:10>RESULT_SQUARE_WAVE_3</size>" as RESULT_SQUARE_WAVE_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SQUARE_WAVE_3]] #FFA76D
node "<size:12>TEST</size>\n**Square wave:**\n**Min values**\n<size:10>TEST_SQUARE_WAVE_2</size>" as TEST_SQUARE_WAVE_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SQUARE_WAVE_2]] #DCB239
node "<size:12>RESULT</size>\n**Square wave:**\n**Min values**\n<size:10>RESULT_SQUARE_WAVE_2</size>" as RESULT_SQUARE_WAVE_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SQUARE_WAVE_2]] #FFA76D
node "<size:12>TEST</size>\n**Square wave sl3**\n**code review**\n<size:10>TEST_SQUARE_WAVE_1</size>" as TEST_SQUARE_WAVE_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SQUARE_WAVE_1]] #DCB239
node "<size:12>RESULT</size>\n**Square wave sl3**\n**code review**\n<size:10>RESULT_SQUARE_WAVE_1</size>" as RESULT_SQUARE_WAVE_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SQUARE_WAVE_1]] #FFA76D

' Connection definition 

MREQ_BLOCK_SQUARE_WAVE --> SPEC_BLOCK_SQUARE_WAVE
SPEC_BLOCK_SQUARE_WAVE --> TEST_SQUARE_WAVE_1
SPEC_BLOCK_SQUARE_WAVE --> TEST_SQUARE_WAVE_2
SPEC_BLOCK_SQUARE_WAVE --> TEST_SQUARE_WAVE_3
SPEC_BLOCK_SQUARE_WAVE --> TEST_SQUARE_WAVE_4
SPEC_BLOCK_SQUARE_WAVE --> TEST_SQUARE_WAVE_5
TEST_SQUARE_WAVE_5 --> RESULT_SQUARE_WAVE_5
TEST_SQUARE_WAVE_4 --> RESULT_SQUARE_WAVE_4
TEST_SQUARE_WAVE_3 --> RESULT_SQUARE_WAVE_3
TEST_SQUARE_WAVE_2 --> RESULT_SQUARE_WAVE_2
TEST_SQUARE_WAVE_1 --> RESULT_SQUARE_WAVE_1

@enduml

Filter requirements flow diagram

Market requirement: Function block: Square wave MREQ_BLOCK_SQUARE_WAVE
status: PASS
tags: mreq, block, square_wave

A Square wave function shall be available to users in Simplifier Manager.

Specification: Function block: Square wave SPEC_BLOCK_SQUARE_WAVE
  • The Square Wave function block shall generate a square wave signal based on the specified high and low times.

  • The Square Wave function block shall have a start value that determines the initial state of the output signal.

  • The Square Wave function block shall have an enable input that can start and stop the square wave signal.

Inputs

  • “enable”: When = 1 starts the square wave. Maps to ctrl in the compiler block.

Outputs

  • “output”: This output produces the square wave function.

Parameters

  • High Time [1-10000 ms]: Maps to t_on in the compiler block. The time in milliseconds the output is 1.

  • Low Time [1-10000 ms]: Maps to t_off in the compiler block. The time in milliseconds the output is 0.

  • Start Value [0-10000 ms]: Maps to start_val in the compiler block. The time in milliseconds the output is 0 before the first cycle. #SEARCH REPLACE


2.13.2 Module tests

TEST: Square wave sl3 code review TEST_SQUARE_WAVE_1
status: PASS
tags: sqrwave_test

Preconditions

Compile a Square wave block with the following parameters: High Time = 1 ms, Low Time = 2 ms, Start Value = 3 ms.

Procedure

  • Verify that the generated c code contains a sqrwave function with a t_on of 1 ms, t_off of 2 ms, and a start_val of 3 ms.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: Square wave: Min values TEST_SQUARE_WAVE_2
status: PASS
tags: sqrwave_test

Preconditions

Compile a Square wave block with the following parameters: High Time = 1 ms, Low Time = 1 ms, Start Value = 0 ms.

Procedure

  • Verify that the generated c code contains a sqrwave function with a t_on of 1 ms, t_off of 1 ms, and a start_val of 0 ms.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: Square wave: Max values TEST_SQUARE_WAVE_3
status: PASS
tags: sqrwave_test

Preconditions

Compile a Square wave block with the following parameters: High Time = 10000 ms, Low Time = 10000 ms, Start Value = 10000 ms.

Procedure

  • Verify that the generated c code contains a sqrwave function with a t_on of 10000 ms, t_off of 10000 ms, and a start_val of 10000 ms.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).


2.13.3 Integration tests

TEST: Verify Square Wave function TEST_SQUARE_WAVE_4
status: PASS
tags: sqrwave_test

Preconditions

Compile a Square Wave function block connected to one single output.

Download to a single unit and measure the output with a logic analyzer or oscilloscope.

Procedure

  1. Verify that the output signal is a square wave with the specified high and low times.

  2. Change the high and low times and verify that the output signal changes accordingly.

TEST: Square wave in safety manual TEST_SQUARE_WAVE_5
status: PASS
tags: sqrwave_test

Verify that the safety aspects of the Square wave block are documented in the safety manual.


2.13.4 Test results

ID

Tags

Status

TEST_SQUARE_WAVE_1

sqrwave_test

PASS

TEST_SQUARE_WAVE_2

sqrwave_test

PASS

TEST_SQUARE_WAVE_3

sqrwave_test

PASS

TEST_SQUARE_WAVE_4

sqrwave_test

PASS

TEST_SQUARE_WAVE_5

sqrwave_test

PASS




2.14 Reset

@startuml

' Config

left to right direction


' Nodes definition 

node "<size:12>Market requirement</size>\n**Function block:**\n**Reset**\n<size:10>MREQ_RESET</size>" as MREQ_RESET [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_RESET]] #FFA76D
node "<size:12>Specification</size>\n**Function block:**\n**Reset**\n<size:10>SPEC_RESET</size>" as SPEC_RESET [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_RESET]] #FEDCD2
node "<size:12>TEST</size>\n**Reset in safety**\n**manual**\n<size:10>TEST_RESET_6</size>" as TEST_RESET_6 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_RESET_6]] #DCB239
node "<size:12>RESULT</size>\n**Reset in safety**\n**manual**\n<size:10>RESULT_RESET_6</size>" as RESULT_RESET_6 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_RESET_6]] #FFA76D
node "<size:12>TEST</size>\n**Verify Reset**\n**function 2**\n<size:10>TEST_RESET_5</size>" as TEST_RESET_5 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_RESET_5]] #DCB239
node "<size:12>RESULT</size>\n**Verify Reset**\n**function 2**\n<size:10>RESULT_RESET_5</size>" as RESULT_RESET_5 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_RESET_5]] #FFA76D
node "<size:12>TEST</size>\n**Verify Reset**\n**function 1**\n<size:10>TEST_RESET_4</size>" as TEST_RESET_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_RESET_4]] #DCB239
node "<size:12>RESULT</size>\n**Verify Reset**\n**function 1**\n<size:10>RESULT_RESET_4</size>" as RESULT_RESET_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_RESET_4]] #FFA76D
node "<size:12>TEST</size>\n**Reset: Minimum**\n**Push Time =**\n**10000**\n<size:10>TEST_RESET_3</size>" as TEST_RESET_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_RESET_3]] #DCB239
node "<size:12>RESULT</size>\n**Reset: Minimum**\n**Push Time =**\n**10000**\n<size:10>RESULT_RESET_3</size>" as RESULT_RESET_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_RESET_3]] #FFA76D
node "<size:12>TEST</size>\n**Reset: Minimum**\n**Push Time = 0**\n<size:10>TEST_RESET_2</size>" as TEST_RESET_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_RESET_2]] #DCB239
node "<size:12>RESULT</size>\n**Reset: Minimum**\n**Push Time = 0**\n<size:10>RESULT_RESET_2</size>" as RESULT_RESET_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_RESET_2]] #FFA76D
node "<size:12>TEST</size>\n**Reset: Minimum**\n**Push Time = 20**\n<size:10>TEST_RESET_1</size>" as TEST_RESET_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_RESET_1]] #DCB239
node "<size:12>RESULT</size>\n**Reset: Minimum**\n**Push Time = 20**\n<size:10>RESULT_RESET_1</size>" as RESULT_RESET_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_RESET_1]] #FFA76D

' Connection definition 

MREQ_RESET --> SPEC_RESET
SPEC_RESET --> TEST_RESET_1
SPEC_RESET --> TEST_RESET_2
SPEC_RESET --> TEST_RESET_3
SPEC_RESET --> TEST_RESET_4
SPEC_RESET --> TEST_RESET_5
SPEC_RESET --> TEST_RESET_6
TEST_RESET_6 --> RESULT_RESET_6
TEST_RESET_5 --> RESULT_RESET_5
TEST_RESET_4 --> RESULT_RESET_4
TEST_RESET_3 --> RESULT_RESET_3
TEST_RESET_2 --> RESULT_RESET_2
TEST_RESET_1 --> RESULT_RESET_1

@enduml

Reset requirements flow diagram

Market requirement: Function block: Reset MREQ_RESET
status: PASS
tags: mreq, block, reset
Derived: SPEC_RESET

A Reset function block shall be available to users in Simplifier Manager.

Specification: Function block: Reset SPEC_RESET
status: PASS
tags: spec, block, reset

The Reset function block shall perform a reset operation on the input signal based on the reset signal and allow_reset signal.

  • The Reset function block shall have three inputs and two outputs.

  • The Reset function block shall ensure that the reset signal is valid by checking the time between the positive and negative edges of the reset input.

Inputs

  • “input”: The signal to apply the reset function to.

  • “reset”: The signal that controls the reset functionality.

  • “allow_reset”: A boolean signal that enables the reset functionality.

Outputs

  • “run”: The output signal that is controlled by the reset functionality.

  • “lamp”: A visual indicator that reflects the reset process status.

Parameters

  • Minimum Push Time [0-10000 ms]: Maps to min_push_time in the compiler block. The minimum time the reset signal must be active before the output is reset.

Underlying Compiler Blocks


2.14.2 Module tests

TEST: Reset: Minimum Push Time = 20 TEST_RESET_1
status: PASS
tags: reset_test
Source: SPEC_RESET

Preconditions

Compile a Reset block with the following parameters: Minimum Push Time = 20 ms, Allow Reset = True, Enable lamp output = True.

Procedure

  • Verify that the generated c code contains a reset function with a min_push_time of 20 ms and that the allow_reset and enable_lamp parameters are set to True.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: Reset: Minimum Push Time = 0 TEST_RESET_2
status: PASS
tags: reset_test
Source: SPEC_RESET

Preconditions

Compile a Reset block with the following parameters: Minimum Push Time = 0 ms.

Procedure

  • Verify that the generated c code contains a reset function with a min_push_time of 0 ms.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: Reset: Minimum Push Time = 10000 TEST_RESET_3
status: PASS
tags: reset_test
Source: SPEC_RESET

Preconditions

Compile a Reset block with the following parameters: Minimum Push Time = 10000 ms.

Procedure

  • Verify that the generated c code contains a reset function with a min_push_time of 10000 ms.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).


2.14.3 Integration tests

TEST: Verify Reset function 1 TEST_RESET_4
status: PASS
tags: reset_test
Source: SPEC_RESET

Preconditions

Compile a Reset block with Single Input blocks connected to the inputs and a Single Output block connected to the output and the following parameters:

  • Minimum Push Time = 100 ms

  • Allow Reset = False

  • Enable lamp output = False

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Verify that the run output is LOW/OFF/0V.

  2. Apply a high signal pulse longer than the minimum push time to the reset input and verify that the run output remains LOW/OFF/0V.

  3. While the reset input is low, apply a high signal to the input input and verify that the run output remains LOW/OFF/0V.

  4. Apply a high signal to the input input and apply a signal pulse longer than the minimum push time to the reset input and verify that the run output goes high.

  5. Reset the output to LOW/OFF/0V and repeat the previous step and apply a signal pulse shorter than the minimum push time to the reset input and verify that the run output remains LOW/OFF/0V.

TEST: Verify Reset function 2 TEST_RESET_5
status: PASS
tags: reset_test
Source: SPEC_RESET

Preconditions

Compile a Reset block with Single Input blocks connected to the inputs and a Single Output block connected to the output and the following parameters:

  • Minimum Push Time = 100 ms

  • Allow Reset = True

  • Enable lamp output = True

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Verify that the run output is LOW/OFF/0V and that the lamp output is high.

  2. Apply high pulses to the input input and reset input and verify that the run output remains LOW/OFF/0V and the lamp output remains high.

  3. Apply a high singal to the allow_reset input.

  4. Apply a high signal pulse longer than the minimum push time to the reset input and verify that the run output remains LOW/OFF/0V and the lamp output remains high.

  5. Apply a high signal to the input input and verify that the run output remains LOW/OFF/0V and the lamp output generates a signal pulse.

  6. Apply a signal pulse longer than the minimum push time to the reset input and verify that the run output goes high and the lamp output goes low.

  7. Apply a low signal to the input input and then apply it a high signal to reset the test.

  8. Repeat step 6 but with a signal pulse shorter than the minimum push time and verify that the run output remains LOW/OFF/0V and the lamp output is genereating a signal pulse.

TEST: Reset in safety manual TEST_RESET_6
status: PASS
tags: reset_test
Source: SPEC_RESET

Verify that the safety aspects of the Reset block are documented in the safety manual.


2.14.4 Test results

ID

Tags

Status

TEST_RESET_1

reset_test

PASS

TEST_RESET_2

reset_test

PASS

TEST_RESET_3

reset_test

PASS

TEST_RESET_4

reset_test

PASS

TEST_RESET_5

reset_test

PASS

TEST_RESET_6

reset_test

PASS




2.16 Constants (1/0)

@startuml

' Config

left to right direction


' Nodes definition 

node "<size:12>Market requirement</size>\n**Function block:**\n**Constant**\n<size:10>MREQ_BLOCK_CONSTANT</size>" as MREQ_BLOCK_CONSTANT [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_BLOCK_CONSTANT]] #FFA76D
node "<size:12>Specification</size>\n**Function block:**\n**Constant**\n<size:10>SPEC_BLOCK_CONSTANT</size>" as SPEC_BLOCK_CONSTANT [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_BLOCK_CONSTANT]] #FEDCD2
node "<size:12>TEST</size>\n**Constant in**\n**safety manual**\n<size:10>TEST_CONSTANT_4</size>" as TEST_CONSTANT_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_CONSTANT_4]] #DCB239
node "<size:12>RESULT</size>\n**Constant in**\n**safety manual**\n<size:10>RESULT_CONSTANT_4</size>" as RESULT_CONSTANT_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_CONSTANT_4]] #FFA76D
node "<size:12>TEST</size>\n**Verify Constant**\n**block function**\n<size:10>TEST_CONSTANT_3</size>" as TEST_CONSTANT_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_CONSTANT_3]] #DCB239
node "<size:12>RESULT</size>\n**Verify Constant**\n**block function**\n<size:10>RESULT_CONSTANT_3</size>" as RESULT_CONSTANT_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_CONSTANT_3]] #FFA76D
node "<size:12>TEST</size>\n**Test compiling**\n**with 0 as input**\n<size:10>TEST_CONSTANT_2</size>" as TEST_CONSTANT_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_CONSTANT_2]] #DCB239
node "<size:12>RESULT</size>\n**Test compiling**\n**with 0 as input**\n<size:10>RESULT_CONSTANT_2</size>" as RESULT_CONSTANT_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_CONSTANT_2]] #FFA76D
node "<size:12>TEST</size>\n**Test compiling**\n**with 1 as input**\n<size:10>TEST_CONSTANT_1</size>" as TEST_CONSTANT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_CONSTANT_1]] #DCB239
node "<size:12>RESULT</size>\n**Test compiling**\n**with 1 as input**\n<size:10>RESULT_CONSTANT_1</size>" as RESULT_CONSTANT_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_CONSTANT_1]] #FFA76D

' Connection definition 

MREQ_BLOCK_CONSTANT --> SPEC_BLOCK_CONSTANT
SPEC_BLOCK_CONSTANT --> TEST_CONSTANT_1
SPEC_BLOCK_CONSTANT --> TEST_CONSTANT_2
SPEC_BLOCK_CONSTANT --> TEST_CONSTANT_3
SPEC_BLOCK_CONSTANT --> TEST_CONSTANT_4
TEST_CONSTANT_4 --> RESULT_CONSTANT_4
TEST_CONSTANT_3 --> RESULT_CONSTANT_3
TEST_CONSTANT_2 --> RESULT_CONSTANT_2
TEST_CONSTANT_1 --> RESULT_CONSTANT_1

@enduml

Constant requirements flow diagram

Market requirement: Function block: Constant MREQ_BLOCK_CONSTANT
status: PASS
tags: mreq, block, constant

There shall exist a GUI function block that allows the user to configure a constant signal block. This function is useful for providing constant values as inputs to other blocks.

Specification: Function block: Constant SPEC_BLOCK_CONSTANT
status: PASS
tags: spec, block, constant

The Constant block shall provide a constant value of logical 1 or 0.

  • The Constant block shall have one output.

Inputs

None

Outputs

  • “1”: Outputs a constant value of 1.

  • “0”: Outputs a constant value of 0.

Properties

None

Underlying Compiler Blocks

2.16.2 Module tests

TEST: Test compiling with 1 as input TEST_CONSTANT_1
status: PASS
tags: constant_test

Test specification

Compile a Constant block with the value 1.

Pass Criteria

  • Verify that the generated SL3 code contains a constant function with the value 1.

  • Verify that the constant value 1 is correctly placed in the list of inputs to another block.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: Test compiling with 0 as input TEST_CONSTANT_2
status: PASS
tags: constant_test

Test specification

Compile a Constant block with the value 0.

Pass Criteria

  • Verify that the generated SL3 code contains a constant function with the value 0.

  • Verify that the constant value 0 is correctly placed in the list of inputs to another block.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

2.16.3 Integration tests

TEST: Verify Constant block function TEST_CONSTANT_3
status: PASS
tags: constant_test

Preconditions

Compile a Constant block with a Single Output block connected to the output.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Verify that the output signal is correctly set to logical 1 if the input is set to logical 1.

  2. Verify that the output signal is correctly set to logical 0 if the input is set to logical 0.

TEST: Constant in safety manual TEST_CONSTANT_4
status: PASS
tags: constant_test

Verify that the safety aspects of the Constant block are documented in the safety manual.

2.16.4 Test results

ID

Tags

Status

TEST_CONSTANT_1

constant_test

PASS

TEST_CONSTANT_2

constant_test

PASS

TEST_CONSTANT_3

constant_test

PASS

TEST_CONSTANT_4

constant_test

PASS




2.17 Filter

@startuml

' Config

left to right direction


' Nodes definition 

node "<size:12>Market requirement</size>\n**Function block:**\n**Filter**\n<size:10>MREQ_GUI_FILTER</size>" as MREQ_GUI_FILTER [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_GUI_FILTER]] #FFA76D
node "<size:12>Hazard</size>\n**Function block:**\n**Filter**\n<size:10>HAZARD_GUI_FILTER_01</size>" as HAZARD_GUI_FILTER_01 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#HAZARD_GUI_FILTER_01]] #FFA76D
node "<size:12>Specification</size>\n**Function block:**\n**Filter**\n<size:10>SPEC_GUI_FILTER</size>" as SPEC_GUI_FILTER [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_GUI_FILTER]] #FEDCD2
node "<size:12>TEST</size>\n**Filter in**\n**safety manual**\n<size:10>TEST_FILTER_5</size>" as TEST_FILTER_5 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_FILTER_5]] #DCB239
node "<size:12>RESULT</size>\n**Filter in**\n**safety manual**\n<size:10>RESULT_FILTER_5</size>" as RESULT_FILTER_5 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_FILTER_5]] #FFA76D
node "<size:12>TEST</size>\n**Verify the**\n**Filter function**\n<size:10>TEST_FILTER_4</size>" as TEST_FILTER_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_FILTER_4]] #DCB239
node "<size:12>RESULT</size>\n**Verify the**\n**Filter function**\n<size:10>RESULT_FILTER_4</size>" as RESULT_FILTER_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_FILTER_4]] #FFA76D
node "<size:12>TEST</size>\n**Filter sl3 code**\n**review, min**\n**values**\n<size:10>TEST_FILTER_3</size>" as TEST_FILTER_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_FILTER_3]] #DCB239
node "<size:12>RESULT</size>\n**Filter sl3 code**\n**review, min**\n**values**\n<size:10>RESULT_FILTER_3</size>" as RESULT_FILTER_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_FILTER_3]] #FFA76D
node "<size:12>TEST</size>\n**Filter sl3 code**\n**review, max**\n**values**\n<size:10>TEST_FILTER_2</size>" as TEST_FILTER_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_FILTER_2]] #DCB239
node "<size:12>RESULT</size>\n**Filter sl3 code**\n**review, max**\n**values**\n<size:10>RESULT_FILTER_2</size>" as RESULT_FILTER_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_FILTER_2]] #FFA76D
node "<size:12>TEST</size>\n**Filter sl3 code**\n**review**\n<size:10>TEST_FILTER_1</size>" as TEST_FILTER_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_FILTER_1]] #DCB239
node "<size:12>RESULT</size>\n**Filter sl3 code**\n**review**\n<size:10>RESULT_FILTER_1</size>" as RESULT_FILTER_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_FILTER_1]] #FFA76D

' Connection definition 

MREQ_GUI_FILTER --> HAZARD_GUI_FILTER_01
HAZARD_GUI_FILTER_01 --> SPEC_GUI_FILTER
SPEC_GUI_FILTER --> TEST_FILTER_1
SPEC_GUI_FILTER --> TEST_FILTER_2
SPEC_GUI_FILTER --> TEST_FILTER_3
SPEC_GUI_FILTER --> TEST_FILTER_4
SPEC_GUI_FILTER --> TEST_FILTER_5
TEST_FILTER_5 --> RESULT_FILTER_5
TEST_FILTER_4 --> RESULT_FILTER_4
TEST_FILTER_3 --> RESULT_FILTER_3
TEST_FILTER_2 --> RESULT_FILTER_2
TEST_FILTER_1 --> RESULT_FILTER_1

@enduml

Filter requirements flow diagram

Market requirement: Function block: Filter MREQ_GUI_FILTER
status: PASS
tags: mreq, block, filter

A Filter function block shall be available to users in Simplifier Manager.

Hazard: Function block: Filter HAZARD_GUI_FILTER_01
status: PASS
tags: hazard, block, filter

Safety relies on the “DelayOFF” and “DelayON” inputs of the Filter to delay the output signal. If the “DelayOFF” and “DelayON” inputs are not functioning correctly, the output may not be delayed, which could lead to an unsafe function.

Specification: Function block: Filter SPEC_GUI_FILTER
status: PASS
tags: spec, block, filter

The Filter block performs a general filter function:

  • The Filter function block shall delay the input signal based on the specified DelayON and DelayOFF times.

Inputs

  • “Input”: Corresponds to the compiler input “input”.

Outputs

  • “Output”: Corresponds to the compiler output “output”.

Properties

  • DelayOFF: Corresponds to the compiler parameter t_off.

  • DelayON: Corresponds to the compiler parameter t_on.

State Diagram

        stateDiagram-v2
   Start  --> OFF
   OFF --> ON: input = 1
   ON --> OFF: Input = 0

   state ON {
      HIGH --> LOW: time > t_off
      LOW --> HIGH: time > t_on
   }
    

2.17.2 Module tests

TEST: Filter sl3 code review TEST_FILTER_1
status: PASS
tags: filter_test

Preconditions

Compile a Filter block with the following properties:

  • DelayOFF = 100

  • DelayON = 200

Procedure

  • Verify that the generated SL3 code contains the specified properties with the correct values appended to the arguments of the delay function.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: Filter sl3 code review, max values TEST_FILTER_2
status: PASS
tags: filter_test

Preconditions

Compile a Filter block with the following properties:

  • DelayOFF = 10000

  • DelayON = 10000

Procedure

  • Verify that the generated SL3 code contains the specified properties with the correct values appended to the arguments of the delay function.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: Filter sl3 code review, min values TEST_FILTER_3
status: PASS
tags: filter_test

Preconditions

Compile a Filter block with the following properties:

  • DelayOFF = 0

  • DelayON = 0

Procedure

  • Verify that the generated SL3 code contains the specified properties with the correct values appended to the arguments of the delay function.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

2.17.3 Integration tests

TEST: Verify the Filter function TEST_FILTER_4
status: PASS
tags: filter_test

Preconditions

Compile a Filter block with a Single Input connected to the input, a Single Output connected to the output and the following properties:

  • DelayOFF = 100

  • DelayON = 200

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Verify that the input and output signals are OFF/LOW/0V.

  2. Apply a HIGH signal to the input.

  3. Verify that the output turns on after the specified DelayON time.

  4. Apply a LOW signal to the input.

  5. Verify that the output turns off after the specified DelayOFF time.

  6. When the output is high, apply a pulse signal < 100ms to the input and verify that the output does not change state.

  7. When the output is low, apply a pulse signal < 200ms to the input and verify that the output does not change state.

TEST: Filter in safety manual TEST_FILTER_5
status: PASS
tags: filter_test

Verify that the safety aspects of the Filter block are documented in the safety manual.


2.17.4 Test results

ID

Tags

Status

RESULT_FILTER_1

result; block; filter_test

PASS

RESULT_FILTER_2

result; block; filter_test

PASS

RESULT_FILTER_3

result; block; filter_test

PASS

RESULT_FILTER_4

result; block; filter_test

PASS

RESULT_FILTER_5

result; block; filter_test

PASS




2.19 Switch-on Filter

@startuml

' Config

left to right direction


' Nodes definition 

node "<size:12>Market requirement</size>\n**Function block:**\n**Switch-on**\n**Filter**\n<size:10>MREQ_BLOCK_SWITCH_ON_FILTER</size>" as MREQ_BLOCK_SWITCH_ON_FILTER [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_BLOCK_SWITCH_ON_FILTER]] #FFA76D
node "<size:12>Specification</size>\n**Function block:**\n**Switch-on**\n**Filter**\n<size:10>SPEC_BLOCK_SWITCH_ON_FILTER</size>" as SPEC_BLOCK_SWITCH_ON_FILTER [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_BLOCK_SWITCH_ON_FILTER]] #FEDCD2
node "<size:12>TEST</size>\n**Switch-on**\n**Filter in**\n**manual**\n<size:10>TEST_SWITCH_ON_FILTER_4</size>" as TEST_SWITCH_ON_FILTER_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SWITCH_ON_FILTER_4]] #DCB239
node "<size:12>RESULT</size>\n**Switch-on**\n**Filter in**\n**manual**\n<size:10>RESULT_SWITCH_ON_FILTER_4</size>" as RESULT_SWITCH_ON_FILTER_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SWITCH_ON_FILTER_4]] #FFA76D
node "<size:12>TEST</size>\n**Verify Switch-**\n**on Filter**\n**function**\n<size:10>TEST_SWITCH_ON_FILTER_3</size>" as TEST_SWITCH_ON_FILTER_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SWITCH_ON_FILTER_3]] #DCB239
node "<size:12>RESULT</size>\n**Verify Switch-**\n**on Filter**\n**function**\n<size:10>RESULT_SWITCH_ON_FILTER_3</size>" as RESULT_SWITCH_ON_FILTER_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SWITCH_ON_FILTER_3]] #FFA76D
node "<size:12>TEST</size>\n**Switch-on**\n**Filter sl3 code**\n**review, max**\n**values**\n<size:10>TEST_SWITCH_ON_FILTER_2</size>" as TEST_SWITCH_ON_FILTER_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SWITCH_ON_FILTER_2]] #DCB239
node "<size:12>RESULT</size>\n**Switch-on**\n**Filter sl3 code**\n**review, max**\n**values**\n<size:10>RESULT_SWITCH_ON_FILTER_2</size>" as RESULT_SWITCH_ON_FILTER_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SWITCH_ON_FILTER_2]] #FFA76D
node "<size:12>TEST</size>\n**Switch-on**\n**Filter sl3 code**\n**review**\n<size:10>TEST_SWITCH_ON_FILTER_1</size>" as TEST_SWITCH_ON_FILTER_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SWITCH_ON_FILTER_1]] #DCB239
node "<size:12>RESULT</size>\n**Switch-on**\n**Filter sl3 code**\n**review**\n<size:10>RESULT_SWITCH_ON_FILTER_1</size>" as RESULT_SWITCH_ON_FILTER_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SWITCH_ON_FILTER_1]] #FFA76D

' Connection definition 

MREQ_BLOCK_SWITCH_ON_FILTER --> SPEC_BLOCK_SWITCH_ON_FILTER
SPEC_BLOCK_SWITCH_ON_FILTER --> TEST_SWITCH_ON_FILTER_1
SPEC_BLOCK_SWITCH_ON_FILTER --> TEST_SWITCH_ON_FILTER_2
SPEC_BLOCK_SWITCH_ON_FILTER --> TEST_SWITCH_ON_FILTER_3
SPEC_BLOCK_SWITCH_ON_FILTER --> TEST_SWITCH_ON_FILTER_4
TEST_SWITCH_ON_FILTER_4 --> RESULT_SWITCH_ON_FILTER_4
TEST_SWITCH_ON_FILTER_3 --> RESULT_SWITCH_ON_FILTER_3
TEST_SWITCH_ON_FILTER_2 --> RESULT_SWITCH_ON_FILTER_2
TEST_SWITCH_ON_FILTER_1 --> RESULT_SWITCH_ON_FILTER_1

@enduml

Switch-on Filter requirements flow diagram

Market requirement: Function block: Switch-on Filter MREQ_BLOCK_SWITCH_ON_FILTER
status: PASS
tags: mreq, block, switch_on_filter

A Switch-on Filter function block shall be available to users in Simplifier Manager.

Specification: Function block: Switch-on Filter SPEC_BLOCK_SWITCH_ON_FILTER

The Switch-on Filter block adds a specified delay time before a high flank input signal is passed to the output.

  • The Switch-on Filter function block shall delay the input signal based on the specified Filter time.

Inputs

  • “Input”: Corresponds to the compiler input “input”.

Outputs

  • “Output”: Corresponds to the compiler output “output”.

Properties

  • Filter time (ms): Corresponds to the compiler parameter t_on.

Underlying Compiler Blocks


2.19.2 Module tests

TEST: Switch-on Filter sl3 code review TEST_SWITCH_ON_FILTER_1
status: PASS
tags: switch_on_filter_test

Preconditions

Compile a Switch-on Filter block with the following properties:

  • Filter time (ms) = 100

Procedure

  • Verify that the generated SL3 code contains the specified properties with the correct values appended to the arguments of the delay function.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: Switch-on Filter sl3 code review, max values TEST_SWITCH_ON_FILTER_2
status: PASS
tags: switch_on_filter_test

Preconditions

Compile a Switch-on Filter block with the following properties:

  • Filter time (ms) = 36000000

Procedure

  • Verify that the generated SL3 code contains the specified properties with the correct values appended to the arguments of the delay function.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

2.19.3 Integration tests

TEST: Verify Switch-on Filter function TEST_SWITCH_ON_FILTER_3
status: PASS
tags: switch_on_filter_test

Preconditions

Compile a Switch-on Filter with a Single Input block connected to the input and a Single Output block connected to the output.

Set the Filter time to 100ms.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Verify that the output is LOW/OFF/0V.

  2. Give a high signal on the input and verify that the output is delayed by 100ms.

  3. Give a pulse signal < 100ms to the input and verify that the output does not change state.

TEST: Switch-on Filter in manual TEST_SWITCH_ON_FILTER_4
status: PASS
tags: switch_on_filter_test

Verify that the Switch-on Filter block is documented in the user manual.


2.19.4 Test results

ID

Tags

Status

TEST_SWITCH_ON_FILTER_1

switch_on_filter_test

PASS

TEST_SWITCH_ON_FILTER_2

switch_on_filter_test

PASS

TEST_SWITCH_ON_FILTER_3

switch_on_filter_test

PASS

TEST_SWITCH_ON_FILTER_4

switch_on_filter_test

PASS




2.20 Switch-off Filter

@startuml

' Config

left to right direction


' Nodes definition 

node "<size:12>Market requirement</size>\n**Function block:**\n**Switch-off**\n**Filter**\n<size:10>MREQ_BLOCK_SWITCH_OFF_FILTER</size>" as MREQ_BLOCK_SWITCH_OFF_FILTER [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#MREQ_BLOCK_SWITCH_OFF_FILTER]] #FFA76D
node "<size:12>Specification</size>\n**Function block:**\n**Switch-off**\n**Filter**\n<size:10>SPEC_BLOCK_SWITCH_OFF_FILTER</size>" as SPEC_BLOCK_SWITCH_OFF_FILTER [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#SPEC_BLOCK_SWITCH_OFF_FILTER]] #FEDCD2
node "<size:12>TEST</size>\n**Switch-off**\n**Filter in**\n**safety manual**\n<size:10>TEST_SWITCH_OFF_FILTER_4</size>" as TEST_SWITCH_OFF_FILTER_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SWITCH_OFF_FILTER_4]] #DCB239
node "<size:12>RESULT</size>\n**Switch-off**\n**Filter in**\n**safety manual**\n<size:10>RESULT_SWITCH_OFF_FILTER_4</size>" as RESULT_SWITCH_OFF_FILTER_4 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SWITCH_OFF_FILTER_4]] #FFA76D
node "<size:12>TEST</size>\n**Verify Switch-**\n**off Filter**\n**function**\n<size:10>TEST_SWITCH_OFF_FILTER_3</size>" as TEST_SWITCH_OFF_FILTER_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SWITCH_OFF_FILTER_3]] #DCB239
node "<size:12>RESULT</size>\n**Verify Switch-**\n**off Filter**\n**function**\n<size:10>RESULT_SWITCH_OFF_FILTER_3</size>" as RESULT_SWITCH_OFF_FILTER_3 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SWITCH_OFF_FILTER_3]] #FFA76D
node "<size:12>TEST</size>\n**Compile a**\n**switch-off**\n**filter and**\n**observe the**\n**generated SL3**\n**code with the**\n**specified**\n**properties**\n<size:10>TEST_SWITCH_OFF_FILTER_2</size>" as TEST_SWITCH_OFF_FILTER_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SWITCH_OFF_FILTER_2]] #DCB239
node "<size:12>RESULT</size>\n**Compile a**\n**switch-off**\n**filter and**\n**observe the**\n**generated SL3**\n**code with the**\n**specified**\n**properties**\n<size:10>RESULT_SWITCH_OFF_FILTER_2</size>" as RESULT_SWITCH_OFF_FILTER_2 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SWITCH_OFF_FILTER_2]] #FFA76D
node "<size:12>TEST</size>\n**Compile a**\n**switch-off**\n**filter and**\n**observe the**\n**generated SL3**\n**code with the**\n**specified**\n**properties**\n<size:10>TEST_SWITCH_OFF_FILTER_1</size>" as TEST_SWITCH_OFF_FILTER_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#TEST_SWITCH_OFF_FILTER_1]] #DCB239
node "<size:12>RESULT</size>\n**Compile a**\n**switch-off**\n**filter and**\n**observe the**\n**generated SL3**\n**code with the**\n**specified**\n**properties**\n<size:10>RESULT_SWITCH_OFF_FILTER_1</size>" as RESULT_SWITCH_OFF_FILTER_1 [[../fsd/FSD124-gui-and-compiler-function-requirements-module-tests-and-integration-tests.html#RESULT_SWITCH_OFF_FILTER_1]] #FFA76D

' Connection definition 

MREQ_BLOCK_SWITCH_OFF_FILTER --> SPEC_BLOCK_SWITCH_OFF_FILTER
SPEC_BLOCK_SWITCH_OFF_FILTER --> TEST_SWITCH_OFF_FILTER_1
SPEC_BLOCK_SWITCH_OFF_FILTER --> TEST_SWITCH_OFF_FILTER_2
SPEC_BLOCK_SWITCH_OFF_FILTER --> TEST_SWITCH_OFF_FILTER_3
SPEC_BLOCK_SWITCH_OFF_FILTER --> TEST_SWITCH_OFF_FILTER_4
TEST_SWITCH_OFF_FILTER_4 --> RESULT_SWITCH_OFF_FILTER_4
TEST_SWITCH_OFF_FILTER_3 --> RESULT_SWITCH_OFF_FILTER_3
TEST_SWITCH_OFF_FILTER_2 --> RESULT_SWITCH_OFF_FILTER_2
TEST_SWITCH_OFF_FILTER_1 --> RESULT_SWITCH_OFF_FILTER_1

@enduml

Filter requirements flow diagram

Market requirement: Function block: Switch-off Filter MREQ_BLOCK_SWITCH_OFF_FILTER
status: PASS
tags: mreq, block, switch_off_filter

A Switch-off Filter function block shall be available to users in Simplifier Manager.

Specification: Function block: Switch-off Filter SPEC_BLOCK_SWITCH_OFF_FILTER

The Switch-off Filter block adds a specified delay time before a low flank input signal is passed to the output.

  • The Switch-off Filter function block shall delay the input signal based on the specified Filter time.

Inputs

  • “Input”: Corresponds to the compiler input “input”.

Outputs

  • “Output”: Corresponds to the compiler output “output”.

Properties

  • Filter time (ms): Corresponds to the compiler parameter t_off.

Underlying Compiler Blocks


2.20.2 Module tests

TEST: Compile a switch-off filter and observe the generated SL3 code with the specified properties TEST_SWITCH_OFF_FILTER_1
status: PASS
tags: switch_off_filter_test

Test specification

Compile a Switch-off Filter block with the following properties:

  • Filter time (ms) = 100

Pass Criteria

  • Verify that the generated SL3 code contains the specified properties with the correct values appended to the arguments of the delay function.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

TEST: Compile a switch-off filter and observe the generated SL3 code with the specified properties TEST_SWITCH_OFF_FILTER_2
status: PASS
tags: switch_off_filter_test

Test specification

Compile a Switch-off Filter block with the following properties:

  • Filter time (ms) = 36000000

Pass Criteria

  • Verify that the generated SL3 code contains the specified properties with the correct values appended to the arguments of the delay function.

  • Verify that all input signals to the block are in the correct place in the SL3 output.

  • Verify that all attributes (constant values) are named correctly and have the correct value in the SL3 output.

  • Verify that any other block-specific logic is correct (such as inputs/outputs, memories, or other SL3 parameters).

2.20.3 Integration tests

TEST: Verify Switch-off Filter function TEST_SWITCH_OFF_FILTER_3
status: PASS
tags: switch_off_filter_test

Preconditions

Compile a Switch-off Filter with a Single Input block connected to the input and a Single Output block connected to the output.

Set the Filter time to 100ms.

Download to a single unit and measure all inputs and outputs with an oscilloscope or logic analyzer.

Procedure

  1. Verify that the input signal is LOW/OFF/0V.

  2. Apply a HIGH signal to the input and verify that the output matches the input.

  3. Apply a LOW signal to the input and verify that the output is delayed by 100ms.

TEST: Switch-off Filter in safety manual TEST_SWITCH_OFF_FILTER_4
status: PASS
tags: switch_off_filter_test

Verify that the safety aspects of the Switch-off Filter block are documented in the safety manual.


2.20.4 Test results

ID

Tags

Status

TEST_SWITCH_OFF_FILTER_1

switch_off_filter_test

PASS

TEST_SWITCH_OFF_FILTER_2

switch_off_filter_test

PASS

TEST_SWITCH_OFF_FILTER_3

switch_off_filter_test

PASS

TEST_SWITCH_OFF_FILTER_4

switch_off_filter_test

PASS




Compiler function blocks

3.1 dig_input

There shall exist a compiler function that evaluates the state of a digital input pin by comparing the input voltage to relative or absolute thresholds.


3.1.1 Requirement specification

  • The dig_input function shall evaluate the state of a digital input pin by comparing the input voltage to some thresholds.

  • The output (source) shall be 1 if the voltage on the specified pin is above the specified upper threshold, and 0 if below the specified lower threshold.

  • The output shall keep its current value if the voltage is between the two thresholds (hysteresis).

  • The thresholds shall be optionally specified as either percentages of the current power supply voltage, or specific voltages in millivolt (mV).

  • If no specific thresholds are specified, the default thresholds shall be 25% and 75% of the current power supply voltage.

  • It shall be possible to specify that the output is inverted, i.e., 1 if below the lower threshold, and 0 if above the upper threshold.

Inputs

None

Outputs

  • source: 1 or 0, the state of the evaluated pin.

Parameters

  • pin [1-14]: Which pin to evaluate.

  • safe: If true, calculate result in both CPUs and synchronize it (AND with other CPU result) before logic.

  • invert: Invert the result (above threshold = 0, below = 1).

  • params.inp_threshold_rel_lo [0-1]: Powersupply relative threshold low. Default = 0.25.

  • params.inp_threshold_rel_hi [0-1]: Powersupply relative threshold high. Default = 0.75.

  • params.inp_threshold_abs_lo [0-33000]: Specifies an absolute voltage threshold in millivolt.

  • params.inp_threshold_abs_hi [0-33000]: Specifies an absolute voltage threshold in millivolt.

Note that the params.* parameters are optional. If not specified, the default relative thresholds low = PSU*0.25, high = PSU*0.75 are used.

Syntax examples

A safe digital input on pin 6 with the default thresholds:

my_pin6_input:
   typ: dig_input
   pin: 6
   safe: true

A safe digital input on pin 14 with specific absolute thresholds:

my_pin14_absolute:
   typ: dig_input
   pin: 14
   safe: true
   params:
      inp_threshold_abs_lo: 2000 # 2V
      inp_threshold_abs_hi: 10000 # 10V

An inverted input on pin 1:

my_inverted_input:
   typ: dig_input
   pin: 1
   invert: true

3.1.2 Module tests

Test result summary

ID

Tags

Status

TEST_CFB_DIG_INPUT_1

dig_input

PASS

TEST_CFB_DIG_INPUT_2

dig_input

PASS

TEST_CFB_DIG_INPUT_3

dig_input

PASS

TEST_CFB_DIG_INPUT_4

dig_input

PASS

TEST_CFB_DIG_INPUT_5

dig_input

PASS


TEST: dig_input: code review 1 TEST_CFB_DIG_INPUT_1
status: PASS
tags: dig_input

Compile the following logic:

io:
   my_input:
      typ: dig_input
      pin: 1
      safe: true
logic:
- var.latchtoggle_2 = latch_tog(input=io.my_input.source, reset=0)

In both CPUs, assert that:

  • Pin 1 is used in all versions of the ftick_input_handling function,

  • the low threshold is 25% of power supply voltage,

  • the high threshold is 75% of power supply voltage,

  • the output is synchronized between both CPUs (AND-ed with result from other CPU),

  • the synchronized signal is used as the input to the toggle latch.

TEST: dig_input: code review 2 TEST_CFB_DIG_INPUT_2
status: PASS
tags: dig_input

Compile the following logic:

io:
   my_input:
      typ: dig_input
      pin: 14
      safe: true
      params:
         inp_threshold_abs_lo: 1234
         inp_threshold_abs_hi: 5678

In both CPUs, assert that:

  • the low threshold is 1234mV,

  • the high threshold is 5678mV.

TEST: dig_input: code review 3 TEST_CFB_DIG_INPUT_3
status: PASS
tags: dig_input

Compile the following logic:

io:
   my_input:
      typ: dig_input
      pin: 1
      safe: true
      invert: true

In both CPUs, assert that:

  • the “source” output is inverted.

TEST: dig_input: code review 4 TEST_CFB_DIG_INPUT_4
status: PASS
tags: dig_input

Compile the following logic:

io:
   my_input:
      typ: dig_input
      pin: 1
      safe: true
      params:
         inp_threshold_rel_lo: 0.1
         inp_threshold_rel_hi: 0.9

In both CPUs, assert that:

  • the low threshold is 10% of power supply voltage,

  • the high threshold is 90% of power supply voltage.

TEST: dig_input: code review 5 TEST_CFB_DIG_INPUT_5
status: PASS
tags: dig_input

Compile the following logic:

io:
   my_input:
      typ: dig_input
      pin: 5
      safe: false

logic:
- var.latchtoggle_2 = latch_tog(input=io.my_input.source, reset=0)

Assert that:

  • code for the function is only generated in CPU1,

  • the source output signal is not available in CPU2,

  • the toggle latch function is only generated in CPU1.


3.3 ossd

  • The ossd block shall be able to control an output safety IO based on a binary control signal.

  • When driving the output high, both CPUs shall measure that the voltage on the pin is within the specified limits.

(Since CPU1 ADC value is reduced when an output is driven high, CPU1 can only check that the voltage is above a lower value).

  • When the output is high, CPU2 shall check that the voltage is within 90-110% of the current power supply voltage.

Inputs

  • “ctrl”: Controls the output 1=ON, 0=OFF.

Outputs

None.

Parameters

  • pin [1-14]: Which pin to control.

  • safe: If true, both CPUs verify the outp_check_rel/outp_check_abs_mv maximum voltage.

  • invert: The output is inverted relative to the ctrl input.

  • params.outp_check_rel [0-1]: if not driving output high, the output measured voltage must be below this to be OK. Default = 0.5.

  • params.outp_check_abs_mv [0-33000]: Powersupply relative threshold high. Default = 0. If != 0, takes precedence over outp_check_rel.

Syntax

Example of a digital output on pin 14:

my_pin_14:
   typ: ossd
   pin: 14
   safe: true
   invert: true

Example of a digital output on pin 6 with specific absolute threshold:

my_pin_6:
   typ: ossd
   pin: 6
   safe: true
   params:
      outp_check_abs_mv: 2000 # 2V

3.2.2 Module tests

Test result summary

ID

Tags

Status

TEST_CFB_OSSD_1

fblock_ossd

PASS

TEST_CFB_OSSD_2

fblock_ossd

PASS

TEST_CFB_OSSD_3

fblock_ossd

PASS


TEST: ossd: code review 1 TEST_CFB_OSSD_1
status: PASS
tags: fblock_ossd

Compile the following logic:

io:
   my_output:
      typ: ossd
      pin: 14
      safe: true
logic:
  - var.sqr = sqrwave(ctrl=1) | t_on = 100, t_off = 100
copies:
  - io.my_output.ctrl = var.sqr

In both CPUs, assert that:

  • In all versions of the ftick_input_handling function, the correct switch case and ADC value is used to read the voltage on pin 14,

  • the output is controlled by the output from the square wave,

  • when the output is low, the voltage is compared to 50% of the power supply voltage,

  • if the voltage is above the threshold, an error is set,

  • when the output is high, in CPU2, the voltage is within 90% and 110% of the power supply voltage.

  • when the output is high, in CPU1, the voltage is above 20% of the power supply voltage.

  • The output turns off in the ftick before measuring the OSSD voltage, and turns on again after being measured.

TEST: ossd: code review 2 TEST_CFB_OSSD_2
status: PASS
tags: fblock_ossd

Compile the following logic:

io:
   my_output:
      typ: ossd
      pin: 1
      safe: true
logic:
  - var.sqr = sqrwave(ctrl=1) | t_on = 100, t_off = 100
copies:
  - io.my_output.ctrl = var.sqr

In both CPUs, assert that:

  • In all versions of the ftick_input_handling function, the correct switch case and ADC value is used to read the voltage on pin 1,

TEST: ossd: code review 3 TEST_CFB_OSSD_3
status: PASS
tags: fblock_ossd

Compile the following logic:

io:
   my_output:
      typ: ossd
      pin: 1
      safe: true
      params:
         outp_check_abs_mv: 1234

logic:
  - var.sqr = sqrwave(ctrl=1) | t_on = 100, t_off = 100
copies:
  - io.my_output.ctrl = var.sqr

In both CPUs, assert that:

  • when the output is low, the voltage is compared to the absolute threshold of 1234mV.

3.14 combo

There shall exist a function block which can be used to read an input signal from a pin, and output an output signal on the same pin. This shall be achieved by switching the output off for a short period to read the status of the input, and then switching the output on again. The purpose of this function is to be able to determine the state of a push button input, while simultaneously lighting an LED lamp on the same pin.

3.14.1 Requirement specification

The combo_io shall be able to read an input signal on a pin, and output another output signal on the same pin. The pin acts as an output most of the time, but switches the output off for a short period to read the voltage on the pin, and then switches the output on again. The input signal is checked by both CPUs. Note that no filtering is performed in this function. This function is intended to be used with a filtering function.

Inputs

  • ctrl: Control of the output signal.

Outputs

  • source: Status of the input pin.

Parameters

  • pin [1-14]: The pin to use for the input/output.

  • safe: If true, calculate result in both CPUs and synchronize it (AND with other CPU result) before logic.

  • invert: Invert the result (above threshold = 0, below = 1).

  • params.inp_threshold_rel_lo [0-1]: Powersupply relative threshold low. Default = 0.25.

  • params.inp_threshold_rel_hi [0-1]: Powersupply relative threshold high. Default = 0.75.

  • params.inp_threshold_abs_lo [0-33000]: Specifies an absolute voltage threshold in millivolt.

  • params.inp_threshold_abs_hi [0-33000]: Specifies an absolute voltage threshold in millivolt.

Syntax

The combo function uses the same schema as other digital input functions:

my_combo:
   typ: combo
   pin: 2
   safe: true

3.14.2 Module tests

Test result summary

ID

Tags

Status

TEST_CFB_COMBO_1

combo

PASS

TEST_CFB_COMBO_2

combo

PASS

TEST_CFB_COMBO_3

combo

PASS

TEST_CFB_COMBO_4

combo

PASS

TEST_CFB_COMBO_5

combo

PASS


TEST: combo: code review 1 TEST_CFB_COMBO_1
status: PASS
tags: combo

Compile the following sl3 logic:

io:
   my_combo:
      typ: combo
      pin: 7
      safe: true

In both CPUs, assert that:

  • the correct pin is used in all versions of the ftick_input_handling function,

  • the correct signal is assigned the value of the evaluation of the input (and used in logic),

  • the function is in output mode until it’s time to read the status of the input,

  • it is impossible for the function to incorrectly read its own output as the input.

TEST: combo: code review 2 TEST_CFB_COMBO_2
status: PASS
tags: combo

Compile the following sl3 logic:

io:
   my_combo:
      typ: combo
      pin: 7
      safe: true
      params:
         inp_threshold_abs_lo: 2000 # 2V
         inp_threshold_abs_hi: 10000 # 10V

In both CPUs, assert that:

  • the low threshold is 2V,

  • the high threshold is 10V.

TEST: combo: code review 3 TEST_CFB_COMBO_3
status: PASS
tags: combo

Compile the following sl3 logic:

io:
   my_combo:
      typ: combo
      pin: 7
      safe: true
      invert: true

In both CPUs, assert that:

  • the result is inverted.

TEST: combo: code review 4 TEST_CFB_COMBO_4
status: PASS
tags: combo

Compile the following sl3 logic:

io:
   my_combo:
      typ: combo
      pin: 7
      params:
         inp_threshold_rel_lo: 0.1
         inp_threshold_rel_hi: 0.9

In both CPUs, assert that:

  • the low threshold is 10% of power supply voltage,

  • the high threshold is 90% of power supply voltage.

TEST: combo: code review 5 TEST_CFB_COMBO_5
status: PASS
tags: combo

Compile the following sl3 logic:

io:
   my_combo:
      typ: combo
      pin: 7
      safe: false

logic:
- var.latchtoggle_2 = latch_tog(input=io.my_input.source, reset=0)

In both CPUs, assert that:

  • code for the function is only generated in CPU1,

  • the source output signal is not available in CPU2,

  • the toggle latch function is only generated in CPU1.

3.5 latch_sr

Specification: latch_sr CFB_LATCH_SR
status: PASS

Maps 1:1 to the GUI function block SR-Latch. See function specification in Function block: SR-latch (SPEC_BLOCK_SR_LATCH).

Syntax:

var.latchsr_1 = latch_sr(s=var.a, r=var.b)

3.5.2 Module tests

TEST: latch_sr: code review TEST_CFB_LATCH_SR_1
status: PASS
tags: latch_sr

Test specification

Compile the following SL3 code and review the generated c code:

logic:
   - var.a = negate(i=0)
   - var.b = negate(i=0)
   - var.latchsr_1 = latch_sr(s=var.a, r=var.b)

Pass criteria

  • In both CPUs, assert that:

    • The output is set to 1 when set is 1 and reset is 0.

    • The output is set to 0 when reset is 1.

    • The output retains its previous value when both set and reset are 0.

    • The output is set to 0 when both set and reset are 1.

3.8 sync_inputs

The Sync Inputs function is equivalent to a standard input function, but uses internal signals instead of physical pins. This function can be used for synchronizing several input signals (for example when more than one two-hand device controls a function).

  • The Sync Inputs function shall have configurable inputs between 2-16.

  • The Sync Inputs function shall have an output that is 1 if the function is in the ON state.

  • The Sync Inputs function shall have a startup_test parameter that determines the initial state at power on.

  • The Sync Inputs function shall have debounce_on and debounce_off parameters to manage input signal stability.

  • The Sync Inputs function shall have a req_all_zero parameter to ensure all inputs are 0 before transitioning to the ON state.

  • The Sync Inputs function shall have a simultaneity parameter to manage the timing difference between inputs when transitioning from OFF to ON state.

3.8.1 Requirement specification

The Sync Inputs function block takes multiple inputs and produces one output based on the following rules:

Inputs

  • Configurable between 2-16.

Outputs

  • “output”: This output is 1 if the function is in the ON state.

Parameters

  • startup_test [true/false]: If true, the function starts in the WAIT_FOR_OFF(OFF) state at the time of power on. If false, the function starts in the OFF state at the time of power on.

  • debounce_on [0-10000ms]: The function will wait this time when an input goes to 1, before considering that input to be 1. If the input goes back to 0, the time is reset.

  • debounce_off [0-10000ms]: The function will wait this time when an input goes from 1 to 0 before considering that input to be 0. If the input goes back to 1 before the given time, the time is reset.

  • req_all_zero [0-10000ms]: The function requires all inputs to be 0 for at least this time before it can go to ON state again.

  • simultaneity [0-10000ms]: When the function is going from OFF to ON state, the inputs can differ for at most this time. If they differ for more than this time, the function will go to ERROR state and require a new valid OFF state, before it can go to ON state again.

State Diagram

        stateDiagram-v2

   Start           --> ALL_ON: startup_test = false
   Start           --> WAIT_FOR_OFF: startup_test\n = true
   WAIT_FOR_OFF    --> OFF: All inputs = 0\n for t > req_all_zero
   WAIT_FOR_OFF    --> ERROR: Any input that has been 0\n goes to 1
   ALL_ON          --> ON: t > debounce_on
   ALL_ON          --> OFF: Any input = 0
   ON              --> WAIT_FOR_OFF: Any input = 0 for\n longer than\n debounce_off
   OFF             --> ALL_ON: All inputs = 1
   OFF             --> ERROR: Inputs differ\n for t > simultaneity
   ERROR           --> OFF: All inputs = 0\n for t > req_all_zero

   WAIT_FOR_OFF: WAIT_FOR_OFF\n (OFF)
   ALL_ON: ALL_ON\n (OFF)
   ON: ON\n "on" = 1
    

Syntax

The following is an example of a sync_inputs function block:

var.syncinputs_1 = sync_inputs(i=var.a,i=var.b) | req_zero_time=0, simultaneity=0, debounce_on=0, debounce_off=0, startup_test=False

3.8.2 Module tests

Test result summary

ID

Tags

Status

TEST_CFB_SYNC_INPUTS_1

sync_inputs

PASS

TEST_CFB_SYNC_INPUTS_2

sync_inputs

PASS

TEST_CFB_SYNC_INPUTS_3

sync_inputs

PASS

TEST_CFB_SYNC_INPUTS_4

sync_inputs

PASS


TEST: sync_inputs: code review TEST_CFB_SYNC_INPUTS_1
status: PASS
tags: sync_inputs

Test specification

Compile the following SL3 code and review the generated c code:

- var.syncinputs_1 = sync_inputs(i=var.a,i=var.b) | req_zero_time=0, simultaneity=0, debounce_on=0, debounce_off=0, startup_test=False

Pass criteria

  • The generated c code shall contain a sync_inputs function with the correct inputs and outputs, and the signals var.myvar should be used in the correct place.

TEST: req_zero_time = 0, simultaneity = 0, debounce_on = 0, debounce_off = 0, startup_test = True TEST_CFB_SYNC_INPUTS_2
status: PASS
tags: sync_inputs

Test specification

Compile the following SL3 code and review the generated c code:

- var.syncinputs_1 = sync_inputs(i=var.a,i=var.b) | req_zero_time=0, simultaneity=0, debounce_on=0, debounce_off=0, startup_test=True

Pass criteria

  • The generated c code shall contain a sync_inputs function with a req_zero_time of 0, simultaneity of 0, debounce_on of 0, debounce_off of 0 and a startup_test of True.

TEST: req_zero_time = 10000, simultaneity = 10000, debounce_on = 10000, debounce_off = 10000, startup_test = True TEST_CFB_SYNC_INPUTS_3
status: PASS
tags: sync_inputs

Test specification

Compile the following SL3 code and review the generated c code:

- var.syncinputs_1 = sync_inputs(i=var.a,i=var.b) | req_zero_time=10000, simultaneity=10000, debounce_on=10000, debounce_off=10000, startup_test=True

Pass criteria

  • The generated c code shall contain a sync_inputs function with a req_zero_time of 10000, simultaneity of 10000, debounce_on of 10000, debounce_off of 10000 and a startup_test of True.

TEST: req_zero_time = 1, simultaneity = 2, debounce_on = 3, debounce_off = 4, startup_test = False TEST_CFB_SYNC_INPUTS_4
status: PASS
tags: sync_inputs

Test specification

Compile the following SL3 code and review the generated c code:

- var.syncinputs_1 = sync_inputs(i=var.a,i=var.b) | req_zero_time=1, simultaneity=2, debounce_on=3, debounce_off=4, startup_test=False

Pass criteria

  • The generated c code shall contain a sync_inputs function with a req_zero_time of 1, simultaneity of 2, debounce_on of 3, debounce_off of 4 and a startup_test of False.




Test results

To read these results refer to the test results of FSD124: FSD124v10 results

ID

Tags

Status

RESULT_CFB_COMBO_1

result; block; combo

PASS

RESULT_CFB_COMBO_2

result; block; combo

PASS

RESULT_CFB_COMBO_3

result; block; combo

PASS

RESULT_CFB_COMBO_4

result; block; combo

PASS

RESULT_CFB_COMBO_5

result; block; combo

PASS

RESULT_CONSTANT_1

result; block; constant_test

PASS

RESULT_CONSTANT_2

result; block; constant_test

PASS

RESULT_CONSTANT_3

result; block; constant_test

PASS

RESULT_CONSTANT_4

result; block; constant_test

PASS

RESULT_D_LATCH_1

result; block; d_latch_test

PASS

RESULT_D_LATCH_2

result; block; d_latch_test

PASS

RESULT_D_LATCH_3

result; block; d_latch_test

PASS

RESULT_CFB_DIG_INPUT_1

result; block; dig_input

PASS

RESULT_CFB_DIG_INPUT_2

result; block; dig_input

PASS

RESULT_CFB_DIG_INPUT_3

result; block; dig_input

PASS

RESULT_CFB_DIG_INPUT_4

result; block; dig_input

PASS

RESULT_CFB_DIG_INPUT_5

result; block; dig_input

PASS

RESULT_CFB_OSSD_1

result; block; fblock_ossd

PASS

RESULT_CFB_OSSD_2

result; block; fblock_ossd

PASS

RESULT_CFB_OSSD_3

result; block; fblock_ossd

PASS

RESULT_FILTER_1

result; block; filter_test

PASS

RESULT_FILTER_2

result; block; filter_test

PASS

RESULT_FILTER_3

result; block; filter_test

PASS

RESULT_FILTER_4

result; block; filter_test

PASS

RESULT_FILTER_5

result; block; filter_test

PASS

RESULT_GATE_1

result; block; gate_test

PASS

RESULT_GATE_2

result; block; gate_test

PASS

RESULT_GATE_3

result; block; gate_test

PASS

RESULT_GATE_4

result; block; gate_test

PASS

RESULT_GATE_5

result; block; gate_test

PASS

RESULT_GATE_6

result; block; gate_test

PASS

RESULT_GATE_7

result; block; gate_test

PASS

RESULT_GATE_8

result; block; gate_test

PASS

RESULT_GATE_9

result; block; gate_test

PASS

RESULT_GATE_10

result; block; gate_test

PASS

RESULT_GATE_11

result; block; gate_test

PASS

RESULT_GATE_12

result; block; gate_test

PASS

RESULT_GATE_13

result; block; gate_test

PASS

RESULT_CFB_LATCH_SR_1

result; block; latch_sr

PASS

RESULT_NOT_1

result; block; not_test

PASS

RESULT_NOT_2

result; block; not_test

PASS

RESULT_NOT_3

result; block; not_test

PASS

RESULT_RESET_1

result; block; reset_test

PASS

RESULT_RESET_2

result; block; reset_test

PASS

RESULT_RESET_3

result; block; reset_test

PASS

RESULT_RESET_4

result; block; reset_test

PASS

RESULT_RESET_5

result; block; reset_test

PASS

RESULT_RESET_6

result; block; reset_test

PASS

RESULT_SINGLE_INPUT_1

result; block; single_input_test

PASS

RESULT_SINGLE_INPUT_2

result; block; single_input_test

PASS

RESULT_SINGLE_INPUT_3

result; block; single_input_test

PASS

RESULT_SINGLE_OUTPUT_1

result; block; single_output_test

PASS

RESULT_SINGLE_OUTPUT_2

result; block; single_output_test

PASS

RESULT_SINGLE_OUTPUT_3

result; block; single_output_test

PASS

RESULT_SQUARE_WAVE_1

result; block; sqrwave_test

PASS

RESULT_SQUARE_WAVE_2

result; block; sqrwave_test

PASS

RESULT_SQUARE_WAVE_3

result; block; sqrwave_test

PASS

RESULT_SQUARE_WAVE_4

result; block; sqrwave_test

PASS

RESULT_SQUARE_WAVE_5

result; block; sqrwave_test

PASS

RESULT_SR_LATCH_1

result; block; sr_latch_test

PASS

RESULT_SR_LATCH_2

result; block; sr_latch_test

PASS

RESULT_SR_LATCH_3

result; block; sr_latch_test

PASS

RESULT_SWITCH_OFF_FILTER_1

result; block; switch_off_filter_test

PASS

RESULT_SWITCH_OFF_FILTER_2

result; block; switch_off_filter_test

PASS

RESULT_SWITCH_OFF_FILTER_3

result; block; switch_off_filter_test

PASS

RESULT_SWITCH_OFF_FILTER_4

result; block; switch_off_filter_test

PASS

RESULT_SWITCH_ON_FILTER_1

result; block; switch_on_filter_test

PASS

RESULT_SWITCH_ON_FILTER_2

result; block; switch_on_filter_test

PASS

RESULT_SWITCH_ON_FILTER_3

result; block; switch_on_filter_test

PASS

RESULT_SWITCH_ON_FILTER_4

result; block; switch_on_filter_test

PASS

RESULT_CFB_SYNC_INPUTS_1

result; block; sync_inputs

PASS

RESULT_CFB_SYNC_INPUTS_2

result; block; sync_inputs

PASS

RESULT_CFB_SYNC_INPUTS_3

result; block; sync_inputs

PASS

RESULT_CFB_SYNC_INPUTS_4

result; block; sync_inputs

PASS

RESULT_T_LATCH_1

result; block; t_latch_test

PASS

RESULT_T_LATCH_2

result; block; t_latch_test

PASS

RESULT_T_LATCH_3

result; block; t_latch_test

PASS

RESULT: Single Input sl3 code review RESULT_SINGLE_INPUT_1
status: PASS
tags: result, block, single_input_test
date: 2025-08-04
owner: WF
RESULT: Verify Single Input function RESULT_SINGLE_INPUT_2
status: PASS
tags: result, block, single_input_test
date: 2025-08-04
owner: WF
RESULT: Single Input in safety manual RESULT_SINGLE_INPUT_3
status: PASS
tags: result, block, single_input_test
date: 2025-08-04
owner: WF
RESULT: Single Output sl3 code review RESULT_SINGLE_OUTPUT_1
status: PASS
tags: result, block, single_output_test
date: 2025-08-04
owner: WF
RESULT: Verify Single Output function RESULT_SINGLE_OUTPUT_2
status: PASS
tags: result, block, single_output_test
date: 2025-08-04
owner: WF
RESULT: Single Output in safety manual RESULT_SINGLE_OUTPUT_3
status: PASS
tags: result, block, single_output_test
date: 2025-08-04
owner: WF
RESULT: AND Gate sl3 code review RESULT_GATE_1
status: PASS
tags: result, block, gate_test
date: 2025-08-04
owner: WF
Source: TEST_GATE_1
RESULT: NAND Gate sl3 code review RESULT_GATE_2
status: PASS
tags: result, block, gate_test
date: 2025-08-04
owner: WF
Source: TEST_GATE_2
RESULT: OR Gate sl3 code review RESULT_GATE_3
status: PASS
tags: result, block, gate_test
date: 2025-08-04
owner: WF
Source: TEST_GATE_3
RESULT: NOR Gate sl3 code review RESULT_GATE_4
status: PASS
tags: result, block, gate_test
date: 2025-08-04
owner: WF
Source: TEST_GATE_4
RESULT: XOR Gate sl3 code review RESULT_GATE_5
status: PASS
tags: result, block, gate_test
date: 2025-08-04
owner: WF
Source: TEST_GATE_5
RESULT: XNOR Gate sl3 code review RESULT_GATE_6
status: PASS
tags: result, block, gate_test
date: 2025-08-04
owner: WF
Source: TEST_GATE_6
RESULT: Verify AND Gate function RESULT_GATE_7
status: PASS
tags: result, block, gate_test
date: 2025-08-04
owner: WF
Source: TEST_GATE_7
RESULT: Verify NAND Gate function RESULT_GATE_8
status: PASS
tags: result, block, gate_test
date: 2025-08-04
owner: WF
Source: TEST_GATE_8
RESULT: Verify OR Gate function RESULT_GATE_9
status: PASS
tags: result, block, gate_test
date: 2025-08-04
owner: WF
Source: TEST_GATE_9
RESULT: Verify NOR Gate function RESULT_GATE_10
status: PASS
tags: result, block, gate_test
date: 2025-08-04
owner: WF
Source: TEST_GATE_10
RESULT: Verify XOR Gate function RESULT_GATE_11
status: PASS
tags: result, block, gate_test
date: 2025-08-04
owner: WF
Source: TEST_GATE_11
RESULT: Verify XNOR Gate function RESULT_GATE_12
status: PASS
tags: result, block, gate_test
date: 2025-08-04
owner: WF
Source: TEST_GATE_12
RESULT: Gate in safety manual RESULT_GATE_13
status: PASS
tags: result, block, gate_test
date: 2025-08-04
owner: WF
Source: TEST_GATE_13
RESULT: NOT sl3 code review RESULT_NOT_1
status: PASS
tags: result, block, not_test
date: 2025-08-04
owner: WF
Source: TEST_NOT_1
RESULT: Verify NOT block functionality with various inputs RESULT_NOT_2
status: PASS
tags: result, block, not_test
date: 2025-08-04
owner: WF
Source: TEST_NOT_2
RESULT: NOT in safety manual RESULT_NOT_3
status: PASS
tags: result, block, not_test
date: 2025-08-04
owner: WF
Source: TEST_NOT_3
RESULT: SR-Latch sl3 code review RESULT_SR_LATCH_1
status: PASS
tags: result, block, sr_latch_test
date: 2025-08-04
owner: WF
RESULT: Verify SR Latch function RESULT_SR_LATCH_2
status: PASS
tags: result, block, sr_latch_test
date: 2025-08-04
owner: WF
RESULT: SR-Latch in safety manual RESULT_SR_LATCH_3
status: PASS
tags: result, block, sr_latch_test
date: 2025-08-04
owner: WF
RESULT: T-Latch sl3 code review RESULT_T_LATCH_1
status: PASS
tags: result, block, t_latch_test
date: 2025-08-04
owner: WF
RESULT: Verify T Latch function RESULT_T_LATCH_2
status: PASS
tags: result, block, t_latch_test
date: 2025-08-04
owner: WF
RESULT: T-Latch in safety manual RESULT_T_LATCH_3
status: PASS
tags: result, block, t_latch_test
date: 2025-08-04
owner: WF
RESULT: D-Latch sl3 code review RESULT_D_LATCH_1
status: PASS
tags: result, block, d_latch_test
date: 2025-08-04
owner: WF
RESULT: Verify D Latch function RESULT_D_LATCH_2
status: PASS
tags: result, block, d_latch_test
date: 2025-08-04
owner: WF
RESULT: D-Latch in safety manual RESULT_D_LATCH_3
status: PASS
tags: result, block, d_latch_test
date: 2025-08-04
owner: WF
RESULT: Square wave sl3 code review RESULT_SQUARE_WAVE_1
status: PASS
tags: result, block, sqrwave_test
date: 2025-08-04
owner: WF
RESULT: Square wave: Min values RESULT_SQUARE_WAVE_2
status: PASS
tags: result, block, sqrwave_test
date: 2025-08-04
owner: WF
RESULT: Square wave: Max values RESULT_SQUARE_WAVE_3
status: PASS
tags: result, block, sqrwave_test
date: 2025-08-04
owner: WF
RESULT: Verify Square Wave function RESULT_SQUARE_WAVE_4
status: PASS
tags: result, block, sqrwave_test
date: 2025-08-04
owner: WF
RESULT: Square wave in safety manual RESULT_SQUARE_WAVE_5
status: PASS
tags: result, block, sqrwave_test
date: 2025-08-04
owner: WF
RESULT: Reset: Minimum Push Time = 20 RESULT_RESET_1
status: PASS
tags: result, block, reset_test
date: 2025-08-04
owner: WF
Source: TEST_RESET_1
RESULT: Reset: Minimum Push Time = 0 RESULT_RESET_2
status: PASS
tags: result, block, reset_test
date: 2025-08-04
owner: WF
Source: TEST_RESET_2
RESULT: Reset: Minimum Push Time = 10000 RESULT_RESET_3
status: PASS
tags: result, block, reset_test
date: 2025-08-04
owner: WF
Source: TEST_RESET_3
RESULT: Verify Reset function 1 RESULT_RESET_4
status: PASS
tags: result, block, reset_test
date: 2025-08-04
owner: WF
Source: TEST_RESET_4
RESULT: Verify Reset function 2 RESULT_RESET_5
status: PASS
tags: result, block, reset_test
date: 2025-08-04
owner: WF
Source: TEST_RESET_5
RESULT: Reset in safety manual RESULT_RESET_6
status: PASS
tags: result, block, reset_test
date: 2025-08-04
owner: WF
Source: TEST_RESET_6
RESULT: Test compiling with 1 as input RESULT_CONSTANT_1
status: PASS
tags: result, block, constant_test
date: 2025-08-04
owner: WF
RESULT: Test compiling with 0 as input RESULT_CONSTANT_2
status: PASS
tags: result, block, constant_test
date: 2025-08-04
owner: WF
RESULT: Verify Constant block function RESULT_CONSTANT_3
status: PASS
tags: result, block, constant_test
date: 2025-08-04
owner: WF
RESULT: Constant in safety manual RESULT_CONSTANT_4
status: PASS
tags: result, block, constant_test
date: 2025-08-04
owner: WF
RESULT: Filter sl3 code review RESULT_FILTER_1
status: PASS
tags: result, block, filter_test
date: 2025-08-04
owner: WF
RESULT: Filter sl3 code review, max values RESULT_FILTER_2
status: PASS
tags: result, block, filter_test
date: 2025-08-04
owner: WF
RESULT: Filter sl3 code review, min values RESULT_FILTER_3
status: PASS
tags: result, block, filter_test
date: 2025-08-04
owner: WF
RESULT: Verify the Filter function RESULT_FILTER_4
status: PASS
tags: result, block, filter_test
date: 2025-08-04
owner: WF
RESULT: Filter in safety manual RESULT_FILTER_5
status: PASS
tags: result, block, filter_test
date: 2025-08-04
owner: WF
RESULT: Switch-on Filter sl3 code review RESULT_SWITCH_ON_FILTER_1
status: PASS
tags: result, block, switch_on_filter_test
date: 2025-08-04
owner: WF
RESULT: Switch-on Filter sl3 code review, max values RESULT_SWITCH_ON_FILTER_2
status: PASS
tags: result, block, switch_on_filter_test
date: 2025-08-04
owner: WF
RESULT: Verify Switch-on Filter function RESULT_SWITCH_ON_FILTER_3
status: PASS
tags: result, block, switch_on_filter_test
date: 2025-08-04
owner: WF
RESULT: Switch-on Filter in manual RESULT_SWITCH_ON_FILTER_4
status: PASS
tags: result, block, switch_on_filter_test
date: 2025-08-04
owner: WF
RESULT: Compile a switch-off filter and observe the generated SL3 code with the specified properties RESULT_SWITCH_OFF_FILTER_1
status: PASS
tags: result, block, switch_off_filter_test
date: 2025-08-04
owner: WF
RESULT: Compile a switch-off filter and observe the generated SL3 code with the specified properties RESULT_SWITCH_OFF_FILTER_2
status: PASS
tags: result, block, switch_off_filter_test
date: 2025-08-04
owner: WF
RESULT: Verify Switch-off Filter function RESULT_SWITCH_OFF_FILTER_3
status: PASS
tags: result, block, switch_off_filter_test
date: 2025-08-04
owner: WF
RESULT: Switch-off Filter in safety manual RESULT_SWITCH_OFF_FILTER_4
status: PASS
tags: result, block, switch_off_filter_test
date: 2025-08-04
owner: WF
RESULT: latch_sr: code review RESULT_CFB_LATCH_SR_1
status: PASS
tags: result, block, latch_sr
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_SYNC_INPUTS_1 RESULT_CFB_SYNC_INPUTS_1
status: PASS
tags: result, block, sync_inputs
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_SYNC_INPUTS_2 RESULT_CFB_SYNC_INPUTS_2
status: PASS
tags: result, block, sync_inputs
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_SYNC_INPUTS_3 RESULT_CFB_SYNC_INPUTS_3
status: PASS
tags: result, block, sync_inputs
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_SYNC_INPUTS_4 RESULT_CFB_SYNC_INPUTS_4
status: PASS
tags: result, block, sync_inputs
date: 2025-08-04
owner: WF
RESULT: Sync inputs gui block 3 RESULT_GUI_SYNC_INPUTS_3
status: PASS
tags: fsd124
date: 2025-08-04
owner: WF
RESULT: Sync inputs gui block 4 RESULT_GUI_SYNC_INPUTS_4
status: PASS
tags: fsd124
date: 2025-08-04
owner: WF
RESULT: Sync inputs gui block 5 RESULT_GUI_SYNC_INPUTS_5
status: PASS
tags: fsd124
date: 2025-08-04
owner: WF
RESULT: Sync inputs gui block 6 RESULT_GUI_SYNC_INPUTS_6
status: PASS
tags: fsd124
date: 2025-08-04
owner: WF
RESULT: Sync inputs gui block 7 RESULT_GUI_SYNC_INPUTS_7
status: PASS
tags: fsd124
date: 2025-08-04
owner: WF
RESULT: Sync inputs gui block 8 RESULT_GUI_SYNC_INPUTS_8
status: PASS
tags: fsd124
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_DIG_INPUT_1 RESULT_CFB_DIG_INPUT_1
status: PASS
tags: result, block, dig_input
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_DIG_INPUT_2 RESULT_CFB_DIG_INPUT_2
status: PASS
tags: result, block, dig_input
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_DIG_INPUT_3 RESULT_CFB_DIG_INPUT_3
status: PASS
tags: result, block, dig_input
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_DIG_INPUT_4 RESULT_CFB_DIG_INPUT_4
status: PASS
tags: result, block, dig_input
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_DIG_INPUT_5 RESULT_CFB_DIG_INPUT_5
status: PASS
tags: result, block, dig_input
date: 2025-08-04
owner: WF
RESULT: RESULT_GUI_SYNC_INPUTS_1 RESULT_GUI_SYNC_INPUTS_1
status: PASS
tags: fsd124, sync_inputs_gui_module_tests
date: 2025-08-04
owner: WF
RESULT: RESULT_GUI_SYNC_INPUTS_2 RESULT_GUI_SYNC_INPUTS_2
status: PASS
tags: fsd124, sync_inputs_gui_module_tests
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_OSSD_1 RESULT_CFB_OSSD_1
status: PASS
tags: result, block, fblock_ossd
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_OSSD_2 RESULT_CFB_OSSD_2
status: PASS
tags: result, block, fblock_ossd
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_OSSD_3 RESULT_CFB_OSSD_3
status: PASS
tags: result, block, fblock_ossd
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_COMBO_1 RESULT_CFB_COMBO_1
status: PASS
tags: result, block, combo
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_COMBO_2 RESULT_CFB_COMBO_2
status: PASS
tags: result, block, combo
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_COMBO_3 RESULT_CFB_COMBO_3
status: PASS
tags: result, block, combo
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_COMBO_4 RESULT_CFB_COMBO_4
status: PASS
tags: result, block, combo
date: 2025-08-04
owner: WF
RESULT: RESULT_CFB_COMBO_5 RESULT_CFB_COMBO_5
status: PASS
tags: result, block, combo
date: 2025-08-04
owner: WF

Motivations

Motivation: SWSREQ_008A MOTIVATION_124_001
status: PASS
tags: fsd124
Source: SWSREQ_008A

The GUI software allows the user to create logic by using a block diagram language. See FSD124 test results.

Motivation: SWSREQ_009A MOTIVATION_124_002
status: PASS
tags: fsd124
Source: SWSREQ_009A

This is achieved by changing the communication maximum timeouts, as well as by changing filtering parameters on inputs.

Motivation: SWSREQ_004A MOTIVATION_124_003
status: PASS
tags: fsd124

The GUI software allows the user to change the minimum and maximum power supply voltage in the node parameters.

Appendix

Sl3 template for module tests

Below is the template for module tests. Any test that does not specify all the logic uses this template:

nodes:
 - typ: standard
   node_idx: 0
   node_gui_nr: 1

   # io, memories, logic, copies go here.

   node_parameters:
      mem_groups_offset: 0
      mem_groups_num: 1
      display_connector_mode: DISPLAY

parameters:
   slottime_ms: 1
   silent_slottime_ms: 20
   radio_packet_type: small
   glb_mem_tmo:
      safe_area: 500
      unsafe_area: 500

Revision History

Date

By

Version

Description

2017-11-02

William Forsdal

V1

Initial version

2018-04-16

William Forsdal

V2

Add more blocks and tests

2018-06-08

William Forsdal

V5

updated blocks and tests (sync_inputs)

2018-10-10

William Forsdal

V6

  • Added more info to test results

  • Added new tests to cover DREQs

  • Added description of test equipment

2023-11-09

Orpheus Johansson

V7

Copied over old document to new structure.

2025-08-04

WF

V8

Updated tests to point to test.