diff options
author | Tristan Gingold <tgingold@free.fr> | 2021-03-18 18:39:22 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2021-03-18 18:39:22 +0100 |
commit | 9a80de30f485c9af8aaeb9eeb9ec986c7fffa6f8 (patch) | |
tree | 775c6e3fdb50e19a714e34a72f64bcd7c6302d6f /testsuite/gna/issue1687/pkg.vhdl | |
parent | c4256d931efe445aab9153486c9e5082d23056eb (diff) | |
download | ghdl-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.vhdl | 17 |
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; |