We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 07c7f0a commit 5701a9aCopy full SHA for 5701a9a
pyverilog/vparser/ast.py
@@ -458,6 +458,12 @@ def children(self):
458
if self.statement: nodelist.append(self.statement)
459
return tuple(nodelist)
460
461
+class AlwaysFF(Always):
462
+ pass
463
+
464
+class AlwaysComb(Always):
465
466
467
class SensList(Node):
468
attr_names = ()
469
def __init__(self, list, lineno=0):
pyverilog/vparser/lexer.py
@@ -43,9 +43,9 @@ def token(self):
43
keywords = (
44
'MODULE', 'ENDMODULE', 'BEGIN', 'END', 'GENERATE', 'ENDGENERATE', 'GENVAR',
45
'FUNCTION', 'ENDFUNCTION', 'TASK', 'ENDTASK',
46
- 'INPUT', 'INOUT', 'OUTPUT', 'TRI', 'REG', 'WIRE', 'INTEGER', 'REAL', 'SIGNED',
+ 'INPUT', 'INOUT', 'OUTPUT', 'TRI', 'REG', 'LOGIC', 'WIRE', 'INTEGER', 'REAL', 'SIGNED',
47
'PARAMETER', 'LOCALPARAM', 'SUPPLY0', 'SUPPLY1',
48
- 'ASSIGN', 'ALWAYS', 'SENS_OR', 'POSEDGE', 'NEGEDGE', 'INITIAL',
+ 'ASSIGN', 'ALWAYS', 'ALWAYS_FF', 'ALWAYS_COMB', 'SENS_OR', 'POSEDGE', 'NEGEDGE', 'INITIAL',
49
'IF', 'ELSE', 'FOR', 'WHILE', 'CASE', 'CASEX', 'ENDCASE', 'DEFAULT',
50
'WAIT', 'FOREVER', 'DISABLE', 'FORK', 'JOIN',
51
)
pyverilog/vparser/parser.py
@@ -299,6 +299,11 @@ def p_sigtype_reg(self, p):
299
p[0] = p[1]
300
p.set_lineno(0, p.lineno(1))
301
302
+ def p_sigtype_logic(self, p):
303
+ 'sigtype : LOGIC'
304
+ p[0] = p[1]
305
+ p.set_lineno(0, p.lineno(1))
306
307
def p_sigtype_wire(self, p):
308
'sigtype : WIRE'
309
@@ -458,6 +463,8 @@ def p_standard_item(self, p):
| genvardecl
| assignment
| always
+ | always_ff
+ | always_comb
| initial
| instance
470
| function
@@ -1255,6 +1262,14 @@ def p_always(self, p):
1255
1262
p[0] = Always(p[2], p[3], lineno=p.lineno(1))
1256
1263
1257
1264
1265
+ def p_always_ff(self, p):
1266
+ 'always_ff : ALWAYS_FF senslist always_statement'
1267
+ p[0] = AlwaysFF(p[2], p[3], lineno=p.lineno(1))
1268
1269
+ def p_always_comb(self, p):
1270
+ 'always_comb : ALWAYS_COMB senslist always_statement'
1271
+ p[0] = AlwaysComb(p[2], p[3], lineno=p.lineno(1))
1272
1258
1273
def p_sens_egde_paren(self, p):
1259
1274
'senslist : AT LPAREN edgesigs RPAREN'
1260
1275
p[0] = SensList(p[3], lineno=p.lineno(1))
0 commit comments