# Coverage Fulfillment Automation in Hardware Functional Verification Using Genetic Algorithms
## 4 Results
### Coverage Collection for ALUI Operating as an Accumulator
\begin{table}
\begin{tabular}{c c} \hline \hline
**Version of Genetic Algorithms Approach** & **Obtained Results** \\ \hline v3 & 90\% coverage was obtained, even after waiting 40 \\  & generations to evolve \\ v3.05 & 85\% coverage was obtained, even after waiting 35 \\ v3.1 & 80\% coverage was obtained at the 37 th generation \\ v3.2 & 85\% coverage was obtained (at 4 th generation), even after waiting 40 generations to evolve \\ v3.2 & 90\% coverage was obtained when there were 100 \\  & individuals/generation from the 16 th generation \\ v3.3 & 90\% coverage was obtained (at the 11 th generation) \\  & by a set of stimuli \\ random generations & 85\% coverage was reached by only a sequence of stimuli in a population of 400 individuals \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Results for ALU when values of result were split in 20 ranges. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Version of GAApproach** & **Index 2 of First** & **Index of Generation** & **Index of Generation** \\  & **Individual Having** & **with at Least 50\% of all** & **Having Maximum** \\  & **100\% Coverage** & **Individuals Having** & **Coverage in all Cases** \\ \hline v1 & 19 & n/a 1 & n/a \\ v1.1 & 62 & n/a & n/a \\ v1.2 & 252 & n/a & n/a \\ v2 & 101 & 6 & 7 \\ v2.1 & 25 & 3 & 3 \\ set 1 of random generations & 19 & n/a & n/a \\ set 2 of random generations & 15 & n/a & n/a \\ \hline \hline \end{tabular} 1  
\end{table} 
Table 2: Results for ALU when values of result were split in ten ranges. \begin{table}
\begin{tabular}{c c} \hline \hline
**Version of Genetic Algorithms Approach** & **Obtained Results** \\ \hline v3 & 100\% coverage was obtained (beginning with \\ 13 th generation) by a stimulus set \\ 93.3\% coverage was obtained (beginning with \\ 21 st generation) by a stimulus set \\ 100\% coverage was obtained (at 4 th and 5 th generation) by two stimulus sets \\ 93.3\% coverage was obtained (at 8 th generation) by a stimulus set \\ 86.7\% coverage was obtained by only four \\ items in a population of 400 individuals \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Results for ALU when values of result were split in 15 ranges. When the values range of the operation result was split into 15 intervals, the results shown in Table 3 were obtained. In this case, considering that v3.2 had the best performance, ignoring children which were identical to their parents proved to be very beneficial. An important observation is that all approaches based on genetic algorithms outperformed the coverage fulfillment score reached when only random generations were performed. However, considering the results from Table 4, where the values range of result was split into 20 intervals, ignoring children identical with parents is not a universal best solution, and randomness in generating the initial individuals remains highly influential in the performance of the genetic algorithm approaches employed. The fact that 100% coverage was not reached is explicable; 100% coverage means that each performed operation hits another result interval, which is very difficult to achieve, thus, 90% coverage means that only 18 different intervals were hit, which represents a very good result. In this case, only the v3 and v3.3 program versions outperformed the score of the series of random generations, and v3.2 only did so after running thousands of simulations (the case when only 100 parents/generation were kept, although the number of children can be up to six times larger), exceeding the score reached by strategy emulating constrained random generation.