-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WaitForLevel with Timeout, Add Signed Scoreboard #62
Conversation
Similar to integer based scoreboard but better for very large integers as integer is bounded to 32 bit
ScoreboardPkg_signed.vhd
Outdated
-- File Name: ScoreBoardPkg_int.vhd | ||
-- Design Unit Name: ScoreBoardPkg_int | ||
-- Revision: STANDARD VERSION | ||
-- | ||
-- Maintainer: Jim Lewis email: jim@synthworks.com | ||
-- Contributor(s): | ||
-- Jim Lewis email: jim@synthworks.com | ||
-- | ||
-- | ||
-- Description: | ||
-- Instance of Generic Package ScoreboardGenericPkg for integer |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please update the file header accordingly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TbUtilPkg.vhd
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TbUtilPkg.vhd
is overwritten by an older version (4 years old) of the file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like if I merge this it will remove the newer functionality from TbUtilPkg.vhd. How does this get handled?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@klangthomas needs to either rebase his branch onto the latest main branch or merge the latest main branch into his branch. His modifications are 4 years old, and the proposed branch needs to be updated to the latest OSVVM release.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I messed up, sorry. Will fix that maybe today. As I will no longer have access to this account by friday, I hope can manage this to merge correctly.
Similar to integer based scoreboard but better for very large integers as integer is bounded to 32 bit
Messed up my commits here. Sorry about that! |
@Paebbels Looks good to me. Concur? |
end if ; | ||
end procedure WaitForLevelTimeout ; | ||
|
||
procedure WaitForLevelTimeout ( signal A : in std_logic ; constant TimeOut : time; variable TimeOutReached : out boolean ; constant Polarity : std_logic := '1') is |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wouldn't call the parameter polarity
, because an std_logic
is not just 0
and 1
. Especially as it checks for not 0
or not 1
, which are 8 other values. The procedure is called WaitForLevel
, so we should hand over the expected level. The existing WaitForLevel
has already such a parameter.
I would prefer an overload with an additional timeout
and timeoutReached
parameter. WaitForBarrier
is also overloaded.
I have updated your WaitForLevelTimeout as follows: procedure WaitForLevel ( signal A : in boolean; constant TimeOut : time);
procedure WaitForLevel ( signal A : in std_logic; constant TimeOut : time; constant Polarity : std_logic := '1');
procedure WaitForLevel ( signal A : in boolean; constant TimeOut : time; variable TimeOutReached : out boolean);
procedure WaitForLevel ( signal A : in std_logic; constant TimeOut : time; variable TimeOutReached : out boolean; constant Polarity : std_logic := '1');
alias WaitForLevelTimeOut is WaitForLevel [boolean, time, boolean] ;
alias WaitForLevelTimeOut is WaitForLevel [std_logic, time, boolean, std_logic] ; The aliases make it so your original naming will still work. |
Came across an issue while writing a test for a FIFO. Testbench blocks because the FIFO is empty and I wait for a data available level.
Signed Scoreboard is implicitly available in Scoreboard_slv but we dont have to type cast ;)