From bb895c7c48481bbc05146a0d84d10d13daa702b2 Mon Sep 17 00:00:00 2001 From: LarsAsplund Date: Mon, 30 Mar 2015 23:45:23 +0200 Subject: [PATCH] Updated OSVVM to version 2015.03 --- vhdl/osvvm/AlertLogPkg.vhd | 789 +++++++++++++++++- vhdl/osvvm/AlertLogPkg_body_BVUL.vhd | 491 +++++++++++ vhdl/osvvm/demo/AlertLog_Demo_Global.vhd | 2 - vhdl/osvvm/demo/AlertLog_Demo_Hierarchy.vhd | 2 - vhdl/osvvm/demo/Demo_Rand.vhd | 282 +++++++ .../osvvm/doc/AlertLogPkg_interface_guide.pdf | Bin 0 -> 45613 bytes vhdl/osvvm/doc/AlertLogPkg_user_guide.pdf | Bin 89167 -> 91693 bytes vhdl/osvvm/doc/osvvm_release_notes.pdf | Bin 55186 -> 60301 bytes vunit/ui.py | 5 +- 9 files changed, 1519 insertions(+), 52 deletions(-) create mode 100644 vhdl/osvvm/AlertLogPkg_body_BVUL.vhd create mode 100644 vhdl/osvvm/demo/Demo_Rand.vhd create mode 100644 vhdl/osvvm/doc/AlertLogPkg_interface_guide.pdf diff --git a/vhdl/osvvm/AlertLogPkg.vhd b/vhdl/osvvm/AlertLogPkg.vhd index c430e1da3..e9800950e 100644 --- a/vhdl/osvvm/AlertLogPkg.vhd +++ b/vhdl/osvvm/AlertLogPkg.vhd @@ -1,7 +1,7 @@ -- -- File Name: AlertLogPkg.vhd -- Design Unit Name: AlertLogPkg --- Revision: STANDARD VERSION, revision 2015.01 +-- Revision: STANDARD VERSION, revision 2015.03 -- -- Maintainer: Jim Lewis email: jim@synthworks.com -- Contributor(s): @@ -26,6 +26,8 @@ -- Revision History: -- Date Version Description -- 01/2015: 2015.01 Initial revision +-- 02/2015 2015.03 Added: AlertIfEqual, AlertIfNotEqual, AlertIfDiff, PathTail, +-- ReportNonZeroAlerts, ReadLogEnables -- -- -- Copyright (c) 2015 by SynthWorks Design Inc. All rights reserved. @@ -53,6 +55,10 @@ use std.textio.all ; use work.OsvvmGlobalPkg.all ; use work.TranscriptPkg.all ; +library IEEE ; +use ieee.std_logic_1164.all ; +use ieee.numeric_std.all ; + package AlertLogPkg is subtype AlertLogIDType is integer ; @@ -64,13 +70,14 @@ package AlertLogPkg is subtype LogIndexType is LogType range DEBUG to INFO ; type LogEnableType is array (LogIndexType) of boolean ; - constant ALERTLOG_BASE_ID : AlertLogIDType := 0 ; - constant ALERT_DEFAULT_ID : AlertLogIDType := 1 ; - constant LOG_DEFAULT_ID : AlertLogIDType := 1 ; - constant ALERTLOG_DEFAULT_ID : AlertLogIDType := ALERT_DEFAULT_ID ; - constant OSVVM_ALERTLOG_ID : AlertLogIDType := 2 ; - constant ALERTLOG_ID_NOT_FOUND : AlertLogIDType := -1 ; -- alternately integer'right - constant MIN_NUM_AL_IDS : AlertLogIDType := 32 ; -- Number IDs initially allocated + constant ALERTLOG_BASE_ID : AlertLogIDType := 0 ; + constant ALERT_DEFAULT_ID : AlertLogIDType := 1 ; + constant LOG_DEFAULT_ID : AlertLogIDType := 1 ; + constant ALERTLOG_DEFAULT_ID : AlertLogIDType := ALERT_DEFAULT_ID ; + constant OSVVM_ALERTLOG_ID : AlertLogIDType := 2 ; + constant ALERTLOG_ID_NOT_FOUND : AlertLogIDType := -1 ; -- alternately integer'right + constant ALERTLOG_ID_NOT_ASSIGNED : AlertLogIDType := -1 ; + constant MIN_NUM_AL_IDS : AlertLogIDType := 32 ; -- Number IDs initially allocated alias AlertLogOptionsType is work.OsvvmGlobalPkg.OsvvmOptionsType ; @@ -85,22 +92,76 @@ package AlertLogPkg is ------------------------------------------------------------ -- Similar to assert, except condition is positive - procedure AlertIf( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIf( AlertLogID : AlertLogIDType ; condition : boolean ; Message : string ; Level : AlertType := ERROR ) ; procedure AlertIf( condition : boolean ; Message : string ; Level : AlertType := ERROR ) ; - impure function AlertIf( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) return boolean ; + impure function AlertIf( AlertLogID : AlertLogIDType ; condition : boolean ; Message : string ; Level : AlertType := ERROR ) return boolean ; impure function AlertIf( condition : boolean ; Message : string ; Level : AlertType := ERROR ) return boolean ; + -- deprecated + procedure AlertIf( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) ; + impure function AlertIf( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) return boolean ; + ------------------------------------------------------------ -- Direct replacement for assert - procedure AlertIfNot( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNot( AlertLogID : AlertLogIDType ; condition : boolean ; Message : string ; Level : AlertType := ERROR ) ; procedure AlertIfNot( condition : boolean ; Message : string ; Level : AlertType := ERROR ) ; - impure function AlertIfNot( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) return boolean ; + impure function AlertIfNot( AlertLogID : AlertLogIDType ; condition : boolean ; Message : string ; Level : AlertType := ERROR ) return boolean ; impure function AlertIfNot( condition : boolean ; Message : string ; Level : AlertType := ERROR ) return boolean ; + -- deprecated + procedure AlertIfNot( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) ; + impure function AlertIfNot( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) return boolean ; + + ------------------------------------------------------------ + -- overloading for common functionality + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : std_logic ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : std_logic_vector ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : unsigned ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : signed ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : integer ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : real ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : character ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : string ; Message : string ; Level : AlertType := ERROR ) ; + + procedure AlertIfEqual( L, R : std_logic ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( L, R : std_logic_vector ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( L, R : unsigned ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( L, R : signed ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( L, R : integer ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( L, R : real ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( L, R : character ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfEqual( L, R : string ; Message : string ; Level : AlertType := ERROR ) ; + + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : std_logic ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : std_logic_vector ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : unsigned ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : signed ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : integer ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : real ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : character ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : string ; Message : string ; Level : AlertType := ERROR ) ; + + procedure AlertIfNotEqual( L, R : std_logic ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( L, R : std_logic_vector ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( L, R : unsigned ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( L, R : signed ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( L, R : integer ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( L, R : real ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( L, R : character ; Message : string ; Level : AlertType := ERROR ) ; + procedure AlertIfNotEqual( L, R : string ; Message : string ; Level : AlertType := ERROR ) ; + ------------------------------------------------------------ + -- Simple Diff for file comparisons + procedure AlertIfDiff (AlertLogID : AlertLogIDType ; Name1, Name2 : string; Message : string := "" ; Level : AlertType := ERROR ) ; + procedure AlertIfDiff (Name1, Name2 : string; Message : string := "" ; Level : AlertType := ERROR ) ; + procedure AlertIfDiff (AlertLogID : AlertLogIDType ; file File1, File2 : text; Message : string := "" ; Level : AlertType := ERROR ) ; + procedure AlertIfDiff (file File1, File2 : text; Message : string := "" ; Level : AlertType := ERROR ) ; + + ------------------------------------------------------------ procedure SetAlertLogJustify ; - procedure ReportAlerts ( Name : string := OSVVM_STRING_INIT_PARM_DETECT ; AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID ; ExternalErrors : AlertCountType := (others => 0) ) ; procedure ReportAlerts ( Name : String ; AlertCount : AlertCountType ) ; + procedure ReportAlerts ( Name : string := OSVVM_STRING_INIT_PARM_DETECT ; AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID ; ExternalErrors : AlertCountType := (others => 0) ) ; + procedure ReportNonZeroAlerts ( Name : string := OSVVM_STRING_INIT_PARM_DETECT ; AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID ; ExternalErrors : AlertCountType := (others => 0) ) ; procedure ClearAlerts ; function "+" (L, R : AlertCountType) return AlertCountType ; function "-" (L, R : AlertCountType) return AlertCountType ; @@ -122,7 +183,11 @@ package AlertLogPkg is Message : string ; Level : LogType := ALWAYS ) ; - procedure Log( Message : string ; Level : LogType := ALWAYS) ; + procedure Log( Message : string ; Level : LogType := ALWAYS) ; + + impure function IsLoggingEnabled(AlertLogID : AlertLogIDType ; Level : LogType) return boolean ; + impure function IsLoggingEnabled(Level : LogType) return boolean ; + ------------------------------------------------------------ -- Accessor Methods @@ -130,6 +195,7 @@ package AlertLogPkg is procedure InitializeAlertLogStruct ; procedure DeallocateAlertLogStruct ; impure function FindAlertLogID(Name : string ) return AlertLogIDType ; + impure function FindAlertLogID(Name : string ; ParentID : AlertLogIDType) return AlertLogIDType ; impure function GetAlertLogID(Name : string ; ParentID : AlertLogIDType := ALERTLOG_BASE_ID) return AlertLogIDType ; ------------------------------------------------------------ @@ -145,9 +211,9 @@ package AlertLogPkg is procedure SetLogEnable(Level : LogType ; Enable : boolean) ; procedure SetLogEnable(AlertLogID : AlertLogIDType ; Level : LogType ; Enable : boolean ; DescendHierarchy : boolean := TRUE) ; - - impure function IsLoggingEnabled(AlertLogID : AlertLogIDType ; Level : LogType) return boolean ; - impure function IsLoggingEnabled(Level : LogType) return boolean ; + + procedure ReportLogEnables ; + impure function GetAlertLogName(AlertLogID : AlertLogIDType) return string ; ------------------------------------------------------------ procedure SetAlertLogOptions ( @@ -174,6 +240,14 @@ package AlertLogPkg is impure function GetAlertPassName return string ; impure function GetAlertFailName return string ; + -- File Reading Utilities + function IsLogEnableType (Name : String) return boolean ; + procedure ReadLogEnables (file AlertLogInitFile : text) ; + procedure ReadLogEnables (FileName : string) ; + + -- String Helper Functions -- This should be in a more general string package + function PathTail (A : string) return string ; + end AlertLogPkg ; --- /////////////////////////////////////////////////////////////////////////// @@ -206,8 +280,8 @@ package body AlertLogPkg is ------------------------------------------------------------ procedure SetJustify ; - procedure ReportAlerts ( Name : string := OSVVM_STRING_INIT_PARM_DETECT ; AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID ; ExternalErrors : AlertCountType := (0,0,0) ) ; procedure ReportAlerts ( Name : string ; AlertCount : AlertCountType ) ; + procedure ReportAlerts ( Name : string := OSVVM_STRING_INIT_PARM_DETECT ; AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID ; ExternalErrors : AlertCountType := (0,0,0) ; ReportAll : boolean := TRUE ) ; procedure ClearAlerts ; impure function GetAlertCount(AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID) return AlertCountType ; impure function GetEnabledAlertCount(AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID) return AlertCountType ; @@ -237,6 +311,7 @@ package body AlertLogPkg is procedure SetAlertLogName(Name : string ) ; procedure SetNumAlertLogIDs (NewNumAlertLogIDs : integer) ; impure function FindAlertLogID(Name : string ) return AlertLogIDType ; + impure function FindAlertLogID(Name : string ; ParentID : AlertLogIDType) return AlertLogIDType ; impure function GetAlertLogID(Name : string ; ParentID : AlertLogIDType) return AlertLogIDType ; procedure Initialize(NewNumAlertLogIDs : integer := MIN_NUM_AL_IDS) ; procedure Deallocate ; @@ -257,6 +332,9 @@ package body AlertLogPkg is impure function IsLoggingEnabled(AlertLogID : AlertLogIDType ; Level : LogType) return boolean ; + procedure ReportLogEnables ; + impure function GetAlertLogName(AlertLogID : AlertLogIDType) return string ; + ------------------------------------------------------------ -- Reporting Accessor procedure SetAlertLogOptions ( @@ -569,30 +647,32 @@ package body AlertLogPkg is ------------------------------------------------------------ AlertLogID : AlertLogIDType ; Prefix : string ; - IndentAmount : integer + IndentAmount : integer ; + ReportAll : boolean ) is variable buf : line ; begin for i in AlertLogID+1 to NumAlertLogIDs loop if AlertLogID = AlertLogPtr(i).ParentID then - -- Write(buf, Prefix & " " & AlertLogPtr(i).Name.all ) ; --- Write(buf, Prefix & " " & justify(AlertLogPtr(i).Name.all, LEFT, ReportJustifyAmountVar - IndentAmount)) ; - Write(buf, Prefix & " " & LeftJustify(AlertLogPtr(i).Name.all, ReportJustifyAmountVar - IndentAmount)) ; - write(buf, " Failures: " & to_string(AlertLogPtr(i).AlertCount(FAILURE) ) ) ; - write(buf, " Errors: " & to_string(AlertLogPtr(i).AlertCount(ERROR) ) ) ; - write(buf, " Warnings: " & to_string(AlertLogPtr(i).AlertCount(WARNING) ) ) ; - WriteLine(buf) ; + if ReportAll or SumAlertCount(AlertLogPtr(i).AlertCount) > 0 then + Write(buf, Prefix & " " & LeftJustify(AlertLogPtr(i).Name.all, ReportJustifyAmountVar - IndentAmount)) ; + write(buf, " Failures: " & to_string(AlertLogPtr(i).AlertCount(FAILURE) ) ) ; + write(buf, " Errors: " & to_string(AlertLogPtr(i).AlertCount(ERROR) ) ) ; + write(buf, " Warnings: " & to_string(AlertLogPtr(i).AlertCount(WARNING) ) ) ; + WriteLine(buf) ; + end if ; PrintChild( AlertLogID => i, Prefix => Prefix & " ", - IndentAmount => IndentAmount + 2 + IndentAmount => IndentAmount + 2, + ReportAll => ReportAll ) ; end if ; end loop ; end procedure PrintChild ; ------------------------------------------------------------ - procedure ReportAlerts ( Name : string := OSVVM_STRING_INIT_PARM_DETECT ; AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID ; ExternalErrors : AlertCountType := (0,0,0) ) is + procedure ReportAlerts ( Name : string := OSVVM_STRING_INIT_PARM_DETECT ; AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID ; ExternalErrors : AlertCountType := (0,0,0) ; ReportAll : boolean := TRUE) is ------------------------------------------------------------ variable NumErrors : integer ; variable NumDisabledErrors : integer ; @@ -627,7 +707,8 @@ package body AlertLogPkg is PrintChild( AlertLogID => AlertLogID, Prefix => ReportPrefix & " ", - IndentAmount => 2 + IndentAmount => 2, + ReportAll => ReportAll ) ; end if ; end procedure ReportAlerts ; @@ -649,11 +730,11 @@ package body AlertLogPkg is ------------------------------------------------------------ begin AlertLogPtr(ALERTLOG_BASE_ID).AlertCount := (0, 0, 0) ; - AlertLogPtr(ALERTLOG_BASE_ID).AlertStopCount := (integer'right, integer'right, 0) ; + AlertLogPtr(ALERTLOG_BASE_ID).AlertStopCount := (FAILURE => 0, ERROR => integer'right, WARNING => integer'right) ; - for i in ALERTLOG_BASE_ID to NumAlertLogIDs loop + for i in ALERTLOG_BASE_ID + 1 to NumAlertLogIDs loop AlertLogPtr(i).AlertCount := (0, 0, 0) ; - AlertLogPtr(ALERTLOG_BASE_ID).AlertStopCount := (integer'right, integer'right, integer'right) ; + AlertLogPtr(i).AlertStopCount := (FAILURE => integer'right, ERROR => integer'right, WARNING => integer'right) ; end loop ; end procedure ClearAlerts ; @@ -723,8 +804,13 @@ package body AlertLogPkg is LogEnabled := (FALSE, FALSE, FALSE) ; AlertStopCount := (FAILURE => 0, ERROR => integer'right, WARNING => integer'right) ; else - AlertEnabled := AlertLogPtr(ALERTLOG_BASE_ID).AlertEnabled ; - LogEnabled := AlertLogPtr(ALERTLOG_BASE_ID).LogEnabled ; + if ParentID < ALERTLOG_BASE_ID then + AlertEnabled := AlertLogPtr(ALERTLOG_BASE_ID).AlertEnabled ; + LogEnabled := AlertLogPtr(ALERTLOG_BASE_ID).LogEnabled ; + else + AlertEnabled := AlertLogPtr(ParentID).AlertEnabled ; + LogEnabled := AlertLogPtr(ParentID).LogEnabled ; + end if ; AlertStopCount := (FAILURE => integer'right, ERROR => integer'right, WARNING => integer'right) ; end if ; AlertLogPtr(AlertLogID) := new AlertLogRecType'( @@ -860,17 +946,35 @@ package body AlertLogPkg is end loop ; return ALERTLOG_ID_NOT_FOUND ; -- not found end function FindAlertLogID ; - + + ------------------------------------------------------------ + impure function FindAlertLogID(Name : string ; ParentID : AlertLogIDType) return AlertLogIDType is + ------------------------------------------------------------ + variable CurParentID : AlertLogIDType ; + begin + for i in ALERTLOG_BASE_ID to NumAlertLogIDs loop + CurParentID := AlertLogPtr(i).ParentID ; + if Name = AlertLogPtr(i).Name.all and + (CurParentID = ParentID or CurParentID = ALERTLOG_ID_NOT_ASSIGNED or ParentID = ALERTLOG_ID_NOT_ASSIGNED) + then + return i ; + end if ; + end loop ; + return ALERTLOG_ID_NOT_FOUND ; -- not found + end function FindAlertLogID ; ------------------------------------------------------------ impure function GetAlertLogID(Name : string ; ParentID : AlertLogIDType) return AlertLogIDType is ------------------------------------------------------------ variable ResultID : AlertLogIDType ; begin - ResultID := FindAlertLogID(Name) ; + ResultID := FindAlertLogID(Name, ParentID) ; if ResultID /= ALERTLOG_ID_NOT_FOUND then -- found it, set ParentID - AlertLogPtr(ResultID).ParentID := ParentID ; + if AlertLogPtr(ResultID).ParentID = ALERTLOG_ID_NOT_ASSIGNED then + AlertLogPtr(ResultID).ParentID := ParentID ; + -- else -- do not update as ParentIDs are either same or input ParentID = ALERTLOG_ID_NOT_ASSIGNED + end if ; else ResultID := GetNextAlertLogID ; NewAlertLogRec(ResultID, Name, ParentID) ; @@ -974,7 +1078,53 @@ package body AlertLogPkg is return AlertLogPtr(AlertLogID).LogEnabled(Level) ; end if ; end function IsLoggingEnabled ; + + ------------------------------------------------------------ + -- PT Local + procedure PrintLogLevels( + ------------------------------------------------------------ + AlertLogID : AlertLogIDType ; + Prefix : string ; + IndentAmount : integer + ) is + variable buf : line ; + begin + write(buf, Prefix & " " & LeftJustify(AlertLogPtr(AlertLogID).Name.all, ReportJustifyAmountVar - IndentAmount)) ; + for i in LogIndexType loop + if AlertLogPtr(AlertLogID).LogEnabled(i) then +-- write(buf, " " & to_string(AlertLogPtr(AlertLogID).LogEnabled(i)) ) ; + write(buf, " " & to_string(i)) ; + end if ; + end loop ; + WriteLine(buf) ; + for i in AlertLogID+1 to NumAlertLogIDs loop + if AlertLogID = AlertLogPtr(i).ParentID then + PrintLogLevels( + AlertLogID => i, + Prefix => Prefix & " ", + IndentAmount => IndentAmount + 2 + ) ; + end if ; + end loop ; + end procedure PrintLogLevels ; + ------------------------------------------------------------ + procedure ReportLogEnables is + ------------------------------------------------------------ + begin + if ReportJustifyAmountVar <= 0 then + SetJustify ; + end if ; + PrintLogLevels(ALERTLOG_BASE_ID, "", 0) ; + end procedure ReportLogEnables ; + + ------------------------------------------------------------ + impure function GetAlertLogName(AlertLogID : AlertLogIDType) return string is + ------------------------------------------------------------ + begin + return AlertLogPtr(AlertLogID).Name.all ; + end function GetAlertLogName ; + ------------------------------------------------------------ procedure SetAlertLogOptions ( ------------------------------------------------------------ @@ -1080,6 +1230,47 @@ package body AlertLogPkg is --- /////////////////////////////////////////////////////////////////////////// --- /////////////////////////////////////////////////////////////////////////// + ------------------------------------------------------------ + -- package local + procedure EmptyOrCommentLine ( + -- Better as Function, but not supported in VHDL functions + ------------------------------------------------------------ + variable L : InOut line ; + variable Empty : out boolean + ) is + variable Valid : boolean ; + variable Char : character ; + constant NBSP : CHARACTER := CHARACTER'val(160); -- space character + begin + Empty := TRUE ; + + -- if line empty (null or 0 length), Empty = TRUE + if L = null or L.all'length = 0 then + return ; + end if ; + + -- if line starts with '#', empty = TRUE + if L.all(1) = '#' then + return ; + end if ; + + -- if line starts with '--', empty = TRUE + if L.all'length >= 2 and L.all(1) = '-' and L.all(2) = '-' then + return ; + end if ; + + -- Otherwise, remove white space and check for end of line + -- Code borrowed from David Bishop, skip_whitespace + WhiteSpLoop : while L /= null and L.all'length > 0 loop + if (L.all(1) = ' ' or L.all(1) = NBSP or L.all(1) = HT) then + read (L, Char, Valid) ; + else + Empty := FALSE ; + exit WhiteSpLoop ; + end if ; + end loop WhiteSpLoop ; + end procedure EmptyOrCommentLine ; + ------------------------------------------------------------ procedure Alert( ------------------------------------------------------------ @@ -1099,7 +1290,7 @@ package body AlertLogPkg is end procedure alert ; ------------------------------------------------------------ - procedure AlertIf( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) is + procedure AlertIf( AlertLogID : AlertLogIDType ; condition : boolean ; Message : string ; Level : AlertType := ERROR ) is ------------------------------------------------------------ begin if condition then @@ -1107,6 +1298,14 @@ package body AlertLogPkg is end if ; end procedure AlertIf ; + ------------------------------------------------------------ + -- deprecated + procedure AlertIf( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + AlertIf( AlertLogID, condition, Message, Level) ; + end procedure AlertIf ; + ------------------------------------------------------------ procedure AlertIf( condition : boolean ; Message : string ; Level : AlertType := ERROR ) is ------------------------------------------------------------ @@ -1118,7 +1317,7 @@ package body AlertLogPkg is ------------------------------------------------------------ -- useful with exit conditions in a loop: exit when alert( not ReadValid, failure, "Read Failed") ; - impure function AlertIf( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) return boolean is + impure function AlertIf( AlertLogID : AlertLogIDType ; condition : boolean ; Message : string ; Level : AlertType := ERROR ) return boolean is ------------------------------------------------------------ begin if condition then @@ -1127,6 +1326,14 @@ package body AlertLogPkg is return condition ; end function AlertIf ; + ------------------------------------------------------------ + -- deprecated + impure function AlertIf( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) return boolean is + ------------------------------------------------------------ + begin + return AlertIf( AlertLogID, condition, Message, Level) ; + end function AlertIf ; + ------------------------------------------------------------ impure function AlertIf( condition : boolean ; Message : string ; Level : AlertType := ERROR ) return boolean is ------------------------------------------------------------ @@ -1138,7 +1345,7 @@ package body AlertLogPkg is end function AlertIf ; ------------------------------------------------------------ - procedure AlertIfNot( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) is + procedure AlertIfNot( AlertLogID : AlertLogIDType ; condition : boolean ; Message : string ; Level : AlertType := ERROR ) is ------------------------------------------------------------ begin if not condition then @@ -1146,6 +1353,14 @@ package body AlertLogPkg is end if ; end procedure AlertIfNot ; + ------------------------------------------------------------ + -- deprecated + procedure AlertIfNot( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + AlertIfNot( AlertLogID, condition, Message, Level) ; + end procedure AlertIfNot ; + ------------------------------------------------------------ procedure AlertIfNot( condition : boolean ; Message : string ; Level : AlertType := ERROR ) is ------------------------------------------------------------ @@ -1157,7 +1372,7 @@ package body AlertLogPkg is ------------------------------------------------------------ -- useful with exit conditions in a loop: exit when alert( not ReadValid, failure, "Read Failed") ; - impure function AlertIfNot( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) return boolean is + impure function AlertIfNot( AlertLogID : AlertLogIDType ; condition : boolean ; Message : string ; Level : AlertType := ERROR ) return boolean is ------------------------------------------------------------ begin if not condition then @@ -1166,6 +1381,14 @@ package body AlertLogPkg is return not condition ; end function AlertIfNot ; + ------------------------------------------------------------ + -- deprecated + impure function AlertIfNot( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) return boolean is + ------------------------------------------------------------ + begin + return AlertIfNot( AlertLogID, condition, Message, Level) ; + end function AlertIfNot ; + ------------------------------------------------------------ impure function AlertIfNot( condition : boolean ; Message : string ; Level : AlertType := ERROR ) return boolean is ------------------------------------------------------------ @@ -1175,7 +1398,366 @@ package body AlertLogPkg is end if ; return not condition ; end function AlertIfNot ; + + -- With AlertLogID + ------------------------------------------------------------ + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : std_logic ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?= R then + AlertLogStruct.Alert(AlertLogID, Message & " L = R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfEqual ; + + ------------------------------------------------------------ + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : std_logic_vector ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?= R then + AlertLogStruct.Alert(AlertLogID, Message & " L = R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfEqual ; + + ------------------------------------------------------------ + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : unsigned ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?= R then + AlertLogStruct.Alert(AlertLogID, Message & " L = R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfEqual ; + + ------------------------------------------------------------ + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : signed ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?= R then + AlertLogStruct.Alert(AlertLogID, Message & " L = R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfEqual ; + + ------------------------------------------------------------ + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : integer ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L = R then + AlertLogStruct.Alert(AlertLogID, Message & " L = R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfEqual ; + + ------------------------------------------------------------ + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : real ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L = R then + AlertLogStruct.Alert(AlertLogID, Message & " L = R, L = " & to_string(L, 4) & " R = " & to_string(R, 4), Level) ; + end if ; + end procedure AlertIfEqual ; + + ------------------------------------------------------------ + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : character ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L = R then + AlertLogStruct.Alert(AlertLogID, Message & " L = R, L = " & L & " R = " & R, Level) ; + end if ; + end procedure AlertIfEqual ; + ------------------------------------------------------------ + procedure AlertIfEqual( AlertLogID : AlertLogIDType ; L, R : string ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L = R then + AlertLogStruct.Alert(AlertLogID, Message & " L = R, L = " & L & " R = " & R, Level) ; + end if ; + end procedure AlertIfEqual ; + + -- Without AlertLogID + ------------------------------------------------------------ + procedure AlertIfEqual( L, R : std_logic ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?= R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L = R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfEqual ; + + ------------------------------------------------------------ + procedure AlertIfEqual( L, R : std_logic_vector ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?= R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L = R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfEqual ; + + ------------------------------------------------------------ + procedure AlertIfEqual( L, R : unsigned ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?= R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L = R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfEqual ; + + ------------------------------------------------------------ + procedure AlertIfEqual( L, R : signed ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?= R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L = R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfEqual ; + + ------------------------------------------------------------ + procedure AlertIfEqual( L, R : integer ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L = R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L = R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfEqual ; + + ------------------------------------------------------------ + procedure AlertIfEqual( L, R : real ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L = R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L = R, L = " & to_string(L, 4) & " R = " & to_string(R, 4), Level) ; + end if ; + end procedure AlertIfEqual ; + + ------------------------------------------------------------ + procedure AlertIfEqual( L, R : character ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L = R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L = R, L = " & L & " R = " & R, Level) ; + end if ; + end procedure AlertIfEqual ; + + ------------------------------------------------------------ + procedure AlertIfEqual( L, R : string ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L = R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L = R, L = " & L & " R = " & R, Level) ; + end if ; + end procedure AlertIfEqual ; + + -- With AlertLogID + ------------------------------------------------------------ + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : std_logic ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?/= R then + AlertLogStruct.Alert(AlertLogID, Message & " L /= R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : std_logic_vector ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?/= R then + AlertLogStruct.Alert(AlertLogID, Message & " L /= R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : unsigned ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?/= R then + AlertLogStruct.Alert(AlertLogID, Message & " L /= R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : signed ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?/= R then + AlertLogStruct.Alert(AlertLogID, Message & " L /= R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : integer ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L /= R then + AlertLogStruct.Alert(AlertLogID, Message & " L /= R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : real ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L /= R then + AlertLogStruct.Alert(AlertLogID, Message & " L /= R, L = " & to_string(L, 4) & " R = " & to_string(R, 4), Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : character ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L /= R then + AlertLogStruct.Alert(AlertLogID, Message & " L /= R, L = " & L & " R = " & R, Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( AlertLogID : AlertLogIDType ; L, R : string ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L /= R then + AlertLogStruct.Alert(AlertLogID, Message & " L /= R, L = " & L & " R = " & R, Level) ; + end if ; + end procedure AlertIfNotEqual ; + + -- Without AlertLogID + ------------------------------------------------------------ + procedure AlertIfNotEqual( L, R : std_logic ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?/= R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L /= R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( L, R : std_logic_vector ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?/= R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L /= R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( L, R : unsigned ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?/= R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L /= R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( L, R : signed ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L ?/= R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L /= R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( L, R : integer ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L /= R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L /= R, L = " & to_string(L) & " R = " & to_string(R), Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( L, R : real ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L /= R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L /= R, L = " & to_string(L, 4) & " R = " & to_string(R, 4), Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( L, R : character ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L /= R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L /= R, L = " & L & " R = " & R, Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfNotEqual( L, R : string ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if L /= R then + AlertLogStruct.Alert(ALERT_DEFAULT_ID, Message & " L /= R, L = " & L & " R = " & R, Level) ; + end if ; + end procedure AlertIfNotEqual ; + + ------------------------------------------------------------ + procedure AlertIfDiff (AlertLogID : AlertLogIDType ; Name1, Name2 : string; Message : string := "" ; Level : AlertType := ERROR ) is + -- Open files and call AlertIfDiff[text, ...] + ------------------------------------------------------------ + file FileID1, FileID2 : text ; + variable status1, status2 : file_open_status ; + begin + file_open(status1, FileID1, Name1, READ_MODE) ; + file_open(status2, FileID2, Name2, READ_MODE) ; + if status1 = OPEN_OK and status2 = OPEN_OK then + AlertIfDiff (AlertLogID, FileID1, FileID2, Message, Level) ; + else + if status1 /= OPEN_OK then + AlertLogStruct.Alert(AlertLogID , Message & " File, " & Name1 & ", did not open", Level) ; + end if ; + if status2 /= OPEN_OK then + AlertLogStruct.Alert(AlertLogID , Message & " File, " & Name2 & ", did not open", Level) ; + end if ; + end if; + end procedure AlertIfDiff ; + + ------------------------------------------------------------ + procedure AlertIfDiff (Name1, Name2 : string; Message : string := "" ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + AlertIfDiff (ALERT_DEFAULT_ID, Name1, Name2, Message, Level) ; + end procedure AlertIfDiff ; + + ------------------------------------------------------------ + procedure AlertIfDiff (AlertLogID : AlertLogIDType ; file File1, File2 : text; Message : string := "" ; Level : AlertType := ERROR ) is + -- Simple diff. + ------------------------------------------------------------ + variable Buf1, Buf2 : line ; + variable File1Done, File2Done : boolean ; + variable LineCount : integer := 0 ; + begin + ReadLoop : loop + File1Done := EndFile(File1) ; + File2Done := EndFile(File2) ; + exit ReadLoop when File1Done or File2Done ; + + ReadLine(File1, Buf1) ; + ReadLine(File2, Buf2) ; + LineCount := LineCount + 1 ; + + if Buf1.all /= Buf2.all then + AlertLogStruct.Alert(AlertLogID , Message & " File miscompare on line " & to_string(LineCount), Level) ; + exit ReadLoop ; + end if ; + end loop ReadLoop ; + if File1Done /= File2Done then + if not File1Done then + AlertLogStruct.Alert(AlertLogID , Message & " File1 longer than File2 " & to_string(LineCount), Level) ; + end if ; + if not File2Done then + AlertLogStruct.Alert(AlertLogID , Message & " File2 longer than File1 " & to_string(LineCount), Level) ; + end if ; + end if; + end procedure AlertIfDiff ; + + ------------------------------------------------------------ + procedure AlertIfDiff (file File1, File2 : text; Message : string := "" ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + AlertIfDiff (ALERT_DEFAULT_ID, File1, File2, Message, Level) ; + end procedure AlertIfDiff ; + ------------------------------------------------------------ procedure SetAlertLogJustify is ------------------------------------------------------------ @@ -1184,19 +1766,26 @@ package body AlertLogPkg is end procedure SetAlertLogJustify ; ------------------------------------------------------------ - procedure ReportAlerts ( Name : string := OSVVM_STRING_INIT_PARM_DETECT ; AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID ; ExternalErrors : AlertCountType := (others => 0) ) is + procedure ReportAlerts ( Name : String ; AlertCount : AlertCountType ) is ------------------------------------------------------------ begin - AlertLogStruct.ReportAlerts(Name, AlertLogID, ExternalErrors) ; + AlertLogStruct.ReportAlerts(Name, AlertCount) ; end procedure ReportAlerts ; ------------------------------------------------------------ - procedure ReportAlerts ( Name : String ; AlertCount : AlertCountType ) is + procedure ReportAlerts ( Name : string := OSVVM_STRING_INIT_PARM_DETECT ; AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID ; ExternalErrors : AlertCountType := (others => 0) ) is ------------------------------------------------------------ begin - AlertLogStruct.ReportAlerts(Name, AlertCount) ; + AlertLogStruct.ReportAlerts(Name, AlertLogID, ExternalErrors, TRUE) ; end procedure ReportAlerts ; + ------------------------------------------------------------ + procedure ReportNonZeroAlerts ( Name : string := OSVVM_STRING_INIT_PARM_DETECT ; AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID ; ExternalErrors : AlertCountType := (others => 0) ) is + ------------------------------------------------------------ + begin + AlertLogStruct.ReportAlerts(Name, AlertLogID, ExternalErrors, FALSE) ; + end procedure ReportNonZeroAlerts ; + ------------------------------------------------------------ procedure ClearAlerts is ------------------------------------------------------------ @@ -1360,6 +1949,13 @@ package body AlertLogPkg is return AlertLogStruct.FindAlertLogID(Name) ; end function FindAlertLogID ; + ------------------------------------------------------------ + impure function FindAlertLogID(Name : string ; ParentID : AlertLogIDType) return AlertLogIDType is + ------------------------------------------------------------ + begin + return AlertLogStruct.FindAlertLogID(Name, ParentID) ; + end function FindAlertLogID ; + ------------------------------------------------------------ impure function GetAlertLogID(Name : string ; ParentID : AlertLogIDType := ALERTLOG_BASE_ID) return AlertLogIDType is ------------------------------------------------------------ @@ -1423,8 +2019,22 @@ package body AlertLogPkg is ------------------------------------------------------------ begin AlertLogStruct.SetLogEnable(AlertLogID, Level, Enable, DescendHierarchy) ; - end procedure SetLogEnable ; + end procedure SetLogEnable ; + ------------------------------------------------------------ + procedure ReportLogEnables is + ------------------------------------------------------------ + begin + AlertLogStruct.ReportLogEnables ; + end ReportLogEnables ; + + ------------------------------------------------------------ + impure function GetAlertLogName(AlertLogID : AlertLogIDType) return string is + ------------------------------------------------------------ + begin + return AlertLogStruct.GetAlertLogName(AlertLogID) ; + end GetAlertLogName ; + ------------------------------------------------------------ procedure SetAlertLogOptions ( ------------------------------------------------------------ @@ -1491,5 +2101,92 @@ package body AlertLogPkg is begin return AlertLogStruct.GetAlertFailName ; end function GetAlertFailName ; + + ------------------------------------------------------------ + function IsLogEnableType (Name : String) return boolean is + ------------------------------------------------------------ + -- type LogType is (ALWAYS, DEBUG, FINAL, INFO) ; -- NEVER + begin + if Name = "DEBUG" then return TRUE ; + elsif Name = "FINAL" then return TRUE ; + elsif Name = "INFO" then return TRUE ; + end if ; + return FALSE ; + end function IsLogEnableType ; + + ------------------------------------------------------------ + procedure ReadLogEnables (file AlertLogInitFile : text) is + -- Preferred Read format + -- Line 1: instance1_name log_enable log_enable log_enable + -- Line 2: instance2_name log_enable log_enable log_enable + -- when reading multiple log_enables on a line, they must be separated by a space + -- + --- Also supports alternate format from Lyle/.... + -- Line 1: instance1_name + -- Line 2: log enable + -- Line 3: instance2_name + -- Line 4: log enable + -- + ------------------------------------------------------------ + type ReadStateType is (GET_ID, GET_ENABLE) ; + variable ReadState : ReadStateType := GET_ID ; + variable buf : line ; + variable Empty : boolean ; + variable Name : string(1 to 80) ; + variable NameLen : integer ; + variable AlertLogID : AlertLogIDType ; + variable NumEnableRead : integer ; + variable LogLevel : LogType ; + begin + ReadState := GET_ID ; + ReadLineLoop : while not EndFile(AlertLogInitFile) loop + ReadLine(AlertLogInitFile, buf) ; + EmptyOrCommentLine(buf, Empty) ; + + ReadNameLoop : while not Empty loop + case ReadState is + when GET_ID => + sread(buf, Name, NameLen) ; + exit ReadNameLoop when NameLen = 0 ; + AlertLogID := GetAlertLogID(Name(1 to NameLen), ALERTLOG_ID_NOT_ASSIGNED) ; + ReadState := GET_ENABLE ; + NumEnableRead := 0 ; + + when GET_ENABLE => + sread(buf, Name, NameLen) ; + exit ReadNameLoop when NameLen = 0 ; + NumEnableRead := NumEnableRead + 1 ; + exit ReadNameLoop when not IsLogEnableType(Name(1 to NameLen)) ; + LogLevel := LogType'value(Name(1 to NameLen)) ; + SetLogEnable(AlertLogID, LogLevel, TRUE) ; + end case ; + end loop ReadNameLoop ; + -- if have read an enable, find next AlertLog Name + if NumEnableRead > 0 then + ReadState := GET_ID ; + end if ; + end loop ReadLineLoop ; + end procedure ReadLogEnables ; + + ------------------------------------------------------------ + procedure ReadLogEnables (FileName : string) is + ------------------------------------------------------------ + file AlertLogInitFile : text open READ_MODE is FileName ; + begin + ReadLogEnables(AlertLogInitFile) ; + end procedure ReadLogEnables ; + + ------------------------------------------------------------ + function PathTail (A : string) return string is + ------------------------------------------------------------ + alias aA : string(1 to A'length) is A ; + begin + for i in aA'length - 1 downto 1 loop + if aA(i) = ':' then + return aA(i+1 to aA'length-1) ; + end if ; + end loop ; + return aA ; + end function PathTail ; end package body AlertLogPkg ; \ No newline at end of file diff --git a/vhdl/osvvm/AlertLogPkg_body_BVUL.vhd b/vhdl/osvvm/AlertLogPkg_body_BVUL.vhd new file mode 100644 index 000000000..38f2bcd53 --- /dev/null +++ b/vhdl/osvvm/AlertLogPkg_body_BVUL.vhd @@ -0,0 +1,491 @@ +-- +-- File Name: AlertLogPkg_body_BVUL.vhd +-- Design Unit Name: AlertLogPkg +-- Revision: STANDARD VERSION, revision 2015.01 +-- +-- Maintainer: Jim Lewis email: jim@synthworks.com +-- Contributor(s): +-- Jim Lewis jim@synthworks.com +-- +-- +-- Description: +-- Alert handling and log filtering (verbosity control) +-- Alert handling provides a method to count failures, errors, and warnings +-- To accumlate counts, a data structure is created in a shared variable +-- It is of type AlertLogStructPType which is defined in AlertLogBasePkg +-- Log filtering provides verbosity control for logs (display or do not display) +-- AlertLogPkg provides a simplified interface to the shared variable +-- +-- +-- Developed for: +-- SynthWorks Design Inc. +-- VHDL Training Classes +-- 11898 SW 128th Ave. Tigard, Or 97223 +-- http://www.SynthWorks.com +-- +-- Revision History: +-- Date Version Description +-- 01/2015: 2015.01 Initial revision +-- +-- +-- Copyright (c) 2015 by SynthWorks Design Inc. All rights reserved. +-- +-- Verbatim copies of this source file may be used and +-- distributed without restriction. +-- +-- This source file is free software; you can redistribute it +-- and/or modify it under the terms of the ARTISTIC License +-- as published by The Perl Foundation; either version 2.0 of +-- the License, or (at your option) any later version. +-- +-- This source is distributed in the hope that it will be +-- useful, but WITHOUT ANY WARRANTY; without even the implied +-- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +-- PURPOSE. See the Artistic License for details. +-- +-- You should have received a copy of the license with this source. +-- If not download it from, +-- http://www.perlfoundation.org/artistic_license_2_0 +-- + + + + +--- /////////////////////////////////////////////////////////////////////////// +--- /////////////////////////////////////////////////////////////////////////// +--- /////////////////////////////////////////////////////////////////////////// + +use work.NamePkg.all ; + +package body AlertLogPkg is + + -- instead of justify(to_upper(to_string())), just look up the upper case, left justified values + type AlertNameType is array(AlertType) of string(1 to 7) ; + constant ALERT_NAME : AlertNameType := (WARNING => "WARNING", ERROR => "ERROR ", FAILURE => "FAILURE") ; -- , NEVER => "NEVER " + type LogNameType is array(LogType) of string(1 to 7) ; + constant LOG_NAME : LogNameType := (DEBUG => "DEBUG ", FINAL => "FINAL ", INFO => "INFO ", ALWAYS => "ALWAYS ") ; -- , NEVER => "NEVER " + + -- Local + constant NUM_PREDEFINED_AL_IDS : AlertLogIDType := 2 ; -- Not including base + + type AlertToSeverityType is array (AlertType) of severity_level ; + constant ALERT_TO_SEVERITY : AlertToSeverityType := (WARNING => WARNING, ERROR => ERROR, FAILURE => FAILURE) ; -- , NEVER => "NEVER " + + + ------------------------------------------------------------ + procedure Alert( + ------------------------------------------------------------ + AlertLogID : AlertLogIDType ; + Message : string ; + Level : AlertType := ERROR + ) is + begin + report Message & "AlertLogID = " & to_string(AlertLogID) severity ALERT_TO_SEVERITY(Level) ; + end procedure alert ; + + ------------------------------------------------------------ + procedure Alert( Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + Alert(ALERT_DEFAULT_ID , Message, Level) ; + end procedure alert ; + + ------------------------------------------------------------ + procedure AlertIf( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if condition then + Alert(AlertLogID , Message, Level) ; + end if ; + end procedure AlertIf ; + + ------------------------------------------------------------ + procedure AlertIf( condition : boolean ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if condition then + Alert(ALERT_DEFAULT_ID , Message, Level) ; + end if ; + end procedure AlertIf ; + + ------------------------------------------------------------ + -- useful with exit conditions in a loop: exit when alert( not ReadValid, failure, "Read Failed") ; + impure function AlertIf( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) return boolean is + ------------------------------------------------------------ + begin + if condition then + Alert(AlertLogID , Message, Level) ; + end if ; + return condition ; + end function AlertIf ; + + ------------------------------------------------------------ + impure function AlertIf( condition : boolean ; Message : string ; Level : AlertType := ERROR ) return boolean is + ------------------------------------------------------------ + begin + if condition then + Alert(ALERT_DEFAULT_ID, Message, Level) ; + end if ; + return condition ; + end function AlertIf ; + + ------------------------------------------------------------ + procedure AlertIfNot( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if not condition then + Alert(AlertLogID, Message, Level) ; + end if ; + end procedure AlertIfNot ; + + ------------------------------------------------------------ + procedure AlertIfNot( condition : boolean ; Message : string ; Level : AlertType := ERROR ) is + ------------------------------------------------------------ + begin + if not condition then + Alert(ALERT_DEFAULT_ID, Message, Level) ; + end if ; + end procedure AlertIfNot ; + + ------------------------------------------------------------ + -- useful with exit conditions in a loop: exit when alert( not ReadValid, failure, "Read Failed") ; + impure function AlertIfNot( condition : boolean ; AlertLogID : AlertLogIDType ; Message : string ; Level : AlertType := ERROR ) return boolean is + ------------------------------------------------------------ + begin + if not condition then + Alert(AlertLogID, Message, Level) ; + end if ; + return not condition ; + end function AlertIfNot ; + + ------------------------------------------------------------ + impure function AlertIfNot( condition : boolean ; Message : string ; Level : AlertType := ERROR ) return boolean is + ------------------------------------------------------------ + begin + if not condition then + Alert(ALERT_DEFAULT_ID, Message, Level) ; + end if ; + return not condition ; + end function AlertIfNot ; + + ------------------------------------------------------------ + procedure SetAlertLogJustify is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure SetAlertLogJustify ; + + ------------------------------------------------------------ + procedure ReportAlerts ( Name : string := OSVVM_STRING_INIT_PARM_DETECT ; AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID ; ExternalErrors : AlertCountType := (others => 0) ) is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure ReportAlerts ; + + ------------------------------------------------------------ + procedure ReportAlerts ( Name : String ; AlertCount : AlertCountType ) is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure ReportAlerts ; + + ------------------------------------------------------------ + procedure ClearAlerts is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure ClearAlerts ; + + ------------------------------------------------------------ + function "+" (L, R : AlertCountType) return AlertCountType is + ------------------------------------------------------------ + variable Result : AlertCountType ; + begin + Result(FAILURE) := L(FAILURE) + R(FAILURE) ; + Result(ERROR) := L(ERROR) + R(ERROR) ; + Result(WARNING) := L(WARNING) + R(WARNING) ; + return Result ; + end function "+" ; + + ------------------------------------------------------------ + function "-" (L, R : AlertCountType) return AlertCountType is + ------------------------------------------------------------ + variable Result : AlertCountType ; + begin + Result(FAILURE) := L(FAILURE) - R(FAILURE) ; + Result(ERROR) := L(ERROR) - R(ERROR) ; + Result(WARNING) := L(WARNING) - R(WARNING) ; + return Result ; + end function "-" ; + + ------------------------------------------------------------ + function "-" (R : AlertCountType) return AlertCountType is + ------------------------------------------------------------ + variable Result : AlertCountType ; + begin + Result(FAILURE) := - R(FAILURE) ; + Result(ERROR) := - R(ERROR) ; + Result(WARNING) := - R(WARNING) ; + return Result ; + end function "-" ; + + ------------------------------------------------------------ + impure function SumAlertCount(AlertCount: AlertCountType) return integer is + ------------------------------------------------------------ + begin + return AlertCount(FAILURE) + AlertCount(ERROR) + AlertCount(WARNING) ; + end function SumAlertCount ; + + ------------------------------------------------------------ + impure function GetAlertCount(AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID) return AlertCountType is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return (0, 0, 0) ; + end function GetAlertCount ; + + ------------------------------------------------------------ + impure function GetAlertCount(AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID) return integer is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return 0 ; + end function GetAlertCount ; + + ------------------------------------------------------------ + impure function GetEnabledAlertCount(AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID) return AlertCountType is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return (0, 0, 0) ; + end function GetEnabledAlertCount ; + + ------------------------------------------------------------ + impure function GetEnabledAlertCount(AlertLogID : AlertLogIDType := ALERTLOG_BASE_ID) return integer is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return 0 ; + end function GetEnabledAlertCount ; + + ------------------------------------------------------------ + impure function GetDisabledAlertCount return AlertCountType is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return (0, 0, 0) ; + end function GetDisabledAlertCount ; + + ------------------------------------------------------------ + impure function GetDisabledAlertCount return integer is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return 0 ; + end function GetDisabledAlertCount ; + + ------------------------------------------------------------ + impure function GetDisabledAlertCount(AlertLogID: AlertLogIDType) return AlertCountType is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return (0, 0, 0) ; + end function GetDisabledAlertCount ; + + ------------------------------------------------------------ + impure function GetDisabledAlertCount(AlertLogID: AlertLogIDType) return integer is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return 0 ; + end function GetDisabledAlertCount ; + + ------------------------------------------------------------ + procedure log( + ------------------------------------------------------------ + AlertLogID : AlertLogIDType ; + Message : string ; + Level : LogType := ALWAYS + ) is + begin + report Message & "AlertLogID = " & to_string(AlertLogID) & " Level = " & to_string(Level) ; + end procedure log ; + + ------------------------------------------------------------ + procedure log( Message : string ; Level : LogType := ALWAYS) is + ------------------------------------------------------------ + begin + Log(LOG_DEFAULT_ID, Message, Level) ; + end procedure log ; + + ------------------------------------------------------------ + impure function IsLoggingEnabled(AlertLogID : AlertLogIDType ; Level : LogType) return boolean is + ------------------------------------------------------------ + begin +-- returns true when log level is enabled +alert("AlertLogPkg: procedure must be implemented", FAILURE) ; +-- return AlertLogStruct.IsLoggingEnabled(AlertLogID, Level) ; + return FALSE ; + end function IsLoggingEnabled ; + + ------------------------------------------------------------ + impure function IsLoggingEnabled(Level : LogType) return boolean is + ------------------------------------------------------------ + begin +-- returns true when log level is enabled +alert("AlertLogPkg: procedure must be implemented", FAILURE) ; +-- return AlertLogStruct.IsLoggingEnabled(LOG_DEFAULT_ID, Level) ; + return FALSE ; + end function IsLoggingEnabled ; + + ------------------------------------------------------------ + procedure SetAlertLogName(Name : string ) is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure SetAlertLogName ; + + ------------------------------------------------------------ + procedure InitializeAlertLogStruct is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure InitializeAlertLogStruct ; + + ------------------------------------------------------------ + procedure DeallocateAlertLogStruct is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure DeallocateAlertLogStruct ; + + ------------------------------------------------------------ + impure function FindAlertLogID(Name : string ) return AlertLogIDType is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return 0 ; + end function FindAlertLogID ; + + ------------------------------------------------------------ + impure function GetAlertLogID(Name : string ; ParentID : AlertLogIDType := ALERTLOG_BASE_ID) return AlertLogIDType is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return 0 ; + end function GetAlertLogID ; + + ------------------------------------------------------------ + procedure SetGlobalAlertEnable (A : boolean := TRUE) is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure SetGlobalAlertEnable ; + + ------------------------------------------------------------ + -- Set using constant. Set before code runs. + impure function SetGlobalAlertEnable (A : boolean := TRUE) return boolean is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return A ; + end function SetGlobalAlertEnable ; + + ------------------------------------------------------------ + procedure SetAlertStopCount(AlertLogID : AlertLogIDType ; Level : AlertType ; Count : integer) is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure SetAlertStopCount ; + + ------------------------------------------------------------ + procedure SetAlertStopCount(Level : AlertType ; Count : integer) is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure SetAlertStopCount ; + + ------------------------------------------------------------ + procedure SetAlertEnable(Level : AlertType ; Enable : boolean) is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure SetAlertEnable ; + + ------------------------------------------------------------ + procedure SetAlertEnable(AlertLogID : AlertLogIDType ; Level : AlertType ; Enable : boolean ; DescendHierarchy : boolean := TRUE) is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure SetAlertEnable ; + + ------------------------------------------------------------ + procedure SetLogEnable(Level : LogType ; Enable : boolean) is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure SetLogEnable ; + + ------------------------------------------------------------ + procedure SetLogEnable(AlertLogID : AlertLogIDType ; Level : LogType ; Enable : boolean ; DescendHierarchy : boolean := TRUE) is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure SetLogEnable ; + + ------------------------------------------------------------ + procedure SetAlertLogOptions ( + ------------------------------------------------------------ + FailOnWarning : AlertLogOptionsType := OPT_INIT_PARM_DETECT ; + FailOnDisabledErrors : AlertLogOptionsType := OPT_INIT_PARM_DETECT ; + ReportHierarchy : AlertLogOptionsType := OPT_INIT_PARM_DETECT ; + WriteAlertLevel : AlertLogOptionsType := OPT_INIT_PARM_DETECT ; + WriteAlertName : AlertLogOptionsType := OPT_INIT_PARM_DETECT ; + WriteAlertTime : AlertLogOptionsType := OPT_INIT_PARM_DETECT ; + WriteLogLevel : AlertLogOptionsType := OPT_INIT_PARM_DETECT ; + WriteLogName : AlertLogOptionsType := OPT_INIT_PARM_DETECT ; + WriteLogTime : AlertLogOptionsType := OPT_INIT_PARM_DETECT ; + AlertPrefix : string := OSVVM_STRING_INIT_PARM_DETECT ; + LogPrefix : string := OSVVM_STRING_INIT_PARM_DETECT ; + ReportPrefix : string := OSVVM_STRING_INIT_PARM_DETECT ; + DoneName : string := OSVVM_STRING_INIT_PARM_DETECT ; + PassName : string := OSVVM_STRING_INIT_PARM_DETECT ; + FailName : string := OSVVM_STRING_INIT_PARM_DETECT + ) is + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + end procedure SetAlertLogOptions ; + + ------------------------------------------------------------ + impure function GetAlertReportPrefix return string is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return "" ; + end function GetAlertReportPrefix ; + + ------------------------------------------------------------ + impure function GetAlertDoneName return string is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return "" ; + end function GetAlertDoneName ; + + ------------------------------------------------------------ + impure function GetAlertPassName return string is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return "" ; + end function GetAlertPassName ; + + ------------------------------------------------------------ + impure function GetAlertFailName return string is + ------------------------------------------------------------ + begin + alert("AlertLogPkg: procedure not implemented for BVUL") ; + return "" ; + end function GetAlertFailName ; + +end package body AlertLogPkg ; \ No newline at end of file diff --git a/vhdl/osvvm/demo/AlertLog_Demo_Global.vhd b/vhdl/osvvm/demo/AlertLog_Demo_Global.vhd index b7afc09f1..4a59cc9af 100644 --- a/vhdl/osvvm/demo/AlertLog_Demo_Global.vhd +++ b/vhdl/osvvm/demo/AlertLog_Demo_Global.vhd @@ -58,8 +58,6 @@ library osvvm ; use osvvm.TranscriptPkg.all ; use osvvm.AlertLogPkg.all ; ---use work.TextUtilPkg.all ; - entity AlertLog_Demo_Global is end AlertLog_Demo_Global ; architecture hierarchy of AlertLog_Demo_Global is diff --git a/vhdl/osvvm/demo/AlertLog_Demo_Hierarchy.vhd b/vhdl/osvvm/demo/AlertLog_Demo_Hierarchy.vhd index 41286ed63..9d62cec17 100644 --- a/vhdl/osvvm/demo/AlertLog_Demo_Hierarchy.vhd +++ b/vhdl/osvvm/demo/AlertLog_Demo_Hierarchy.vhd @@ -61,8 +61,6 @@ library osvvm ; use osvvm.TranscriptPkg.all ; use osvvm.AlertLogPkg.all ; --- use work.TextUtilPkg.all ; - entity AlertLog_Demo_Hierarchy is end AlertLog_Demo_Hierarchy ; architecture hierarchy of AlertLog_Demo_Hierarchy is diff --git a/vhdl/osvvm/demo/Demo_Rand.vhd b/vhdl/osvvm/demo/Demo_Rand.vhd new file mode 100644 index 000000000..edf69018c --- /dev/null +++ b/vhdl/osvvm/demo/Demo_Rand.vhd @@ -0,0 +1,282 @@ +-- +-- File Name: Demo_Rand.vhd +-- Design Unit Name: Demo_Rand +-- Revision: STANDARD VERSION, revision 2015.03 +-- +-- Maintainer: Jim Lewis email: jim@synthworks.com +-- Contributor(s): +-- Jim Lewis email: jim@synthworks.com +-- +-- Description: +-- Demonstration program for RandomPkg.vhd +-- +-- Developed for: +-- SynthWorks Design Inc. +-- VHDL Training Classes +-- 11898 SW 128th Ave. Tigard, Or 97223 +-- http://www.SynthWorks.com +-- +-- Revision History: +-- Date Version Description +-- 02/2009: 1.0 Initial revision and First Public Released Version +-- 03/2009 1.1 Minor tweek to printing +-- 03/2015 2015.03 Updated FAVOR_BIG to FavorBig and FAVOR_SMALL to FavorSmall +-- +-- Copyright (c) 2009 by SynthWorks Design Inc. All rights reserved. +-- +-- Verbatim copies of this source file may be used and +-- distributed without restriction. +-- +-- This source file is free software; you can redistribute it +-- and/or modify it under the terms of the ARTISTIC License +-- as published by The Perl Foundation; either version 2.0 of +-- the License, or (at your option) any later version. +-- +-- This source is distributed in the hope that it will be +-- useful, but WITHOUT ANY WARRANTY; without even the implied +-- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +-- PURPOSE. See the Artistic License for details. +-- +-- You should have received a copy of the license with this source. +-- If not download it from, +-- http://www.perlfoundation.org/artistic_license_2_0 +-- +library IEEE ; + use ieee.std_logic_1164.all ; + use std.textio.all ; + use ieee.std_logic_textio.all ; + +Package TestSupportPkg is + type integer_array is array (integer range <>) of integer ; + + procedure TestInit (TestName : string ; variable Results : inout integer_array ) ; + procedure TestInit (TestName : string ; variable Results : inout integer_array ; variable Count : inout natural ) ; + procedure AccumulateResults (IntVal : integer ; Num : integer ; variable Results : inout integer_array) ; + procedure PrintResults (Results : integer_array) ; + +end TestSupportPkg ; +Package body TestSupportPkg is + procedure TestInit (TestName : string ; variable Results : inout integer_array ) is + begin + write(OUTPUT, LF&LF & TestName & LF ) ; + Results := (Results'range => 0) ; + write(OUTPUT, "1st 20 values = ") ; + end ; + + procedure TestInit (TestName : string ; variable Results : inout integer_array ; variable Count : inout natural ) is + begin + Count := Count + 1 ; + write(OUTPUT, LF&LF & "Test " & integer'image(Count) & ": " & TestName & LF ) ; + Results := (Results'range => 0) ; + write(OUTPUT, "1st 20 values = ") ; + end ; + + procedure AccumulateResults (IntVal : integer ; Num : integer ; variable Results : inout integer_array) is + begin + Results(IntVal) :=Results(IntVal) + 1 ; + if Num < 20 then + write(OUTPUT, integer'image(IntVal) & " ") ; + end if ; + end ; + + procedure PrintResults (Results : integer_array) is + begin + write(OUTPUT, LF & "Accumulated Results. Expecting approximately 1000 of each per weight." & LF) ; + for i in Results'range loop + if Results(i) > 0 then + write(OUTPUT, "** ") ; + write(OUTPUT, integer'image(i) & " : " & integer'image(Results(i)) & LF) ; + end if ; + end loop ; + end ; +end TestSupportPkg ; + +library IEEE ; + use ieee.std_logic_1164.all ; + use ieee.numeric_std.all ; + + use std.textio.all ; + use ieee.std_logic_textio.all ; + +library SynthWorks ; + use SynthWorks.RandomBasePkg.all ; + use SynthWorks.RandomPkg.all ; + +use work.TestSupportPkg.all ; + +entity Demo_Rand is +end Demo_Rand ; +architecture test of Demo_Rand is +begin + + + RandomGenProc : process + variable RV : RandomPType ; + + variable DataInt : integer ; + variable DataSlv : std_logic_vector(3 downto 0) ; + variable DataUnsigned : unsigned(3 downto 0) ; + variable DataSigned : signed(4 downto 0) ; + + -- Statistics + variable TestNum : integer := 0 ; + variable Results : integer_array (-100 to 100) := (others => 0) ; + variable writebuf : line ; + + begin + + RV.InitSeed(RV'instance_name) ; -- Initialize Seed. Typically done one time + + +write(OUTPUT, LF&LF& "Random Range Tests") ; + TestInit("RandInt(0, 7) Range 0-7", Results, TestNum) ; -- 1 + for i in 1 to 8000 loop -- Loop 1000x per value + DataInt := RV.RandInt(0, 7); + AccumulateResults(DataInt, i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("RandInt(1, 13, (3, 7, 11) Range 1-13, Exclude 3,7,11", Results, TestNum) ; -- 2 + for i in 1 to 10000 loop -- Loop 1000x per value + DataInt := RV.RandInt(1, 13, (3, 7, 11)); + AccumulateResults(DataInt, i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("RandSlv(0, 4, 4) Range 0-4", Results, TestNum) ; -- 3 + for i in 1 to 5000 loop -- Loop 1000x per value + DataSlv := RV.RandSlv(0, 4, 4); + AccumulateResults(to_integer(unsigned(DataSlv)), i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("RandUnsigned(4, 9, (0 => 7), 4) Range 4-9, Exclude 7", Results, TestNum) ; -- 4 + for i in 1 to 5000 loop -- Loop 1000x per value + DataUnsigned := RV.RandUnsigned(4, 9, (0 => 7), 4); -- only 1 exclude element + AccumulateResults(to_integer(DataUnsigned), i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("RandSigned(-4, 3, 5)", Results, TestNum) ; -- 5 + for i in 1 to 8000 loop -- Loop 1000x per value + DataSigned := RV.RandSigned(-4, 3, 5); + AccumulateResults(to_integer(DataSigned), i, Results) ; + end loop ; + PrintResults (Results) ; + + +write(OUTPUT, LF&LF& "Random Set Tests") ; + TestNum := 0 ; + TestInit("RandInt( (-50, -22, -14, -7, -2, 0, 3, 7, 9, 27, 49, 89, 99)). Set: (-50, -22, -14, -7, -2, 0, 3, 7, 9, 27, 49, 89, 99)", Results, TestNum) ; -- 1 + for i in 1 to 13000 loop -- Loop 1000x per value + DataInt := RV.RandInt( (-50, -22, -14, -7, -2, 0, 3, 7, 9, 27, 49, 89, 99)); + AccumulateResults(DataInt, i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("RandInt( (-5, -1, 3, 7, 11), (-1, 7) ) Set (-5, -1, 3, 7, 11), Exclude (-1, 7)", Results, TestNum) ; -- 2 + for i in 1 to 3000 loop -- Loop 1000x per value + DataInt := RV.RandInt( (-5, -1, 3, 7, 11), (-1, 7) ); + AccumulateResults(DataInt, i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("RandSlv( (1, 2, 3, 7, 11), 4)", Results, TestNum) ; -- 3 + for i in 1 to 5000 loop -- Loop 1000x per value + DataSlv := RV.RandSlv( (1, 2, 3, 7, 11), 4); + AccumulateResults(to_integer(unsigned(DataSlv)), i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("RandUnsigned( (1, 2, 3, 11), (1 => 3), 4)", Results, TestNum) ; -- 4 + for i in 1 to 3000 loop -- Loop 1000x per value + DataUnsigned := RV.RandUnsigned( (1, 2, 3, 11), (1 => 3), 4); -- 1 element middle + AccumulateResults(to_integer(DataUnsigned), i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("RandSigned( (-5, -1, 3, 7, 11), 5)", Results, TestNum) ; -- 5 + for i in 1 to 5000 loop -- Loop 1000x per value + DataSigned := RV.RandSigned( (-5, -1, 3, 7, 11), 5); + AccumulateResults(to_integer(DataSigned), i, Results) ; + end loop ; + PrintResults (Results) ; + + +write(OUTPUT, LF&LF& "Weighted Distribution Tests") ; + TestNum := 0 ; + -- There is also DistSlv, DistUnsigned, DistSigned + TestInit("RV.DistInt( (7, 2, 1) ) ", Results, TestNum) ; + for i in 1 to 10000 loop -- Loop 1000x per distribute weight + DataInt := RV.DistInt( (7, 2, 1) ) ; + AccumulateResults(DataInt, i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("RV.DistInt( (0, 2, 0, 4, 0, 6, 0, 8, 0, 10), (3,9) );", Results, TestNum) ; + for i in 1 to 16000 loop -- Loop 1000x per distribute weight + DataInt := RV.DistInt( (0, 2, 0, 4, 0, 6, 0, 8, 0, 10), (3,9) ) ; + AccumulateResults(DataInt, i, Results) ; + end loop ; + PrintResults (Results) ; + + +write(OUTPUT, LF&LF& "Weighted Distribution with Value") ; + TestNum := 0 ; + -- There is also DistValSlv, DistValUnsigned, DistValSigned + TestInit("RV.DistValInt( ((1, 7), (3, 2), (5, 1)) ) ", Results, TestNum) ; + for i in 1 to 10000 loop -- Loop 1000x per distribute weight + DataInt := RV.DistValInt( ((1, 7), (3, 2), (5, 1)) ) ; + AccumulateResults(DataInt, i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("RV.DistValInt( ((1, 7), (3, 2), (5, 1)), (1=>3) ) Exclude 3", Results, TestNum) ; + for i in 1 to 8000 loop -- Loop 1000x per distribute weight + DataInt := RV.DistValInt( ((1, 7), (3, 2), (5, 1)), (1=>3) ) ; + AccumulateResults(DataInt, i, Results) ; + end loop ; + PrintResults (Results) ; + +write(OUTPUT, LF&LF& "Mode Direct Tests") ; + -- There are also real return values + TestNum := 0 ; + TestInit("Integer Uniform: Integer Range (0 to 9)", Results, TestNum) ; + for i in 1 to 10000 loop -- Loop 1000x per value + DataInt := RV.uniform(0,9); + AccumulateResults(DataInt, i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("Integer FavorSmall: Integer Range (0 to 9)", Results, TestNum) ; + for i in 1 to 10000 loop -- Loop 1000x per value + DataInt := RV.FavorSmall(0,9); + AccumulateResults(DataInt, i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("Integer FavorBig: Integer Range (0 to 9)", Results, TestNum) ; + for i in 1 to 10000 loop -- Loop 1000x per value + DataInt := RV.FavorBig(0,9); + AccumulateResults(DataInt, i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("Integer NORMAL, 50.0, 5.0 range -100 to 100", Results, TestNum) ; + for i in 1 to 100000 loop -- Loop 1000x per value + DataInt := RV.Normal(50.0, 5.0, -100, 100); + AccumulateResults(DataInt, i, Results) ; + end loop ; + PrintResults (Results) ; + + TestInit("Integer Poisson, 10.0, -100, 100", Results, TestNum) ; + for i in 1 to 10000 loop -- Loop 1000x per value + DataInt := RV.Poisson(10.0, -100, 100) ; + AccumulateResults(DataInt, i, Results) ; + end loop ; + PrintResults (Results) ; + + wait ; + end process RandomGenProc ; + +end test ; \ No newline at end of file diff --git a/vhdl/osvvm/doc/AlertLogPkg_interface_guide.pdf b/vhdl/osvvm/doc/AlertLogPkg_interface_guide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7eaec9d0389692d8375f30c4feb1bee260ea0390 GIT binary patch literal 45613 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 literal 0 HcmV?d00001 diff --git a/vhdl/osvvm/doc/AlertLogPkg_user_guide.pdf b/vhdl/osvvm/doc/AlertLogPkg_user_guide.pdf index 380cc2d445b9c68450ddcbfc8cd2e26498d116a5..9a7c59fa34502c7440f053ea0c450bd30c7aa01f 100644 GIT binary patch literal 91693 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

HA4|-MyTqDBk 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%0D|ea`2Dq`S2?W+{FIK9>BY@=`d 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�^SA(JgNDj}t^N(ZrKGKSRS7TkJ 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 diff --git a/vhdl/osvvm/doc/osvvm_release_notes.pdf b/vhdl/osvvm/doc/osvvm_release_notes.pdf index 8611de3c86bbf93de5cf1ae44356b63fa8c44fb7..c96ac129e252372df6079dc0ba0e2eee5c42d4fe 100644 GIT binary patch delta 52902 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 CZZhKl delta 47926 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 z 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 diff --git a/vunit/ui.py b/vunit/ui.py index 9453e2939..d29230d91 100644 --- a/vunit/ui.py +++ b/vunit/ui.py @@ -485,8 +485,9 @@ def add_osvvm(self, library_name="osvvm"): else: library = self.library(library_name) - library.add_source_files(join(self._builtin_vhdl_path, "osvvm", "*.vhd"), - preprocessors=[]) # No pre-processing at all + for f in glob(join(self._builtin_vhdl_path, "osvvm", "*.vhd")): + if basename(f) != 'AlertLogPkg_body_BVUL.vhd': + library.add_source_files(f, preprocessors=[]) class LibraryFacade: """