Package: TbUtilPkg
- File: TbUtilPkg.vhd
Constants
Name | Type | Value | Description |
---|---|---|---|
CLK_ACTIVE | std_logic | '1' | |
t_sim_resolution | time | std.env.resolution_limit | VHDL-2008 |
Functions
- OneHot ( constant A : in std_logic_vector ) return boolean
Description
constant t_sim_resolution : time := 1 ns ; -- for non VHDL-2008 simulators
ZeroOneHot, OneHot
OneHot: return true if exactly one value is 1
ZeroOneHot: return false when more than one value is a 1
- ZeroOneHot ( constant A : in std_logic_vector ) return boolean
- IfElse (Expr : boolean ;
A,
B : std_logic_vector) return std_logic_vector
Description
IfElse
Crutch until VHDL-2019 conditional initialization
If condition is true return first parameter otherwise return second
- IfElse (Expr : boolean ;
A,
B : integer) return integer
- RequestTransaction ( signal Rdy : Out std_logic ;
signal Ack : In std_logic ) return ()
Description
RequestTransaction - WaitForTransaction
RequestTransaction - Transaction initiation in transaction procedure
WaitForTransaction - Transaction execution control in VC
RequestTransaction - WaitForTransaction
std_logic
- WaitForTransaction ( signal Clk : In std_logic ;
signal Rdy : In std_logic ;
signal Ack : Out std_logic ) return ()
- RequestTransaction ( signal Rdy : Out bit ;
signal Ack : In bit ) return ()
Description
RequestTransaction - WaitForTransaction
bit
- WaitForTransaction ( signal Clk : In std_logic ;
signal Rdy : In bit ;
signal Ack : Out bit ) return ()
- RequestTransaction ( signal Rdy : InOut RdyType ;
signal Ack : In AckType ) return ()
- WaitForTransaction ( signal Clk : In std_logic ;
signal Rdy : In RdyType ;
signal Ack : InOut AckType ) return ()
- WaitForTransaction ( signal Clk : In std_logic ;
signal Rdy : In std_logic ;
signal Ack : Out std_logic ;
signal TimeOut : In std_logic ;
constant Polarity : In std_logic := '1' ) return ()
Description
WaitForTransaction
Specializations for interrupt handling
Currently only std_logic based
- WaitForTransactionOrIrq ( signal Clk : In std_logic ;
signal Rdy : In std_logic ;
signal IntReq : In std_logic ) return ()
Description
Variation for model that stops waiting when IntReq is asserted
Intended for models that need to switch between instruction streams
such as a CPU when interrupt is pending
- StartTransaction ( signal Ack : Out std_logic ) return ()
Description
Set Ack to Model starting value
- FinishTransaction ( signal Ack : Out std_logic ) return ()
Description
Set Ack to Model finishing value
- TransactionPending ( signal Rdy : In std_logic ) return boolean
Description
If a transaction is pending, return true
- WaitForTransaction ( signal Rdy : In std_logic ;
signal Ack : Out std_logic ) return ()
Description
Variation for clockless models
- Toggle ( signal Sig : InOut std_logic ;
constant DelayVal : time ) return ()
Description
Toggle, WaitForToggle
Used for communicating between processes
- Toggle ( signal Sig : InOut std_logic ) return ()
- ToggleHS ( signal Sig : InOut std_logic ) return ()
- IsToggle ( signal Sig : In std_logic ) return boolean
- WaitForToggle ( signal Sig : In std_logic ) return ()
- Toggle ( signal Sig : InOut bit ;
constant DelayVal : time ) return ()
Description
Bit type versions
- Toggle ( signal Sig : InOut bit ) return ()
- ToggleHS ( signal Sig : InOut bit ) return ()
- IsToggle ( signal Sig : In bit ) return boolean
- WaitForToggle ( signal Sig : In bit ) return ()
- Increment ( signal Sig : InOut integer ;
constant RollOverValue : in integer := 0) return ()
Description
Integer type versions
- Increment (constant Sig : in integer ;
constant Amount : in integer := 1) return integer
- WaitForToggle ( signal Sig : In integer ) return ()
- WaitForBarrier ( signal Sig : InOut std_logic ) return ()
Description
WaitForBarrier
Barrier Synchronization
Multiple processes call it, it finishes when all have called it
- WaitForBarrier ( signal Sig : InOut std_logic ;
signal TimeOut : std_logic ;
constant Polarity : in std_logic := '1') return ()
- WaitForBarrier ( signal Sig : InOut std_logic ;
constant TimeOut : time ) return ()
- resolved_barrier ( s : integer_vector ) return integer
Description
resolved_barrier : summing resolution used in conjunction with integer based barriers
- WaitForBarrier ( signal Sig : InOut integer ) return ()
Description
Usage of integer barriers requires resolved_barrier. Initialization to 1 recommended, but not required
signal barrier1 : resolved_barrier integer := 1 ; -- using the resolution function
signal barrier2 : integer_barrier := 1 ; -- using the subtype that already applies the resolution function
- WaitForBarrier ( signal Sig : InOut integer ;
signal TimeOut : std_logic ;
constant Polarity : in std_logic := '1') return ()
- WaitForBarrier ( signal Sig : InOut integer ;
constant TimeOut : time ) return ()
- WaitForBarrier2 ( signal SyncOut : out std_logic ;
signal SyncIn : in std_logic ) return ()
Description
Using separate signals
- WaitForBarrier2 ( signal SyncOut : out std_logic ;
signal SyncInV : in std_logic_vector ) return ()
- WaitForClock ( signal Clk : in std_logic ;
constant Delay : in time ) return ()
Description
WaitForClock
Sync to Clock - after a delay, after a number of clocks
- WaitForClock ( signal Clk : in std_logic ;
constant NumberOfClocks : in integer := 1) return ()
- WaitForClock ( signal Clk : in std_logic ;
signal Enable : in boolean ) return ()
- WaitForClock ( signal Clk : in std_logic ;
signal Enable : in std_logic ;
constant Polarity : std_logic := '1' ) return ()
- WaitForLevel ( signal A : in boolean ) return ()
Description
WaitForLevel
Find a signal at a level
- WaitForLevel ( signal A : in std_logic ;
Polarity : std_logic := '1' ) return ()
- CreateClock ( signal Clk : inout std_logic ;
constant Period : time ;
constant DutyCycle : real := 0.5 ) return ()
Description
CreateClock, CreateReset
Note these do not exit
- CheckClockPeriod ( constant AlertLogID : AlertLogIDType ;
signal Clk : in std_logic ;
constant Period : time ;
constant ClkName : string := "Clock" ;
constant HowMany : integer := 5 ) return ()
- CheckClockPeriod ( signal Clk : in std_logic ;
constant Period : time ;
constant ClkName : string := "Clock" ;
constant HowMany : integer := 5 ) return ()
- CreateReset ( signal Reset : out std_logic ;
constant ResetActive : in std_logic ;
signal Clk : in std_logic ;
constant Period : time ;
constant tpd : time ) return ()
- LogReset ( constant AlertLogID : AlertLogIDType ;
signal Reset : in std_logic ;
constant ResetActive : in std_logic ;
constant ResetName : in string := "Reset" ;
constant LogLevel : in LogType := ALWAYS ) return ()
- LogReset ( signal Reset : in std_logic ;
constant ResetActive : in std_logic ;
constant ResetName : in string := "Reset" ;
constant LogLevel : in LogType := ALWAYS ) return ()
- WaitForAck ( signal Ack : In std_logic ) return ()
Description
Deprecated
WaitForAck, StrobeAck
Replaced by WaitForToggle and Toggle
- StrobeAck ( signal Ack : Out std_logic ) return ()