mirror of
https://github.com/zachjs/sv2v.git
synced 2026-08-30 09:28:12 +02:00
interface and instance array support
- support for interface instance arrays - support for interface-using module instance arrays - support for modport array bindings - fix modport bindings shadowed in nested instances
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
module top;
|
||||
reg inp;
|
||||
|
||||
initial begin
|
||||
$display("Hello I'm Interface!");
|
||||
$display("Hello I'm Interface!");
|
||||
$display("Hello I'm Interface!");
|
||||
|
||||
$display("Hello I'm ModuleA 0!");
|
||||
$display("Hello I'm ModuleA 1!");
|
||||
$display("Hello I'm ModuleA 1!");
|
||||
|
||||
$display("Hello I'm ModuleB 3!");
|
||||
$display("Hello I'm ModuleB 2!");
|
||||
$display("Hello I'm ModuleB 1!");
|
||||
$display("Hello I'm ModuleB 1!");
|
||||
$display("Hello I'm ModuleB 1!");
|
||||
$display("Hello I'm ModuleB 3!");
|
||||
|
||||
$display("Hello I'm ModuleASet 1 1 0!");
|
||||
|
||||
$display("Hello I'm Interface!");
|
||||
$display("Hello I'm Interface!");
|
||||
$display("Hello I'm Interface!");
|
||||
|
||||
$display("Hello I'm ModuleA 0!");
|
||||
$display("Hello I'm ModuleA 1!");
|
||||
$display("Hello I'm ModuleA 1!");
|
||||
|
||||
$display("Hello I'm ModuleB 3!");
|
||||
$display("Hello I'm ModuleB 2!");
|
||||
$display("Hello I'm ModuleB 1!");
|
||||
$display("Hello I'm ModuleB 1!");
|
||||
$display("Hello I'm ModuleB 1!");
|
||||
$display("Hello I'm ModuleB 3!");
|
||||
|
||||
$display("Hello I'm ModuleCSet 0 0 1!");
|
||||
|
||||
inp = 0; tick;
|
||||
inp = 1; tick;
|
||||
inp = 0; tick;
|
||||
inp = 1; tick;
|
||||
end
|
||||
|
||||
task tick; begin
|
||||
#1;
|
||||
|
||||
$display("I i = %b, v = %b, o = %b", inp, inp, inp ^ 1'b1);
|
||||
$display("I i = %b, v = %b, o = %b", inp, inp ^ 1'b1, inp ^ 1'b1);
|
||||
$display("I i = %b, v = %b, o = %b", inp, inp ^ 1'b1, inp);
|
||||
|
||||
$display("A i.v = %b", inp);
|
||||
$display("A i.v = %b", inp ^ 1'b1);
|
||||
$display("A i.v = %b", inp ^ 1'b1);
|
||||
|
||||
$display("B i_concat = %b, v_concat = %b", {3 {inp}}, {inp, inp ^ 1'b1, inp ^ 1'b1});
|
||||
$display("BN i_concat = %b, v_concat = %b", {3 {inp}}, {inp, inp ^ 1'b1, inp ^ 1'b1});
|
||||
$display("B i_concat = %b, v_concat = %b", {2 {inp}}, {inp, inp ^ 1'b1});
|
||||
$display("BN i_concat = %b, v_concat = %b", {2 {inp}}, {inp, inp ^ 1'b1});
|
||||
$display("B i_concat = %b, v_concat = %b", {1 {inp}}, inp);
|
||||
$display("BN i_concat = %b, v_concat = %b", {1 {inp}}, inp);
|
||||
$display("B i_concat = %b, v_concat = %b", {1 {inp}}, inp ^ 1'b1);
|
||||
$display("BN i_concat = %b, v_concat = %b", {1 {inp}}, inp ^ 1'b1);
|
||||
$display("B i_concat = %b, v_concat = %b", {1 {inp}}, inp ^ 1'b1);
|
||||
$display("BN i_concat = %b, v_concat = %b", {1 {inp}}, inp ^ 1'b1);
|
||||
$display("B i_concat = %b, v_concat = %b", {3 {inp}}, {inp, inp ^ 1'b1, inp ^ 1'b1});
|
||||
$display("BN i_concat = %b, v_concat = %b", {3 {inp}}, {inp, inp ^ 1'b1, inp ^ 1'b1});
|
||||
|
||||
$display("AS i.v = %b", inp ^ 1'b1);
|
||||
$display("AS i.v = %b", inp ^ 1'b1);
|
||||
$display("AS i.v = %b", inp);
|
||||
|
||||
$display("I i = %b, v = %b, o = %b", inp, inp ^ 1'b1, inp);
|
||||
$display("I i = %b, v = %b, o = %b", inp, inp, inp);
|
||||
$display("I i = %b, v = %b, o = %b", inp, inp, inp ^ 1'b1);
|
||||
|
||||
$display("A i.v = %b", inp ^ 1'b1);
|
||||
$display("A i.v = %b", inp);
|
||||
$display("A i.v = %b", inp);
|
||||
|
||||
$display("B i_concat = %b, v_concat = %b", {3 {~inp}}, {inp ^ 1'b1, inp, inp});
|
||||
$display("BN i_concat = %b, v_concat = %b", {3 {~inp}}, {inp ^ 1'b1, inp, inp});
|
||||
$display("B i_concat = %b, v_concat = %b", {2 {~inp}}, {inp ^ 1'b1, inp});
|
||||
$display("BN i_concat = %b, v_concat = %b", {2 {~inp}}, {inp ^ 1'b1, inp});
|
||||
$display("B i_concat = %b, v_concat = %b", {1 {~inp}}, inp ^ 1'b1);
|
||||
$display("BN i_concat = %b, v_concat = %b", {1 {~inp}}, inp ^ 1'b1);
|
||||
$display("B i_concat = %b, v_concat = %b", {1 {~inp}}, inp);
|
||||
$display("BN i_concat = %b, v_concat = %b", {1 {~inp}}, inp);
|
||||
$display("B i_concat = %b, v_concat = %b", {1 {~inp}}, inp);
|
||||
$display("BN i_concat = %b, v_concat = %b", {1 {~inp}}, inp);
|
||||
$display("B i_concat = %b, v_concat = %b", {3 {~inp}}, {inp ^ 1'b1, inp, inp});
|
||||
$display("BN i_concat = %b, v_concat = %b", {3 {~inp}}, {inp ^ 1'b1, inp, inp});
|
||||
|
||||
$display("CS i.v = %b", inp);
|
||||
$display("CS i.v = %b", inp);
|
||||
$display("CS i.v = %b", inp ^ 1'b1);
|
||||
end
|
||||
endtask
|
||||
endmodule
|
||||
Reference in New Issue
Block a user