Skip to content

Commit 6adfc5c

Browse files
authored
Merge pull request #47 from THofstee/patch-2
add preliminary support for `always_latch`
2 parents 614d701 + 4fc5399 commit 6adfc5c

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

pyverilog/vparser/ast.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -742,6 +742,10 @@ class AlwaysComb(Always):
742742
pass
743743

744744

745+
class AlwaysLatch(Always):
746+
pass
747+
748+
745749
class SensList(Node):
746750
attr_names = ()
747751

pyverilog/vparser/lexer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def token(self):
5555
'FUNCTION', 'ENDFUNCTION', 'TASK', 'ENDTASK',
5656
'INPUT', 'INOUT', 'OUTPUT', 'TRI', 'REG', 'LOGIC', 'WIRE', 'INTEGER', 'REAL', 'SIGNED',
5757
'PARAMETER', 'LOCALPARAM', 'SUPPLY0', 'SUPPLY1',
58-
'ASSIGN', 'ALWAYS', 'ALWAYS_FF', 'ALWAYS_COMB', 'SENS_OR', 'POSEDGE', 'NEGEDGE', 'INITIAL',
58+
'ASSIGN', 'ALWAYS', 'ALWAYS_FF', 'ALWAYS_COMB', 'ALWAYS_LATCH', 'SENS_OR', 'POSEDGE', 'NEGEDGE', 'INITIAL',
5959
'IF', 'ELSE', 'FOR', 'WHILE', 'CASE', 'CASEX', 'UNIQUE', 'ENDCASE', 'DEFAULT',
6060
'WAIT', 'FOREVER', 'DISABLE', 'FORK', 'JOIN',
6161
)

pyverilog/vparser/parser.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,7 @@ def p_standard_item(self, p):
473473
| always
474474
| always_ff
475475
| always_comb
476+
| always_latch
476477
| initial
477478
| instance
478479
| function
@@ -1273,10 +1274,17 @@ def p_always(self, p):
12731274
def p_always_ff(self, p):
12741275
'always_ff : ALWAYS_FF senslist always_statement'
12751276
p[0] = AlwaysFF(p[2], p[3], lineno=p.lineno(1))
1277+
p.set_lineno(0, p.lineno(1))
12761278

12771279
def p_always_comb(self, p):
12781280
'always_comb : ALWAYS_COMB senslist always_statement'
12791281
p[0] = AlwaysComb(p[2], p[3], lineno=p.lineno(1))
1282+
p.set_lineno(0, p.lineno(1))
1283+
1284+
def p_always_latch(self, p):
1285+
'always_latch : ALWAYS_LATCH senslist always_statement'
1286+
p[0] = AlwaysLatch(p[2], p[3], lineno=p.lineno(1))
1287+
p.set_lineno(0, p.lineno(1))
12801288

12811289
def p_sens_egde_paren(self, p):
12821290
'senslist : AT LPAREN edgesigs RPAREN'

0 commit comments

Comments
 (0)