axi_tdl 0.0.19 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/axi_tdl/version.rb +1 -1
- data/lib/tdl/examples/2_hdl_class/tmp/test_module_var.sv +2 -2
- data/lib/tdl/examples/2_hdl_class/tmp/test_vcs_string.sv +1 -1
- data/lib/tdl/examples/9_itegration/clock_manage/itgt_module_clock_manage.rb +13 -0
- data/lib/tdl/examples/9_itegration/clock_manage/test_clock_bb.sv +34 -0
- data/lib/tdl/examples/9_itegration/tb_test_top.sv +2 -2
- data/lib/tdl/examples/9_itegration/tb_test_tttop.sv +1 -1
- data/lib/tdl/examples/9_itegration/tb_test_tttop_sim.sv +38 -0
- data/lib/tdl/examples/9_itegration/test_top.sv +4 -4
- data/lib/tdl/examples/9_itegration/test_tttop.sv +1 -1
- data/lib/tdl/examples/9_itegration/test_tttop_sim.sv +9 -0
- data/lib/tdl/examples/9_itegration/top.rb +1 -0
- data/lib/tdl/exlib/itegration_verb.rb +166 -129
- data/lib/tdl/sdlmodule/sdlmodule_draw.rb +1 -1
- data/lib/tdl/sdlmodule/test_unit_module.rb +6 -0
- data/lib/tdl/sdlmodule/top_module.rb +9 -10
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: baeb52ac25e3aaa2c8a6207d9de9744e64f6264112db6667dddf704f547ddf8f
|
4
|
+
data.tar.gz: 52bc1a24600db46881c770564a2f8a38a00e5b6547ab2dba312020a206a3e1a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e262a33c8f90aa05558c9d71e2d7d1ab90e9b1dcca5e17ba5dfd0c1a77b1a41b06bfe07a054b39498f34fd027b0da5205b01c77db91303e97cb0ca74ea783eeb
|
7
|
+
data.tar.gz: 183f5a3421d04f6c418fea0c1fa5ec14a91a50a1ffd3902e3decc4cac8cc77b774f8031e6686f4948c6d30b9925618a9062900f30d5312e3464ed36c5763b842
|
data/lib/axi_tdl/version.rb
CHANGED
@@ -5,7 +5,7 @@ _______________________________________
|
|
5
5
|
descript:
|
6
6
|
author : Cook.Darwin
|
7
7
|
Version: VERA.0.0
|
8
|
-
created: 2021-03-20
|
8
|
+
created: 2021-03-20 20:34:51 +0800
|
9
9
|
madified:
|
10
10
|
***********************************************/
|
11
11
|
`timescale 1ns/1ps
|
@@ -19,7 +19,7 @@ module test_module_var #(
|
|
19
19
|
|
20
20
|
//==========================================================================
|
21
21
|
//-------- define ----------------------------------------------------------
|
22
|
-
localparam ASIZE = 20
|
22
|
+
localparam ASIZE = 20;
|
23
23
|
axi_stream_inf #(.DSIZE(8),.USIZE(1)) tmp_axis_inf (.aclk(clock),.aresetn(rst_n),.aclken(1'b1)) ;
|
24
24
|
axi_stream_inf #(.DSIZE(8),.USIZE(1)) tmp_axis0_inf (.aclk(clock),.aresetn(rst_n),.aclken(1'b1)) ;
|
25
25
|
axi_inf #(.DSIZE(32),.IDSIZE(2),.ASIZE(8),.LSIZE(9),.MODE("BOTH"),.ADDR_STEP(4294967295)) tmp_axi4_inf (.axi_aclk(clock),.axi_aresetn(rst_n)) ;
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/**********************************************
|
2
|
+
_______________________________________
|
3
|
+
___________ Cook Darwin __________
|
4
|
+
_______________________________________
|
5
|
+
descript:
|
6
|
+
author : Cook.Darwin
|
7
|
+
Version: VERA.0.0
|
8
|
+
created: 2021-03-20 23:48:13 +0800
|
9
|
+
madified:
|
10
|
+
***********************************************/
|
11
|
+
`timescale 1ns/1ps
|
12
|
+
|
13
|
+
module test_clock_bb(
|
14
|
+
input from_up_pass,
|
15
|
+
output logic to_down_pass
|
16
|
+
);
|
17
|
+
|
18
|
+
//==========================================================================
|
19
|
+
//-------- define ----------------------------------------------------------
|
20
|
+
|
21
|
+
|
22
|
+
//==========================================================================
|
23
|
+
//-------- instance --------------------------------------------------------
|
24
|
+
|
25
|
+
//==========================================================================
|
26
|
+
//-------- expression ------------------------------------------------------
|
27
|
+
initial begin
|
28
|
+
to_down_pass = 1'b0;
|
29
|
+
wait(from_up_pass);
|
30
|
+
$root.tb_test_tttop_sim.test_unit_region = "test_clock_bb";
|
31
|
+
to_down_pass = 1'b1;
|
32
|
+
end
|
33
|
+
|
34
|
+
endmodule
|
@@ -5,7 +5,7 @@ _______________________________________
|
|
5
5
|
descript:
|
6
6
|
author : Cook.Darwin
|
7
7
|
Version: VERA.0.0
|
8
|
-
created:
|
8
|
+
created: 2021-03-20 20:34:51 +0800
|
9
9
|
madified:
|
10
10
|
***********************************************/
|
11
11
|
`timescale 1ns/1ps
|
@@ -23,7 +23,7 @@ test_top rtl_top(
|
|
23
23
|
//==========================================================================
|
24
24
|
//-------- expression ------------------------------------------------------
|
25
25
|
initial begin
|
26
|
-
|
26
|
+
forever begin #(33ns);gl_clk = ~gl_clk;end;
|
27
27
|
end
|
28
28
|
|
29
29
|
endmodule
|
@@ -0,0 +1,38 @@
|
|
1
|
+
/**********************************************
|
2
|
+
_______________________________________
|
3
|
+
___________ Cook Darwin __________
|
4
|
+
_______________________________________
|
5
|
+
descript:
|
6
|
+
author : Cook.Darwin
|
7
|
+
Version: VERA.0.0
|
8
|
+
created: xxxx.xx.xx
|
9
|
+
madified:
|
10
|
+
***********************************************/
|
11
|
+
`timescale 1ns/1ps
|
12
|
+
|
13
|
+
module tb_test_tttop_sim();
|
14
|
+
//==========================================================================
|
15
|
+
//-------- define ----------------------------------------------------------
|
16
|
+
logic gl_clk;
|
17
|
+
string test_unit_region;
|
18
|
+
logic unit_pass_u;
|
19
|
+
logic unit_pass_d;
|
20
|
+
|
21
|
+
//==========================================================================
|
22
|
+
//-------- instance --------------------------------------------------------
|
23
|
+
test_tttop_sim rtl_top(
|
24
|
+
/* input clock */.global_sys_clk (gl_clk )
|
25
|
+
);
|
26
|
+
test_clock_bb test_unit_0(
|
27
|
+
/* input */.from_up_pass (unit_pass_u ),
|
28
|
+
/* output */.to_down_pass (unit_pass_d )
|
29
|
+
);
|
30
|
+
//==========================================================================
|
31
|
+
//-------- expression ------------------------------------------------------
|
32
|
+
initial begin
|
33
|
+
forever begin #(33ns);gl_clk = ~gl_clk;end;
|
34
|
+
end
|
35
|
+
|
36
|
+
assign unit_pass_u = 1'b1;
|
37
|
+
|
38
|
+
endmodule
|
@@ -5,7 +5,7 @@ _______________________________________
|
|
5
5
|
descript:
|
6
6
|
author : Cook.Darwin
|
7
7
|
Version: VERA.0.0
|
8
|
-
created:
|
8
|
+
created: 2021-03-20 20:34:51 +0800
|
9
9
|
madified:
|
10
10
|
***********************************************/
|
11
11
|
`timescale 1ns/1ps
|
@@ -33,8 +33,8 @@ a_test_md a_test_md_inst(
|
|
33
33
|
);
|
34
34
|
//==========================================================================
|
35
35
|
//-------- expression ------------------------------------------------------
|
36
|
-
assign
|
37
|
-
assign
|
38
|
-
assign
|
36
|
+
assign x_origin_inf.axis_tvalid = 1'b0;
|
37
|
+
assign x_origin_inf.axis_tdata = '0;
|
38
|
+
assign x_origin_inf.axis_tlast = 1'b0;
|
39
39
|
|
40
40
|
endmodule
|
@@ -354,25 +354,25 @@ class ItegrationVerb
|
|
354
354
|
_names_pool_inst()
|
355
355
|
# @itgt_links = ItgtLinks.new(self)
|
356
356
|
## 为child module 生成方法
|
357
|
-
init_children_modules()
|
357
|
+
# init_children_modules()
|
358
358
|
# init_children_modules_post()
|
359
359
|
end
|
360
360
|
|
361
|
-
def init_children_modules
|
362
|
-
|
363
|
-
|
364
|
-
|
361
|
+
# def init_children_modules
|
362
|
+
# blocks_hash = self.class.instance_variable_get("@_sdl_eval_blocks_hash_") || {}
|
363
|
+
# blocks_hash_post = self.class.instance_variable_get("@_sdl_eval_blocks_post_hash_") || {}
|
364
|
+
# dir_hash = self.class.instance_variable_get("@_sdl_eval_dir_hash_")
|
365
365
|
|
366
|
-
|
366
|
+
# blocks_hash = blocks_hash.merge blocks_hash_post
|
367
367
|
|
368
|
-
|
368
|
+
# blocks_hash.keys.each do |key|
|
369
369
|
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
end
|
370
|
+
# sdlm = SdlModule.new(name:self.class.to_s + "_#{@nickname}#{key}",out_sv_path:dir_hash[key])
|
371
|
+
# define_singleton_method(key) do
|
372
|
+
# sdlm
|
373
|
+
# end
|
374
|
+
# end
|
375
|
+
# end
|
376
376
|
|
377
377
|
# def init_children_modules_post
|
378
378
|
# blocks_hash = self.class.instance_variable_get("@_sdl_eval_blocks_post_hash_")
|
@@ -387,20 +387,20 @@ class ItegrationVerb
|
|
387
387
|
# end
|
388
388
|
# end
|
389
389
|
|
390
|
-
def gen_children_modules
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
end
|
390
|
+
# def gen_children_modules
|
391
|
+
# blocks_hash = self.class.instance_variable_get("@_sdl_eval_blocks_hash_") || {}
|
392
|
+
# blocks_hash_post = self.class.instance_variable_get("@_sdl_eval_blocks_post_hash_") || {}
|
393
|
+
# blocks_hash = blocks_hash.merge blocks_hash_post
|
394
|
+
# blocks_hash.keys.each do |key|
|
395
|
+
# self.send(key).gen_sv_module()
|
396
|
+
# end
|
397
|
+
# end
|
398
398
|
|
399
399
|
# define_singleton_method(:inst) do
|
400
400
|
def inst
|
401
401
|
# 先生成子模块
|
402
402
|
## 执行 生成 sdl module
|
403
|
-
inst_child_module()
|
403
|
+
# inst_child_module()
|
404
404
|
|
405
405
|
blocks = self.class.instance_variable_get("@_inst_blocks_")
|
406
406
|
ItegrationVerb.curr_itgt_push(self)
|
@@ -422,7 +422,7 @@ class ItegrationVerb
|
|
422
422
|
end
|
423
423
|
|
424
424
|
## 执行 生成 sdl module
|
425
|
-
inst_child_module_post()
|
425
|
+
# inst_child_module_post()
|
426
426
|
|
427
427
|
## 执行top module techbench eval
|
428
428
|
tb_inst()
|
@@ -431,7 +431,8 @@ class ItegrationVerb
|
|
431
431
|
## 执行 约束
|
432
432
|
inst_constraints()
|
433
433
|
## 执行单元测试
|
434
|
-
|
434
|
+
## 改到 运行 top_module _exec_add_test_unit 那边执行
|
435
|
+
# test_unit_inst()
|
435
436
|
end
|
436
437
|
|
437
438
|
def tb_inst
|
@@ -464,8 +465,11 @@ class ItegrationVerb
|
|
464
465
|
return if blocks.empty?
|
465
466
|
ItegrationVerb.curr_itgt_push self
|
466
467
|
|
467
|
-
|
468
|
-
|
468
|
+
unless TopModule.sim
|
469
|
+
ItegrationVerb.curr_itgt_pop
|
470
|
+
return
|
471
|
+
end
|
472
|
+
|
469
473
|
blocks.each do |b|
|
470
474
|
# @top_module.techbench.instance_exec(self,&b.clone)
|
471
475
|
sdlm = TestUnitModule.new(name: b[0],out_sv_path: b[1])
|
@@ -486,62 +490,94 @@ class ItegrationVerb
|
|
486
490
|
|
487
491
|
end
|
488
492
|
|
489
|
-
def
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
blocks = blocks_hash[key]
|
499
|
-
if blocks.length == 1
|
500
|
-
block = blocks[0]
|
501
|
-
sdlm.instance_exec(self,&block)
|
502
|
-
elsif blocks.length > 1
|
503
|
-
# block = Proc.new do
|
504
|
-
blocks.each do |b|
|
505
|
-
# b.call
|
506
|
-
sdlm.instance_exec(self,&b)
|
507
|
-
end
|
508
|
-
# end
|
509
|
-
else
|
510
|
-
;
|
511
|
-
end
|
512
|
-
end
|
513
|
-
end
|
514
|
-
ItegrationVerb.curr_itgt_pop
|
515
|
-
end
|
493
|
+
def self.test_unit_inst(&filter_block)
|
494
|
+
# blocks = self.instance_variable_get("@_inst_test_unit_blocks_")
|
495
|
+
# blocks = instance_variable_get("@_inst_test_unit_blocks_") || []
|
496
|
+
blocks = @@_inst_test_unit_blocks_
|
497
|
+
return unless blocks
|
498
|
+
return if blocks.empty?
|
499
|
+
return unless TopModule.sim
|
516
500
|
|
517
|
-
|
518
|
-
blocks_hash = self.class.instance_variable_get("@_sdl_eval_blocks_post_hash_")
|
519
|
-
return unless blocks_hash
|
520
|
-
ItegrationVerb.curr_itgt_push self
|
521
|
-
$_implicit_curr_itgt_.with_none_itgt do
|
522
|
-
blocks_hash.keys.each do |key|
|
523
|
-
sdlm = self.send(key)
|
524
|
-
# $_implicit_curr_itgt_ = self
|
501
|
+
ItegrationVerb.curr_itgt_push nil
|
525
502
|
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
503
|
+
blocks.each do |b|
|
504
|
+
# @top_module.techbench.instance_exec(self,&b.clone)
|
505
|
+
if !(block_given?) || filter_block.call(b[0])
|
506
|
+
sdlm = TestUnitModule.new(name: b[0],out_sv_path: b[1])
|
507
|
+
$_implicit_curr_itgt_.with_none_itgt do
|
508
|
+
sdlm.input - "from_up_pass"
|
509
|
+
sdlm.output.logic - "to_down_pass"
|
510
|
+
end
|
511
|
+
sdlm.instance_exec(nil,&b[2])
|
512
|
+
|
513
|
+
if b[1] && File.exist?(b[1])
|
514
|
+
sdlm.gen_sv_module
|
515
|
+
else
|
516
|
+
sdlm.origin_sv = true
|
539
517
|
end
|
540
518
|
end
|
541
519
|
end
|
520
|
+
|
542
521
|
ItegrationVerb.curr_itgt_pop
|
522
|
+
|
543
523
|
end
|
544
524
|
|
525
|
+
# def inst_child_module
|
526
|
+
# blocks_hash = self.class.instance_variable_get("@_sdl_eval_blocks_hash_")
|
527
|
+
# return unless blocks_hash
|
528
|
+
# ItegrationVerb.curr_itgt_push self
|
529
|
+
# $_implicit_curr_itgt_.with_none_itgt do
|
530
|
+
# blocks_hash.keys.each do |key|
|
531
|
+
# sdlm = self.send(key)
|
532
|
+
|
533
|
+
|
534
|
+
# blocks = blocks_hash[key]
|
535
|
+
# if blocks.length == 1
|
536
|
+
# block = blocks[0]
|
537
|
+
# sdlm.instance_exec(self,&block)
|
538
|
+
# elsif blocks.length > 1
|
539
|
+
# # block = Proc.new do
|
540
|
+
# blocks.each do |b|
|
541
|
+
# # b.call
|
542
|
+
# sdlm.instance_exec(self,&b)
|
543
|
+
# end
|
544
|
+
# # end
|
545
|
+
# else
|
546
|
+
# ;
|
547
|
+
# end
|
548
|
+
# end
|
549
|
+
# end
|
550
|
+
# ItegrationVerb.curr_itgt_pop
|
551
|
+
# end
|
552
|
+
|
553
|
+
# def inst_child_module_post
|
554
|
+
# blocks_hash = self.class.instance_variable_get("@_sdl_eval_blocks_post_hash_")
|
555
|
+
# return unless blocks_hash
|
556
|
+
# ItegrationVerb.curr_itgt_push self
|
557
|
+
# $_implicit_curr_itgt_.with_none_itgt do
|
558
|
+
# blocks_hash.keys.each do |key|
|
559
|
+
# sdlm = self.send(key)
|
560
|
+
# # $_implicit_curr_itgt_ = self
|
561
|
+
|
562
|
+
# blocks = blocks_hash[key]
|
563
|
+
# if blocks.length == 1
|
564
|
+
# block = blocks[0]
|
565
|
+
# sdlm.instance_exec(self,&block)
|
566
|
+
# elsif blocks.length > 1
|
567
|
+
# # block = Proc.new do
|
568
|
+
# blocks.each do |b|
|
569
|
+
# # b.call
|
570
|
+
# sdlm.instance_exec(self,&b)
|
571
|
+
# end
|
572
|
+
# # end
|
573
|
+
# else
|
574
|
+
# next
|
575
|
+
# end
|
576
|
+
# end
|
577
|
+
# end
|
578
|
+
# ItegrationVerb.curr_itgt_pop
|
579
|
+
# end
|
580
|
+
|
545
581
|
def self.inherited(subclass)
|
546
582
|
unless @@child.include? subclass
|
547
583
|
@@child << subclass
|
@@ -589,7 +625,7 @@ class ItegrationVerb
|
|
589
625
|
public
|
590
626
|
def check_same_method(name)
|
591
627
|
if respond_to? name.to_s
|
592
|
-
raise TdlError.new("Itegration can't Redefine method #{name}")
|
628
|
+
raise TdlError.new("Itegration `#{to_s}` can't Redefine method #{name}")
|
593
629
|
end
|
594
630
|
end
|
595
631
|
|
@@ -736,63 +772,64 @@ class ItegrationVerb
|
|
736
772
|
## 添加测试用例
|
737
773
|
|
738
774
|
def self.def_test_unit(name,path,&block)
|
739
|
-
_inst_test_unit_blocks_ = instance_variable_get("@_inst_test_unit_blocks_")
|
740
|
-
_inst_test_unit_blocks_ ||= []
|
741
|
-
_inst_test_unit_blocks_ << [name.to_s, path, block]
|
742
|
-
instance_variable_set("@_inst_test_unit_blocks_",_inst_test_unit_blocks_)
|
775
|
+
# @@_inst_test_unit_blocks_ = instance_variable_get("@_inst_test_unit_blocks_")
|
776
|
+
@@_inst_test_unit_blocks_ ||= []
|
777
|
+
@@_inst_test_unit_blocks_ << [name.to_s, path, block]
|
778
|
+
# instance_variable_set("@_inst_test_unit_blocks_",_inst_test_unit_blocks_)
|
779
|
+
@@_inst_test_unit_blocks_
|
743
780
|
end
|
744
781
|
|
745
782
|
## 生成 itgt内的模块,
|
746
|
-
def self.has_module(dir,*names)
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
end
|
783
|
+
# def self.has_module(dir,*names)
|
784
|
+
# unless File.exist? dir
|
785
|
+
# Dir.mkdir dir
|
786
|
+
# end
|
787
|
+
# ## itgt 生成 sdl 模块
|
788
|
+
# names.each do |name|
|
789
|
+
# # unless container_hash[name.to_s]
|
790
|
+
# # container_hash[name.to_s] = []
|
791
|
+
# # end
|
792
|
+
# self.define_singleton_method("#{name}_sdl_eval") do |&block|
|
793
|
+
# _sdl_eval_blocks_hash_ = instance_variable_get("@_sdl_eval_blocks_hash_")
|
794
|
+
# _sdl_eval_dir_hash_ = instance_variable_get("@_sdl_eval_dir_hash_")
|
795
|
+
# _sdl_eval_blocks_hash_ ||= {}
|
796
|
+
# _sdl_eval_dir_hash_ ||= {}
|
797
|
+
|
798
|
+
# if _sdl_eval_blocks_hash_[name]
|
799
|
+
# _sdl_eval_blocks_hash_[name] << block
|
800
|
+
# # _sdl_eval_blocks_hash_[name] << $_implicit_curr_itgt_.wrap_nont_itgt(&block)
|
801
|
+
# # _sdl_eval_blocks_hash_[name] << lambda {|itgt| block.call }
|
802
|
+
# else
|
803
|
+
# _sdl_eval_blocks_hash_[name] = [block]
|
804
|
+
# # _sdl_eval_blocks_hash_[name] = [$_implicit_curr_itgt_.wrap_nont_itgt(&block)]
|
805
|
+
# # _sdl_eval_blocks_hash_[name] == [ lambda {|itgt| block.call }]
|
806
|
+
# end
|
807
|
+
|
808
|
+
# _sdl_eval_dir_hash_[name] = dir if dir
|
809
|
+
# instance_variable_set("@_sdl_eval_dir_hash_",_sdl_eval_dir_hash_)
|
810
|
+
# instance_variable_set("@_sdl_eval_blocks_hash_",_sdl_eval_blocks_hash_)
|
811
|
+
# end
|
812
|
+
# ## 在 top_module 后再执行
|
813
|
+
# self.define_singleton_method("#{name}_sdl_post_eval") do |&block|
|
814
|
+
# $_implicit_curr_itgt_.with_none_itgt do
|
815
|
+
# _blocks_hash_ = instance_variable_get("@_sdl_eval_blocks_post_hash_")
|
816
|
+
# _sdl_eval_dir_hash_ = instance_variable_get("@_sdl_eval_dir_hash_")
|
817
|
+
# _blocks_hash_ ||= {}
|
818
|
+
# _sdl_eval_dir_hash_ ||= {}
|
819
|
+
|
820
|
+
# if _blocks_hash_[name]
|
821
|
+
# _blocks_hash_[name] << block #$_implicit_curr_itgt_.wrap_nont_itgt(&block)
|
822
|
+
# else
|
823
|
+
# _blocks_hash_[name] = [block] #[$_implicit_curr_itgt_.wrap_nont_itgt(&block)]
|
824
|
+
# end
|
825
|
+
|
826
|
+
# _sdl_eval_dir_hash_[name] = dir if dir
|
827
|
+
# instance_variable_set("@_sdl_eval_dir_hash_",_sdl_eval_dir_hash_)
|
828
|
+
# instance_variable_set("@_sdl_eval_blocks_post_hash_",_blocks_hash_)
|
829
|
+
# end
|
830
|
+
# end
|
831
|
+
# end
|
832
|
+
# end
|
796
833
|
|
797
834
|
def self.record_instance_var_block(name,default=[],&block)
|
798
835
|
_inst_ccc_ = instance_variable_get("@_#{name}_")
|
@@ -64,7 +64,7 @@ class SdlModule
|
|
64
64
|
end
|
65
65
|
else
|
66
66
|
File.open(File.join(@out_sv_path,"#{module_name}.sv"),"w") do |f|
|
67
|
-
f.print
|
67
|
+
f.print build_module_verb(ex_param:ex_param,ex_port:ex_port,ex_up_code:ex_up_code,ex_down_code:ex_down_code).join("")
|
68
68
|
end
|
69
69
|
end
|
70
70
|
end
|
@@ -325,6 +325,12 @@ class TopModule
|
|
325
325
|
def _exec_add_test_unit
|
326
326
|
@_test_unit_collect_ ||= []
|
327
327
|
args = @_test_unit_collect_
|
328
|
+
## 例化需要的itgt test unit
|
329
|
+
# ItegrationVerb.test_unit_inst
|
330
|
+
ItegrationVerb.test_unit_inst do |name|
|
331
|
+
args.include? name.to_s
|
332
|
+
end
|
333
|
+
|
328
334
|
self.techbench.instance_exec(args) do |args|
|
329
335
|
index = 0
|
330
336
|
last_index = 0
|
@@ -154,17 +154,16 @@ endmodule\n"
|
|
154
154
|
end
|
155
155
|
|
156
156
|
## 生成 itgt下的子模块文件
|
157
|
-
#
|
158
|
-
|
159
|
-
|
160
|
-
end
|
157
|
+
# @_itgt_collect_.each do |itgt|
|
158
|
+
# itgt.gen_children_modules()
|
159
|
+
# end
|
161
160
|
|
162
|
-
if implicit_itgt_collect
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
end
|
161
|
+
# if implicit_itgt_collect
|
162
|
+
# ## 执行 itegration_verb 里面的silence
|
163
|
+
# implicit_itgt_collect.each do |itgt|
|
164
|
+
# itgt.gen_children_modules()
|
165
|
+
# end
|
166
|
+
# end
|
168
167
|
|
169
168
|
end
|
170
169
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: axi_tdl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cook.Darwin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -1204,14 +1204,17 @@ files:
|
|
1204
1204
|
- lib/tdl/examples/9_itegration/clock_manage/itgt_module_clock_manage.rb
|
1205
1205
|
- lib/tdl/examples/9_itegration/clock_manage/simple_clock.rb
|
1206
1206
|
- lib/tdl/examples/9_itegration/clock_manage/simple_clock.sv
|
1207
|
+
- lib/tdl/examples/9_itegration/clock_manage/test_clock_bb.sv
|
1207
1208
|
- lib/tdl/examples/9_itegration/dve.tcl
|
1208
1209
|
- lib/tdl/examples/9_itegration/pins.yml
|
1209
1210
|
- lib/tdl/examples/9_itegration/tb_test_top.sv
|
1210
1211
|
- lib/tdl/examples/9_itegration/tb_test_tttop.sv
|
1212
|
+
- lib/tdl/examples/9_itegration/tb_test_tttop_sim.sv
|
1211
1213
|
- lib/tdl/examples/9_itegration/test_top.sv
|
1212
1214
|
- lib/tdl/examples/9_itegration/test_top_constraints.xdc
|
1213
1215
|
- lib/tdl/examples/9_itegration/test_tttop.sv
|
1214
1216
|
- lib/tdl/examples/9_itegration/test_tttop_constraints.xdc
|
1217
|
+
- lib/tdl/examples/9_itegration/test_tttop_sim.sv
|
1215
1218
|
- lib/tdl/examples/9_itegration/top.rb
|
1216
1219
|
- lib/tdl/examples/readme.md
|
1217
1220
|
- lib/tdl/exlib/axis_eth_ex.rb
|