From 0118fda68a7aeec65350bd0c5762bbcd0b8b66df Mon Sep 17 00:00:00 2001 From: Dimitris Lampridis <Dimitris.Lampridis@cern.ch> Date: Fri, 23 Mar 2018 14:19:10 +0100 Subject: [PATCH] hdl: import f_pick functions from mockturtle --- modules/common/gencores_pkg.vhd | 49 +++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/modules/common/gencores_pkg.vhd b/modules/common/gencores_pkg.vhd index aa1bc5f..7d6e017 100644 --- a/modules/common/gencores_pkg.vhd +++ b/modules/common/gencores_pkg.vhd @@ -611,6 +611,16 @@ package gencores_pkg is function f_to_std_logic_vector (c : character) return std_logic_vector; function f_to_std_logic_vector (s : string) return std_logic_vector; + -- Functions for short-hand if assignments + function f_pick (cond : boolean; if_1 : std_logic; if_0 : std_logic) + return std_logic; + function f_pick (cond : boolean; if_1 : std_logic_vector; if_0 : std_logic_vector) + return std_logic_vector; + function f_pick (cond : std_logic; if_1 : std_logic; if_0 : std_logic) + return std_logic; + function f_pick (cond : std_logic; if_1 : std_logic_vector; if_0 : std_logic_vector) + return std_logic_vector; + end package; package body gencores_pkg is @@ -802,4 +812,43 @@ package body gencores_pkg is return rv; end function f_to_std_logic_vector; + ------------------------------------------------------------------------------ + -- Functions for short-hand if assignments + ------------------------------------------------------------------------------ + function f_pick (cond : std_logic; if_1 : std_logic; if_0 : std_logic) + return std_logic + is + begin + if cond = '1' then + return if_1; + else + return if_0; + end if; + end function f_pick; + + function f_pick (cond : std_logic; if_1 : std_logic_vector; if_0 : std_logic_vector) + return std_logic_vector + is + begin + if cond = '1' then + return if_1; + else + return if_0; + end if; + end function f_pick; + + function f_pick (cond : boolean; if_1 : std_logic; if_0 : std_logic) + return std_logic + is + begin + return f_pick (f_to_std_logic(cond), if_1, if_0); + end function f_pick; + + function f_pick (cond : boolean; if_1 : std_logic_vector; if_0 : std_logic_vector) + return std_logic_vector + is + begin + return f_pick (f_to_std_logic(cond), if_1, if_0); + end function f_pick; + end gencores_pkg; -- GitLab