Search papers, labs, and topics across Lattice.
This paper addresses the deployment gap in formal verification for open-hardware PLCs by introducing a hardware-faithful verification method that accounts for the constraints of low-cost microcontrollers. The authors demonstrate that naive width-aware verification leads to a significant number of false alarms due to unrealistic sensor input models, with 44% of checks yielding false positives on a dataset of 123 real programs. By implementing a declarative hardware abstraction layer (HAL) and refining the input model, they successfully eliminate all false alarms while maintaining the integrity of robustness proofs, showcasing the method's effectiveness in real-world scenarios.
Naive verification methods for PLCs can produce 44% false alarms due to unrealistic sensor models, but a new hardware-faithful approach eliminates these errors entirely.
OpenPLC, Arduino OPTA, CONTROLLINO, and Industrial Shields M-Duino bring IEC 61131-3 to low-cost microcontrollers used in real automation and industrial control system (ICS) security research. Existing open-source verifiers for IEC 61131-3, including ESBMC-PLC, prove safety over an abstract scan-cycle model with idealized unbounded integers. The board artifact runs on a resource-constrained microcontroller unit (MCU) with 16-bit words (8-bit AVR Arduinos), and sensors are read via a finite-resolution analog-to-digital converter (ADC). We show this deployment gap makes naive width-aware verification unsound: across 123 real programs, checking 16-bit overflow without a hardware input model yields 44% false alarms (54/123) and finds no genuine defects, because it explores sensor values no ADC can produce. Since the gap lies where computation meets the physical process - a bounded sensor reading scaled by finite-width arithmetic into an actuation command - an overflow can silently suppress a safety action, such as a high-level alarm. An unbounded input model fabricates alarms that no environment can trigger. We present hardware-faithful verification for IEC 61131-3 on open hardware: a declarative hardware abstraction layer (HAL) descriptor (width, ADC/PWM resolution, I/O binding) and a sound lowering that interprets arithmetic at target width and constrains inputs to hardware-realizable ranges. We instantiate it for Arduino as ArduinoTool, deriving HAL parameters from official cores and realizing the input-range model in the ESBMC Ladder Diagram (LD) frontend. On the 123-program corpus, the HAL annotator eliminates all 54 false alarms while preserving robustness proofs, and a controlled corpus demonstrates the rare width-dependent defects it detects with realizable witnesses.