# FPGA Applied to Latency Reduction for the Tactile Internet
## 2 Related Work
Three systems were created: the first one did not use any arithmetic co-processor and floating point operations were performed in software; in the second system a floating point co-processor was used which allowed the execution of the four basic mathematical operations in hardware; lastly, the third system also had a custom arithmetic co-processor but in this case it allowed hardware computation of square root. The overall times to perform the calculations were 2324 \(\upmu\)s, 560 \(\upmu\)s and 143 \(\upmu\)s and the total logic elements used from the entire device were 4501 (4%), 5840 (5%) and 7219 (6%), respectively. The work uses hardware-software to implement inverse kinematics, in which critical parts were implemented in FPGAs to accelerate the whole process. In [32], a hardware able to control a 6-DoF device using 32-bit fixed point representation is presented, where 21 bits were used for the fractional part and 11 bits for the integer part. In that work, a CORDIC implementation was used to assist in performing the trigonometric calculations. The total time spent to compute the forward kinematics was 3 \(\upmu\)s and for the inverse kinematics the time was 4.5 \(\upmu\)s for a clock of 50 MHz. However, in the presented proposal, some calculations were performed sequentially, that is, for the execution of the forward kinematics it was necessary 150 clock cycles and for the inverse, 225 cycles. The use of partial parallelization in the execution of robotic manipulation algorithms provided a significant increase in system throughput. Nevertheless, it is important to note that there is still room for improvement since all calculations can be computed in parallel. Another hardware implementation of inverse kinematics was presented in [33]. The device used was a 10-DoF biped robot. A CORDIC implementation was used to perform the trigonometric calculations. The execution time needed to compute the kinematics of the 10 joints in FPGA was of 0.44 \(\upmu\)s. In this paper, a comparison with a software implementation was also performed, and the time taken to perform the same calculations was 3342 \(\upmu\)s, i.e., the gain on execution, or speedup, on custom FPGA hardware was 7595\(\times\). The resulting error between both implementations was acceptable for this specific control. In [34], an FPGA implementation of the forward and inverse kinematics of a 5-DoF device was presented. The hardware was developed using a fixed point representation where 32 bits were used for the angles representation and 15 bits for the fractional part. For the device spatial positioning, 16 bits were used of which 7 bits for the fractional part. In the implementation of trigonometric functions, a combination of techniques using lookup tables (LUTs) and Taylor series was used. To perform the necessary calculations, a finite-state machine model (FSM) was used to reduce the use of hardware resources; however, the use of such FSM generated a sequential computation of the robotic manipulation algorithms. In this model, the forward kinematics implementation achieved a runtime of 680 ns and the inverse 940 ns, that is, for the 50 MHz clock, the forward kinematics took 34 clock cycles and the inverse kinematics took 47 cycles. Using such approaches to reduce the use of hardware resources increases computation runtime. For tactile device applications, it is important to optimize the runtime rather than the use of hardware resources. Similarly, an FPGA implementation of forward and inverse kinematics for a 7-DoF device was presented in [35]; however, only 3-DoF required to control the device movement were implemented in hardware. The proposal used a 32-bit fixed point representation and a CORDIC was used to execute the trigonometric functions. To validate the proposal, the FPGA was set to receive the three reference angles, perform the forward kinematics and then the inverse. The model was developed based on pipeline and the operating frequency used was of 100 MHz.