rvvm 1.1.0 → 1.2.2

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.
data/doc/Rvvm.html ADDED
@@ -0,0 +1,2258 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Module: Rvvm
8
+
9
+ &mdash; Documentation by YARD 0.9.37
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "Rvvm";
19
+ relpath = '';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="_index.html">Index (R)</a> &raquo;
40
+
41
+
42
+ <span class="title">Rvvm</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Module: Rvvm
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+ <dl>
80
+ <dt>Defined in:</dt>
81
+ <dd>lib/rvvm.rb<span class="defines">,<br />
82
+ lib/rvvm/version.rb</span>
83
+ </dd>
84
+ </dl>
85
+
86
+ </div>
87
+
88
+ <h2>Overview</h2><div class="docstring">
89
+ <div class="discussion">
90
+ <p>Module holding current rvvm version.</p>
91
+
92
+
93
+ </div>
94
+ </div>
95
+ <div class="tags">
96
+
97
+
98
+ </div><h2>Defined Under Namespace</h2>
99
+ <p class="children">
100
+
101
+
102
+
103
+
104
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Rvvm/Error.html" title="Rvvm::Error (class)">Error</a></span>
105
+
106
+
107
+ </p>
108
+
109
+
110
+ <h2>
111
+ Constant Summary
112
+ <small><a href="#" class="constants_summary_toggle">collapse</a></small>
113
+ </h2>
114
+
115
+ <dl class="constants">
116
+
117
+ <dt id="VERSION-constant" class="">VERSION =
118
+ <div class="docstring">
119
+ <div class="discussion">
120
+ <p>Current rvvm module version.</p>
121
+
122
+
123
+ </div>
124
+ </div>
125
+ <div class="tags">
126
+
127
+
128
+ </div>
129
+ </dt>
130
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1.2.2</span><span class='tstring_end'>&quot;</span></span></pre></dd>
131
+
132
+ </dl>
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+ <h2>
143
+ Class Method Summary
144
+ <small><a href="#" class="summary_toggle">collapse</a></small>
145
+ </h2>
146
+
147
+ <ul class="summary">
148
+
149
+ <li class="public ">
150
+ <span class="summary_signature">
151
+
152
+ <a href="#check_args-class_method" title="check_args (class method)">.<strong>check_args</strong> &#x21d2; void </a>
153
+
154
+
155
+
156
+ </span>
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+ <span class="summary_desc"><div class='inline'><p>Simple argument check.</p>
167
+ </div></span>
168
+
169
+ </li>
170
+
171
+
172
+ <li class="public ">
173
+ <span class="summary_signature">
174
+
175
+ <a href="#compile-class_method" title="compile (class method)">.<strong>compile</strong> &#x21d2; void </a>
176
+
177
+
178
+
179
+ </span>
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+ <span class="summary_desc"><div class='inline'><p>Compiles project SystemVerilog sources using xvlog.</p>
190
+ </div></span>
191
+
192
+ </li>
193
+
194
+
195
+ <li class="public ">
196
+ <span class="summary_signature">
197
+
198
+ <a href="#cov_report-class_method" title="cov_report (class method)">.<strong>cov_report</strong> &#x21d2; void </a>
199
+
200
+
201
+
202
+ </span>
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+ <span class="summary_desc"><div class='inline'><p>Opens last generated functional coverage report in a HTML dashboard.</p>
213
+ </div></span>
214
+
215
+ </li>
216
+
217
+
218
+ <li class="public ">
219
+ <span class="summary_signature">
220
+
221
+ <a href="#coverage-class_method" title="coverage (class method)">.<strong>coverage</strong> &#x21d2; void </a>
222
+
223
+
224
+
225
+ </span>
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+ <span class="summary_desc"><div class='inline'><p>Generates UVM test functional coverage report using xcrg.</p>
236
+ </div></span>
237
+
238
+ </li>
239
+
240
+
241
+ <li class="public ">
242
+ <span class="summary_signature">
243
+
244
+ <a href="#create_module-class_method" title="create_module (class method)">.<strong>create_module</strong>(name, type) &#x21d2; void </a>
245
+
246
+
247
+
248
+ </span>
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+ <span class="summary_desc"><div class='inline'><p>Generates a SystemVerilog module/interface template.</p>
259
+ </div></span>
260
+
261
+ </li>
262
+
263
+
264
+ <li class="public ">
265
+ <span class="summary_signature">
266
+
267
+ <a href="#create_new_project-class_method" title="create_new_project (class method)">.<strong>create_new_project</strong>(name) &#x21d2; void </a>
268
+
269
+
270
+
271
+ </span>
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+ <span class="summary_desc"><div class='inline'><p>Creates a new RVvM project template in pwd with a given name.</p>
282
+ </div></span>
283
+
284
+ </li>
285
+
286
+
287
+ <li class="public ">
288
+ <span class="summary_signature">
289
+
290
+ <a href="#create_pkg-class_method" title="create_pkg (class method)">.<strong>create_pkg</strong>(name) &#x21d2; void </a>
291
+
292
+
293
+
294
+ </span>
295
+
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+ <span class="summary_desc"><div class='inline'><p>Generates a SystemVerilog package template.</p>
305
+ </div></span>
306
+
307
+ </li>
308
+
309
+
310
+ <li class="public ">
311
+ <span class="summary_signature">
312
+
313
+ <a href="#create_svfile-class_method" title="create_svfile (class method)">.<strong>create_svfile</strong>(name) &#x21d2; void </a>
314
+
315
+
316
+
317
+ </span>
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+
327
+ <span class="summary_desc"><div class='inline'><p>Generates a generic SystemVerilog template file.</p>
328
+ </div></span>
329
+
330
+ </li>
331
+
332
+
333
+ <li class="public ">
334
+ <span class="summary_signature">
335
+
336
+ <a href="#dpi_c-class_method" title="dpi_c (class method)">.<strong>dpi_c</strong> &#x21d2; void </a>
337
+
338
+
339
+
340
+ </span>
341
+
342
+
343
+
344
+
345
+
346
+
347
+
348
+
349
+
350
+ <span class="summary_desc"><div class='inline'><p>Compiles C/C++ sources into a shared library to use during elaboration and simulation using DPI-C.</p>
351
+ </div></span>
352
+
353
+ </li>
354
+
355
+
356
+ <li class="public ">
357
+ <span class="summary_signature">
358
+
359
+ <a href="#elaborate-class_method" title="elaborate (class method)">.<strong>elaborate</strong> &#x21d2; void </a>
360
+
361
+
362
+
363
+ </span>
364
+
365
+
366
+
367
+
368
+
369
+
370
+
371
+
372
+
373
+ <span class="summary_desc"><div class='inline'><p>Elaborates project into a testbench snapshot using xelab.</p>
374
+ </div></span>
375
+
376
+ </li>
377
+
378
+
379
+ <li class="public ">
380
+ <span class="summary_signature">
381
+
382
+ <a href="#execute-class_method" title="execute (class method)">.<strong>execute</strong>(tag, command) &#x21d2; void </a>
383
+
384
+
385
+
386
+ </span>
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+ <span class="summary_desc"><div class='inline'><p>Shell command with debug printout.</p>
397
+ </div></span>
398
+
399
+ </li>
400
+
401
+
402
+ <li class="public ">
403
+ <span class="summary_signature">
404
+
405
+ <a href="#gui-class_method" title="gui (class method)">.<strong>gui</strong> &#x21d2; void </a>
406
+
407
+
408
+
409
+ </span>
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+ <span class="summary_desc"><div class='inline'><p>Opens last generated waveform trace dump to inspect in Vivado GUI.</p>
420
+ </div></span>
421
+
422
+ </li>
423
+
424
+
425
+ <li class="public ">
426
+ <span class="summary_signature">
427
+
428
+ <a href="#handle_args-class_method" title="handle_args (class method)">.<strong>handle_args</strong> &#x21d2; void </a>
429
+
430
+
431
+
432
+ </span>
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+
442
+ <span class="summary_desc"><div class='inline'><p>Argument collision handling and additional settings for batch simulation and dpi compilation.</p>
443
+ </div></span>
444
+
445
+ </li>
446
+
447
+
448
+ <li class="public ">
449
+ <span class="summary_signature">
450
+
451
+ <a href="#load_config-class_method" title="load_config (class method)">.<strong>load_config</strong> &#x21d2; void </a>
452
+
453
+
454
+
455
+ </span>
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+ <span class="summary_desc"><div class='inline'><p>Loads and parses rvvmconf.json config file from an RVvM project rvvm directory.</p>
466
+ </div></span>
467
+
468
+ </li>
469
+
470
+
471
+ <li class="public ">
472
+ <span class="summary_signature">
473
+
474
+ <a href="#prj_top-class_method" title="prj_top (class method)">.<strong>prj_top</strong> &#x21d2; void </a>
475
+
476
+
477
+
478
+ </span>
479
+
480
+
481
+
482
+
483
+
484
+
485
+
486
+
487
+
488
+ <span class="summary_desc"><div class='inline'><p>Navigates to project top (rvvm directory of the RVvM project).</p>
489
+ </div></span>
490
+
491
+ </li>
492
+
493
+
494
+ <li class="public ">
495
+ <span class="summary_signature">
496
+
497
+ <a href="#run-class_method" title="run (class method)">.<strong>run</strong> &#x21d2; void </a>
498
+
499
+
500
+
501
+ </span>
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+ <span class="summary_desc"><div class='inline'><p>Runs rvvm calling its methods based on provided script args.</p>
512
+ </div></span>
513
+
514
+ </li>
515
+
516
+
517
+ <li class="public ">
518
+ <span class="summary_signature">
519
+
520
+ <a href="#run_sim-class_method" title="run_sim (class method)">.<strong>run_sim</strong> &#x21d2; void </a>
521
+
522
+
523
+
524
+ </span>
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+ <span class="summary_desc"><div class='inline'><p>Runs UVM test simulation on an elaborated testbench snapshot using xrun.</p>
535
+ </div></span>
536
+
537
+ </li>
538
+
539
+
540
+ <li class="public ">
541
+ <span class="summary_signature">
542
+
543
+ <a href="#run_sv-class_method" title="run_sv (class method)">.<strong>run_sv</strong> &#x21d2; void </a>
544
+
545
+
546
+
547
+ </span>
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+ <span class="summary_desc"><div class='inline'><p>Runs a pure SystemVerilog/Verilog simulation using xrun.</p>
558
+ </div></span>
559
+
560
+ </li>
561
+
562
+
563
+ </ul>
564
+
565
+
566
+
567
+
568
+ <div id="class_method_details" class="method_details_list">
569
+ <h2>Class Method Details</h2>
570
+
571
+
572
+ <div class="method_details first">
573
+ <h3 class="signature first" id="check_args-class_method">
574
+
575
+ .<strong>check_args</strong> &#x21d2; <tt>void</tt>
576
+
577
+
578
+
579
+
580
+
581
+ </h3><div class="docstring">
582
+ <div class="discussion">
583
+ <p class="note returns_void">This method returns an undefined value.</p><p>Simple argument check.</p>
584
+
585
+
586
+ </div>
587
+ </div>
588
+ <div class="tags">
589
+
590
+ <p class="tag_title">Since:</p>
591
+ <ul class="since">
592
+
593
+ <li>
594
+
595
+
596
+
597
+
598
+
599
+ <div class='inline'><p>0.8.0</p>
600
+ </div>
601
+
602
+ </li>
603
+
604
+ </ul>
605
+
606
+ </div><table class="source_code">
607
+ <tr>
608
+ <td>
609
+ <pre class="lines">
610
+
611
+
612
+ 123
613
+ 124
614
+ 125
615
+ 126
616
+ 127
617
+ 128
618
+ 129
619
+ 130
620
+ 131
621
+ 132
622
+ 133
623
+ 134
624
+ 135
625
+ 136
626
+ 137</pre>
627
+ </td>
628
+ <td>
629
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 123</span>
630
+
631
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_check_args'>check_args</span>
632
+ <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:all</span><span class='rbracket'>]</span>
633
+ <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:comp</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='int'>1</span>
634
+ <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:elab</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='int'>1</span>
635
+ <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:run</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='int'>1</span>
636
+ <span class='kw'>end</span>
637
+
638
+ <span class='comment'># Check if a required arg is provided
639
+ </span> <span class='kw'>return</span> <span class='kw'>unless</span> <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_all_nil?'><span class='object_link'><a href="Utils.html#all_nil%3F-class_method" title="Utils.all_nil? (method)">all_nil?</a></span></span><span class='lparen'>(</span><span class='ivar'>@args</span><span class='comma'>,</span> <span class='ivar'>@required_args</span><span class='rparen'>)</span>
640
+
641
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
642
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_log_error'><span class='object_link'><a href="Crayons.html#log_error-class_method" title="Crayons.log_error (method)">log_error</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>No required options provided!</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
643
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>For more info use -h or --help\n\n</span><span class='tstring_end'>&quot;</span></span>
644
+ <span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
645
+ <span class='kw'>end</span></pre>
646
+ </td>
647
+ </tr>
648
+ </table>
649
+ </div>
650
+
651
+ <div class="method_details ">
652
+ <h3 class="signature " id="compile-class_method">
653
+
654
+ .<strong>compile</strong> &#x21d2; <tt>void</tt>
655
+
656
+
657
+
658
+
659
+
660
+ </h3><div class="docstring">
661
+ <div class="discussion">
662
+ <p class="note returns_void">This method returns an undefined value.</p><p>Compiles project SystemVerilog sources using xvlog.</p>
663
+
664
+
665
+ </div>
666
+ </div>
667
+ <div class="tags">
668
+
669
+ <p class="tag_title">Since:</p>
670
+ <ul class="since">
671
+
672
+ <li>
673
+
674
+
675
+
676
+
677
+
678
+ <div class='inline'><p>0.8.0</p>
679
+ </div>
680
+
681
+ </li>
682
+
683
+ </ul>
684
+
685
+ </div><table class="source_code">
686
+ <tr>
687
+ <td>
688
+ <pre class="lines">
689
+
690
+
691
+ 319
692
+ 320
693
+ 321
694
+ 322
695
+ 323
696
+ 324
697
+ 325
698
+ 326</pre>
699
+ </td>
700
+ <td>
701
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 319</span>
702
+
703
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_compile'>compile</span>
704
+ <span class='id identifier rubyid_cmd_args'>cmd_args</span> <span class='op'>=</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:compilation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:args</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
705
+ <span class='id identifier rubyid_logname'>logname</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:complog</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:project</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:logDir</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:compilation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:logDir</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:compilation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:log</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rparen'>)</span>
706
+ <span class='id identifier rubyid_complist'>complist</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:compilelist</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:compilation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:list</span><span class='rbracket'>]</span>
707
+
708
+ <span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xvlog -sv -f </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_complist'>complist</span><span class='embexpr_end'>}</span><span class='tstring_content'> -log </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_logname'>logname</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_cmd_args'>cmd_args</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
709
+ <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Compiling HDL sources...</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_cmd'>cmd</span><span class='rparen'>)</span>
710
+ <span class='kw'>end</span></pre>
711
+ </td>
712
+ </tr>
713
+ </table>
714
+ </div>
715
+
716
+ <div class="method_details ">
717
+ <h3 class="signature " id="cov_report-class_method">
718
+
719
+ .<strong>cov_report</strong> &#x21d2; <tt>void</tt>
720
+
721
+
722
+
723
+
724
+
725
+ </h3><div class="docstring">
726
+ <div class="discussion">
727
+ <p class="note returns_void">This method returns an undefined value.</p><p>Opens last generated functional coverage report in a HTML dashboard.</p>
728
+
729
+
730
+ </div>
731
+ </div>
732
+ <div class="tags">
733
+
734
+ <p class="tag_title">Since:</p>
735
+ <ul class="since">
736
+
737
+ <li>
738
+
739
+
740
+
741
+
742
+
743
+ <div class='inline'><p>0.9.0</p>
744
+ </div>
745
+
746
+ </li>
747
+
748
+ </ul>
749
+
750
+ </div><table class="source_code">
751
+ <tr>
752
+ <td>
753
+ <pre class="lines">
754
+
755
+
756
+ 443
757
+ 444
758
+ 445
759
+ 446
760
+ 447
761
+ 448</pre>
762
+ </td>
763
+ <td>
764
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 443</span>
765
+
766
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cov_report'>cov_report</span>
767
+ <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_chdir'>chdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xcrg_func_cov_report</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
768
+ <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Opening coverage dashboard...</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>./dashboard.html</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
769
+
770
+ <span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
771
+ <span class='kw'>end</span></pre>
772
+ </td>
773
+ </tr>
774
+ </table>
775
+ </div>
776
+
777
+ <div class="method_details ">
778
+ <h3 class="signature " id="coverage-class_method">
779
+
780
+ .<strong>coverage</strong> &#x21d2; <tt>void</tt>
781
+
782
+
783
+
784
+
785
+
786
+ </h3><div class="docstring">
787
+ <div class="discussion">
788
+ <p class="note returns_void">This method returns an undefined value.</p><p>Generates UVM test functional coverage report using xcrg.</p>
789
+
790
+
791
+ </div>
792
+ </div>
793
+ <div class="tags">
794
+
795
+ <p class="tag_title">Since:</p>
796
+ <ul class="since">
797
+
798
+ <li>
799
+
800
+
801
+
802
+
803
+
804
+ <div class='inline'><p>0.9.0</p>
805
+ </div>
806
+
807
+ </li>
808
+
809
+ </ul>
810
+
811
+ </div><table class="source_code">
812
+ <tr>
813
+ <td>
814
+ <pre class="lines">
815
+
816
+
817
+ 433
818
+ 434
819
+ 435
820
+ 436</pre>
821
+ </td>
822
+ <td>
823
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 433</span>
824
+
825
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_coverage'>coverage</span>
826
+ <span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xcrg -report_format html -dir xsim.covdb</span><span class='tstring_end'>&quot;</span></span>
827
+ <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Generating UVM test functional coverage report...</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_cmd'>cmd</span><span class='rparen'>)</span>
828
+ <span class='kw'>end</span></pre>
829
+ </td>
830
+ </tr>
831
+ </table>
832
+ </div>
833
+
834
+ <div class="method_details ">
835
+ <h3 class="signature " id="create_module-class_method">
836
+
837
+ .<strong>create_module</strong>(name, type) &#x21d2; <tt>void</tt>
838
+
839
+
840
+
841
+
842
+
843
+ </h3><div class="docstring">
844
+ <div class="discussion">
845
+ <p class="note returns_void">This method returns an undefined value.</p><p>Generates a SystemVerilog module/interface template.</p>
846
+
847
+
848
+ </div>
849
+ </div>
850
+ <div class="tags">
851
+ <p class="tag_title">Parameters:</p>
852
+ <ul class="param">
853
+
854
+ <li>
855
+
856
+ <span class='name'>type</span>
857
+
858
+
859
+ <span class='type'>(<tt>String</tt>)</span>
860
+
861
+
862
+
863
+ &mdash;
864
+ <div class='inline'><p>specifies modudle/itf</p>
865
+ </div>
866
+
867
+ </li>
868
+
869
+ <li>
870
+
871
+ <span class='name'>name</span>
872
+
873
+
874
+ <span class='type'>(<tt>String</tt>)</span>
875
+
876
+
877
+
878
+ &mdash;
879
+ <div class='inline'><p>specifies module/itf name</p>
880
+ </div>
881
+
882
+ </li>
883
+
884
+ </ul>
885
+
886
+ <p class="tag_title">Since:</p>
887
+ <ul class="since">
888
+
889
+ <li>
890
+
891
+
892
+
893
+
894
+
895
+ <div class='inline'><p>0.9.0</p>
896
+ </div>
897
+
898
+ </li>
899
+
900
+ </ul>
901
+
902
+ </div><table class="source_code">
903
+ <tr>
904
+ <td>
905
+ <pre class="lines">
906
+
907
+
908
+ 458
909
+ 459
910
+ 460
911
+ 461
912
+ 462
913
+ 463
914
+ 464
915
+ 465
916
+ 466
917
+ 467
918
+ 468
919
+ 469
920
+ 470
921
+ 471
922
+ 472
923
+ 473
924
+ 474
925
+ 475
926
+ 476
927
+ 477
928
+ 478
929
+ 479
930
+ 480
931
+ 481
932
+ 482
933
+ 483</pre>
934
+ </td>
935
+ <td>
936
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 458</span>
937
+
938
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create_module'>create_module</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
939
+ <span class='id identifier rubyid_conf'>conf</span> <span class='op'>=</span> <span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:module</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:conf</span><span class='rbracket'>]</span>
940
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:module</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span>
941
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:date</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@formatted_time</span>
942
+ <span class='kw'>unless</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:here</span><span class='rbracket'>]</span>
943
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:prjname</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:project</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span>
944
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:company</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:project</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:company</span><span class='rbracket'>]</span>
945
+ <span class='kw'>end</span>
946
+
947
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_type'>type</span>
948
+ <span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:module</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:file</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>design/itf</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>itf</span><span class='tstring_end'>&quot;</span></span>
949
+
950
+ <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:here</span><span class='rbracket'>]</span>
951
+ <span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></span>
952
+ <span class='kw'>else</span>
953
+ <span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:project</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:module</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:file</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rparen'>)</span>
954
+ <span class='kw'>end</span>
955
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:username</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_git_userame'><span class='object_link'><a href="Utils.html#git_userame-class_method" title="Utils.git_userame (method)">git_userame</a></span></span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span>
956
+
957
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_start'><span class='object_link'><a href="Crayons.html#spinner_start-class_method" title="Crayons.spinner_start (method)">spinner_start</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Generating SV </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'> template...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
958
+ <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_gen_template'><span class='object_link'><a href="Utils.html#gen_template-class_method" title="Utils.gen_template (method)">gen_template</a></span></span><span class='lparen'>(</span><span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:module</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>.sv</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_conf'>conf</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
959
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_stop'><span class='object_link'><a href="Crayons.html#spinner_stop-class_method" title="Crayons.spinner_stop (method)">spinner_stop</a></span></span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span>
960
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
961
+
962
+ <span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
963
+ <span class='kw'>end</span></pre>
964
+ </td>
965
+ </tr>
966
+ </table>
967
+ </div>
968
+
969
+ <div class="method_details ">
970
+ <h3 class="signature " id="create_new_project-class_method">
971
+
972
+ .<strong>create_new_project</strong>(name) &#x21d2; <tt>void</tt>
973
+
974
+
975
+
976
+
977
+
978
+ </h3><div class="docstring">
979
+ <div class="discussion">
980
+ <p class="note returns_void">This method returns an undefined value.</p><p>Creates a new RVvM project template in pwd with a given name.</p>
981
+
982
+
983
+ </div>
984
+ </div>
985
+ <div class="tags">
986
+ <p class="tag_title">Parameters:</p>
987
+ <ul class="param">
988
+
989
+ <li>
990
+
991
+ <span class='name'>name</span>
992
+
993
+
994
+ <span class='type'>(<tt>String</tt>)</span>
995
+
996
+
997
+
998
+ &mdash;
999
+ <div class='inline'><p>project name</p>
1000
+ </div>
1001
+
1002
+ </li>
1003
+
1004
+ </ul>
1005
+
1006
+ <p class="tag_title">Since:</p>
1007
+ <ul class="since">
1008
+
1009
+ <li>
1010
+
1011
+
1012
+
1013
+
1014
+
1015
+ <div class='inline'><p>0.8.0</p>
1016
+ </div>
1017
+
1018
+ </li>
1019
+
1020
+ </ul>
1021
+
1022
+ </div><table class="source_code">
1023
+ <tr>
1024
+ <td>
1025
+ <pre class="lines">
1026
+
1027
+
1028
+ 189
1029
+ 190
1030
+ 191
1031
+ 192
1032
+ 193
1033
+ 194
1034
+ 195
1035
+ 196
1036
+ 197
1037
+ 198
1038
+ 199
1039
+ 200
1040
+ 201
1041
+ 202
1042
+ 203
1043
+ 204
1044
+ 205
1045
+ 206
1046
+ 207
1047
+ 208
1048
+ 209
1049
+ 210
1050
+ 211
1051
+ 212
1052
+ 213
1053
+ 214
1054
+ 215
1055
+ 216
1056
+ 217
1057
+ 218
1058
+ 219
1059
+ 220
1060
+ 221
1061
+ 222
1062
+ 223
1063
+ 224
1064
+ 225
1065
+ 226
1066
+ 227
1067
+ 228
1068
+ 229
1069
+ 230
1070
+ 231
1071
+ 232
1072
+ 233
1073
+ 234
1074
+ 235
1075
+ 236
1076
+ 237
1077
+ 238
1078
+ 239
1079
+ 240
1080
+ 241
1081
+ 242
1082
+ 243
1083
+ 244
1084
+ 245
1085
+ 246
1086
+ 247
1087
+ 248
1088
+ 249
1089
+ 250
1090
+ 251
1091
+ 252
1092
+ 253
1093
+ 254
1094
+ 255
1095
+ 256
1096
+ 257
1097
+ 258
1098
+ 259
1099
+ 260
1100
+ 261
1101
+ 262
1102
+ 263
1103
+ 264
1104
+ 265
1105
+ 266
1106
+ 267
1107
+ 268</pre>
1108
+ </td>
1109
+ <td>
1110
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 189</span>
1111
+
1112
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create_new_project'>create_new_project</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
1113
+ <span class='kw'>if</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_exist?'>exist?</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
1114
+ <span class='id identifier rubyid_print'>print</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\nDirectory </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'> already exists. Do you want to overwrite it? [y/n] </span><span class='tstring_end'>&quot;</span></span>
1115
+ <span class='id identifier rubyid_input'>input</span> <span class='op'>=</span> <span class='id identifier rubyid_gets'>gets</span><span class='period'>.</span><span class='id identifier rubyid_chomp'>chomp</span>
1116
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
1117
+
1118
+ <span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_input'>input</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>y</span><span class='tstring_end'>&quot;</span></span>
1119
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_rm_rf'>rm_rf</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
1120
+ <span class='kw'>else</span>
1121
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
1122
+ <span class='kw'>end</span>
1123
+
1124
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_start'><span class='object_link'><a href="Crayons.html#spinner_start-class_method" title="Crayons.spinner_start (method)">spinner_start</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Generating new project: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1125
+
1126
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
1127
+ <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_chdir'>chdir</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
1128
+
1129
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>rvvm</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1130
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_chdir'>chdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>rvvm</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1131
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>logs</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1132
+ <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_chdir'>chdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>logs</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1133
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>comp</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1134
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>elab</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1135
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>sim</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1136
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>dpi</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1137
+ <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_chdir'>chdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>../..</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1138
+
1139
+ <span class='id identifier rubyid_temp_conf'>temp_conf</span> <span class='op'>=</span> <span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:rvvmconf</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:conf</span><span class='rbracket'>]</span>
1140
+ <span class='id identifier rubyid_temp_conf'>temp_conf</span><span class='lbracket'>[</span><span class='symbol'>:prjname</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span>
1141
+ <span class='id identifier rubyid_temp_conf'>temp_conf</span><span class='lbracket'>[</span><span class='symbol'>:prjpath</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_pwd'>pwd</span>
1142
+ <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_gen_template'><span class='object_link'><a href="Utils.html#gen_template-class_method" title="Utils.gen_template (method)">gen_template</a></span></span><span class='lparen'>(</span><span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:rvvmconf</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_temp_conf'>temp_conf</span><span class='rparen'>)</span>
1143
+
1144
+ <span class='id identifier rubyid_temp_conf'>temp_conf</span> <span class='op'>=</span> <span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:compilelist</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:conf</span><span class='rbracket'>]</span>
1145
+ <span class='id identifier rubyid_temp_conf'>temp_conf</span><span class='lbracket'>[</span><span class='symbol'>:prjname</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span>
1146
+ <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_gen_template'><span class='object_link'><a href="Utils.html#gen_template-class_method" title="Utils.gen_template (method)">gen_template</a></span></span><span class='lparen'>(</span><span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:compilelist</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>_compile_list.f</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_temp_conf'>temp_conf</span><span class='rparen'>)</span>
1147
+
1148
+ <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_gen_template'><span class='object_link'><a href="Utils.html#gen_template-class_method" title="Utils.gen_template (method)">gen_template</a></span></span><span class='lparen'>(</span><span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:wfcfg</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1149
+ <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_gen_template'><span class='object_link'><a href="Utils.html#gen_template-class_method" title="Utils.gen_template (method)">gen_template</a></span></span><span class='lparen'>(</span><span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:dpilist</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1150
+
1151
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>design</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1152
+ <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_chdir'>chdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>design</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1153
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>pkg</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1154
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>itf</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1155
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>src</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1156
+ <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_chdir'>chdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>..</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1157
+
1158
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>verif</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1159
+ <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_chdir'>chdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>verif</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1160
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>env</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1161
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>env/agents</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1162
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>env/top</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1163
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>tb</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1164
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>tb/src</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1165
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>test</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1166
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>test/seq</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1167
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir'>mkdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>test/src</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1168
+ <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_chdir'>chdir</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>..</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1169
+
1170
+ <span class='id identifier rubyid_temp_conf'>temp_conf</span> <span class='op'>=</span> <span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:tbtop</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:conf</span><span class='rbracket'>]</span>
1171
+ <span class='id identifier rubyid_temp_conf'>temp_conf</span><span class='lbracket'>[</span><span class='symbol'>:prjname</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span>
1172
+ <span class='id identifier rubyid_temp_conf'>temp_conf</span><span class='lbracket'>[</span><span class='symbol'>:PRJNAME</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_upcase'>upcase</span>
1173
+ <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_gen_template'><span class='object_link'><a href="Utils.html#gen_template-class_method" title="Utils.gen_template (method)">gen_template</a></span></span><span class='lparen'>(</span><span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:tbtop</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>_tb_top.sv</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_temp_conf'>temp_conf</span><span class='rparen'>)</span>
1174
+
1175
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_log'><span class='object_link'><a href="Crayons.html#spinner_log-class_method" title="Crayons.spinner_log (method)">spinner_log</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1176
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_pause'><span class='object_link'><a href="Crayons.html#spinner_pause-class_method" title="Crayons.spinner_pause (method)">spinner_pause</a></span></span>
1177
+ <span class='id identifier rubyid_system'>system</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>git init</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1178
+ <span class='id identifier rubyid_system'>system</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>git add .</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1179
+ <span class='id identifier rubyid_system'>system</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>git commit -am &quot;Initial commit&quot;</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
1180
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_resume'><span class='object_link'><a href="Crayons.html#spinner_resume-class_method" title="Crayons.spinner_resume (method)">spinner_resume</a></span></span>
1181
+
1182
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_log'><span class='object_link'><a href="Crayons.html#spinner_log-class_method" title="Crayons.spinner_log (method)">spinner_log</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1183
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_stop'><span class='object_link'><a href="Crayons.html#spinner_stop-class_method" title="Crayons.spinner_stop (method)">spinner_stop</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Done!</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span>
1184
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_log_pass'><span class='object_link'><a href="Crayons.html#log_pass-class_method" title="Crayons.log_pass (method)">log_pass</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\nRVvM: New project generated. ^^\n\n</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1185
+
1186
+ <span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
1187
+ <span class='kw'>rescue</span> <span class='const'>StandardError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1188
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_stop'><span class='object_link'><a href="Crayons.html#spinner_stop-class_method" title="Crayons.spinner_stop (method)">spinner_stop</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error!</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='kw'>false</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_running?'><span class='object_link'><a href="Crayons.html#spinner_running%3F-class_method" title="Crayons.spinner_running? (method)">spinner_running?</a></span></span>
1189
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_log_error'><span class='object_link'><a href="Crayons.html#log_error-class_method" title="Crayons.log_error (method)">log_error</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>RVvM failed to create project...\n\n</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1190
+ <span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
1191
+ <span class='kw'>end</span></pre>
1192
+ </td>
1193
+ </tr>
1194
+ </table>
1195
+ </div>
1196
+
1197
+ <div class="method_details ">
1198
+ <h3 class="signature " id="create_pkg-class_method">
1199
+
1200
+ .<strong>create_pkg</strong>(name) &#x21d2; <tt>void</tt>
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+ </h3><div class="docstring">
1207
+ <div class="discussion">
1208
+ <p class="note returns_void">This method returns an undefined value.</p><p>Generates a SystemVerilog package template.</p>
1209
+
1210
+
1211
+ </div>
1212
+ </div>
1213
+ <div class="tags">
1214
+ <p class="tag_title">Parameters:</p>
1215
+ <ul class="param">
1216
+
1217
+ <li>
1218
+
1219
+ <span class='name'>name</span>
1220
+
1221
+
1222
+ <span class='type'>(<tt>String</tt>)</span>
1223
+
1224
+
1225
+
1226
+ &mdash;
1227
+ <div class='inline'><p>specifies package name</p>
1228
+ </div>
1229
+
1230
+ </li>
1231
+
1232
+ </ul>
1233
+
1234
+ <p class="tag_title">Since:</p>
1235
+ <ul class="since">
1236
+
1237
+ <li>
1238
+
1239
+
1240
+
1241
+
1242
+
1243
+ <div class='inline'><p>0.9.0</p>
1244
+ </div>
1245
+
1246
+ </li>
1247
+
1248
+ </ul>
1249
+
1250
+ </div><table class="source_code">
1251
+ <tr>
1252
+ <td>
1253
+ <pre class="lines">
1254
+
1255
+
1256
+ 492
1257
+ 493
1258
+ 494
1259
+ 495
1260
+ 496
1261
+ 497
1262
+ 498
1263
+ 499
1264
+ 500
1265
+ 501
1266
+ 502
1267
+ 503
1268
+ 504
1269
+ 505
1270
+ 506
1271
+ 507
1272
+ 508
1273
+ 509
1274
+ 510
1275
+ 511
1276
+ 512
1277
+ 513
1278
+ 514
1279
+ 515</pre>
1280
+ </td>
1281
+ <td>
1282
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 492</span>
1283
+
1284
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create_pkg'>create_pkg</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
1285
+ <span class='id identifier rubyid_conf'>conf</span> <span class='op'>=</span> <span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:package</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:conf</span><span class='rbracket'>]</span>
1286
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:package</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span>
1287
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:PACKAGE</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_upcase'>upcase</span>
1288
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:date</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@formatted_time</span>
1289
+ <span class='kw'>unless</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:here</span><span class='rbracket'>]</span>
1290
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:prjname</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:project</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span>
1291
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:company</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:project</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:company</span><span class='rbracket'>]</span>
1292
+ <span class='kw'>end</span>
1293
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:username</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_git_userame'><span class='object_link'><a href="Utils.html#git_userame-class_method" title="Utils.git_userame (method)">git_userame</a></span></span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span>
1294
+
1295
+ <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:here</span><span class='rbracket'>]</span>
1296
+ <span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></span>
1297
+ <span class='kw'>else</span>
1298
+ <span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:project</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:package</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:file</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1299
+ <span class='kw'>end</span>
1300
+
1301
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_start'><span class='object_link'><a href="Crayons.html#spinner_start-class_method" title="Crayons.spinner_start (method)">spinner_start</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Generating SV pkg template...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1302
+ <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_gen_template'><span class='object_link'><a href="Utils.html#gen_template-class_method" title="Utils.gen_template (method)">gen_template</a></span></span><span class='lparen'>(</span><span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:package</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>.sv</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_conf'>conf</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1303
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_stop'><span class='object_link'><a href="Crayons.html#spinner_stop-class_method" title="Crayons.spinner_stop (method)">spinner_stop</a></span></span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span>
1304
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
1305
+
1306
+ <span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
1307
+ <span class='kw'>end</span></pre>
1308
+ </td>
1309
+ </tr>
1310
+ </table>
1311
+ </div>
1312
+
1313
+ <div class="method_details ">
1314
+ <h3 class="signature " id="create_svfile-class_method">
1315
+
1316
+ .<strong>create_svfile</strong>(name) &#x21d2; <tt>void</tt>
1317
+
1318
+
1319
+
1320
+
1321
+
1322
+ </h3><div class="docstring">
1323
+ <div class="discussion">
1324
+ <p class="note returns_void">This method returns an undefined value.</p><p>Generates a generic SystemVerilog template file.</p>
1325
+
1326
+
1327
+ </div>
1328
+ </div>
1329
+ <div class="tags">
1330
+ <p class="tag_title">Parameters:</p>
1331
+ <ul class="param">
1332
+
1333
+ <li>
1334
+
1335
+ <span class='name'>name</span>
1336
+
1337
+
1338
+ <span class='type'>(<tt>String</tt>)</span>
1339
+
1340
+
1341
+
1342
+ &mdash;
1343
+ <div class='inline'><p>specifies template name</p>
1344
+ </div>
1345
+
1346
+ </li>
1347
+
1348
+ </ul>
1349
+
1350
+ <p class="tag_title">Since:</p>
1351
+ <ul class="since">
1352
+
1353
+ <li>
1354
+
1355
+
1356
+
1357
+
1358
+
1359
+ <div class='inline'><p>0.9.0</p>
1360
+ </div>
1361
+
1362
+ </li>
1363
+
1364
+ </ul>
1365
+
1366
+ </div><table class="source_code">
1367
+ <tr>
1368
+ <td>
1369
+ <pre class="lines">
1370
+
1371
+
1372
+ 524
1373
+ 525
1374
+ 526
1375
+ 527
1376
+ 528
1377
+ 529
1378
+ 530
1379
+ 531
1380
+ 532
1381
+ 533
1382
+ 534
1383
+ 535
1384
+ 536
1385
+ 537
1386
+ 538
1387
+ 539
1388
+ 540
1389
+ 541
1390
+ 542
1391
+ 543
1392
+ 544
1393
+ 545
1394
+ 546</pre>
1395
+ </td>
1396
+ <td>
1397
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 524</span>
1398
+
1399
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create_svfile'>create_svfile</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
1400
+ <span class='id identifier rubyid_conf'>conf</span> <span class='op'>=</span> <span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:svfile</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:conf</span><span class='rbracket'>]</span>
1401
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:NAME</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_upcase'>upcase</span>
1402
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:date</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@formatted_time</span>
1403
+ <span class='kw'>unless</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:here</span><span class='rbracket'>]</span>
1404
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:prjname</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:project</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span>
1405
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:company</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:project</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:company</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span>
1406
+ <span class='kw'>end</span>
1407
+ <span class='id identifier rubyid_conf'>conf</span><span class='lbracket'>[</span><span class='symbol'>:username</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_git_userame'><span class='object_link'><a href="Utils.html#git_userame-class_method" title="Utils.git_userame (method)">git_userame</a></span></span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
1408
+
1409
+ <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:here</span><span class='rbracket'>]</span>
1410
+ <span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></span>
1411
+ <span class='kw'>else</span>
1412
+ <span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:project</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:module</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:file</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1413
+ <span class='kw'>end</span>
1414
+
1415
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_start'><span class='object_link'><a href="Crayons.html#spinner_start-class_method" title="Crayons.spinner_start (method)">spinner_start</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Generating generic SV file template...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1416
+ <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_gen_template'><span class='object_link'><a href="Utils.html#gen_template-class_method" title="Utils.gen_template (method)">gen_template</a></span></span><span class='lparen'>(</span><span class='ivar'>@templates</span><span class='lbracket'>[</span><span class='symbol'>:svfile</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>.sv</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_conf'>conf</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1417
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_stop'><span class='object_link'><a href="Crayons.html#spinner_stop-class_method" title="Crayons.spinner_stop (method)">spinner_stop</a></span></span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span>
1418
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
1419
+
1420
+ <span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
1421
+ <span class='kw'>end</span></pre>
1422
+ </td>
1423
+ </tr>
1424
+ </table>
1425
+ </div>
1426
+
1427
+ <div class="method_details ">
1428
+ <h3 class="signature " id="dpi_c-class_method">
1429
+
1430
+ .<strong>dpi_c</strong> &#x21d2; <tt>void</tt>
1431
+
1432
+
1433
+
1434
+
1435
+
1436
+ </h3><div class="docstring">
1437
+ <div class="discussion">
1438
+ <p class="note returns_void">This method returns an undefined value.</p><p>Compiles C/C++ sources into a shared library to use during
1439
+ elaboration and simulation using DPI-C.</p>
1440
+
1441
+
1442
+ </div>
1443
+ </div>
1444
+ <div class="tags">
1445
+
1446
+ <p class="tag_title">Since:</p>
1447
+ <ul class="since">
1448
+
1449
+ <li>
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+ <div class='inline'><p>0.9.0</p>
1456
+ </div>
1457
+
1458
+ </li>
1459
+
1460
+ </ul>
1461
+
1462
+ </div><table class="source_code">
1463
+ <tr>
1464
+ <td>
1465
+ <pre class="lines">
1466
+
1467
+
1468
+ 334
1469
+ 335
1470
+ 336
1471
+ 337
1472
+ 338
1473
+ 339
1474
+ 340</pre>
1475
+ </td>
1476
+ <td>
1477
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 334</span>
1478
+
1479
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_dpi_c'>dpi_c</span>
1480
+ <span class='id identifier rubyid_cmd_args'>cmd_args</span> <span class='op'>=</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:dpi</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:args</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
1481
+ <span class='id identifier rubyid_dpilist'>dpilist</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:dpilist</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:dpi</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:list</span><span class='rbracket'>]</span>
1482
+
1483
+ <span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xsc -f </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_dpilist'>dpilist</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_cmd_args'>cmd_args</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1484
+ <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Building DPI-C library...</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_cmd'>cmd</span><span class='rparen'>)</span>
1485
+ <span class='kw'>end</span></pre>
1486
+ </td>
1487
+ </tr>
1488
+ </table>
1489
+ </div>
1490
+
1491
+ <div class="method_details ">
1492
+ <h3 class="signature " id="elaborate-class_method">
1493
+
1494
+ .<strong>elaborate</strong> &#x21d2; <tt>void</tt>
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+ </h3><div class="docstring">
1501
+ <div class="discussion">
1502
+ <p class="note returns_void">This method returns an undefined value.</p><p>Elaborates project into a testbench snapshot using xelab.</p>
1503
+
1504
+
1505
+ </div>
1506
+ </div>
1507
+ <div class="tags">
1508
+
1509
+ <p class="tag_title">Since:</p>
1510
+ <ul class="since">
1511
+
1512
+ <li>
1513
+
1514
+
1515
+
1516
+
1517
+
1518
+ <div class='inline'><p>0.8.0</p>
1519
+ </div>
1520
+
1521
+ </li>
1522
+
1523
+ </ul>
1524
+
1525
+ </div><table class="source_code">
1526
+ <tr>
1527
+ <td>
1528
+ <pre class="lines">
1529
+
1530
+
1531
+ 347
1532
+ 348
1533
+ 349
1534
+ 350
1535
+ 351
1536
+ 352
1537
+ 353
1538
+ 354
1539
+ 355
1540
+ 356
1541
+ 357
1542
+ 358
1543
+ 359
1544
+ 360
1545
+ 361
1546
+ 362</pre>
1547
+ </td>
1548
+ <td>
1549
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 347</span>
1550
+
1551
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_elaborate'>elaborate</span>
1552
+ <span class='id identifier rubyid_cmd_args'>cmd_args</span> <span class='op'>=</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:elaboration</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:args</span><span class='rbracket'>]</span>
1553
+ <span class='id identifier rubyid_cmd_args'>cmd_args</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> -sv_lib </span><span class='embexpr_beg'>#{</span><span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:elaboration</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:customdpilib</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:elaboration</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:customdpilib</span><span class='rbracket'>]</span> <span class='op'>!=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
1554
+ <span class='kw'>unless</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:elaboration</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:customdpilib</span><span class='rbracket'>]</span> <span class='op'>!=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
1555
+ <span class='id identifier rubyid_cmd_args'>cmd_args</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> -sv_lib dpi</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:dpi</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:dpilib</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:dpi</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:dpilib</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='int'>1</span>
1556
+ <span class='kw'>end</span>
1557
+ <span class='id identifier rubyid_cmd_args'>cmd_args</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> -debug wave</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:wave</span><span class='rbracket'>]</span>
1558
+ <span class='id identifier rubyid_cmd_args'>cmd_args</span><span class='period'>.</span><span class='id identifier rubyid_strip!'>strip!</span>
1559
+ <span class='id identifier rubyid_logname'>logname</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:elablog</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:project</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:logDir</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:elaboration</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:logDir</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:elaboration</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:log</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1560
+ <span class='id identifier rubyid_tb_top'>tb_top</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:tbtop</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:elaboration</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:tbTop</span><span class='rbracket'>]</span>
1561
+ <span class='id identifier rubyid_tb'>tb</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:tb</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:elaboration</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:tb</span><span class='rbracket'>]</span>
1562
+ <span class='id identifier rubyid_timescale'>timescale</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:timescale</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:elaboration</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:timescale</span><span class='rbracket'>]</span>
1563
+
1564
+ <span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xelab </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_tb_top'>tb_top</span><span class='embexpr_end'>}</span><span class='tstring_content'> -relax -s </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_tb'>tb</span><span class='embexpr_end'>}</span><span class='tstring_content'> -timescale </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_timescale'>timescale</span><span class='embexpr_end'>}</span><span class='tstring_content'> -log </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_logname'>logname</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_cmd_args'>cmd_args</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1565
+ <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Elaborating testbench </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_tb'>tb</span><span class='embexpr_end'>}</span><span class='tstring_content'>...</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_cmd'>cmd</span><span class='rparen'>)</span>
1566
+ <span class='kw'>end</span></pre>
1567
+ </td>
1568
+ </tr>
1569
+ </table>
1570
+ </div>
1571
+
1572
+ <div class="method_details ">
1573
+ <h3 class="signature " id="execute-class_method">
1574
+
1575
+ .<strong>execute</strong>(tag, command) &#x21d2; <tt>void</tt>
1576
+
1577
+
1578
+
1579
+
1580
+
1581
+ </h3><div class="docstring">
1582
+ <div class="discussion">
1583
+ <p class="note returns_void">This method returns an undefined value.</p><p>Shell command with debug printout.</p>
1584
+
1585
+ <p>If --debug arg provided instead of calling <code>system</code>
1586
+ prints the input command.</p>
1587
+
1588
+
1589
+ </div>
1590
+ </div>
1591
+ <div class="tags">
1592
+ <p class="tag_title">Parameters:</p>
1593
+ <ul class="param">
1594
+
1595
+ <li>
1596
+
1597
+ <span class='name'>command</span>
1598
+
1599
+
1600
+ <span class='type'>(<tt>String</tt>)</span>
1601
+
1602
+
1603
+
1604
+ &mdash;
1605
+ <div class='inline'><p>command to be called/printed</p>
1606
+ </div>
1607
+
1608
+ </li>
1609
+
1610
+ </ul>
1611
+
1612
+ <p class="tag_title">Since:</p>
1613
+ <ul class="since">
1614
+
1615
+ <li>
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+ <div class='inline'><p>0.8.0</p>
1622
+ </div>
1623
+
1624
+ </li>
1625
+
1626
+ </ul>
1627
+
1628
+ </div><table class="source_code">
1629
+ <tr>
1630
+ <td>
1631
+ <pre class="lines">
1632
+
1633
+
1634
+ 171
1635
+ 172
1636
+ 173
1637
+ 174
1638
+ 175
1639
+ 176
1640
+ 177
1641
+ 178
1642
+ 179
1643
+ 180</pre>
1644
+ </td>
1645
+ <td>
1646
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 171</span>
1647
+
1648
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_tag'>tag</span><span class='comma'>,</span> <span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
1649
+ <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:debug</span><span class='rbracket'>]</span>
1650
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_start'><span class='object_link'><a href="Crayons.html#spinner_start-class_method" title="Crayons.spinner_start (method)">spinner_start</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_tag'>tag</span><span class='rparen'>)</span>
1651
+ <span class='id identifier rubyid_sleep'>sleep</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
1652
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_log'><span class='object_link'><a href="Crayons.html#spinner_log-class_method" title="Crayons.spinner_log (method)">spinner_log</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
1653
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_stop'><span class='object_link'><a href="Crayons.html#spinner_stop-class_method" title="Crayons.spinner_stop (method)">spinner_stop</a></span></span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span>
1654
+ <span class='kw'>else</span>
1655
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_command'><span class='object_link'><a href="Crayons.html#command-class_method" title="Crayons.command (method)">command</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_tag'>tag</span><span class='comma'>,</span> <span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='label'>ignore_errors:</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:ignore_errors</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1656
+ <span class='kw'>end</span>
1657
+ <span class='kw'>end</span></pre>
1658
+ </td>
1659
+ </tr>
1660
+ </table>
1661
+ </div>
1662
+
1663
+ <div class="method_details ">
1664
+ <h3 class="signature " id="gui-class_method">
1665
+
1666
+ .<strong>gui</strong> &#x21d2; <tt>void</tt>
1667
+
1668
+
1669
+
1670
+
1671
+
1672
+ </h3><div class="docstring">
1673
+ <div class="discussion">
1674
+ <p class="note returns_void">This method returns an undefined value.</p><p>Opens last generated waveform trace dump to inspect in Vivado GUI.</p>
1675
+
1676
+
1677
+ </div>
1678
+ </div>
1679
+ <div class="tags">
1680
+
1681
+ <p class="tag_title">Since:</p>
1682
+ <ul class="since">
1683
+
1684
+ <li>
1685
+
1686
+
1687
+
1688
+
1689
+
1690
+ <div class='inline'><p>0.9.0</p>
1691
+ </div>
1692
+
1693
+ </li>
1694
+
1695
+ </ul>
1696
+
1697
+ </div><table class="source_code">
1698
+ <tr>
1699
+ <td>
1700
+ <pre class="lines">
1701
+
1702
+
1703
+ 419
1704
+ 420
1705
+ 421
1706
+ 422
1707
+ 423
1708
+ 424
1709
+ 425
1710
+ 426</pre>
1711
+ </td>
1712
+ <td>
1713
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 419</span>
1714
+
1715
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_gui'>gui</span>
1716
+ <span class='id identifier rubyid_dump'>dump</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:wavefile</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:elaboration</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:tb</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'>.wdb</span><span class='tstring_end'>&quot;</span></span>
1717
+
1718
+ <span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xsim --gui </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_dump'>dump</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1719
+ <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Running Vivado GUI...</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_cmd'>cmd</span><span class='rparen'>)</span>
1720
+
1721
+ <span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
1722
+ <span class='kw'>end</span></pre>
1723
+ </td>
1724
+ </tr>
1725
+ </table>
1726
+ </div>
1727
+
1728
+ <div class="method_details ">
1729
+ <h3 class="signature " id="handle_args-class_method">
1730
+
1731
+ .<strong>handle_args</strong> &#x21d2; <tt>void</tt>
1732
+
1733
+
1734
+
1735
+
1736
+
1737
+ </h3><div class="docstring">
1738
+ <div class="discussion">
1739
+ <p class="note returns_void">This method returns an undefined value.</p><p>Argument collision handling and additional settings for
1740
+ batch simulation and dpi compilation.</p>
1741
+
1742
+
1743
+ </div>
1744
+ </div>
1745
+ <div class="tags">
1746
+
1747
+ <p class="tag_title">Since:</p>
1748
+ <ul class="since">
1749
+
1750
+ <li>
1751
+
1752
+
1753
+
1754
+
1755
+
1756
+ <div class='inline'><p>0.8.0</p>
1757
+ </div>
1758
+
1759
+ </li>
1760
+
1761
+ </ul>
1762
+
1763
+ </div><table class="source_code">
1764
+ <tr>
1765
+ <td>
1766
+ <pre class="lines">
1767
+
1768
+
1769
+ 145
1770
+ 146
1771
+ 147
1772
+ 148
1773
+ 149
1774
+ 150
1775
+ 151
1776
+ 152
1777
+ 153
1778
+ 154
1779
+ 155
1780
+ 156
1781
+ 157
1782
+ 158
1783
+ 159</pre>
1784
+ </td>
1785
+ <td>
1786
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 145</span>
1787
+
1788
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_handle_args'>handle_args</span>
1789
+ <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:dpi</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:all</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:dpi</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:dpilib</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='int'>1</span>
1790
+
1791
+ <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:batch</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:simulation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:batch</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='int'>1</span>
1792
+ <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:test</span><span class='rbracket'>]</span>
1793
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>UVM test provided even though running in batch mode - option will be ignored...</span><span class='tstring_end'>&quot;</span></span>
1794
+ <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:test</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>nil</span>
1795
+ <span class='kw'>end</span>
1796
+ <span class='kw'>elsif</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:testList</span><span class='rbracket'>]</span>
1797
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>UVM test list provided without running in batch mode - option will be ignored...</span><span class='tstring_end'>&quot;</span></span>
1798
+ <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:testlist</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>nil</span>
1799
+ <span class='kw'>end</span>
1800
+
1801
+ <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:elaboration</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:customdpilib</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:customdpilib</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:customdpilib</span><span class='rbracket'>]</span>
1802
+ <span class='kw'>end</span></pre>
1803
+ </td>
1804
+ </tr>
1805
+ </table>
1806
+ </div>
1807
+
1808
+ <div class="method_details ">
1809
+ <h3 class="signature " id="load_config-class_method">
1810
+
1811
+ .<strong>load_config</strong> &#x21d2; <tt>void</tt>
1812
+
1813
+
1814
+
1815
+
1816
+
1817
+ </h3><div class="docstring">
1818
+ <div class="discussion">
1819
+ <p class="note returns_void">This method returns an undefined value.</p><p>Loads and parses rvvmconf.json config file from
1820
+ an RVvM project rvvm directory.</p>
1821
+
1822
+
1823
+ </div>
1824
+ </div>
1825
+ <div class="tags">
1826
+
1827
+ <p class="tag_title">Since:</p>
1828
+ <ul class="since">
1829
+
1830
+ <li>
1831
+
1832
+
1833
+
1834
+
1835
+
1836
+ <div class='inline'><p>0.8.0</p>
1837
+ </div>
1838
+
1839
+ </li>
1840
+
1841
+ </ul>
1842
+
1843
+ </div><table class="source_code">
1844
+ <tr>
1845
+ <td>
1846
+ <pre class="lines">
1847
+
1848
+
1849
+ 276
1850
+ 277
1851
+ 278
1852
+ 279
1853
+ 280
1854
+ 281
1855
+ 282
1856
+ 283
1857
+ 284
1858
+ 285
1859
+ 286
1860
+ 287
1861
+ 288
1862
+ 289
1863
+ 290
1864
+ 291
1865
+ 292
1866
+ 293
1867
+ 294
1868
+ 295
1869
+ 296
1870
+ 297
1871
+ 298
1872
+ 299
1873
+ 300
1874
+ 301
1875
+ 302
1876
+ 303</pre>
1877
+ </td>
1878
+ <td>
1879
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 276</span>
1880
+
1881
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_load_config'>load_config</span>
1882
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
1883
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_start'><span class='object_link'><a href="Crayons.html#spinner_start-class_method" title="Crayons.spinner_start (method)">spinner_start</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Loading RVvM project config...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1884
+
1885
+ <span class='ivar'>@config_path</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_find_file_dir'><span class='object_link'><a href="Utils.html#find_file_dir-class_method" title="Utils.find_file_dir (method)">find_file_dir</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>rvvmconf.json</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1886
+ <span class='id identifier rubyid_json_file'>json_file</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@config_path</span><span class='embexpr_end'>}</span><span class='tstring_content'>/rvvmconf.json</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@config_path</span>
1887
+
1888
+ <span class='kw'>unless</span> <span class='id identifier rubyid_json_file'>json_file</span>
1889
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_log_error'><span class='object_link'><a href="Crayons.html#log_error-class_method" title="Crayons.log_error (method)">log_error</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> Failed to load config file!\n</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1890
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_log_error'><span class='object_link'><a href="Crayons.html#log_error-class_method" title="Crayons.log_error (method)">log_error</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> Make sure you are inside an RVvM project.\n\n</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1891
+ <span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
1892
+ <span class='kw'>end</span>
1893
+
1894
+ <span class='ivar'>@config</span> <span class='op'>=</span> <span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_json_file'>json_file</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_json_file'>json_file</span>
1895
+
1896
+ <span class='kw'>if</span> <span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_instance_of?'>instance_of?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
1897
+ <span class='ivar'>@config</span> <span class='op'>=</span> <span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_transform_values'>transform_values</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span>
1898
+ <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_transform_keys'>transform_keys</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:to_sym</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_instance_of?'>instance_of?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
1899
+ <span class='kw'>end</span><span class='period'>.</span><span class='id identifier rubyid_transform_keys'>transform_keys</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:to_sym</span><span class='rparen'>)</span>
1900
+ <span class='kw'>end</span>
1901
+
1902
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_spinner_stop'><span class='object_link'><a href="Crayons.html#spinner_stop-class_method" title="Crayons.spinner_stop (method)">spinner_stop</a></span></span><span class='lparen'>(</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span>
1903
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
1904
+ <span class='kw'>rescue</span> <span class='const'>JSON</span><span class='op'>::</span><span class='const'>ParserError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1905
+ <span class='const'><span class='object_link'><a href="Crayons.html" title="Crayons (module)">Crayons</a></span></span><span class='period'>.</span><span class='id identifier rubyid_log_error'><span class='object_link'><a href="Crayons.html#log_error-class_method" title="Crayons.log_error (method)">log_error</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> Invalid config json!\n\n</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1906
+ <span class='id identifier rubyid_puts'>puts</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
1907
+ <span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
1908
+ <span class='kw'>end</span></pre>
1909
+ </td>
1910
+ </tr>
1911
+ </table>
1912
+ </div>
1913
+
1914
+ <div class="method_details ">
1915
+ <h3 class="signature " id="prj_top-class_method">
1916
+
1917
+ .<strong>prj_top</strong> &#x21d2; <tt>void</tt>
1918
+
1919
+
1920
+
1921
+
1922
+
1923
+ </h3><div class="docstring">
1924
+ <div class="discussion">
1925
+ <p class="note returns_void">This method returns an undefined value.</p><p>Navigates to project top (rvvm directory of the RVvM project).</p>
1926
+
1927
+
1928
+ </div>
1929
+ </div>
1930
+ <div class="tags">
1931
+
1932
+ <p class="tag_title">Since:</p>
1933
+ <ul class="since">
1934
+
1935
+ <li>
1936
+
1937
+
1938
+
1939
+
1940
+
1941
+ <div class='inline'><p>0.8.0</p>
1942
+ </div>
1943
+
1944
+ </li>
1945
+
1946
+ </ul>
1947
+
1948
+ </div><table class="source_code">
1949
+ <tr>
1950
+ <td>
1951
+ <pre class="lines">
1952
+
1953
+
1954
+ 310
1955
+ 311
1956
+ 312</pre>
1957
+ </td>
1958
+ <td>
1959
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 310</span>
1960
+
1961
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_prj_top'>prj_top</span>
1962
+ <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_chdir'>chdir</span><span class='lparen'>(</span><span class='ivar'>@config_path</span><span class='rparen'>)</span>
1963
+ <span class='kw'>end</span></pre>
1964
+ </td>
1965
+ </tr>
1966
+ </table>
1967
+ </div>
1968
+
1969
+ <div class="method_details ">
1970
+ <h3 class="signature " id="run-class_method">
1971
+
1972
+ .<strong>run</strong> &#x21d2; <tt>void</tt>
1973
+
1974
+
1975
+
1976
+
1977
+
1978
+ </h3><div class="docstring">
1979
+ <div class="discussion">
1980
+ <p class="note returns_void">This method returns an undefined value.</p><p>Runs rvvm calling its methods based on provided script args.</p>
1981
+
1982
+
1983
+ </div>
1984
+ </div>
1985
+ <div class="tags">
1986
+
1987
+ <p class="tag_title">Since:</p>
1988
+ <ul class="since">
1989
+
1990
+ <li>
1991
+
1992
+
1993
+
1994
+
1995
+
1996
+ <div class='inline'><p>0.8.0</p>
1997
+ </div>
1998
+
1999
+ </li>
2000
+
2001
+ </ul>
2002
+
2003
+ </div><table class="source_code">
2004
+ <tr>
2005
+ <td>
2006
+ <pre class="lines">
2007
+
2008
+
2009
+ 553
2010
+ 554
2011
+ 555
2012
+ 556
2013
+ 557
2014
+ 558
2015
+ 559
2016
+ 560
2017
+ 561
2018
+ 562
2019
+ 563
2020
+ 564
2021
+ 565
2022
+ 566
2023
+ 567
2024
+ 568
2025
+ 569
2026
+ 570
2027
+ 571
2028
+ 572
2029
+ 573
2030
+ 574
2031
+ 575
2032
+ 576
2033
+ 577
2034
+ 578
2035
+ 579</pre>
2036
+ </td>
2037
+ <td>
2038
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 553</span>
2039
+
2040
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span>
2041
+ <span class='id identifier rubyid_create_new_project'>create_new_project</span><span class='lparen'>(</span><span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:new</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:new</span><span class='rbracket'>]</span>
2042
+
2043
+ <span class='id identifier rubyid_check_args'>check_args</span>
2044
+ <span class='kw'>unless</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:here</span><span class='rbracket'>]</span>
2045
+ <span class='id identifier rubyid_load_config'>load_config</span>
2046
+ <span class='id identifier rubyid_handle_args'>handle_args</span>
2047
+ <span class='kw'>end</span>
2048
+
2049
+ <span class='id identifier rubyid_create_module'>create_module</span><span class='lparen'>(</span><span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:module</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>module</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:module</span><span class='rbracket'>]</span>
2050
+ <span class='id identifier rubyid_create_module'>create_module</span><span class='lparen'>(</span><span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:itf</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>itf</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:itf</span><span class='rbracket'>]</span>
2051
+ <span class='id identifier rubyid_create_pkg'>create_pkg</span><span class='lparen'>(</span><span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:pkg</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:pkg</span><span class='rbracket'>]</span>
2052
+ <span class='id identifier rubyid_create_svfile'>create_svfile</span><span class='lparen'>(</span><span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:svfile</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:svfile</span><span class='rbracket'>]</span>
2053
+
2054
+ <span class='id identifier rubyid_prj_top'>prj_top</span>
2055
+
2056
+ <span class='id identifier rubyid_compile'>compile</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:comp</span><span class='rbracket'>]</span>
2057
+ <span class='id identifier rubyid_dpi_c'>dpi_c</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:dpi</span><span class='rbracket'>]</span>
2058
+ <span class='id identifier rubyid_elaborate'>elaborate</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:elab</span><span class='rbracket'>]</span>
2059
+ <span class='id identifier rubyid_run_sim'>run_sim</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:run</span><span class='rbracket'>]</span>
2060
+ <span class='id identifier rubyid_run_sv'>run_sv</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:runsv</span><span class='rbracket'>]</span>
2061
+ <span class='id identifier rubyid_gui'>gui</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:gui</span><span class='rbracket'>]</span>
2062
+ <span class='id identifier rubyid_coverage'>coverage</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:gencov</span><span class='rbracket'>]</span>
2063
+ <span class='id identifier rubyid_cov_report'>cov_report</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:covreport</span><span class='rbracket'>]</span>
2064
+
2065
+ <span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
2066
+ <span class='kw'>end</span></pre>
2067
+ </td>
2068
+ </tr>
2069
+ </table>
2070
+ </div>
2071
+
2072
+ <div class="method_details ">
2073
+ <h3 class="signature " id="run_sim-class_method">
2074
+
2075
+ .<strong>run_sim</strong> &#x21d2; <tt>void</tt>
2076
+
2077
+
2078
+
2079
+
2080
+
2081
+ </h3><div class="docstring">
2082
+ <div class="discussion">
2083
+ <p class="note returns_void">This method returns an undefined value.</p><p>Runs UVM test simulation on an elaborated testbench snapshot using xrun.</p>
2084
+
2085
+
2086
+ </div>
2087
+ </div>
2088
+ <div class="tags">
2089
+
2090
+ <p class="tag_title">Since:</p>
2091
+ <ul class="since">
2092
+
2093
+ <li>
2094
+
2095
+
2096
+
2097
+
2098
+
2099
+ <div class='inline'><p>0.8.0</p>
2100
+ </div>
2101
+
2102
+ </li>
2103
+
2104
+ </ul>
2105
+
2106
+ </div><table class="source_code">
2107
+ <tr>
2108
+ <td>
2109
+ <pre class="lines">
2110
+
2111
+
2112
+ 369
2113
+ 370
2114
+ 371
2115
+ 372
2116
+ 373
2117
+ 374
2118
+ 375
2119
+ 376
2120
+ 377
2121
+ 378
2122
+ 379
2123
+ 380
2124
+ 381
2125
+ 382
2126
+ 383
2127
+ 384
2128
+ 385
2129
+ 386
2130
+ 387
2131
+ 388
2132
+ 389
2133
+ 390
2134
+ 391
2135
+ 392
2136
+ 393
2137
+ 394
2138
+ 395
2139
+ 396
2140
+ 397</pre>
2141
+ </td>
2142
+ <td>
2143
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 369</span>
2144
+
2145
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_run_sim'>run_sim</span>
2146
+ <span class='id identifier rubyid_cmd_args'>cmd_args</span> <span class='op'>=</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:simulation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:args</span><span class='rbracket'>]</span>
2147
+ <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:wave</span><span class='rbracket'>]</span>
2148
+ <span class='id identifier rubyid_cmd_args'>cmd_args</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> --tclbatch wfcfg.tcl</span><span class='tstring_end'>&quot;</span></span>
2149
+ <span class='kw'>else</span>
2150
+ <span class='id identifier rubyid_cmd_args'>cmd_args</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> -R</span><span class='tstring_end'>&quot;</span></span>
2151
+ <span class='kw'>end</span>
2152
+ <span class='id identifier rubyid_cmd_args'>cmd_args</span><span class='period'>.</span><span class='id identifier rubyid_strip!'>strip!</span>
2153
+
2154
+ <span class='comment'># Run simulaton on an array of tests.
2155
+ </span> <span class='comment'># If in not running in batch mode testlist is an array with a single test
2156
+ </span> <span class='id identifier rubyid_test'>test</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:test</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:simulation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:defTest</span><span class='rbracket'>]</span>
2157
+ <span class='id identifier rubyid_testlist'>testlist</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_test'>test</span><span class='rbracket'>]</span>
2158
+ <span class='id identifier rubyid_testlist'>testlist</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:testlist</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:simulation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:testlist</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:batch</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:simulation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:batch</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='int'>1</span>
2159
+
2160
+ <span class='id identifier rubyid_tb'>tb</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:simtb</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:tb</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:elaboration</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:tb</span><span class='rbracket'>]</span>
2161
+
2162
+ <span class='id identifier rubyid_testlist'>testlist</span><span class='period'>.</span><span class='id identifier rubyid_each_with_index'>each_with_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_simtest'>simtest</span><span class='comma'>,</span> <span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
2163
+ <span class='id identifier rubyid_simtest'>simtest</span><span class='period'>.</span><span class='id identifier rubyid_strip!'>strip!</span>
2164
+
2165
+ <span class='id identifier rubyid_logname'>logname</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:project</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:logDir</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:simulation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:logDir</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:simulation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:log</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rparen'>)</span>
2166
+ <span class='id identifier rubyid_logname'>logname</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Utils.html" title="Utils (module)">Utils</a></span></span><span class='period'>.</span><span class='id identifier rubyid_interpolate'><span class='object_link'><a href="Utils.html#interpolate-class_method" title="Utils.interpolate (method)">interpolate</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_logname'>logname</span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='label'>testname:</span> <span class='id identifier rubyid_simtest'>simtest</span> <span class='rbrace'>}</span><span class='rparen'>)</span>
2167
+
2168
+ <span class='id identifier rubyid_verb'>verb</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>UVM_</span><span class='embexpr_beg'>#{</span><span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:verb</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:simulation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:verbosity</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
2169
+
2170
+ <span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xsim </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_tb'>tb</span><span class='embexpr_end'>}</span><span class='tstring_content'> -log </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_logname'>logname</span><span class='embexpr_end'>}</span><span class='tstring_content'> -testplusarg \&quot;UVM_VERBOSITY=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_verb'>verb</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot; -testplusarg \&quot;UVM_TESTNAME=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_simtest'>simtest</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot; </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_cmd_args'>cmd_args</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
2171
+ <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Running UVM test </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_i'>i</span> <span class='op'>+</span> <span class='int'>1</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_testlist'>testlist</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='embexpr_end'>}</span><span class='tstring_content'>: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_simtest'>simtest</span><span class='embexpr_end'>}</span><span class='tstring_content'>...</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_cmd'>cmd</span><span class='rparen'>)</span>
2172
+ <span class='kw'>end</span>
2173
+ <span class='kw'>end</span></pre>
2174
+ </td>
2175
+ </tr>
2176
+ </table>
2177
+ </div>
2178
+
2179
+ <div class="method_details ">
2180
+ <h3 class="signature " id="run_sv-class_method">
2181
+
2182
+ .<strong>run_sv</strong> &#x21d2; <tt>void</tt>
2183
+
2184
+
2185
+
2186
+
2187
+
2188
+ </h3><div class="docstring">
2189
+ <div class="discussion">
2190
+ <p class="note returns_void">This method returns an undefined value.</p><p>Runs a pure SystemVerilog/Verilog simulation using xrun.</p>
2191
+
2192
+
2193
+ </div>
2194
+ </div>
2195
+ <div class="tags">
2196
+
2197
+ <p class="tag_title">Since:</p>
2198
+ <ul class="since">
2199
+
2200
+ <li>
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+ <div class='inline'><p>0.9.0</p>
2207
+ </div>
2208
+
2209
+ </li>
2210
+
2211
+ </ul>
2212
+
2213
+ </div><table class="source_code">
2214
+ <tr>
2215
+ <td>
2216
+ <pre class="lines">
2217
+
2218
+
2219
+ 404
2220
+ 405
2221
+ 406
2222
+ 407
2223
+ 408
2224
+ 409
2225
+ 410
2226
+ 411
2227
+ 412</pre>
2228
+ </td>
2229
+ <td>
2230
+ <pre class="code"><span class="info file"># File 'lib/rvvm.rb', line 404</span>
2231
+
2232
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_run_sv'>run_sv</span>
2233
+ <span class='id identifier rubyid_cmd_args'>cmd_args</span> <span class='op'>=</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:simulation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:args</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_strip!'>strip!</span>
2234
+ <span class='id identifier rubyid_tb'>tb</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:simtb</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:tb</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:elaboration</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:tb</span><span class='rbracket'>]</span>
2235
+
2236
+ <span class='id identifier rubyid_logname'>logname</span> <span class='op'>=</span> <span class='ivar'>@args</span><span class='lbracket'>[</span><span class='symbol'>:simlog</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:project</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:logDir</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@config</span><span class='lbracket'>[</span><span class='symbol'>:simulation</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:logDir</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>svsim.log</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
2237
+
2238
+ <span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xsim </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_tb'>tb</span><span class='embexpr_end'>}</span><span class='tstring_content'> -log </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_logname'>logname</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_cmd_args'>cmd_args</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
2239
+ <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Running pure SV/V simulation...</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_cmd'>cmd</span><span class='rparen'>)</span>
2240
+ <span class='kw'>end</span></pre>
2241
+ </td>
2242
+ </tr>
2243
+ </table>
2244
+ </div>
2245
+
2246
+ </div>
2247
+
2248
+ </div>
2249
+
2250
+ <div id="footer">
2251
+ Generated on Thu Sep 19 20:26:42 2024 by
2252
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2253
+ 0.9.37 (ruby-3.2.5).
2254
+ </div>
2255
+
2256
+ </div>
2257
+ </body>
2258
+ </html>