|
|
|
@ -5,13 +5,16 @@ library work;
@@ -5,13 +5,16 @@ library work;
|
|
|
|
|
use work.common.all; |
|
|
|
|
|
|
|
|
|
package crhelpers is |
|
|
|
|
function fxm_to_num(fxm: std_ulogic_vector(7 downto 0)) return integer; |
|
|
|
|
function num_to_fxm(num: integer) return std_ulogic_vector; |
|
|
|
|
subtype crnum_t is integer range 0 to 7; |
|
|
|
|
subtype crmask_t is std_ulogic_vector(7 downto 0); |
|
|
|
|
|
|
|
|
|
function fxm_to_num(fxm: crmask_t) return crnum_t; |
|
|
|
|
function num_to_fxm(num: crnum_t) return crmask_t; |
|
|
|
|
end package crhelpers; |
|
|
|
|
|
|
|
|
|
package body crhelpers is |
|
|
|
|
|
|
|
|
|
function fxm_to_num(fxm: std_ulogic_vector(7 downto 0)) return integer is |
|
|
|
|
function fxm_to_num(fxm: crmask_t) return crnum_t is |
|
|
|
|
begin |
|
|
|
|
-- If multiple fields are set (undefined), match existing |
|
|
|
|
-- hardware by returning the first one. |
|
|
|
@ -27,7 +30,7 @@ package body crhelpers is
@@ -27,7 +30,7 @@ package body crhelpers is
|
|
|
|
|
return 7; |
|
|
|
|
end; |
|
|
|
|
|
|
|
|
|
function num_to_fxm(num: integer) return std_ulogic_vector is |
|
|
|
|
function num_to_fxm(num: crnum_t) return crmask_t is |
|
|
|
|
begin |
|
|
|
|
case num is |
|
|
|
|
when 0 => |
|
|
|
|