информация о выводах модуля verilog - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь получить следующую информацию из файла Verilog:

  • имя модуля
  • список контактов
  • информация о контактах (pinName или busName (и диапазон векторов ), направление)

Например, под файлом Verilog:

module DMU  (
       A, B, C, 
       vdd, Z, Q, QN );

output Z;
input  A, B,
       C, D;

inout vdd;

output [127:0] Q;
output [18:0] QN;  //my comment

endmodule

Код, который я реализовал:

range = LBRACK + Word(nums) + COLON + Word(nums) + RBRACK
inputDecl = Group("input" + Optional(range) + Group(OneOrMore(Word(alphanums+","), stopOn=SEMI))).setResultsName("inputPins")
inoutDecl = Group("inout" + Optional(range) + Group(OneOrMore(Word(alphanums+","), stopOn=SEMI))).setResultsName("inoutPins")
outputDecl = Group("output" + Optional(range) + Group(OneOrMore(Word(alphanums+","), stopOn=SEMI))).setResultsName("outputPins")

pinsDecl = ~Keyword("endmodule") + (
            inputDecl |
            inoutDecl |
            outputDecl
            )

token_module = Keyword("module") + Word(alphanums).setResultsName("moduleName") + LPAR + \
               Group(OneOrMore(Word(alphanums+","), stopOn=RPAR).setResultsName("pinsList")) + SEMI + pinsDecl

У меня следующая ошибка Не могу решить:

File "/sw/freetools/python/3.7.2/rh60_64/modules_base/lib/python3.7/site-packages/pyparsing.py", line 2625, in parseImpl
    raise ParseException(instring, loc, self.errmsg, self)
pyparsing.ParseException: Expected ";" (at char 52), (line:3, col:22)

Кто-нибудь может мне помочь?

...