Skip to content

Commit 2b398d9

Browse files
committed
from_verilog.read_verilog_stubmodule() returns StubModules with the original codes.
1 parent 552020e commit 2b398d9

File tree

3 files changed

+72
-2
lines changed

3 files changed

+72
-2
lines changed

tests/verilog/read_verilog_/stub_module/test_read_verilog_stub_module.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,38 @@
2424
LED
2525
);
2626
endmodule
27+
28+
module blinkled #
29+
(
30+
parameter WIDTH = 8
31+
)
32+
(
33+
input CLK,
34+
input RST,
35+
output reg [WIDTH-1:0] LED
36+
);
37+
reg [32-1:0] count;
38+
always @(posedge CLK) begin
39+
if(RST) begin
40+
count <= 0;
41+
end else begin
42+
if(count == 1023) begin
43+
count <= 0;
44+
end else begin
45+
count <= count + 1;
46+
end
47+
end
48+
end
49+
always @(posedge CLK) begin
50+
if(RST) begin
51+
LED <= 0;
52+
end else begin
53+
if(count == 1023) begin
54+
LED <= LED + 1;
55+
end
56+
end
57+
end
58+
endmodule
2759
"""
2860

2961
def test():

tests/verilog/read_verilog_/stub_module_str/test_read_verilog_stub_module_str.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,38 @@
2424
LED
2525
);
2626
endmodule
27+
28+
module blinkled #
29+
(
30+
parameter WIDTH = 8
31+
)
32+
(
33+
input CLK,
34+
input RST,
35+
output reg [WIDTH-1:0] LED
36+
);
37+
reg [32-1:0] count;
38+
always @(posedge CLK) begin
39+
if(RST) begin
40+
count <= 0;
41+
end else begin
42+
if(count == 1023) begin
43+
count <= 0;
44+
end else begin
45+
count <= count + 1;
46+
end
47+
end
48+
end
49+
always @(posedge CLK) begin
50+
if(RST) begin
51+
LED <= 0;
52+
end else begin
53+
if(count == 1023) begin
54+
LED <= LED + 1;
55+
end
56+
end
57+
end
58+
endmodule
2759
"""
2860

2961
def test():

veriloggen/verilog/from_verilog.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,20 @@
1313
import pyverilog.vparser.ast as vast
1414
from pyverilog.vparser.parser import VerilogCodeParser
1515
from pyverilog.dataflow.modulevisitor import ModuleVisitor
16+
from pyverilog.ast_code_generator.codegen import ASTCodeGenerator
1617

1718
#-------------------------------------------------------------------------------
1819
# User interfaces to read Verilog source code
1920
#-------------------------------------------------------------------------------
2021
def read_verilog_stubmodule(*filelist, **opt):
2122
module_dict = to_module_dict(*filelist, **opt)
22-
stubs = collections.OrderedDict([ (name, module.StubModule(name))
23-
for name in module_dict.keys() ])
23+
codegen = ASTCodeGenerator()
24+
stubs = collections.OrderedDict()
25+
for name, m in module_dict.items():
26+
description = vast.Description( (m,) )
27+
source = vast.Source('', description)
28+
code = codegen.visit(source)
29+
stubs[name] = module.StubModule(name, code=code)
2430
return stubs
2531

2632
def read_verilog_module(*filelist, **opt):

0 commit comments

Comments
 (0)