HDLRuby 2.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (224) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +5 -0
  4. data/.yardopts +1 -0
  5. data/Gemfile +4 -0
  6. data/HDLRuby.gemspec +36 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +2774 -0
  9. data/README.pdf +0 -0
  10. data/Rakefile +10 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/exe/hdrcc +3 -0
  14. data/lib/HDLRuby/alcc.rb +137 -0
  15. data/lib/HDLRuby/backend/hruby_allocator.rb +69 -0
  16. data/lib/HDLRuby/backend/hruby_c_allocator.rb +76 -0
  17. data/lib/HDLRuby/hdr_samples/adder.rb +7 -0
  18. data/lib/HDLRuby/hdr_samples/adder_assign_error.rb +11 -0
  19. data/lib/HDLRuby/hdr_samples/adder_bench.rb +27 -0
  20. data/lib/HDLRuby/hdr_samples/adder_gen.rb +7 -0
  21. data/lib/HDLRuby/hdr_samples/adder_nodef_error.rb +7 -0
  22. data/lib/HDLRuby/hdr_samples/addsub.rb +19 -0
  23. data/lib/HDLRuby/hdr_samples/addsubz.rb +22 -0
  24. data/lib/HDLRuby/hdr_samples/alu.rb +47 -0
  25. data/lib/HDLRuby/hdr_samples/calculator.rb +48 -0
  26. data/lib/HDLRuby/hdr_samples/counter_bench.rb +83 -0
  27. data/lib/HDLRuby/hdr_samples/dff.rb +9 -0
  28. data/lib/HDLRuby/hdr_samples/dff_bench.rb +66 -0
  29. data/lib/HDLRuby/hdr_samples/dff_counter.rb +20 -0
  30. data/lib/HDLRuby/hdr_samples/include.rb +14 -0
  31. data/lib/HDLRuby/hdr_samples/instance_open.rb +23 -0
  32. data/lib/HDLRuby/hdr_samples/mei8.rb +256 -0
  33. data/lib/HDLRuby/hdr_samples/mei8_bench.rb +309 -0
  34. data/lib/HDLRuby/hdr_samples/multer_gen.rb +8 -0
  35. data/lib/HDLRuby/hdr_samples/multer_seq.rb +29 -0
  36. data/lib/HDLRuby/hdr_samples/neural/a.rb +9 -0
  37. data/lib/HDLRuby/hdr_samples/neural/a_sub.rb +5 -0
  38. data/lib/HDLRuby/hdr_samples/neural/bw.rb +23 -0
  39. data/lib/HDLRuby/hdr_samples/neural/counter.rb +16 -0
  40. data/lib/HDLRuby/hdr_samples/neural/dadz.rb +9 -0
  41. data/lib/HDLRuby/hdr_samples/neural/dadz_sub.rb +4 -0
  42. data/lib/HDLRuby/hdr_samples/neural/forward.rb +153 -0
  43. data/lib/HDLRuby/hdr_samples/neural/forward_sub.rb +62 -0
  44. data/lib/HDLRuby/hdr_samples/neural/forward_sub_rand.rb +41 -0
  45. data/lib/HDLRuby/hdr_samples/neural/forward_sub_rand_typedef.rb +47 -0
  46. data/lib/HDLRuby/hdr_samples/neural/mem.rb +30 -0
  47. data/lib/HDLRuby/hdr_samples/neural/random.rb +23 -0
  48. data/lib/HDLRuby/hdr_samples/neural/selector.rb +29 -0
  49. data/lib/HDLRuby/hdr_samples/neural/sigmoid.rb +20 -0
  50. data/lib/HDLRuby/hdr_samples/neural/z.rb +33 -0
  51. data/lib/HDLRuby/hdr_samples/prog.obj +256 -0
  52. data/lib/HDLRuby/hdr_samples/ram.rb +18 -0
  53. data/lib/HDLRuby/hdr_samples/register_with_code_bench.rb +98 -0
  54. data/lib/HDLRuby/hdr_samples/rom.rb +10 -0
  55. data/lib/HDLRuby/hdr_samples/struct.rb +14 -0
  56. data/lib/HDLRuby/hdr_samples/sumprod.rb +29 -0
  57. data/lib/HDLRuby/hdr_samples/sw_encrypt_bench.rb +103 -0
  58. data/lib/HDLRuby/hdr_samples/sw_encrypt_cpu_bench.rb +261 -0
  59. data/lib/HDLRuby/hdr_samples/sw_encrypt_cpusim_bench.rb +302 -0
  60. data/lib/HDLRuby/hdr_samples/system_open.rb +11 -0
  61. data/lib/HDLRuby/hdr_samples/tuple.rb +16 -0
  62. data/lib/HDLRuby/hdr_samples/with_channel.rb +118 -0
  63. data/lib/HDLRuby/hdr_samples/with_class.rb +199 -0
  64. data/lib/HDLRuby/hdr_samples/with_decoder.rb +17 -0
  65. data/lib/HDLRuby/hdr_samples/with_fsm.rb +34 -0
  66. data/lib/HDLRuby/hdr_samples/with_reconf.rb +103 -0
  67. data/lib/HDLRuby/hdrcc.rb +623 -0
  68. data/lib/HDLRuby/high_samples/_adder_fault.rb +23 -0
  69. data/lib/HDLRuby/high_samples/_generic_transmission2.rb +146 -0
  70. data/lib/HDLRuby/high_samples/adder.rb +21 -0
  71. data/lib/HDLRuby/high_samples/adder_common_errors.rb +25 -0
  72. data/lib/HDLRuby/high_samples/addsub.rb +33 -0
  73. data/lib/HDLRuby/high_samples/addsubz.rb +37 -0
  74. data/lib/HDLRuby/high_samples/after.rb +28 -0
  75. data/lib/HDLRuby/high_samples/all_signals.rb +29 -0
  76. data/lib/HDLRuby/high_samples/alu.rb +61 -0
  77. data/lib/HDLRuby/high_samples/anonymous.rb +41 -0
  78. data/lib/HDLRuby/high_samples/before.rb +28 -0
  79. data/lib/HDLRuby/high_samples/blockblock.rb +26 -0
  80. data/lib/HDLRuby/high_samples/bugs/dadz.rb +22 -0
  81. data/lib/HDLRuby/high_samples/bugs/misample_instan.rb +20 -0
  82. data/lib/HDLRuby/high_samples/bugs/misample_updown.rb +22 -0
  83. data/lib/HDLRuby/high_samples/bugs/sample_add.rb +16 -0
  84. data/lib/HDLRuby/high_samples/bugs/sample_barrel.rb +13 -0
  85. data/lib/HDLRuby/high_samples/bugs/sample_daice.rb +57 -0
  86. data/lib/HDLRuby/high_samples/bugs/sample_kumiawase.rb +52 -0
  87. data/lib/HDLRuby/high_samples/bugs/sample_multi.rb +18 -0
  88. data/lib/HDLRuby/high_samples/bugs/sample_sub.rb +14 -0
  89. data/lib/HDLRuby/high_samples/bugs/z2.rb +32 -0
  90. data/lib/HDLRuby/high_samples/case.rb +32 -0
  91. data/lib/HDLRuby/high_samples/case2.rb +30 -0
  92. data/lib/HDLRuby/high_samples/change.rb +23 -0
  93. data/lib/HDLRuby/high_samples/clocks.rb +35 -0
  94. data/lib/HDLRuby/high_samples/comparer.rb +21 -0
  95. data/lib/HDLRuby/high_samples/conditionals.rb +29 -0
  96. data/lib/HDLRuby/high_samples/dff.rb +23 -0
  97. data/lib/HDLRuby/high_samples/each.rb +28 -0
  98. data/lib/HDLRuby/high_samples/exporter.rb +42 -0
  99. data/lib/HDLRuby/high_samples/functions.rb +60 -0
  100. data/lib/HDLRuby/high_samples/if_seq.rb +26 -0
  101. data/lib/HDLRuby/high_samples/inherit_as_dff.rb +32 -0
  102. data/lib/HDLRuby/high_samples/inherit_dff.rb +36 -0
  103. data/lib/HDLRuby/high_samples/instance.rb +37 -0
  104. data/lib/HDLRuby/high_samples/memory.rb +64 -0
  105. data/lib/HDLRuby/high_samples/multi_file.rb +27 -0
  106. data/lib/HDLRuby/high_samples/overload.rb +32 -0
  107. data/lib/HDLRuby/high_samples/paper_after.rb +49 -0
  108. data/lib/HDLRuby/high_samples/ram.rb +27 -0
  109. data/lib/HDLRuby/high_samples/registers.rb +139 -0
  110. data/lib/HDLRuby/high_samples/rom.rb +23 -0
  111. data/lib/HDLRuby/high_samples/scopeblockname.rb +37 -0
  112. data/lib/HDLRuby/high_samples/scopescope.rb +26 -0
  113. data/lib/HDLRuby/high_samples/shift.rb +31 -0
  114. data/lib/HDLRuby/high_samples/shift2.rb +40 -0
  115. data/lib/HDLRuby/high_samples/simple_instance.rb +31 -0
  116. data/lib/HDLRuby/high_samples/test_all.sh +10 -0
  117. data/lib/HDLRuby/high_samples/typedef.rb +24 -0
  118. data/lib/HDLRuby/high_samples/values.rb +70 -0
  119. data/lib/HDLRuby/high_samples/vector.rb +22 -0
  120. data/lib/HDLRuby/high_samples/with_decoder.rb +30 -0
  121. data/lib/HDLRuby/high_samples/with_fsm.rb +46 -0
  122. data/lib/HDLRuby/high_samples/with_pipe.rb +43 -0
  123. data/lib/HDLRuby/high_samples/with_seq.rb +25 -0
  124. data/lib/HDLRuby/hruby_bstr.rb +1085 -0
  125. data/lib/HDLRuby/hruby_check.rb +317 -0
  126. data/lib/HDLRuby/hruby_db.rb +432 -0
  127. data/lib/HDLRuby/hruby_error.rb +44 -0
  128. data/lib/HDLRuby/hruby_high.rb +4103 -0
  129. data/lib/HDLRuby/hruby_low.rb +4735 -0
  130. data/lib/HDLRuby/hruby_low2c.rb +1986 -0
  131. data/lib/HDLRuby/hruby_low2high.rb +738 -0
  132. data/lib/HDLRuby/hruby_low2seq.rb +248 -0
  133. data/lib/HDLRuby/hruby_low2sym.rb +126 -0
  134. data/lib/HDLRuby/hruby_low2vhd.rb +1437 -0
  135. data/lib/HDLRuby/hruby_low_bool2select.rb +295 -0
  136. data/lib/HDLRuby/hruby_low_cleanup.rb +193 -0
  137. data/lib/HDLRuby/hruby_low_fix_types.rb +437 -0
  138. data/lib/HDLRuby/hruby_low_mutable.rb +1803 -0
  139. data/lib/HDLRuby/hruby_low_resolve.rb +165 -0
  140. data/lib/HDLRuby/hruby_low_skeleton.rb +129 -0
  141. data/lib/HDLRuby/hruby_low_with_bool.rb +141 -0
  142. data/lib/HDLRuby/hruby_low_with_port.rb +167 -0
  143. data/lib/HDLRuby/hruby_low_with_var.rb +302 -0
  144. data/lib/HDLRuby/hruby_low_without_bit2vector.rb +88 -0
  145. data/lib/HDLRuby/hruby_low_without_concat.rb +162 -0
  146. data/lib/HDLRuby/hruby_low_without_connection.rb +113 -0
  147. data/lib/HDLRuby/hruby_low_without_namespace.rb +718 -0
  148. data/lib/HDLRuby/hruby_low_without_outread.rb +107 -0
  149. data/lib/HDLRuby/hruby_low_without_select.rb +206 -0
  150. data/lib/HDLRuby/hruby_serializer.rb +398 -0
  151. data/lib/HDLRuby/hruby_tools.rb +37 -0
  152. data/lib/HDLRuby/hruby_types.rb +239 -0
  153. data/lib/HDLRuby/hruby_values.rb +64 -0
  154. data/lib/HDLRuby/hruby_verilog.rb +1888 -0
  155. data/lib/HDLRuby/hruby_verilog_name.rb +52 -0
  156. data/lib/HDLRuby/low_samples/adder.yaml +97 -0
  157. data/lib/HDLRuby/low_samples/after.yaml +228 -0
  158. data/lib/HDLRuby/low_samples/before.yaml +223 -0
  159. data/lib/HDLRuby/low_samples/blockblock.yaml +48 -0
  160. data/lib/HDLRuby/low_samples/bugs/sample_add.yaml +97 -0
  161. data/lib/HDLRuby/low_samples/bugs/sample_daice.yaml +444 -0
  162. data/lib/HDLRuby/low_samples/bugs/sample_kumiawase.yaml +332 -0
  163. data/lib/HDLRuby/low_samples/bugs/sample_sub.yaml +97 -0
  164. data/lib/HDLRuby/low_samples/bugs/seqpar.yaml +184 -0
  165. data/lib/HDLRuby/low_samples/case.yaml +327 -0
  166. data/lib/HDLRuby/low_samples/change.yaml +135 -0
  167. data/lib/HDLRuby/low_samples/clocks.yaml +674 -0
  168. data/lib/HDLRuby/low_samples/cloner.rb +22 -0
  169. data/lib/HDLRuby/low_samples/comparer.yaml +85 -0
  170. data/lib/HDLRuby/low_samples/conditionals.yaml +133 -0
  171. data/lib/HDLRuby/low_samples/dff.yaml +107 -0
  172. data/lib/HDLRuby/low_samples/each.yaml +1328 -0
  173. data/lib/HDLRuby/low_samples/exporter.yaml +226 -0
  174. data/lib/HDLRuby/low_samples/functions.yaml +298 -0
  175. data/lib/HDLRuby/low_samples/generic_transmission.yaml +597 -0
  176. data/lib/HDLRuby/low_samples/inherit_as_dff.yaml +125 -0
  177. data/lib/HDLRuby/low_samples/inherit_dff.yaml +107 -0
  178. data/lib/HDLRuby/low_samples/load_yaml.rb +11 -0
  179. data/lib/HDLRuby/low_samples/memory.yaml +678 -0
  180. data/lib/HDLRuby/low_samples/namespace_extractor.rb +23 -0
  181. data/lib/HDLRuby/low_samples/overload.yaml +226 -0
  182. data/lib/HDLRuby/low_samples/paper_after.yaml +431 -0
  183. data/lib/HDLRuby/low_samples/port_maker.rb +14 -0
  184. data/lib/HDLRuby/low_samples/ram.yaml +207 -0
  185. data/lib/HDLRuby/low_samples/registers.yaml +228 -0
  186. data/lib/HDLRuby/low_samples/rom.yaml +2950 -0
  187. data/lib/HDLRuby/low_samples/shift.yaml +230 -0
  188. data/lib/HDLRuby/low_samples/shift2.yaml +2095 -0
  189. data/lib/HDLRuby/low_samples/simple_instance.yaml +102 -0
  190. data/lib/HDLRuby/low_samples/test_all.sh +43 -0
  191. data/lib/HDLRuby/low_samples/typedef.yaml +115 -0
  192. data/lib/HDLRuby/low_samples/values.yaml +577 -0
  193. data/lib/HDLRuby/low_samples/variable_maker.rb +14 -0
  194. data/lib/HDLRuby/low_samples/vector.yaml +56 -0
  195. data/lib/HDLRuby/low_samples/with_seq.yaml +188 -0
  196. data/lib/HDLRuby/low_samples/yaml2hdr.rb +10 -0
  197. data/lib/HDLRuby/low_samples/yaml2vhd.rb +19 -0
  198. data/lib/HDLRuby/sim/Makefile +19 -0
  199. data/lib/HDLRuby/sim/hruby_sim.h +590 -0
  200. data/lib/HDLRuby/sim/hruby_sim_calc.c +2362 -0
  201. data/lib/HDLRuby/sim/hruby_sim_core.c +589 -0
  202. data/lib/HDLRuby/sim/hruby_sim_list.c +93 -0
  203. data/lib/HDLRuby/sim/hruby_sim_vizualize.c +91 -0
  204. data/lib/HDLRuby/sim/hruby_value_pool.c +64 -0
  205. data/lib/HDLRuby/std/channel.rb +354 -0
  206. data/lib/HDLRuby/std/clocks.rb +165 -0
  207. data/lib/HDLRuby/std/counters.rb +82 -0
  208. data/lib/HDLRuby/std/decoder.rb +214 -0
  209. data/lib/HDLRuby/std/fsm.rb +516 -0
  210. data/lib/HDLRuby/std/pipeline.rb +220 -0
  211. data/lib/HDLRuby/std/reconf.rb +309 -0
  212. data/lib/HDLRuby/test_hruby_bstr.rb +2259 -0
  213. data/lib/HDLRuby/test_hruby_high.rb +594 -0
  214. data/lib/HDLRuby/test_hruby_high_low.rb +99 -0
  215. data/lib/HDLRuby/test_hruby_low.rb +934 -0
  216. data/lib/HDLRuby/v_samples/adder.v +10 -0
  217. data/lib/HDLRuby/v_samples/dff.v +12 -0
  218. data/lib/HDLRuby/v_samples/ram.v +20 -0
  219. data/lib/HDLRuby/v_samples/rom.v +270 -0
  220. data/lib/HDLRuby/version.rb +3 -0
  221. data/lib/HDLRuby.rb +11 -0
  222. data/makedoc +1 -0
  223. data/metadata.yaml +4 -0
  224. metadata +299 -0
