library ieee; use ieee.std_logic_1164.all; package MINE is procedure scan_results (signal results : in std_logic_vector; variable majority_value : out std_logic; variable majority_count : out natural; variable tie : out Boolean); end package MINE; package body MINE is procedure scan_results (signal results : in std_logic_vector; variable majority_value : out std_logic; variable majority_count : out natural; variable tie : out Boolean) is variable one_count, zero_count : natural:= 0; begin tie := false; majority_value := 'X'; for i in results'range loop if results(i) = '0' then zero_count := zero_count + 1; elsif results(i) = '1' then one_count := one_count + 1; end if; end loop; if (one_count = zero_count) then tie := true; majority_count := zero_count; elsif (one_count > zero_count) then majority_value := '1'; majority_count := one_count; else majority_value := '0'; majority_count := zero_count; end if; return; end scan_results; end package body MINE;