diff options
author | Yann Herklotz <git@yannherklotz.com> | 2021-11-16 17:31:53 +0000 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2021-11-16 17:31:53 +0000 |
commit | 508d59dfb16f97cf5f1b9a994bd5a8159c9e1a3e (patch) | |
tree | 86c7ce98aa3d823b20f23f8efbdbcf076b870572 /src/hls/PrintVerilog.ml | |
parent | 665945e7512a19aa600c51d164651ad6a00e5713 (diff) | |
parent | 75641815724c68791cc2754e850b35700e07e586 (diff) | |
download | vericert-508d59dfb16f97cf5f1b9a994bd5a8159c9e1a3e.tar.gz vericert-508d59dfb16f97cf5f1b9a994bd5a8159c9e1a3e.zip |
Merge remote-tracking branch 'origin/dev/divider' into dev/scheduling
Diffstat (limited to 'src/hls/PrintVerilog.ml')
-rw-r--r-- | src/hls/PrintVerilog.ml | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/hls/PrintVerilog.ml b/src/hls/PrintVerilog.ml index fbb26c5..46b001e 100644 --- a/src/hls/PrintVerilog.ml +++ b/src/hls/PrintVerilog.ml @@ -28,6 +28,7 @@ open Clflags open Printf open VericertClflags +open FunctionalUnits module PMap = Map.Make (struct type t = P.t @@ -152,9 +153,9 @@ let declarearr (t, _) = let print_io = function | Some Vinput -> "input", false - | Some Voutput -> "output reg", true + | Some Voutput -> "output logic", true | Some Vinout -> "inout", false - | None -> "reg", true + | None -> "logic", true let decl i = function | Vdecl (io, r, sz) -> concat [indent i; declare (print_io io) (r, sz)] @@ -180,6 +181,20 @@ let rec intersperse c = function let make_io i io r = concat [indent i; io; " "; register r; ";\n"] +(**let print_funct_units clk = function + | SignedDiv (stages, numer, denom, quot, rem) -> + sprintf ("div_signed #(.stages(%d)) divs(.clk(%s), " ^^ + ".clken(1'b1), .numer(%s), .denom(%s), " ^^ + ".quotient(%s), .remain(%s))\n") + (P.to_int stages) + (register clk) (register numer) (register denom) (register quot) (register rem) + | UnsignedDiv (stages, numer, denom, quot, rem) -> + sprintf ("div_unsigned #(.stages(%d)) divs(.clk(%s), " ^^ + ".clken(1'b1), .numer(%s), .denom(%s), " ^^ + ".quotient(%s), .remain(%s))\n") + (P.to_int stages) + (register clk) (register numer) (register denom) (register quot) (register rem)*) + let compose f g x = g x |> f let testbench = "module testbench; |