@@ -0,0 +1,10 @@
1
+ /* Description of an adder. */
2
+
3
+ module adder(x,y,s);
4
+
5
+ input [7:0] x,y;
6
+ output[7:0] s;
7
+
8
+ assign s = x + y;
9
+
10
+ endmodule
@@ -0,0 +1,12 @@
1
+ /* Description of a D-FF. */
2
+
3
+ module dff(clk,d,q);
4
+
5
+ input clk,d;
6
+ output q;
7
+
8
+ always @ (posedge clk) begin
9
+ q <= d & ~rst;
10
+ end
11
+
12
+ endmodule
@@ -0,0 +1,20 @@
1
+ /* Description of an 8-bit data 16-bit address asynchronous ram. */
2
+
3
+ module ram(en,rwb,addr,data);
4
+
5
+ input en,rwb;
6
+ input[15:0] addr;
7
+ inout [7:0] data;
8
+
9
+ reg [7:0] content[0:65535];
10
+
11
+ assign data = (en & rwb) == 1 ? content[addr] : 8'bzzzzzzzz;
12
+
13
+ always @ (*)
14
+ begin
15
+ if ((en & ~rwb) == 1) begin
16
+ content[addr] <= data;
17
+ end
18
+ end
19
+
20
+ endmodule
@@ -0,0 +1,270 @@
1
+ /* Description of an 8-bit data 8-bit address rom. */
2
+
3
+ module rom(en,rwb,addr,data);
4
+
5
+ input[7:0] addr;
6
+ output reg [7:0] data;
7
+
8
+ always @ (*)
9
+ begin
10
+ case(addr)
11
+ 0: data <= 0;
12
+ 1: data <= 1;
13
+ 2: data <= 2;
14
+ 3: data <= 3;
15
+ 4: data <= 4;
16
+ 5: data <= 5;
17
+ 6: data <= 6;
18
+ 7: data <= 7;
19
+ 8: data <= 8;
20
+ 9: data <= 9;
21
+ 10: data <= 10;
22
+ 11: data <= 11;
23
+ 12: data <= 12;
24
+ 13: data <= 13;
25
+ 14: data <= 14;
26
+ 15: data <= 15;
27
+ 16: data <= 16;
28
+ 17: data <= 17;
29
+ 18: data <= 18;
30
+ 19: data <= 19;
31
+ 20: data <= 20;
32
+ 21: data <= 21;
33
+ 22: data <= 22;
34
+ 23: data <= 23;
35
+ 24: data <= 16;
36
+ 25: data <= 25;
37
+ 26: data <= 26;
38
+ 27: data <= 27;
39
+ 28: data <= 28;
40
+ 29: data <= 29;
41
+ 30: data <= 30;
42
+ 31: data <= 31;
43
+ 32: data <= 32;
44
+ 33: data <= 33;
45
+ 34: data <= 34;
46
+ 35: data <= 35;
47
+ 36: data <= 36;
48
+ 37: data <= 37;
49
+ 38: data <= 38;
50
+ 39: data <= 39;
51
+ 40: data <= 40;
52
+ 41: data <= 41;
53
+ 42: data <= 42;
54
+ 43: data <= 43;
55
+ 44: data <= 44;
56
+ 45: data <= 45;
57
+ 46: data <= 46;
58
+ 47: data <= 47;
59
+ 48: data <= 48;
60
+ 49: data <= 49;
61
+ 50: data <= 50;
62
+ 51: data <= 51;
63
+ 52: data <= 52;
64
+ 53: data <= 53;
65
+ 54: data <= 54;
66
+ 55: data <= 55;
67
+ 56: data <= 48;
68
+ 57: data <= 57;
69
+ 58: data <= 58;
70
+ 59: data <= 59;
71
+ 60: data <= 60;
72
+ 61: data <= 61;
73
+ 62: data <= 62;
74
+ 63: data <= 63;
75
+ 64: data <= 64;
76
+ 65: data <= 65;
77
+ 66: data <= 66;
78
+ 67: data <= 67;
79
+ 68: data <= 68;
80
+ 69: data <= 69;
81
+ 70: data <= 70;
82
+ 71: data <= 71;
83
+ 72: data <= 72;
84
+ 73: data <= 73;
85
+ 74: data <= 74;
86
+ 75: data <= 75;
87
+ 76: data <= 76;
88
+ 77: data <= 77;
89
+ 78: data <= 78;
90
+ 79: data <= 79;
91
+ 80: data <= 80;
92
+ 81: data <= 81;
93
+ 82: data <= 82;
94
+ 83: data <= 83;
95
+ 84: data <= 84;
96
+ 85: data <= 85;
97
+ 86: data <= 86;
98
+ 87: data <= 87;
99
+ 88: data <= 80;
100
+ 89: data <= 89;
101
+ 90: data <= 90;
102
+ 91: data <= 91;
103
+ 92: data <= 92;
104
+ 93: data <= 93;
105
+ 94: data <= 94;
106
+ 95: data <= 95;
107
+ 96: data <= 96;
108
+ 97: data <= 97;
109
+ 98: data <= 98;
110
+ 99: data <= 99;
111
+ 100: data <= 100;
112
+ 101: data <= 101;
113
+ 102: data <= 102;
114
+ 103: data <= 103;
115
+ 104: data <= 104;
116
+ 105: data <= 105;
117
+ 106: data <= 106;
118
+ 107: data <= 107;
119
+ 108: data <= 108;
120
+ 109: data <= 109;
121
+ 110: data <= 110;
122
+ 111: data <= 111;
123
+ 112: data <= 112;
124
+ 113: data <= 113;
125
+ 114: data <= 114;
126
+ 115: data <= 115;
127
+ 116: data <= 116;
128
+ 117: data <= 117;
129
+ 118: data <= 118;
130
+ 119: data <= 119;
131
+ 120: data <= 112;
132
+ 121: data <= 121;
133
+ 122: data <= 122;
134
+ 123: data <= 123;
135
+ 124: data <= 124;
136
+ 125: data <= 125;
137
+ 126: data <= 126;
138
+ 127: data <= 127;
139
+ 128: data <= 128;
140
+ 129: data <= 129;
141
+ 130: data <= 130;
142
+ 131: data <= 131;
143
+ 132: data <= 132;
144
+ 133: data <= 133;
145
+ 134: data <= 134;
146
+ 135: data <= 135;
147
+ 136: data <= 136;
148
+ 137: data <= 137;
149
+ 138: data <= 138;
150
+ 139: data <= 139;
151
+ 140: data <= 140;
152
+ 141: data <= 141;
153
+ 142: data <= 142;
154
+ 143: data <= 143;
155
+ 144: data <= 144;
156
+ 145: data <= 145;
157
+ 146: data <= 146;
158
+ 147: data <= 147;
159
+ 148: data <= 148;
160
+ 149: data <= 149;
161
+ 150: data <= 150;
162
+ 151: data <= 151;
163
+ 152: data <= 144;
164
+ 153: data <= 153;
165
+ 154: data <= 154;
166
+ 155: data <= 155;
167
+ 156: data <= 156;
168
+ 157: data <= 157;
169
+ 158: data <= 158;
170
+ 159: data <= 159;
171
+ 160: data <= 160;
172
+ 161: data <= 161;
173
+ 162: data <= 162;
174
+ 163: data <= 163;
175
+ 164: data <= 164;
176
+ 165: data <= 165;
177
+ 166: data <= 166;
178
+ 167: data <= 167;
179
+ 168: data <= 168;
180
+ 169: data <= 169;
181
+ 170: data <= 170;
182
+ 171: data <= 171;
183
+ 172: data <= 172;
184
+ 173: data <= 173;
185
+ 174: data <= 174;
186
+ 175: data <= 175;
187
+ 176: data <= 176;
188
+ 177: data <= 177;
189
+ 178: data <= 178;
190
+ 179: data <= 179;
191
+ 180: data <= 180;
192
+ 181: data <= 181;
193
+ 182: data <= 182;
194
+ 183: data <= 183;
195
+ 184: data <= 176;
196
+ 185: data <= 185;
197
+ 186: data <= 186;
198
+ 187: data <= 187;
199
+ 188: data <= 188;
200
+ 189: data <= 189;
201
+ 190: data <= 190;
202
+ 191: data <= 191;
203
+ 192: data <= 192;
204
+ 193: data <= 193;
205
+ 194: data <= 194;
206
+ 195: data <= 195;
207
+ 196: data <= 196;
208
+ 197: data <= 197;
209
+ 198: data <= 198;
210
+ 199: data <= 199;
211
+ 200: data <= 200;
212
+ 201: data <= 201;
213
+ 202: data <= 202;
214
+ 203: data <= 203;
215
+ 204: data <= 204;
216
+ 205: data <= 205;
217
+ 206: data <= 206;
218
+ 207: data <= 207;
219
+ 208: data <= 208;
220
+ 209: data <= 209;
221
+ 210: data <= 210;
222
+ 211: data <= 211;
223
+ 212: data <= 212;
224
+ 213: data <= 213;
225
+ 214: data <= 214;
226
+ 215: data <= 215;
227
+ 216: data <= 208;
228
+ 217: data <= 217;
229
+ 218: data <= 218;
230
+ 219: data <= 219;
231
+ 220: data <= 220;
232
+ 221: data <= 221;
233
+ 222: data <= 222;
234
+ 223: data <= 223;
235
+ 224: data <= 224;
236
+ 225: data <= 225;
237
+ 226: data <= 226;
238
+ 227: data <= 227;
239
+ 228: data <= 228;
240
+ 229: data <= 229;
241
+ 230: data <= 230;
242
+ 231: data <= 231;
243
+ 232: data <= 232;
244
+ 233: data <= 233;
245
+ 234: data <= 234;
246
+ 235: data <= 235;
247
+ 236: data <= 236;
248
+ 237: data <= 237;
249
+ 238: data <= 238;
250
+ 239: data <= 239;
251
+ 240: data <= 240;
252
+ 241: data <= 241;
253
+ 242: data <= 242;
254
+ 243: data <= 243;
255
+ 244: data <= 244;
256
+ 245: data <= 245;
257
+ 246: data <= 246;
258
+ 247: data <= 247;
259
+ 248: data <= 240;
260
+ 249: data <= 249;
261
+ 250: data <= 250;
262
+ 251: data <= 251;
263
+ 252: data <= 252;
264
+ 253: data <= 253;
265
+ 254: data <= 254;
266
+ 255: data <= 255;
267
+ endcase
268
+ end
269
+
270
+ endmodule
@@ -0,0 +1,3 @@
1
+ module HDLRuby
2
+ VERSION = "2.0.8"
3
+ end
data/lib/HDLRuby.rb ADDED
@@ -0,0 +1,11 @@
1
+ require "HDLRuby/version"
2
+ require "HDLRuby/hruby_error"
3
+ require "HDLRuby/hruby_high"
4
+ require "HDLRuby/hruby_serializer"
5
+
6
+ ##
7
+ # Module including the classes implementing the high-level and low-level
8
+ # libraries for describing digital hardware.
9
+ ########################################################################
10
+ module HDLRuby
11
+ end
data/makedoc ADDED
@@ -0,0 +1 @@
1
+ pandoc --toc --number-sections README.md --metadata-file=metadata.yaml -o README.pdf
data/metadata.yaml ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ title: 'HDLRuby user manual'
3
+ author:
4
+ - Lovic Gauthier
metadata ADDED
@@ -0,0 +1,299 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: HDLRuby
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.8
5
+ platform: ruby
6
+ authors:
7
+ - Lovic Gauthier
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-12-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.1
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ description: Hardware Ruby is a library for describing and simulating digital electronic
42
+ systems. With this library it will possible to describe hardware using all the features
43
+ of the Ruby language, e.g., object orientation, duck tping, closure. This library
44
+ is also usable through irb for interactive design and simulation.
45
+ email:
46
+ - lovic@ariake-nct.ac.jp
47
+ executables:
48
+ - hdrcc
49
+ extensions: []
50
+ extra_rdoc_files: []
51
+ files:
52
+ - ".gitignore"
53
+ - ".travis.yml"
54
+ - ".yardopts"
55
+ - Gemfile
56
+ - HDLRuby.gemspec
57
+ - LICENSE.txt
58
+ - README.md
59
+ - README.pdf
60
+ - Rakefile
61
+ - bin/console
62
+ - bin/setup
63
+ - exe/hdrcc
64
+ - lib/HDLRuby.rb
65
+ - lib/HDLRuby/alcc.rb
66
+ - lib/HDLRuby/backend/hruby_allocator.rb
67
+ - lib/HDLRuby/backend/hruby_c_allocator.rb
68
+ - lib/HDLRuby/hdr_samples/adder.rb
69
+ - lib/HDLRuby/hdr_samples/adder_assign_error.rb
70
+ - lib/HDLRuby/hdr_samples/adder_bench.rb
71
+ - lib/HDLRuby/hdr_samples/adder_gen.rb
72
+ - lib/HDLRuby/hdr_samples/adder_nodef_error.rb
73
+ - lib/HDLRuby/hdr_samples/addsub.rb
74
+ - lib/HDLRuby/hdr_samples/addsubz.rb
75
+ - lib/HDLRuby/hdr_samples/alu.rb
76
+ - lib/HDLRuby/hdr_samples/calculator.rb
77
+ - lib/HDLRuby/hdr_samples/counter_bench.rb
78
+ - lib/HDLRuby/hdr_samples/dff.rb
79
+ - lib/HDLRuby/hdr_samples/dff_bench.rb
80
+ - lib/HDLRuby/hdr_samples/dff_counter.rb
81
+ - lib/HDLRuby/hdr_samples/include.rb
82
+ - lib/HDLRuby/hdr_samples/instance_open.rb
83
+ - lib/HDLRuby/hdr_samples/mei8.rb
84
+ - lib/HDLRuby/hdr_samples/mei8_bench.rb
85
+ - lib/HDLRuby/hdr_samples/multer_gen.rb
86
+ - lib/HDLRuby/hdr_samples/multer_seq.rb
87
+ - lib/HDLRuby/hdr_samples/neural/a.rb
88
+ - lib/HDLRuby/hdr_samples/neural/a_sub.rb
89
+ - lib/HDLRuby/hdr_samples/neural/bw.rb
90
+ - lib/HDLRuby/hdr_samples/neural/counter.rb
91
+ - lib/HDLRuby/hdr_samples/neural/dadz.rb
92
+ - lib/HDLRuby/hdr_samples/neural/dadz_sub.rb
93
+ - lib/HDLRuby/hdr_samples/neural/forward.rb
94
+ - lib/HDLRuby/hdr_samples/neural/forward_sub.rb
95
+ - lib/HDLRuby/hdr_samples/neural/forward_sub_rand.rb
96
+ - lib/HDLRuby/hdr_samples/neural/forward_sub_rand_typedef.rb
97
+ - lib/HDLRuby/hdr_samples/neural/mem.rb
98
+ - lib/HDLRuby/hdr_samples/neural/random.rb
99
+ - lib/HDLRuby/hdr_samples/neural/selector.rb
100
+ - lib/HDLRuby/hdr_samples/neural/sigmoid.rb
101
+ - lib/HDLRuby/hdr_samples/neural/z.rb
102
+ - lib/HDLRuby/hdr_samples/prog.obj
103
+ - lib/HDLRuby/hdr_samples/ram.rb
104
+ - lib/HDLRuby/hdr_samples/register_with_code_bench.rb
105
+ - lib/HDLRuby/hdr_samples/rom.rb
106
+ - lib/HDLRuby/hdr_samples/struct.rb
107
+ - lib/HDLRuby/hdr_samples/sumprod.rb
108
+ - lib/HDLRuby/hdr_samples/sw_encrypt_bench.rb
109
+ - lib/HDLRuby/hdr_samples/sw_encrypt_cpu_bench.rb
110
+ - lib/HDLRuby/hdr_samples/sw_encrypt_cpusim_bench.rb
111
+ - lib/HDLRuby/hdr_samples/system_open.rb
112
+ - lib/HDLRuby/hdr_samples/tuple.rb
113
+ - lib/HDLRuby/hdr_samples/with_channel.rb
114
+ - lib/HDLRuby/hdr_samples/with_class.rb
115
+ - lib/HDLRuby/hdr_samples/with_decoder.rb
116
+ - lib/HDLRuby/hdr_samples/with_fsm.rb
117
+ - lib/HDLRuby/hdr_samples/with_reconf.rb
118
+ - lib/HDLRuby/hdrcc.rb
119
+ - lib/HDLRuby/high_samples/_adder_fault.rb
120
+ - lib/HDLRuby/high_samples/_generic_transmission2.rb
121
+ - lib/HDLRuby/high_samples/adder.rb
122
+ - lib/HDLRuby/high_samples/adder_common_errors.rb
123
+ - lib/HDLRuby/high_samples/addsub.rb
124
+ - lib/HDLRuby/high_samples/addsubz.rb
125
+ - lib/HDLRuby/high_samples/after.rb
126
+ - lib/HDLRuby/high_samples/all_signals.rb
127
+ - lib/HDLRuby/high_samples/alu.rb
128
+ - lib/HDLRuby/high_samples/anonymous.rb
129
+ - lib/HDLRuby/high_samples/before.rb
130
+ - lib/HDLRuby/high_samples/blockblock.rb
131
+ - lib/HDLRuby/high_samples/bugs/dadz.rb
132
+ - lib/HDLRuby/high_samples/bugs/misample_instan.rb
133
+ - lib/HDLRuby/high_samples/bugs/misample_updown.rb
134
+ - lib/HDLRuby/high_samples/bugs/sample_add.rb
135
+ - lib/HDLRuby/high_samples/bugs/sample_barrel.rb
136
+ - lib/HDLRuby/high_samples/bugs/sample_daice.rb
137
+ - lib/HDLRuby/high_samples/bugs/sample_kumiawase.rb
138
+ - lib/HDLRuby/high_samples/bugs/sample_multi.rb
139
+ - lib/HDLRuby/high_samples/bugs/sample_sub.rb
140
+ - lib/HDLRuby/high_samples/bugs/z2.rb
141
+ - lib/HDLRuby/high_samples/case.rb
142
+ - lib/HDLRuby/high_samples/case2.rb
143
+ - lib/HDLRuby/high_samples/change.rb
144
+ - lib/HDLRuby/high_samples/clocks.rb
145
+ - lib/HDLRuby/high_samples/comparer.rb
146
+ - lib/HDLRuby/high_samples/conditionals.rb
147
+ - lib/HDLRuby/high_samples/dff.rb
148
+ - lib/HDLRuby/high_samples/each.rb
149
+ - lib/HDLRuby/high_samples/exporter.rb
150
+ - lib/HDLRuby/high_samples/functions.rb
151
+ - lib/HDLRuby/high_samples/if_seq.rb
152
+ - lib/HDLRuby/high_samples/inherit_as_dff.rb
153
+ - lib/HDLRuby/high_samples/inherit_dff.rb
154
+ - lib/HDLRuby/high_samples/instance.rb
155
+ - lib/HDLRuby/high_samples/memory.rb
156
+ - lib/HDLRuby/high_samples/multi_file.rb
157
+ - lib/HDLRuby/high_samples/overload.rb
158
+ - lib/HDLRuby/high_samples/paper_after.rb
159
+ - lib/HDLRuby/high_samples/ram.rb
160
+ - lib/HDLRuby/high_samples/registers.rb
161
+ - lib/HDLRuby/high_samples/rom.rb
162
+ - lib/HDLRuby/high_samples/scopeblockname.rb
163
+ - lib/HDLRuby/high_samples/scopescope.rb
164
+ - lib/HDLRuby/high_samples/shift.rb
165
+ - lib/HDLRuby/high_samples/shift2.rb
166
+ - lib/HDLRuby/high_samples/simple_instance.rb
167
+ - lib/HDLRuby/high_samples/test_all.sh
168
+ - lib/HDLRuby/high_samples/typedef.rb
169
+ - lib/HDLRuby/high_samples/values.rb
170
+ - lib/HDLRuby/high_samples/vector.rb
171
+ - lib/HDLRuby/high_samples/with_decoder.rb
172
+ - lib/HDLRuby/high_samples/with_fsm.rb
173
+ - lib/HDLRuby/high_samples/with_pipe.rb
174
+ - lib/HDLRuby/high_samples/with_seq.rb
175
+ - lib/HDLRuby/hruby_bstr.rb
176
+ - lib/HDLRuby/hruby_check.rb
177
+ - lib/HDLRuby/hruby_db.rb
178
+ - lib/HDLRuby/hruby_error.rb
179
+ - lib/HDLRuby/hruby_high.rb
180
+ - lib/HDLRuby/hruby_low.rb
181
+ - lib/HDLRuby/hruby_low2c.rb
182
+ - lib/HDLRuby/hruby_low2high.rb
183
+ - lib/HDLRuby/hruby_low2seq.rb
184
+ - lib/HDLRuby/hruby_low2sym.rb
185
+ - lib/HDLRuby/hruby_low2vhd.rb
186
+ - lib/HDLRuby/hruby_low_bool2select.rb
187
+ - lib/HDLRuby/hruby_low_cleanup.rb
188
+ - lib/HDLRuby/hruby_low_fix_types.rb
189
+ - lib/HDLRuby/hruby_low_mutable.rb
190
+ - lib/HDLRuby/hruby_low_resolve.rb
191
+ - lib/HDLRuby/hruby_low_skeleton.rb
192
+ - lib/HDLRuby/hruby_low_with_bool.rb
193
+ - lib/HDLRuby/hruby_low_with_port.rb
194
+ - lib/HDLRuby/hruby_low_with_var.rb
195
+ - lib/HDLRuby/hruby_low_without_bit2vector.rb
196
+ - lib/HDLRuby/hruby_low_without_concat.rb
197
+ - lib/HDLRuby/hruby_low_without_connection.rb
198
+ - lib/HDLRuby/hruby_low_without_namespace.rb
199
+ - lib/HDLRuby/hruby_low_without_outread.rb
200
+ - lib/HDLRuby/hruby_low_without_select.rb
201
+ - lib/HDLRuby/hruby_serializer.rb
202
+ - lib/HDLRuby/hruby_tools.rb
203
+ - lib/HDLRuby/hruby_types.rb
204
+ - lib/HDLRuby/hruby_values.rb
205
+ - lib/HDLRuby/hruby_verilog.rb
206
+ - lib/HDLRuby/hruby_verilog_name.rb
207
+ - lib/HDLRuby/low_samples/adder.yaml
208
+ - lib/HDLRuby/low_samples/after.yaml
209
+ - lib/HDLRuby/low_samples/before.yaml
210
+ - lib/HDLRuby/low_samples/blockblock.yaml
211
+ - lib/HDLRuby/low_samples/bugs/sample_add.yaml
212
+ - lib/HDLRuby/low_samples/bugs/sample_daice.yaml
213
+ - lib/HDLRuby/low_samples/bugs/sample_kumiawase.yaml
214
+ - lib/HDLRuby/low_samples/bugs/sample_sub.yaml
215
+ - lib/HDLRuby/low_samples/bugs/seqpar.yaml
216
+ - lib/HDLRuby/low_samples/case.yaml
217
+ - lib/HDLRuby/low_samples/change.yaml
218
+ - lib/HDLRuby/low_samples/clocks.yaml
219
+ - lib/HDLRuby/low_samples/cloner.rb
220
+ - lib/HDLRuby/low_samples/comparer.yaml
221
+ - lib/HDLRuby/low_samples/conditionals.yaml
222
+ - lib/HDLRuby/low_samples/dff.yaml
223
+ - lib/HDLRuby/low_samples/each.yaml
224
+ - lib/HDLRuby/low_samples/exporter.yaml
225
+ - lib/HDLRuby/low_samples/functions.yaml
226
+ - lib/HDLRuby/low_samples/generic_transmission.yaml
227
+ - lib/HDLRuby/low_samples/inherit_as_dff.yaml
228
+ - lib/HDLRuby/low_samples/inherit_dff.yaml
229
+ - lib/HDLRuby/low_samples/load_yaml.rb
230
+ - lib/HDLRuby/low_samples/memory.yaml
231
+ - lib/HDLRuby/low_samples/namespace_extractor.rb
232
+ - lib/HDLRuby/low_samples/overload.yaml
233
+ - lib/HDLRuby/low_samples/paper_after.yaml
234
+ - lib/HDLRuby/low_samples/port_maker.rb
235
+ - lib/HDLRuby/low_samples/ram.yaml
236
+ - lib/HDLRuby/low_samples/registers.yaml
237
+ - lib/HDLRuby/low_samples/rom.yaml
238
+ - lib/HDLRuby/low_samples/shift.yaml
239
+ - lib/HDLRuby/low_samples/shift2.yaml
240
+ - lib/HDLRuby/low_samples/simple_instance.yaml
241
+ - lib/HDLRuby/low_samples/test_all.sh
242
+ - lib/HDLRuby/low_samples/typedef.yaml
243
+ - lib/HDLRuby/low_samples/values.yaml
244
+ - lib/HDLRuby/low_samples/variable_maker.rb
245
+ - lib/HDLRuby/low_samples/vector.yaml
246
+ - lib/HDLRuby/low_samples/with_seq.yaml
247
+ - lib/HDLRuby/low_samples/yaml2hdr.rb
248
+ - lib/HDLRuby/low_samples/yaml2vhd.rb
249
+ - lib/HDLRuby/sim/Makefile
250
+ - lib/HDLRuby/sim/hruby_sim.h
251
+ - lib/HDLRuby/sim/hruby_sim_calc.c
252
+ - lib/HDLRuby/sim/hruby_sim_core.c
253
+ - lib/HDLRuby/sim/hruby_sim_list.c
254
+ - lib/HDLRuby/sim/hruby_sim_vizualize.c
255
+ - lib/HDLRuby/sim/hruby_value_pool.c
256
+ - lib/HDLRuby/std/channel.rb
257
+ - lib/HDLRuby/std/clocks.rb
258
+ - lib/HDLRuby/std/counters.rb
259
+ - lib/HDLRuby/std/decoder.rb
260
+ - lib/HDLRuby/std/fsm.rb
261
+ - lib/HDLRuby/std/pipeline.rb
262
+ - lib/HDLRuby/std/reconf.rb
263
+ - lib/HDLRuby/test_hruby_bstr.rb
264
+ - lib/HDLRuby/test_hruby_high.rb
265
+ - lib/HDLRuby/test_hruby_high_low.rb
266
+ - lib/HDLRuby/test_hruby_low.rb
267
+ - lib/HDLRuby/v_samples/adder.v
268
+ - lib/HDLRuby/v_samples/dff.v
269
+ - lib/HDLRuby/v_samples/ram.v
270
+ - lib/HDLRuby/v_samples/rom.v
271
+ - lib/HDLRuby/version.rb
272
+ - makedoc
273
+ - metadata.yaml
274
+ homepage: https://github.com/civol
275
+ licenses:
276
+ - MIT
277
+ metadata: {}
278
+ post_install_message:
279
+ rdoc_options: []
280
+ require_paths:
281
+ - lib
282
+ required_ruby_version: !ruby/object:Gem::Requirement
283
+ requirements:
284
+ - - ">="
285
+ - !ruby/object:Gem::Version
286
+ version: '0'
287
+ required_rubygems_version: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - ">="
290
+ - !ruby/object:Gem::Version
291
+ version: '0'
292
+ requirements: []
293
+ rubyforge_project:
294
+ rubygems_version: 2.5.2.3
295
+ signing_key:
296
+ specification_version: 4
297
+ summary: Hardware Ruby is a library for describing and simulating digital electronic
298
+ systems.
299
+ test_files: []