diff -urN ghdl/libraries/ieee/upf-body.vhdl ghdl/libraries/ieee/upf-body.vhdl
--- ghdl/libraries/ieee/upf-body.vhdl 1970-01-01 01:00:00.000000000 +0100
+++ ghdl/libraries/ieee/upf-body.vhdl 2017-09-26 13:05:27.165742285 +0200
@@ -0,0 +1,26 @@
+package body upf is
+
+ function supply_on (
+ constant supply_name : string;
+ constant voltage : real)
+ return boolean is
+ begin
+ return true;
+ end supply_on;
+
+ function supply_partial_on (
+ constant supply_name : string;
+ constant voltage : real)
+ return boolean is
+ begin
+ return true;
+ end supply_partial_on;
+
+ function supply_off (
+ constant supply_name : string)
+ return boolean is
+ begin
+ return true;
+ end supply_off;
+
+end upf;
diff -urN ghdl/libraries/ieee/upf.vhdl ghdl/libraries/ieee/upf.vhdl
--- ghdl/libraries/ieee/upf.vhdl 1970-01-01 01:00:00.000000000 +0100
+++ ghdl/libraries/ieee/upf.vhdl 2017-09-26 13:05:22.898825535 +0200
@@ -0,0 +1,19 @@
+-- modelled according to IEEE Std 1801-2015, 11.2
+
+package upf is
+
+ function supply_on (
+ constant supply_name : string;
+ constant voltage : real)
+ return boolean;
+
+ function supply_partial_on (
+ constant supply_name : string;
+ constant voltage : real)
+ return boolean;
+
+ function supply_off (
+ constant supply_name : string)
+ return boolean;
+
+end upf;
diff -urN ghdl/libraries/ieee2008/upf-body.vhdl ghdl/libraries/ieee2008/upf-body.vhdl
--- ghdl/libraries/ieee2008/upf-body.vhdl 1970-01-01 01:00:00.000000000 +0100
+++ ghdl/libraries/ieee2008/upf-body.vhdl 2017-09-26 12:34:23.680179016 +0200
@@ -0,0 +1,26 @@
+package body upf is
+
+ function supply_on (
+ constant supply_name : string;
+ constant voltage : real)
+ return boolean is
+ begin
+ return true;
+ end supply_on;
+
+ function supply_partial_on (
+ constant supply_name : string;
+ constant voltage : real)
+ return boolean is
+ begin
+ return true;
+ end supply_partial_on;
+
+ function supply_off (
+ constant supply_name : string)
+ return boolean is
+ begin
+ return true;
+ end supply_off;
+
+end package body upf;
diff -urN ghdl/libraries/ieee2008/upf.vhdl ghdl/libraries/ieee2008/upf.vhdl
--- ghdl/libraries/ieee2008/upf.vhdl 1970-01-01 01:00:00.000000000 +0100
+++ ghdl/libraries/ieee2008/upf.vhdl 2017-09-26 12:34:23.680179016 +0200
@@ -0,0 +1,19 @@
+-- modelled according to IEEE Std 1801-2015, 11.2
+
+package upf is
+
+ function supply_on (
+ constant supply_name : string;
+ constant voltage : real)
+ return boolean;
+
+ function supply_partial_on (
+ constant supply_name : string;
+ constant voltage : real)
+ return boolean;
+
+ function supply_off (
+ constant supply_name : string)
+ return boolean;
+
+end package upf;
diff -urN ghdl/libraries/Makefile.inc ghdl/libraries/Makefile.inc
--- ghdl/libraries/Makefile.inc 2017-09-26 13:06:15.300803119 +0200
+++ ghdl/libraries/Makefile.inc 2017-09-26 12:36:18.666917429 +0200
@@ -54,7 +54,8 @@
ifeq ($(enable_openieee),false)
IEEE_SRCS := ieee/std_logic_1164.vhdl ieee/std_logic_1164_body.vhdl \
ieee/numeric_bit.vhdl ieee/numeric_bit-body.vhdl \
- ieee/numeric_std.vhdl ieee/numeric_std-body.vhdl
+ ieee/numeric_std.vhdl ieee/numeric_std-body.vhdl \
+ ieee/upf.vhdl ieee/upf-body.vhdl
MATH_SRCS := ieee/math_real.vhdl ieee/math_real-body.vhdl \
ieee/math_complex.vhdl ieee/math_complex-body.vhdl
VITAL95_BSRCS := vital95/vital_timing.vhdl vital95/vital_timing_body.vhdl \
@@ -76,7 +77,8 @@
ieee2008/fixed_pkg.vhdl \
ieee2008/float_generic_pkg.vhdl ieee2008/float_generic_pkg-body.vhdl \
ieee2008/float_pkg.vhdl \
- ieee2008/ieee_bit_context.vhdl ieee2008/ieee_std_context.vhdl
+ ieee2008/ieee_bit_context.vhdl ieee2008/ieee_std_context.vhdl \
+ ieee2008/upf.vhdl ieee2008/upf-body.vhdl
else
IEEE_SRCS := openieee/std_logic_1164.vhdl openieee/std_logic_1164-body.vhdl \
openieee/numeric_bit.vhdl openieee/numeric_bit-body.vhdl \