aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/gna/issue1687/pkg.vhdl
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2021-03-18 18:39:22 +0100
committerTristan Gingold <tgingold@free.fr>2021-03-18 18:39:22 +0100
commit9a80de30f485c9af8aaeb9eeb9ec986c7fffa6f8 (patch)
tree775c6e3fdb50e19a714e34a72f64bcd7c6302d6f /testsuite/gna/issue1687/pkg.vhdl
parentc4256d931efe445aab9153486c9e5082d23056eb (diff)
downloadghdl-9a80de30f485c9af8aaeb9eeb9ec986c7fffa6f8.tar.gz
ghdl-9a80de30f485c9af8aaeb9eeb9ec986c7fffa6f8.tar.bz2
ghdl-9a80de30f485c9af8aaeb9eeb9ec986c7fffa6f8.zip
testsuite/gna: add test for #1687
Diffstat (limited to 'testsuite/gna/issue1687/pkg.vhdl')
-rw-r--r--testsuite/gna/issue1687/pkg.vhdl17
1 files changed, 17 insertions, 0 deletions
diff --git a/testsuite/gna/issue1687/pkg.vhdl b/testsuite/gna/issue1687/pkg.vhdl
new file mode 100644
index 000000000..0e2b87c00
--- /dev/null
+++ b/testsuite/gna/issue1687/pkg.vhdl
@@ -0,0 +1,17 @@
+package pack_RC_Add_n_F is
+ function RC_Add_n( A, B :bit_vector; Cin : bit) return bit_vector;
+end pack_RC_Add_n_F;
+
+package body pack_RC_Add_n_F is
+ function RC_Add_n( A, B :bit_vector; Cin : bit) return bit_vector is
+ variable C:bit := Cin;
+ variable SUM:bit_vector(A'length downto 0);
+ begin
+ loop_add_m: for I in 0 to A'length-1 loop
+ SUM(I) := (A(I) xor B(I)) xor C;
+ C := (A(I) and B(I)) or (C and (A(I) xor B(I) ));
+ end loop loop_add_m;
+ SUM(A'length) := C;
+ return SUM;
+ end RC_Add_n;
+end pack_RC_Add_n_F;