From 092176848cbfd27b96c323cc30c54dff4c4a6872 Mon Sep 17 00:00:00 2001 From: Camm Maguire Date: Mon, 8 May 2017 12:58:52 -0400 Subject: Import acl2_7.4dfsg.orig.tar.gz [dgit import orig acl2_7.4dfsg.orig.tar.gz] --- .../georgelin-borrione-ostier/support/fact.nif | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 books/workshops/2002/georgelin-borrione-ostier/support/fact.nif (limited to 'books/workshops/2002/georgelin-borrione-ostier/support/fact.nif') diff --git a/books/workshops/2002/georgelin-borrione-ostier/support/fact.nif b/books/workshops/2002/georgelin-borrione-ostier/support/fact.nif new file mode 100644 index 0000000..5f6e487 --- /dev/null +++ b/books/workshops/2002/georgelin-borrione-ostier/support/fact.nif @@ -0,0 +1,76 @@ +(:language vhdl + +:entity_name mysystem +:inputs_signals (arg start) +:inputs_type (natural bit) +:outputs_signals (res fact.done) +:outputs_type (natural bit) +:architecture_name fact +:local_signals (op1 op2 resmult startmult endmult) +:local_signals_type (natural natural natural bit bit) +:local_variables (doit.mystate r f) +:local_variables_type (natural natural natural) + +:process + ( + (Mult + ( + (if (<= startmult 1) + ( + (resmult <= (* op1 op2)) + ) + ) + (endmult <= startmult) + ) + ) + + (Doit + ( + (if (<= doit.mystate 0) + ( + (r := arg) + (f := 1) + (if (= start 1) + ( + (doit.mystate := 1) + )) + ) + ( + (if (<= doit.mystate 1) + ( + (if (= r 1) + ( + (res <= f) + (fact.done <= 1) + (doit.mystate := 0) + ) + ( + (startmult <= 1) + (op1 <= r) + (op2 <= f) + (doit.mystate := 2) + ) + ) + ) + ( + (if (<= doit.mystate 2) + ( + (if (= endmult 1) + ( + (f := resmult) + (r := (- r 1)) + (startmult <= 0) + (doit.mystate := 1) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) +) + -- cgit v1.2.3