I. Introduction
Computer architecture research has traditionally used software to emulate a single-core processor such as SimpleScalar [1]. Both previously and today, improving the architecture of processors and memory hierarchies is an urgent task. In addition, there are currently additional optimization requirements across the entire system stack (processor architecture, command set, device drivers, operating system, and applications) with multiple processors. However, the above-mentioned research at the system level is constrained by a certain contradiction between the speed and detail of modeling software and hardware components, and this contradiction is inherent in software simulators, traditionally used for innovations in microprocessor systems. Field Programmable Gate Arrays (FPGA) are considered as a solution to this contradiction and are aimed at developing a new research infrastructure of the system stack that simulates a complete system (processor, video card, sound card, North and South bridges, network modem, etc.) [2]. Flexibility, speed (both development time and simulation time), and sufficient FPGA capacity allow developers to emulate microprocessor systems and computers in General. It should be noted that with the onset of the 4th industrial revolution [3], in the development and implementation of smart technologies in the urban environment, such as the MQTT Service Broker [4] and With the transition of states to electronic provision of services, many security problems have arisen both for personal data [5] or the Event Handler system as a MQTT [6] and for the protection of systems in general. In connection with the software implementation of various architectures, FPGA-based projects allow not only to parallelize information processing at the hardware level, but also to maximize information protection from hardware backdoors or so-called backdoors on the part of chip manufacturers, for example: Intel Management Engine [7]. However, one of the most difficult issues facing the development of an emulation system on an FPGA is compatibility with existing operating systems (OS). Manufacturers have developed processor cores for FPGA that are very small and simple, but have limited support even for embedded operating systems like Barebone. In addition, in order to run existing OS binaries, including closed source ones such as Windows, it forces developers to consider binary translation of OS files as a solution to the binary translation problem [8]. In this research and convenience in this work, we emulate a version of a commercial desktop computer with an x86 processor on an FPGA to run real operating systems. To be more precise, we replaced the computer with a debugging Board with the necessary components soldered on it. Debugging Board components: FPGA, RAM, ROM, real-time clock, and some other chips are required to connect the FPGA to PC peripherals. The following devices are emulated on an FPGA: