HDLRuby 3.0.0 → 3.2.0

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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/HDLRuby.gemspec +1 -0
  3. data/README.md +149 -79
  4. data/ext/hruby_sim/hruby_rcsim_build.c +2 -0
  5. data/ext/hruby_sim/hruby_sim_calc.c +33 -6
  6. data/ext/hruby_sim/hruby_sim_tree_calc.c +111 -22
  7. data/lib/HDLRuby/hdr_samples/comparison_bench.rb +2 -2
  8. data/lib/HDLRuby/hdr_samples/constant_in_function.rb +2 -1
  9. data/lib/HDLRuby/hdr_samples/counter_bench.rb +1 -1
  10. data/lib/HDLRuby/hdr_samples/counter_dff_bench.rb +8 -7
  11. data/lib/HDLRuby/hdr_samples/dff_properties.rb +2 -0
  12. data/lib/HDLRuby/hdr_samples/enum_as_param.rb +52 -0
  13. data/lib/HDLRuby/hdr_samples/linear_test.rb +2 -0
  14. data/lib/HDLRuby/hdr_samples/logic_bench.rb +6 -0
  15. data/lib/HDLRuby/hdr_samples/mei8.rb +6 -6
  16. data/lib/HDLRuby/hdr_samples/mei8_bench.rb +6 -6
  17. data/lib/HDLRuby/hdr_samples/memory_test.rb +2 -0
  18. data/lib/HDLRuby/hdr_samples/named_sub.rb +9 -5
  19. data/lib/HDLRuby/hdr_samples/ram.rb +7 -6
  20. data/lib/HDLRuby/hdr_samples/ruby_fir_hw.rb +2 -0
  21. data/lib/HDLRuby/hdr_samples/struct.rb +15 -3
  22. data/lib/HDLRuby/hdr_samples/with_bram.rb +1 -1
  23. data/lib/HDLRuby/hdr_samples/with_bram_frame_stack.rb +1 -1
  24. data/lib/HDLRuby/hdr_samples/with_bram_stack.rb +1 -1
  25. data/lib/HDLRuby/hdr_samples/with_channel.rb +2 -0
  26. data/lib/HDLRuby/hdr_samples/with_channel_other.rb +2 -0
  27. data/lib/HDLRuby/hdr_samples/with_class.rb +3 -1
  28. data/lib/HDLRuby/hdr_samples/with_connector.rb +2 -0
  29. data/lib/HDLRuby/hdr_samples/with_connector_memory.rb +2 -0
  30. data/lib/HDLRuby/hdr_samples/with_fixpoint.rb +6 -0
  31. data/lib/HDLRuby/hdr_samples/with_fixpoint_adv.rb +73 -0
  32. data/lib/HDLRuby/hdr_samples/with_leftright.rb +1 -1
  33. data/lib/HDLRuby/hdr_samples/with_ref_expr.rb +30 -0
  34. data/lib/HDLRuby/hdr_samples/with_sequencer.rb +49 -37
  35. data/lib/HDLRuby/hdr_samples/with_sequencer_channel.rb +58 -0
  36. data/lib/HDLRuby/hdr_samples/with_sequencer_enumerable.rb +113 -69
  37. data/lib/HDLRuby/hdr_samples/with_sequencer_enumerator.rb +28 -14
  38. data/lib/HDLRuby/hdr_samples/with_sequencer_func.rb +63 -0
  39. data/lib/HDLRuby/hdr_samples/with_sequencer_sync.rb +2 -1
  40. data/lib/HDLRuby/hdrcc.rb +13 -1
  41. data/lib/HDLRuby/hruby_high.rb +105 -31
  42. data/lib/HDLRuby/hruby_low.rb +127 -3
  43. data/lib/HDLRuby/hruby_low2programs.rb +47 -0
  44. data/lib/HDLRuby/hruby_low_resolve.rb +3 -2
  45. data/lib/HDLRuby/hruby_low_without_namespace.rb +133 -5
  46. data/lib/HDLRuby/hruby_low_without_subsignals.rb +51 -12
  47. data/lib/HDLRuby/hruby_rcsim.rb +24 -1
  48. data/lib/HDLRuby/hruby_serializer.rb +2 -1
  49. data/lib/HDLRuby/hruby_types.rb +5 -5
  50. data/lib/HDLRuby/hruby_values.rb +7 -7
  51. data/lib/HDLRuby/hruby_verilog.rb +193 -35
  52. data/lib/HDLRuby/hruby_verilog_name.rb +35 -42
  53. data/lib/HDLRuby/std/fixpoint.rb +2 -2
  54. data/lib/HDLRuby/std/fsm.rb +10 -1
  55. data/lib/HDLRuby/std/function_generator.rb +1 -1
  56. data/lib/HDLRuby/std/linear.rb +7 -7
  57. data/lib/HDLRuby/std/sequencer.rb +538 -60
  58. data/lib/HDLRuby/std/sequencer_channel.rb +90 -0
  59. data/lib/HDLRuby/std/sequencer_func.rb +546 -0
  60. data/lib/HDLRuby/std/std.rb +2 -0
  61. data/lib/HDLRuby/version.rb +1 -1
  62. data/tuto/tutorial_sw.md +267 -61
  63. metadata +25 -4
  64. data/lib/HDLRuby/hdr_samples/with_register_stack.rb +0 -150
