aboutsummaryrefslogtreecommitdiffstats
path: root/src/Simulator.v
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2020-04-17 14:55:23 +0100
committerYann Herklotz <git@yannherklotz.com>2020-04-17 14:55:23 +0100
commit9ba75dc996009a7a01960fce72a25d43c557f542 (patch)
tree11507e8a3c626646230013180e4a58bcc8425259 /src/Simulator.v
parent11b738182df0f6ceacd4e3dd1a1fd9fb5d1ce713 (diff)
downloadvericert-9ba75dc996009a7a01960fce72a25d43c557f542.tar.gz
vericert-9ba75dc996009a7a01960fce72a25d43c557f542.zip
Add Simulator.v
Diffstat (limited to 'src/Simulator.v')
-rw-r--r--src/Simulator.v32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/Simulator.v b/src/Simulator.v
new file mode 100644
index 0000000..3c5aca0
--- /dev/null
+++ b/src/Simulator.v
@@ -0,0 +1,32 @@
+(* -*- mode: coq -*-
+ * CoqUp: Verified high-level synthesis.
+ * Copyright (C) 2020 Yann Herklotz <yann@yannherklotz.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *)
+
+From Coq Require Import FSets.FMapPositive.
+
+From compcert Require Import Errors.
+
+From coqup Require Compiler Verilog Value.
+From coqup Require Import Coquplib.
+
+Local Open Scope error_monad_scope.
+
+Definition simulate (n : nat) (m : Verilog.module) : res (list (positive * Value.value)) :=
+ do map <- Verilog.module_run n m;
+ OK (PositiveMap.elements map).
+
+Local Close Scope error_monad_scope.