summaryrefslogtreecommitdiff
path: root/src/systemc/ext/dt/bit
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/ext/dt/bit')
-rw-r--r--src/systemc/ext/dt/bit/_bit.hh1
-rw-r--r--src/systemc/ext/dt/bit/_using.hh14
-rw-r--r--src/systemc/ext/dt/bit/messages.hh52
-rw-r--r--src/systemc/ext/dt/bit/sc_bv_base.hh3
-rw-r--r--src/systemc/ext/dt/bit/sc_proxy.hh11
5 files changed, 75 insertions, 6 deletions
diff --git a/src/systemc/ext/dt/bit/_bit.hh b/src/systemc/ext/dt/bit/_bit.hh
index b549e2828..503c44df5 100644
--- a/src/systemc/ext/dt/bit/_bit.hh
+++ b/src/systemc/ext/dt/bit/_bit.hh
@@ -30,6 +30,7 @@
#ifndef __SYSTEMC_EXT_DT_BIT__BIT_HH__
#define __SYSTEMC_EXT_DT_BIT__BIT_HH__
+#include "messages.hh"
#include "sc_bit.hh"
#include "sc_bit_proxies.hh"
#include "sc_bv.hh"
diff --git a/src/systemc/ext/dt/bit/_using.hh b/src/systemc/ext/dt/bit/_using.hh
index 8bc747957..4d7251a18 100644
--- a/src/systemc/ext/dt/bit/_using.hh
+++ b/src/systemc/ext/dt/bit/_using.hh
@@ -42,4 +42,18 @@ using sc_dt::sc_bv_base;
using sc_dt::sc_lv;
using sc_dt::sc_lv_base;
+using sc_core::SC_ID_LENGTH_MISMATCH_;
+using sc_core::SC_ID_INCOMPATIBLE_TYPES_;
+using sc_core::SC_ID_CANNOT_CONVERT_;
+using sc_core::SC_ID_INCOMPATIBLE_VECTORS_;
+using sc_core::SC_ID_VALUE_NOT_VALID_;
+using sc_core::SC_ID_ZERO_LENGTH_;
+using sc_core::SC_ID_VECTOR_CONTAINS_LOGIC_VALUE_;
+using sc_core::SC_ID_SC_BV_CANNOT_CONTAIN_X_AND_Z_;
+using sc_core::SC_ID_VECTOR_TOO_LONG_;
+using sc_core::SC_ID_VECTOR_TOO_SHORT_;
+using sc_core::SC_ID_WRONG_VALUE_;
+using sc_core::SC_ID_LOGIC_Z_TO_BOOL_;
+using sc_core::SC_ID_LOGIC_X_TO_BOOL_;
+
#endif //__SYSTEMC_EXT_DT_BIT__USING_HH__
diff --git a/src/systemc/ext/dt/bit/messages.hh b/src/systemc/ext/dt/bit/messages.hh
new file mode 100644
index 000000000..4a8fafa49
--- /dev/null
+++ b/src/systemc/ext/dt/bit/messages.hh
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2018 Google, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Gabe Black
+ */
+
+#ifndef __SYSTEMC_EXT_DT_BIT_MESSAGES_HH__
+#define __SYSTEMC_EXT_DT_BIT_MESSAGES_HH__
+
+namespace sc_core
+{
+
+extern const char SC_ID_LENGTH_MISMATCH_[];
+extern const char SC_ID_INCOMPATIBLE_TYPES_[];
+extern const char SC_ID_CANNOT_CONVERT_[];
+extern const char SC_ID_INCOMPATIBLE_VECTORS_[];
+extern const char SC_ID_VALUE_NOT_VALID_[];
+extern const char SC_ID_ZERO_LENGTH_[];
+extern const char SC_ID_VECTOR_CONTAINS_LOGIC_VALUE_[];
+extern const char SC_ID_SC_BV_CANNOT_CONTAIN_X_AND_Z_[];
+extern const char SC_ID_VECTOR_TOO_LONG_[];
+extern const char SC_ID_VECTOR_TOO_SHORT_[];
+extern const char SC_ID_WRONG_VALUE_[];
+extern const char SC_ID_LOGIC_Z_TO_BOOL_[];
+extern const char SC_ID_LOGIC_X_TO_BOOL_[];
+
+} // namespace sc_core
+
+#endif // __SYSTEMC_EXT_DT_BIT_MESSAGES_HH__
diff --git a/src/systemc/ext/dt/bit/sc_bv_base.hh b/src/systemc/ext/dt/bit/sc_bv_base.hh
index ffb3c5a03..fdc234db3 100644
--- a/src/systemc/ext/dt/bit/sc_bv_base.hh
+++ b/src/systemc/ext/dt/bit/sc_bv_base.hh
@@ -54,6 +54,7 @@
#define __SYSTEMC_EXT_DT_BIT_SC_BV_BASE_HH__
#include "../int/sc_length_param.hh"
+#include "messages.hh"
#include "sc_bit_proxies.hh"
#include "sc_proxy.hh"
@@ -264,7 +265,7 @@ inline void
sc_bv_base::set_cword(int /*i*/, sc_digit w)
{
if (w) {
- SC_REPORT_WARNING("(W207) sc_bv cannot contain values X and Z", 0);
+ SC_REPORT_WARNING(sc_core::SC_ID_SC_BV_CANNOT_CONTAIN_X_AND_Z_, 0);
}
}
diff --git a/src/systemc/ext/dt/bit/sc_proxy.hh b/src/systemc/ext/dt/bit/sc_proxy.hh
index 12e10725a..c20813926 100644
--- a/src/systemc/ext/dt/bit/sc_proxy.hh
+++ b/src/systemc/ext/dt/bit/sc_proxy.hh
@@ -68,6 +68,7 @@
#include "../int/sc_signed.hh"
#include "../int/sc_uint_base.hh"
#include "../int/sc_unsigned.hh"
+#include "messages.hh"
#include "sc_bit.hh"
#include "sc_logic.hh"
@@ -1261,7 +1262,7 @@ sc_proxy<X>::to_anything_unsigned() const
const X &x = back_cast();
int len = x.length();
if (x.get_cword(0) != SC_DIGIT_ZERO) {
- SC_REPORT_WARNING("vector contains 4-value logic", 0);
+ SC_REPORT_WARNING(sc_core::SC_ID_VECTOR_CONTAINS_LOGIC_VALUE_, 0);
}
sc_digit w = x.get_word(0);
if (len >= SC_DIGIT_SIZE) {
@@ -1279,12 +1280,12 @@ sc_proxy<X>::to_uint64() const
const X &x = back_cast();
int len = x.length();
if (x.get_cword(0) != SC_DIGIT_ZERO) {
- SC_REPORT_WARNING("vector contains 4-value logic", 0);
+ SC_REPORT_WARNING(sc_core::SC_ID_VECTOR_CONTAINS_LOGIC_VALUE_, 0);
}
uint64 w = x.get_word(0);
if (len > SC_DIGIT_SIZE) {
if (x.get_cword(1) != SC_DIGIT_ZERO) {
- SC_REPORT_WARNING("vector contains 4-value logic", 0);
+ SC_REPORT_WARNING(sc_core::SC_ID_VECTOR_CONTAINS_LOGIC_VALUE_, 0);
}
uint64 w1 = x.get_word(1);
w = w | (w1 << SC_DIGIT_SIZE);
@@ -1306,11 +1307,11 @@ sc_proxy<X>::to_anything_signed() const
if (len > SC_DIGIT_SIZE) {
if (x.get_cword(1) != SC_DIGIT_ZERO)
- SC_REPORT_WARNING("vector contains 4-value logic", 0);
+ SC_REPORT_WARNING(sc_core::SC_ID_VECTOR_CONTAINS_LOGIC_VALUE_, 0);
w = x.get_word(1);
}
if (x.get_cword(0) != SC_DIGIT_ZERO)
- SC_REPORT_WARNING("vector contains 4-value logic", 0);
+ SC_REPORT_WARNING(sc_core::SC_ID_VECTOR_CONTAINS_LOGIC_VALUE_, 0);
w = (w << SC_DIGIT_SIZE) | x.get_word(0);
if (len >= 64) {
return w;