From 859accafb309f86fb05c91f3ea3604e0415946b8 Mon Sep 17 00:00:00 2001 From: Wade Fife Date: Thu, 14 May 2020 09:08:21 -0500 Subject: [PATCH] fpga: sim: Add packet_info_equal function Original-commit: 902c6f4488d5a75cf7a83cc1dc998d42703b0929 --- sim/rfnoc/PkgChdrData.sv | 2 +- sim/rfnoc/PkgChdrIfaceBfm.sv | 13 +++++++++++++ sim/rfnoc/PkgRfnocBlockCtrlBfm.sv | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/sim/rfnoc/PkgChdrData.sv b/sim/rfnoc/PkgChdrData.sv index a849346..f5ff0ed 100644 --- a/sim/rfnoc/PkgChdrData.sv +++ b/sim/rfnoc/PkgChdrData.sv @@ -150,6 +150,6 @@ package PkgChdrData; return 1; endfunction : item_equal - endclass + endclass : ChdrData endpackage : PkgChdrData diff --git a/sim/rfnoc/PkgChdrIfaceBfm.sv b/sim/rfnoc/PkgChdrIfaceBfm.sv index 6d6dd9a..7258882 100644 --- a/sim/rfnoc/PkgChdrIfaceBfm.sv +++ b/sim/rfnoc/PkgChdrIfaceBfm.sv @@ -24,6 +24,19 @@ package PkgChdrIfaceBfm; } packet_info_t; + // Return 1 if the packet info is equivalent, 0 otherwise. + function automatic bit packet_info_equal(const ref packet_info_t a, b); + // If there's no time then the timestamp value doesn't matter, so make them + // the same for comparison. + if (!a.has_time) begin + packet_info_t a_copy = a; + a_copy.timestamp = b.timestamp; + return a_copy == b; + end + return a == b; + endfunction : packet_info_equal + + class ChdrIfaceBfm #(CHDR_W = 64, ITEM_W = 32) extends ChdrBfm #(CHDR_W); // Redefine the ChdrPacket_t and chdr_word_t data types from ChdrBfm due to diff --git a/sim/rfnoc/PkgRfnocBlockCtrlBfm.sv b/sim/rfnoc/PkgRfnocBlockCtrlBfm.sv index 4c8cc2f..2e1b6a6 100644 --- a/sim/rfnoc/PkgRfnocBlockCtrlBfm.sv +++ b/sim/rfnoc/PkgRfnocBlockCtrlBfm.sv @@ -86,6 +86,7 @@ package PkgRfnocBlockCtrlBfm; export PkgCtrlIfaceBfm::CtrlIfaceBfm; export PkgChdrIfaceBfm::ChdrIfaceBfm; export PkgChdrIfaceBfm::packet_info_t; + export PkgChdrIfaceBfm::packet_info_equal; //---------------------------------------------------------------------------