@@ -1,150 +0,0 @@
1
- require 'soft/stacks.rb'
2
-
3
- include HDLRuby::High::Soft
4
-
5
-
6
- # A system testing the bram-based stack.
7
- system :register_stack_test do
8
-
9
- widthA = 3
10
- size = 2**widthA
11
- widthD = 8
12
-
13
-
14
- input :clk,:rst,:ce
15
- [2].inner :cmd
16
- [widthD].inner :din,:dout
17
- inner :empty, :full
18
- douts = size.times.map { |i| [widthD].inner :"dout#{i}" }
19
-
20
- register_stack(widthA,widthD,size).(:stackI).(clk,rst,ce,cmd,din,dout,empty,full,*douts)
21
-
22
- [widthD].inner :count # Additional counter for the test.
23
-
24
- timed do
25
- clk <= 0
26
- ce <= 0
27
- rst <= 0
28
- cmd <= READ
29
- din <= 0
30
- !10.ns
31
- clk <= 1
32
- !10.ns
33
- clk <= 0
34
- rst <= 1
35
- !10.ns
36
- clk <= 1
37
- !10.ns
38
- clk <= 0
39
- rst <= 0
40
- ce <= 1
41
- din <= 1
42
- !10.ns
43
- clk <= 1
44
- repeat(9) do
45
- !10.ns
46
- clk <= 0
47
- cmd <= PUSH
48
- din <= din + 1
49
- !10.ns
50
- clk <= 1
51
- end
52
- !10.ns
53
- clk <= 0
54
- !10.ns
55
- clk <= 1
56
- din <= -1
57
- repeat(8) do
58
- !10.ns
59
- clk <= 0
60
- cmd <= READ
61
- din <= din + 1
62
- !10.ns
63
- clk <= 1
64
- end
65
- !10.ns
66
- clk <= 0
67
- !10.ns
68
- clk <= 1
69
- count <= 0
70
- repeat(4) do
71
- !10.ns
72
- clk <= 0
73
- din <= 1
74
- cmd <= POP
75
- !10.ns
76
- clk <= 1
77
- !10.ns
78
- clk <= 0
79
- count <= count + 1
80
- din <= count
81
- cmd <= PUSH
82
- !10.ns
83
- clk <= 1
84
- end
85
- !10.ns
86
- clk <= 0
87
- !10.ns
88
- clk <= 1
89
- repeat(9) do
90
- !10.ns
91
- clk <= 0
92
- din <= 1
93
- cmd <= POP
94
- !10.ns
95
- clk <= 1
96
- end
97
- !10.ns
98
- clk <= 0
99
- din <= _b8hAA
100
- cmd <= PUSH
101
- !10.ns
102
- clk <= 1
103
- !10.ns
104
- clk <= 0
105
- din <= 7
106
- cmd <= WRITE
107
- !10.ns
108
- clk <= 1
109
- din <= -1
110
- repeat(8) do
111
- !10.ns
112
- clk <= 0
113
- cmd <= WRITE
114
- din <= din + 1
115
- !10.ns
116
- clk <= 1
117
- end
118
- !10.ns
119
- clk <= 0
120
- din <= size-1
121
- cmd <= READ
122
- !10.ns
123
- clk <= 1
124
- !10.ns
125
- clk <= 0
126
- din <= -3
127
- cmd <= POP
128
- !10.ns
129
- clk <= 1
130
- !10.ns
131
- clk <= 0
132
- din <= 31
133
- cmd <= PUSH
134
- !10.ns
135
- clk <= 1
136
- !10.ns
137
- clk <= 0
138
- din <= 3
139
- cmd <= POP
140
- !10.ns
141
- clk <= 1
142
- !10.ns
143
- clk <= 0
144
- din <= size-1
145
- cmd <= READ
146
- !10.ns
147
- clk <= 1
148
- end
149
-
150
- end