da4ml 0.3.3__py3-none-any.whl → 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of da4ml might be problematic. Click here for more details.

Files changed (55) hide show
  1. da4ml/_version.py +2 -2
  2. da4ml/codegen/__init__.py +4 -7
  3. da4ml/codegen/hls/__init__.py +4 -0
  4. da4ml/codegen/{cpp/cpp_codegen.py → hls/hls_codegen.py} +19 -12
  5. da4ml/codegen/{cpp → hls}/hls_model.py +7 -7
  6. da4ml/codegen/rtl/__init__.py +15 -0
  7. da4ml/codegen/{verilog/source → rtl/common_source}/binder_util.hh +4 -4
  8. da4ml/codegen/{verilog/source → rtl/common_source}/build_binder.mk +7 -1
  9. da4ml/codegen/{verilog/source → rtl/common_source}/build_prj.tcl +28 -7
  10. da4ml/codegen/{verilog/verilog_model.py → rtl/rtl_model.py} +87 -16
  11. da4ml/codegen/{verilog → rtl/verilog}/__init__.py +0 -2
  12. da4ml/codegen/{verilog → rtl/verilog}/comb.py +32 -34
  13. da4ml/codegen/{verilog → rtl/verilog}/io_wrapper.py +8 -8
  14. da4ml/codegen/{verilog → rtl/verilog}/pipeline.py +10 -10
  15. da4ml/codegen/{verilog → rtl/verilog}/source/negative.v +2 -1
  16. da4ml/codegen/rtl/vhdl/__init__.py +10 -0
  17. da4ml/codegen/rtl/vhdl/comb.py +192 -0
  18. da4ml/codegen/rtl/vhdl/io_wrapper.py +157 -0
  19. da4ml/codegen/rtl/vhdl/pipeline.py +71 -0
  20. da4ml/codegen/rtl/vhdl/source/multiplier.vhd +40 -0
  21. da4ml/codegen/rtl/vhdl/source/mux.vhd +102 -0
  22. da4ml/codegen/rtl/vhdl/source/negative.vhd +35 -0
  23. da4ml/codegen/rtl/vhdl/source/shift_adder.vhd +101 -0
  24. da4ml/codegen/rtl/vhdl/source/template.xdc +32 -0
  25. {da4ml-0.3.3.dist-info → da4ml-0.4.0.dist-info}/METADATA +2 -2
  26. da4ml-0.4.0.dist-info/RECORD +76 -0
  27. da4ml/codegen/cpp/__init__.py +0 -4
  28. da4ml-0.3.3.dist-info/RECORD +0 -66
  29. /da4ml/codegen/{cpp → hls}/source/ap_types/ap_binary.h +0 -0
  30. /da4ml/codegen/{cpp → hls}/source/ap_types/ap_common.h +0 -0
  31. /da4ml/codegen/{cpp → hls}/source/ap_types/ap_decl.h +0 -0
  32. /da4ml/codegen/{cpp → hls}/source/ap_types/ap_fixed.h +0 -0
  33. /da4ml/codegen/{cpp → hls}/source/ap_types/ap_fixed_base.h +0 -0
  34. /da4ml/codegen/{cpp → hls}/source/ap_types/ap_fixed_ref.h +0 -0
  35. /da4ml/codegen/{cpp → hls}/source/ap_types/ap_fixed_special.h +0 -0
  36. /da4ml/codegen/{cpp → hls}/source/ap_types/ap_int.h +0 -0
  37. /da4ml/codegen/{cpp → hls}/source/ap_types/ap_int_base.h +0 -0
  38. /da4ml/codegen/{cpp → hls}/source/ap_types/ap_int_ref.h +0 -0
  39. /da4ml/codegen/{cpp → hls}/source/ap_types/ap_int_special.h +0 -0
  40. /da4ml/codegen/{cpp → hls}/source/ap_types/ap_shift_reg.h +0 -0
  41. /da4ml/codegen/{cpp → hls}/source/ap_types/etc/ap_private.h +0 -0
  42. /da4ml/codegen/{cpp → hls}/source/ap_types/hls_math.h +0 -0
  43. /da4ml/codegen/{cpp → hls}/source/ap_types/hls_stream.h +0 -0
  44. /da4ml/codegen/{cpp → hls}/source/ap_types/utils/x_hls_utils.h +0 -0
  45. /da4ml/codegen/{cpp → hls}/source/binder_util.hh +0 -0
  46. /da4ml/codegen/{cpp → hls}/source/build_binder.mk +0 -0
  47. /da4ml/codegen/{cpp → hls}/source/vitis_bitshift.hh +0 -0
  48. /da4ml/codegen/{verilog/source → rtl/common_source}/ioutil.hh +0 -0
  49. /da4ml/codegen/{verilog/source → rtl/common_source}/template.xdc +0 -0
  50. /da4ml/codegen/{verilog → rtl/verilog}/source/multiplier.v +0 -0
  51. /da4ml/codegen/{verilog → rtl/verilog}/source/mux.v +0 -0
  52. /da4ml/codegen/{verilog → rtl/verilog}/source/shift_adder.v +0 -0
  53. {da4ml-0.3.3.dist-info → da4ml-0.4.0.dist-info}/WHEEL +0 -0
  54. {da4ml-0.3.3.dist-info → da4ml-0.4.0.dist-info}/licenses/LICENSE +0 -0
  55. {da4ml-0.3.3.dist-info → da4ml-0.4.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,102 @@
1
+ library ieee;
2
+ use ieee.std_logic_1164.all;
3
+ use ieee.numeric_std.all;
4
+
5
+ entity mux is
6
+ generic (
7
+ BW_INPUT0 : integer := 32;
8
+ BW_INPUT1 : integer := 32;
9
+ SIGNED0 : integer := 0;
10
+ SIGNED1 : integer := 0;
11
+ BW_OUT : integer := 32;
12
+ SHIFT1 : integer := 0;
13
+ INVERT1 : integer := 0
14
+ );
15
+ port (
16
+ key : in std_logic;
17
+ in0 : in std_logic_vector(BW_INPUT0-1 downto 0);
18
+ in1 : in std_logic_vector(BW_INPUT1-1 downto 0);
19
+ result : out std_logic_vector(BW_OUT-1 downto 0)
20
+ );
21
+ end entity mux;
22
+
23
+ architecture rtl of mux is
24
+ function max(L, R: integer) return integer is
25
+ begin
26
+ if L > R then
27
+ return L;
28
+ else
29
+ return R;
30
+ end if;
31
+ end function;
32
+
33
+ function if_then_else(cond: boolean; val_true: integer; val_false: integer) return integer is
34
+ begin
35
+ if cond then
36
+ return val_true;
37
+ else
38
+ return val_false;
39
+ end if;
40
+ end function;
41
+
42
+ constant IN0_NEED_BITS : integer := if_then_else(SHIFT1 < 0, BW_INPUT0 - SHIFT1, BW_INPUT0);
43
+ constant IN1_NEED_BITS : integer := if_then_else(SHIFT1 > 0, BW_INPUT1 + SHIFT1, BW_INPUT1);
44
+ constant EXTRA_PAD : integer := if_then_else(SIGNED0 /= SIGNED1, INVERT1 + 1, INVERT1);
45
+ constant BW_BUF : integer := max(IN0_NEED_BITS, IN1_NEED_BITS) + EXTRA_PAD;
46
+
47
+ signal in0_ext : std_logic_vector(BW_BUF-1 downto 0);
48
+ signal in1_ext : std_logic_vector(BW_BUF-1 downto 0);
49
+ signal out_buf : std_logic_vector(BW_BUF-1 downto 0);
50
+
51
+ begin
52
+
53
+ -- Extension and shifting for input 0
54
+ gen_in0_shift_neg: if SHIFT1 < 0 generate
55
+ gen_in0_signed: if SIGNED0 = 1 generate
56
+ in0_ext <= std_logic_vector(resize(signed(in0), BW_BUF)) sll (-SHIFT1);
57
+ end generate;
58
+ gen_in0_unsigned: if SIGNED0 = 0 generate
59
+ in0_ext <= std_logic_vector(resize(unsigned(in0), BW_BUF)) sll (-SHIFT1);
60
+ end generate;
61
+ end generate;
62
+
63
+ gen_in0_shift_pos: if SHIFT1 >= 0 generate
64
+ gen_in0_signed: if SIGNED0 = 1 generate
65
+ in0_ext <= std_logic_vector(resize(signed(in0), BW_BUF));
66
+ end generate;
67
+ gen_in0_unsigned: if SIGNED0 = 0 generate
68
+ in0_ext <= std_logic_vector(resize(unsigned(in0), BW_BUF));
69
+ end generate;
70
+ end generate;
71
+
72
+ -- Extension and shifting for input 1
73
+ gen_in1_shift_pos: if SHIFT1 > 0 generate
74
+ gen_in1_signed: if SIGNED1 = 1 generate
75
+ in1_ext <= std_logic_vector(resize(signed(in1), BW_BUF)) sll SHIFT1;
76
+ end generate;
77
+ gen_in1_unsigned: if SIGNED1 = 0 generate
78
+ in1_ext <= std_logic_vector(resize(unsigned(in1), BW_BUF)) sll SHIFT1;
79
+ end generate;
80
+ end generate;
81
+
82
+ gen_in1_shift_neg: if SHIFT1 <= 0 generate
83
+ gen_in1_signed: if SIGNED1 = 1 generate
84
+ in1_ext <= std_logic_vector(resize(signed(in1), BW_BUF));
85
+ end generate;
86
+ gen_in1_unsigned: if SIGNED1 = 0 generate
87
+ in1_ext <= std_logic_vector(resize(unsigned(in1), BW_BUF));
88
+ end generate;
89
+ end generate;
90
+
91
+ -- Mux logic
92
+ gen_invert: if INVERT1 = 1 generate
93
+ out_buf <= in0_ext when key = '1' else std_logic_vector(-signed(in1_ext));
94
+ end generate;
95
+
96
+ gen_no_invert: if INVERT1 = 0 generate
97
+ out_buf <= in0_ext when key = '1' else in1_ext;
98
+ end generate;
99
+
100
+ result <= out_buf(BW_OUT-1 downto 0);
101
+
102
+ end architecture rtl;
@@ -0,0 +1,35 @@
1
+ library ieee;
2
+ use ieee.std_logic_1164.all;
3
+ use ieee.numeric_std.all;
4
+
5
+ entity negative is
6
+ generic (
7
+ BW_IN : integer := 32;
8
+ BW_OUT : integer := 32;
9
+ IN_SIGNED : integer := 0
10
+ );
11
+ port (
12
+ neg_in : in std_logic_vector(BW_IN-1 downto 0);
13
+ neg_out : out std_logic_vector(BW_OUT-1 downto 0)
14
+ );
15
+ end entity negative;
16
+
17
+ architecture rtl of negative is
18
+ signal in_ext : std_logic_vector(BW_OUT-1 downto 0);
19
+ begin
20
+
21
+ gen_lt : if BW_IN < BW_OUT generate
22
+ gen_signed : if IN_SIGNED = 1 generate
23
+ in_ext <= std_logic_vector(resize(signed(neg_in), BW_OUT));
24
+ end generate;
25
+ gen_unsigned : if IN_SIGNED = 0 generate
26
+ in_ext <= std_logic_vector(resize(unsigned(neg_in), BW_OUT));
27
+ end generate;
28
+ neg_out <= std_logic_vector(-signed(in_ext));
29
+ end generate;
30
+
31
+ gen_ge : if BW_IN >= BW_OUT generate
32
+ neg_out <= std_logic_vector(-signed(neg_in(BW_OUT-1 downto 0)));
33
+ end generate;
34
+
35
+ end architecture rtl;
@@ -0,0 +1,101 @@
1
+ library ieee;
2
+ use ieee.std_logic_1164.all;
3
+ use ieee.numeric_std.all;
4
+
5
+ entity shift_adder is
6
+ generic (
7
+ BW_INPUT0 : integer := 32;
8
+ BW_INPUT1 : integer := 32;
9
+ SIGNED0 : integer := 0;
10
+ SIGNED1 : integer := 0;
11
+ BW_OUT : integer := 32;
12
+ SHIFT1 : integer := 0;
13
+ IS_SUB : integer := 0
14
+ );
15
+ port (
16
+ in0 : in std_logic_vector(BW_INPUT0-1 downto 0);
17
+ in1 : in std_logic_vector(BW_INPUT1-1 downto 0);
18
+ result : out std_logic_vector(BW_OUT-1 downto 0)
19
+ );
20
+ end entity shift_adder;
21
+
22
+ architecture rtl of shift_adder is
23
+ function max(L, R: integer) return integer is
24
+ begin
25
+ if L > R then
26
+ return L;
27
+ else
28
+ return R;
29
+ end if;
30
+ end function;
31
+
32
+ function if_then_else(cond: boolean; val_true: integer; val_false: integer) return integer is
33
+ begin
34
+ if cond then
35
+ return val_true;
36
+ else
37
+ return val_false;
38
+ end if;
39
+ end function;
40
+
41
+ constant IN0_NEED_BITS : integer := if_then_else(SHIFT1 < 0, BW_INPUT0 - SHIFT1, BW_INPUT0);
42
+ constant IN1_NEED_BITS : integer := if_then_else(SHIFT1 > 0, BW_INPUT1 + SHIFT1, BW_INPUT1);
43
+ constant EXTRA_PAD : integer := if_then_else(SIGNED0 /= SIGNED1, IS_SUB + 1, IS_SUB);
44
+ constant BW_ADD : integer := max(IN0_NEED_BITS, IN1_NEED_BITS) + EXTRA_PAD + 1;
45
+
46
+ signal in0_ext : std_logic_vector(BW_ADD-1 downto 0);
47
+ signal in1_ext : std_logic_vector(BW_ADD-1 downto 0);
48
+ signal accum : std_logic_vector(BW_ADD-1 downto 0);
49
+
50
+ begin
51
+
52
+ -- Extension and shifting for input 0
53
+ gen_in0_shift_neg: if SHIFT1 < 0 generate
54
+ gen_in0_signed: if SIGNED0 = 1 generate
55
+ in0_ext <= std_logic_vector(resize(signed(in0), BW_ADD)) sll (-SHIFT1);
56
+ end generate;
57
+ gen_in0_unsigned: if SIGNED0 = 0 generate
58
+ in0_ext <= std_logic_vector(resize(unsigned(in0), BW_ADD)) sll (-SHIFT1);
59
+ end generate;
60
+ end generate;
61
+
62
+ gen_in0_shift_pos: if SHIFT1 >= 0 generate
63
+ gen_in0_signed: if SIGNED0 = 1 generate
64
+ in0_ext <= std_logic_vector(resize(signed(in0), BW_ADD));
65
+ end generate;
66
+ gen_in0_unsigned: if SIGNED0 = 0 generate
67
+ in0_ext <= std_logic_vector(resize(unsigned(in0), BW_ADD));
68
+ end generate;
69
+ end generate;
70
+
71
+ -- Extension and shifting for input 1
72
+ gen_in1_shift_pos: if SHIFT1 > 0 generate
73
+ gen_in1_signed: if SIGNED1 = 1 generate
74
+ in1_ext <= std_logic_vector(resize(signed(in1), BW_ADD)) sll SHIFT1;
75
+ end generate;
76
+ gen_in1_unsigned: if SIGNED1 = 0 generate
77
+ in1_ext <= std_logic_vector(resize(unsigned(in1), BW_ADD)) sll SHIFT1;
78
+ end generate;
79
+ end generate;
80
+
81
+ gen_in1_shift_neg: if SHIFT1 <= 0 generate
82
+ gen_in1_signed: if SIGNED1 = 1 generate
83
+ in1_ext <= std_logic_vector(resize(signed(in1), BW_ADD));
84
+ end generate;
85
+ gen_in1_unsigned: if SIGNED1 = 0 generate
86
+ in1_ext <= std_logic_vector(resize(unsigned(in1), BW_ADD));
87
+ end generate;
88
+ end generate;
89
+
90
+ -- Addition/subtraction logic
91
+ gen_sub: if IS_SUB = 1 generate
92
+ accum <= std_logic_vector(signed(in0_ext) - signed(in1_ext));
93
+ end generate;
94
+
95
+ gen_add: if IS_SUB = 0 generate
96
+ accum <= std_logic_vector(signed(in0_ext) + signed(in1_ext));
97
+ end generate;
98
+
99
+ result <= accum(BW_OUT-1 downto 0);
100
+
101
+ end architecture rtl;
@@ -0,0 +1,32 @@
1
+ set clock_period ${CLOCK_PERIOD}
2
+
3
+ # Clock uncertainty as percentage of clock period
4
+ set uncertainty_setup_r ${UNCERTAINITY_SETUP}
5
+ set uncertainty_hold_r ${UNCERTAINITY_HOLD}
6
+ set delay_max_r ${DELAY_MAX}
7
+ set delay_min_r ${DELAY_MIN}
8
+
9
+ # Calculate actual uncertainty values
10
+ set uncertainty_setup [expr {$clock_period * $uncertainty_setup_r}]
11
+ set uncertainty_hold [expr {$clock_period * $uncertainty_hold_r}]
12
+ set delay_max [expr {$clock_period * $delay_max_r}]
13
+ set delay_min [expr {$clock_period * $delay_min_r}]
14
+
15
+ # Create clock with variable period
16
+ create_clock -period $clock_period -name sys_clk [get_ports {clk}]
17
+
18
+ # Input/Output constraints
19
+ set_input_delay -clock sys_clk -max $delay_max [get_ports {inp[*]}]
20
+ set_input_delay -clock sys_clk -min $delay_min [get_ports {inp[*]}]
21
+
22
+ set_output_delay -clock sys_clk -max $delay_max [get_ports {out[*]}]
23
+ set_output_delay -clock sys_clk -min $delay_min [get_ports {out[*]}]
24
+
25
+ # Apply calculated uncertainty values
26
+ set_clock_uncertainty -setup $uncertainty_setup [get_clocks sys_clk]
27
+ set_clock_uncertainty -hold $uncertainty_hold [get_clocks sys_clk]
28
+
29
+ set_property HD.CLK_SRC BUFG_X0Y0 [get_ports clk]
30
+
31
+ set_property retiming_forward 1 [get_cells {stage[*]_inp}]
32
+ set_property retiming_backward 1 [get_cells {stage[*]_inp}]
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: da4ml
3
- Version: 0.3.3
4
- Summary: Digital Arithmetic for Machine Learning
3
+ Version: 0.4.0
4
+ Summary: Distributed Arithmetic for Machine Learning
5
5
  Author-email: Chang Sun <chsun@cern.ch>
6
6
  License: GNU Lesser General Public License v3 (LGPLv3)
7
7
  Project-URL: repository, https://github.com/calad0i/da4ml
@@ -0,0 +1,76 @@
1
+ da4ml/__init__.py,sha256=IETRRvzsJvPMLu1kzzi8UN5FYaM5MhNaXH2A_ZKr2_w,469
2
+ da4ml/_version.py,sha256=2_0GUP7yBCXRus-qiJKxQD62z172WSs1sQ6DVpPsbmM,704
3
+ da4ml/cmvm/__init__.py,sha256=4Tbt913k9zP0w8R1p6Oss06v5jrManbUhskyHl6e-U0,154
4
+ da4ml/cmvm/api.py,sha256=JpecMt6g8zutGh_uWT61_0iX8TuXct7-jq7N7HMIsgA,9626
5
+ da4ml/cmvm/types.py,sha256=O8BuBZ2SyucxoXt_KbulAuHNgim7Ls3M6Ovw8prLgXM,21340
6
+ da4ml/cmvm/core/__init__.py,sha256=bp2CXI4EOVOQSho1qwfusNs0RliZRt2dV0hZ33W_Kjo,7703
7
+ da4ml/cmvm/core/indexers.py,sha256=QjXgvExS-B2abHTJPDG4NufMdMEflo1i6cUhFOgJpH4,2945
8
+ da4ml/cmvm/core/state_opr.py,sha256=wLqO8qVuM2-qCE5LDeYJDNkUruIPHy63obsv4-x-aR8,8661
9
+ da4ml/cmvm/util/__init__.py,sha256=DkBlUEKA_Gu7n576ja_xZlAQfToWmNL9VXU-jmj6a-g,145
10
+ da4ml/cmvm/util/bit_decompose.py,sha256=SUco70HRYf4r1JU6BXwcgabDrhm_yAmucae5FC67i4I,2216
11
+ da4ml/cmvm/util/mat_decompose.py,sha256=eSJNlXwx_jxgqt5vLJrSLQaeq2ZXu8j9mC4d-eq883M,4094
12
+ da4ml/codegen/__init__.py,sha256=ldMaaixWMxEpLS6skyAgpGCcIMVHdeRCNy57-JxGn3Y,161
13
+ da4ml/codegen/hls/__init__.py,sha256=LkTtnKTGKX39-wpf7jb10BZ15-dpw4pIlQoATYfVOec,134
14
+ da4ml/codegen/hls/hls_codegen.py,sha256=XuhdYnFVNkz5FoiIF31xAnU2THKKCBytPlGEiLjsIew,6514
15
+ da4ml/codegen/hls/hls_model.py,sha256=mj6Oc5JaHA4ogJ3ISJ18XcqHBbJchy1muvSNUXbZEIQ,8988
16
+ da4ml/codegen/hls/source/binder_util.hh,sha256=ClECVxcEynE_9i4jWCV4y1dnadG3wFqLZfjxg4qHFQQ,1752
17
+ da4ml/codegen/hls/source/build_binder.mk,sha256=RLu4TP28aJsveyMOHxuDRGEJVoIPMo9T8WyPtqnmtbQ,584
18
+ da4ml/codegen/hls/source/vitis_bitshift.hh,sha256=u8wjT_cRn7bXcbC5pH3-rS76ekRbwv-VWAAdaP52-dw,765
19
+ da4ml/codegen/hls/source/ap_types/ap_binary.h,sha256=yOcafu2IofstDqxn0wDq8vY3JIwZQ9H5z6IY1dEqMr0,2764
20
+ da4ml/codegen/hls/source/ap_types/ap_common.h,sha256=1hJY9uvKOdwRSSll5uehUISZR4tsSsQ1z4PNRUc44KU,10180
21
+ da4ml/codegen/hls/source/ap_types/ap_decl.h,sha256=z1HsH-2RSvSoofTZR7RHeqIfAnEYVuHcIu_ute9gjEg,6473
22
+ da4ml/codegen/hls/source/ap_types/ap_fixed.h,sha256=3ld4qyF475nDto57AHcsLd-PfoJ7dlplDoZPLXIo6d4,12185
23
+ da4ml/codegen/hls/source/ap_types/ap_fixed_base.h,sha256=Cd1AJQZjHxVKbvo4w9a9ylkEyNjdXHR7VF9iUoGTb0o,85182
24
+ da4ml/codegen/hls/source/ap_types/ap_fixed_ref.h,sha256=TO9yZqdWf0VksXmG4SN9_n_CDYQVWU4yuja0YfkrQCw,27302
25
+ da4ml/codegen/hls/source/ap_types/ap_fixed_special.h,sha256=yXfQnjAc8vJv5T6R9a4L_eA0U_a0ypzK_RSn8yqzt_s,6985
26
+ da4ml/codegen/hls/source/ap_types/ap_int.h,sha256=nTiyrFN8IPCGRs5RYpCkLT9y4IxaqoRUHtIbpUiOLNA,10012
27
+ da4ml/codegen/hls/source/ap_types/ap_int_base.h,sha256=Kt4QjfUW85r8lxjY4ESqelR_CnpM0ubb4K5d2G03GMQ,71735
28
+ da4ml/codegen/hls/source/ap_types/ap_int_ref.h,sha256=5rsOdablweC9hKGtQ8Kktr077sEQ91gzSH5G5hM7m5Y,55218
29
+ da4ml/codegen/hls/source/ap_types/ap_int_special.h,sha256=HIvRRuiKGpAnCpigURX0cOQUX88dbp3lGkUWpbglMCI,6301
30
+ da4ml/codegen/hls/source/ap_types/ap_shift_reg.h,sha256=wqe8j3ikbdZiXwYsYlAsFbOFeQLhYXIbKoRC6fJGeuc,4894
31
+ da4ml/codegen/hls/source/ap_types/hls_math.h,sha256=abFBoZzYjm_pfC2wkuclVh1HuvYJ_YobnN-1Q99GRic,674
32
+ da4ml/codegen/hls/source/ap_types/hls_stream.h,sha256=NTkVfbE48c6XnMIfR9WzJbDwUnfe6y19xJXxBS3G--I,7480
33
+ da4ml/codegen/hls/source/ap_types/etc/ap_private.h,sha256=TDdxGIX0r3D6Ql8KeXoceRmHhdlwFA3Akr3-vvMVAtk,261465
34
+ da4ml/codegen/hls/source/ap_types/utils/x_hls_utils.h,sha256=x24cf1HyZKv0J8YQIoUvYE3uw6SNL7vWetRGIiFm2Jw,2227
35
+ da4ml/codegen/rtl/__init__.py,sha256=51VNqMc0JygphulBB4jjqeL9Sd18IUjGhkp2oyUDdnA,505
36
+ da4ml/codegen/rtl/rtl_model.py,sha256=Kb3LwNIkQ6nC591xSU8z-BuemQYwfQk-Bc55LheIHnc,14318
37
+ da4ml/codegen/rtl/common_source/binder_util.hh,sha256=gAcfnfzgDt2OudljfeQjtUtncNVjwRmEwu5VI7VSF6Q,2545
38
+ da4ml/codegen/rtl/common_source/build_binder.mk,sha256=i1CsER5jtY3GmKJCw4H8f70vh_2_FJyNVt3FTLzdJf8,1386
39
+ da4ml/codegen/rtl/common_source/build_prj.tcl,sha256=QkKZTJOsOfQxgDUmDw8vnrQvUluYWz_yI5VB3oyIzIo,3651
40
+ da4ml/codegen/rtl/common_source/ioutil.hh,sha256=QXiHbOfkprOL6b-gBQGwcEOQ39uO-bRxKxwObluiK44,3967
41
+ da4ml/codegen/rtl/common_source/template.xdc,sha256=GlSRy8tw_orohSuUwUSNEYJLLkAAHttGTfLTcQqRQDg,1262
42
+ da4ml/codegen/rtl/verilog/__init__.py,sha256=ZMFGN7atMF98kDVbbUm8dGPr0C8D8ZBfVUJnDOMEn4o,238
43
+ da4ml/codegen/rtl/verilog/comb.py,sha256=9pyZ5n-wefj_yoRaQxxbpY7HAlTZYUx2JY2hrBqgPwU,7174
44
+ da4ml/codegen/rtl/verilog/io_wrapper.py,sha256=8uSBMFbWRzSsxe7rP3yJLhiXm-MBwk5cyrLBqnantYE,5045
45
+ da4ml/codegen/rtl/verilog/pipeline.py,sha256=Qd_6pJOWN9yzxFhWGnsGlfxDQIEfVx4KTCbzYmwgjD0,2420
46
+ da4ml/codegen/rtl/verilog/source/multiplier.v,sha256=MfgRYi7jYPp4W94KLKWpc2MPu2Dg9CDiQ3lJizSIlIQ,1122
47
+ da4ml/codegen/rtl/verilog/source/mux.v,sha256=1PMSQKGR_Cku1EQnePBVCuX6we_dqYBXW54WBEURvs0,1928
48
+ da4ml/codegen/rtl/verilog/source/negative.v,sha256=YRfXVxyVQ1vu6LPCWrFzCsAFJxVIQZGZgwCoTOrMXlw,762
49
+ da4ml/codegen/rtl/verilog/source/shift_adder.v,sha256=qrpXBX9bhHI-o75v5zshOfq0giEATvbeGgTir20_S3Q,1915
50
+ da4ml/codegen/rtl/vhdl/__init__.py,sha256=ZMFGN7atMF98kDVbbUm8dGPr0C8D8ZBfVUJnDOMEn4o,238
51
+ da4ml/codegen/rtl/vhdl/comb.py,sha256=F6CZbL3XnQUS-ILmF3ubTX_G62kMt1xMQJZEFymCgF8,8272
52
+ da4ml/codegen/rtl/vhdl/io_wrapper.py,sha256=tdwIHWv5WnADPHxgAQmk4_qRldkeI7icRbkaneAkt-w,5322
53
+ da4ml/codegen/rtl/vhdl/pipeline.py,sha256=tjMYreqo1eHIepdOqX71GYePDLYjlsuphotpw19faKA,2641
54
+ da4ml/codegen/rtl/vhdl/source/multiplier.vhd,sha256=Hx63VZy_nVrv7qokwz50fTQVB7LbSBpfRKXhv4lXRAQ,1323
55
+ da4ml/codegen/rtl/vhdl/source/mux.vhd,sha256=tN8XbK0kD71arjEU--tidtWFpmdyxT37E7HLRC0zMYw,3442
56
+ da4ml/codegen/rtl/vhdl/source/negative.vhd,sha256=rTOGEdbONDcpWmOw_g3BTr3f5rZEFIhoG_0X0c_Q2NQ,1019
57
+ da4ml/codegen/rtl/vhdl/source/shift_adder.vhd,sha256=pIBchIa0zXmRcqwGF308_TEzh6aWOTboTEir6lMiSrE,3455
58
+ da4ml/codegen/rtl/vhdl/source/template.xdc,sha256=GlSRy8tw_orohSuUwUSNEYJLLkAAHttGTfLTcQqRQDg,1262
59
+ da4ml/converter/__init__.py,sha256=x7J2PEXYZsVWffRAkucLxbwzzU404eaijMdLwdhBxtY,57
60
+ da4ml/converter/hgq2/__init__.py,sha256=-gnT_7zXY-KQtPLxsqngwDKZ2TUIynn996pUjjB03B8,59
61
+ da4ml/converter/hgq2/parser.py,sha256=Yc5V-B_aEslqIXXJihRi3GMjF9vMkmUQ2_yHMGHMPVo,5573
62
+ da4ml/converter/hgq2/replica.py,sha256=aKi6BF2x4s3VUF1Q-__GE4-is9eSC3H8TGFDT05vTWc,16292
63
+ da4ml/trace/__init__.py,sha256=dv-rti3t8iE0RqeThfOb40mAg8FZB2WkkGQq3enJft0,282
64
+ da4ml/trace/fixed_variable.py,sha256=7vaXFZToCVzPtUZcHv4aoqpqJp46SHUzSWTQijVT0os,21101
65
+ da4ml/trace/fixed_variable_array.py,sha256=mJj9aU-jLCPVkFXrTbcRQndtUKEuhVwiFUGVSGX7PHE,12975
66
+ da4ml/trace/pipeline.py,sha256=AVeO9BNpQlo_WO6S1nQl7RxiHs5VFRR10tWMg_36C2o,5354
67
+ da4ml/trace/tracer.py,sha256=xnaVO4oTWwasfiEBqqeY9o60Lek3eX65IIbvB7JtVKQ,6099
68
+ da4ml/trace/ops/__init__.py,sha256=fz5Cg7ZQqPkZlUj4bIOKY6aaoA1fX_G22TeA8I1n4qY,2166
69
+ da4ml/trace/ops/conv_utils.py,sha256=Yn73t4F6Tcs1hBwK08L1DPOin2HYVcng4PSkU4vuZFo,8245
70
+ da4ml/trace/ops/einsum_utils.py,sha256=ODofbvR98FwKBTDZsJ0ObbMjU9_GjPu5AbGuWX6sdCY,11453
71
+ da4ml/trace/ops/reduce_utils.py,sha256=vQjEUUbvnW8inAYJWHDzgy-PbgwIdHlH-uzPzSEvrSc,3494
72
+ da4ml-0.4.0.dist-info/licenses/LICENSE,sha256=46mU2C5kSwOnkqkw9XQAJlhBL2JAf1_uCD8lVcXyMRg,7652
73
+ da4ml-0.4.0.dist-info/METADATA,sha256=TbsF6SmOrTNwmH7r9yAjpzfIiRJCUpYgbDADHtqvMfM,4059
74
+ da4ml-0.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
75
+ da4ml-0.4.0.dist-info/top_level.txt,sha256=N0tnKVwRqFiffFdeAzCgFq71hUNySh5-ITbNd6-R58Q,6
76
+ da4ml-0.4.0.dist-info/RECORD,,
@@ -1,4 +0,0 @@
1
- from .cpp_codegen import cpp_logic_and_bridge_gen
2
- from .hls_model import HLSModel
3
-
4
- __all__ = ['cpp_logic_and_bridge_gen', 'HLSModel']
@@ -1,66 +0,0 @@
1
- da4ml/__init__.py,sha256=IETRRvzsJvPMLu1kzzi8UN5FYaM5MhNaXH2A_ZKr2_w,469
2
- da4ml/_version.py,sha256=lemL_4Kl75FgrO6lVuFrrtw6-Dcf9wtXBalKkXuzkO4,704
3
- da4ml/cmvm/__init__.py,sha256=4Tbt913k9zP0w8R1p6Oss06v5jrManbUhskyHl6e-U0,154
4
- da4ml/cmvm/api.py,sha256=JpecMt6g8zutGh_uWT61_0iX8TuXct7-jq7N7HMIsgA,9626
5
- da4ml/cmvm/types.py,sha256=O8BuBZ2SyucxoXt_KbulAuHNgim7Ls3M6Ovw8prLgXM,21340
6
- da4ml/cmvm/core/__init__.py,sha256=bp2CXI4EOVOQSho1qwfusNs0RliZRt2dV0hZ33W_Kjo,7703
7
- da4ml/cmvm/core/indexers.py,sha256=QjXgvExS-B2abHTJPDG4NufMdMEflo1i6cUhFOgJpH4,2945
8
- da4ml/cmvm/core/state_opr.py,sha256=wLqO8qVuM2-qCE5LDeYJDNkUruIPHy63obsv4-x-aR8,8661
9
- da4ml/cmvm/util/__init__.py,sha256=DkBlUEKA_Gu7n576ja_xZlAQfToWmNL9VXU-jmj6a-g,145
10
- da4ml/cmvm/util/bit_decompose.py,sha256=SUco70HRYf4r1JU6BXwcgabDrhm_yAmucae5FC67i4I,2216
11
- da4ml/cmvm/util/mat_decompose.py,sha256=eSJNlXwx_jxgqt5vLJrSLQaeq2ZXu8j9mC4d-eq883M,4094
12
- da4ml/codegen/__init__.py,sha256=Chdh3oO_vLR4saLbT9VxBPz_0wlEzxJldFSZaVUJo7U,331
13
- da4ml/codegen/cpp/__init__.py,sha256=SIePoi_T4iJph50OQUosAnaVuLCckukYjLxp91Y8xQs,134
14
- da4ml/codegen/cpp/cpp_codegen.py,sha256=I3YcxK524_oJ7jebxOlRGuYbN2uCY5mpKACoQShqZxs,6153
15
- da4ml/codegen/cpp/hls_model.py,sha256=J5lnB8sAvMy0Bo5MSJOpgyUm1tzEJqBxgPTlOd38Gbg,8978
16
- da4ml/codegen/cpp/source/binder_util.hh,sha256=ClECVxcEynE_9i4jWCV4y1dnadG3wFqLZfjxg4qHFQQ,1752
17
- da4ml/codegen/cpp/source/build_binder.mk,sha256=RLu4TP28aJsveyMOHxuDRGEJVoIPMo9T8WyPtqnmtbQ,584
18
- da4ml/codegen/cpp/source/vitis_bitshift.hh,sha256=u8wjT_cRn7bXcbC5pH3-rS76ekRbwv-VWAAdaP52-dw,765
19
- da4ml/codegen/cpp/source/ap_types/ap_binary.h,sha256=yOcafu2IofstDqxn0wDq8vY3JIwZQ9H5z6IY1dEqMr0,2764
20
- da4ml/codegen/cpp/source/ap_types/ap_common.h,sha256=1hJY9uvKOdwRSSll5uehUISZR4tsSsQ1z4PNRUc44KU,10180
21
- da4ml/codegen/cpp/source/ap_types/ap_decl.h,sha256=z1HsH-2RSvSoofTZR7RHeqIfAnEYVuHcIu_ute9gjEg,6473
22
- da4ml/codegen/cpp/source/ap_types/ap_fixed.h,sha256=3ld4qyF475nDto57AHcsLd-PfoJ7dlplDoZPLXIo6d4,12185
23
- da4ml/codegen/cpp/source/ap_types/ap_fixed_base.h,sha256=Cd1AJQZjHxVKbvo4w9a9ylkEyNjdXHR7VF9iUoGTb0o,85182
24
- da4ml/codegen/cpp/source/ap_types/ap_fixed_ref.h,sha256=TO9yZqdWf0VksXmG4SN9_n_CDYQVWU4yuja0YfkrQCw,27302
25
- da4ml/codegen/cpp/source/ap_types/ap_fixed_special.h,sha256=yXfQnjAc8vJv5T6R9a4L_eA0U_a0ypzK_RSn8yqzt_s,6985
26
- da4ml/codegen/cpp/source/ap_types/ap_int.h,sha256=nTiyrFN8IPCGRs5RYpCkLT9y4IxaqoRUHtIbpUiOLNA,10012
27
- da4ml/codegen/cpp/source/ap_types/ap_int_base.h,sha256=Kt4QjfUW85r8lxjY4ESqelR_CnpM0ubb4K5d2G03GMQ,71735
28
- da4ml/codegen/cpp/source/ap_types/ap_int_ref.h,sha256=5rsOdablweC9hKGtQ8Kktr077sEQ91gzSH5G5hM7m5Y,55218
29
- da4ml/codegen/cpp/source/ap_types/ap_int_special.h,sha256=HIvRRuiKGpAnCpigURX0cOQUX88dbp3lGkUWpbglMCI,6301
30
- da4ml/codegen/cpp/source/ap_types/ap_shift_reg.h,sha256=wqe8j3ikbdZiXwYsYlAsFbOFeQLhYXIbKoRC6fJGeuc,4894
31
- da4ml/codegen/cpp/source/ap_types/hls_math.h,sha256=abFBoZzYjm_pfC2wkuclVh1HuvYJ_YobnN-1Q99GRic,674
32
- da4ml/codegen/cpp/source/ap_types/hls_stream.h,sha256=NTkVfbE48c6XnMIfR9WzJbDwUnfe6y19xJXxBS3G--I,7480
33
- da4ml/codegen/cpp/source/ap_types/etc/ap_private.h,sha256=TDdxGIX0r3D6Ql8KeXoceRmHhdlwFA3Akr3-vvMVAtk,261465
34
- da4ml/codegen/cpp/source/ap_types/utils/x_hls_utils.h,sha256=x24cf1HyZKv0J8YQIoUvYE3uw6SNL7vWetRGIiFm2Jw,2227
35
- da4ml/codegen/verilog/__init__.py,sha256=rXmW2V9sDp2RYMDAWlhj_gfMXH3G5lPNmLrFtsJjn_A,298
36
- da4ml/codegen/verilog/comb.py,sha256=AnrfJxJXe3hytXiX00VGbdW91AAJDF-dLdsSSWBivdU,7961
37
- da4ml/codegen/verilog/io_wrapper.py,sha256=SSs-ZRhBVLR6tpFso8GNGk-FH6JDe-p7LPvVPjTspxo,5002
38
- da4ml/codegen/verilog/pipeline.py,sha256=YsPRTLp04Aofg33QMw6_ga3fNX9LeCD7Pq2PnERLWOg,2377
39
- da4ml/codegen/verilog/verilog_model.py,sha256=2uyrpQN_f1cdF5fz0fBR5nh6idHlzhh_JneLkJAruQs,12172
40
- da4ml/codegen/verilog/source/binder_util.hh,sha256=2sab9M0vYBsaimzJ8tWJ9LsxYKMe3xTqdFSGO7YRPbk,2521
41
- da4ml/codegen/verilog/source/build_binder.mk,sha256=rQbI98itE_b1wIQ_0uCXfBzNmGK2XT4vWmRyCJNnPKk,960
42
- da4ml/codegen/verilog/source/build_prj.tcl,sha256=JA-zLl7fd2PV-BFaX22-MTex04QTi0urWUXNAEUDTy0,3003
43
- da4ml/codegen/verilog/source/ioutil.hh,sha256=QXiHbOfkprOL6b-gBQGwcEOQ39uO-bRxKxwObluiK44,3967
44
- da4ml/codegen/verilog/source/multiplier.v,sha256=MfgRYi7jYPp4W94KLKWpc2MPu2Dg9CDiQ3lJizSIlIQ,1122
45
- da4ml/codegen/verilog/source/mux.v,sha256=1PMSQKGR_Cku1EQnePBVCuX6we_dqYBXW54WBEURvs0,1928
46
- da4ml/codegen/verilog/source/negative.v,sha256=YphTCLnYslktsnCPq1xjbYgIFavani5NBbqs20uwhBI,688
47
- da4ml/codegen/verilog/source/shift_adder.v,sha256=qrpXBX9bhHI-o75v5zshOfq0giEATvbeGgTir20_S3Q,1915
48
- da4ml/codegen/verilog/source/template.xdc,sha256=GlSRy8tw_orohSuUwUSNEYJLLkAAHttGTfLTcQqRQDg,1262
49
- da4ml/converter/__init__.py,sha256=x7J2PEXYZsVWffRAkucLxbwzzU404eaijMdLwdhBxtY,57
50
- da4ml/converter/hgq2/__init__.py,sha256=-gnT_7zXY-KQtPLxsqngwDKZ2TUIynn996pUjjB03B8,59
51
- da4ml/converter/hgq2/parser.py,sha256=Yc5V-B_aEslqIXXJihRi3GMjF9vMkmUQ2_yHMGHMPVo,5573
52
- da4ml/converter/hgq2/replica.py,sha256=aKi6BF2x4s3VUF1Q-__GE4-is9eSC3H8TGFDT05vTWc,16292
53
- da4ml/trace/__init__.py,sha256=dv-rti3t8iE0RqeThfOb40mAg8FZB2WkkGQq3enJft0,282
54
- da4ml/trace/fixed_variable.py,sha256=7vaXFZToCVzPtUZcHv4aoqpqJp46SHUzSWTQijVT0os,21101
55
- da4ml/trace/fixed_variable_array.py,sha256=mJj9aU-jLCPVkFXrTbcRQndtUKEuhVwiFUGVSGX7PHE,12975
56
- da4ml/trace/pipeline.py,sha256=AVeO9BNpQlo_WO6S1nQl7RxiHs5VFRR10tWMg_36C2o,5354
57
- da4ml/trace/tracer.py,sha256=xnaVO4oTWwasfiEBqqeY9o60Lek3eX65IIbvB7JtVKQ,6099
58
- da4ml/trace/ops/__init__.py,sha256=fz5Cg7ZQqPkZlUj4bIOKY6aaoA1fX_G22TeA8I1n4qY,2166
59
- da4ml/trace/ops/conv_utils.py,sha256=Yn73t4F6Tcs1hBwK08L1DPOin2HYVcng4PSkU4vuZFo,8245
60
- da4ml/trace/ops/einsum_utils.py,sha256=ODofbvR98FwKBTDZsJ0ObbMjU9_GjPu5AbGuWX6sdCY,11453
61
- da4ml/trace/ops/reduce_utils.py,sha256=vQjEUUbvnW8inAYJWHDzgy-PbgwIdHlH-uzPzSEvrSc,3494
62
- da4ml-0.3.3.dist-info/licenses/LICENSE,sha256=46mU2C5kSwOnkqkw9XQAJlhBL2JAf1_uCD8lVcXyMRg,7652
63
- da4ml-0.3.3.dist-info/METADATA,sha256=C3NAvObpQ5xNOmQQ-cE77AJMFevKJ0gCCO-BrlQpAeA,4055
64
- da4ml-0.3.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
65
- da4ml-0.3.3.dist-info/top_level.txt,sha256=N0tnKVwRqFiffFdeAzCgFq71hUNySh5-ITbNd6-R58Q,6
66
- da4ml-0.3.3.dist-info/RECORD,,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes