@@ -365,26 +365,25 @@ def p_ioports_one(self, p):
365365 p [0 ] = (p [1 ],)
366366 p .set_lineno (0 , p .lineno (1 ))
367367
368- def create_ioport (self , sigtypes , name , width = None , lineno = 0 ):
368+ def create_ioport (self , sigtypes , name , width = None , dimensions = None , lineno = 0 ):
369369 self .typecheck_ioport (sigtypes )
370370 first = None
371371 second = None
372372 signed = False
373373 if 'signed' in sigtypes :
374374 signed = True
375375 if 'input' in sigtypes :
376- first = Input (name = name , width = width , signed = signed , lineno = lineno )
376+ first = Input (name = name , width = width , signed = signed , dimensions = dimensions , lineno = lineno )
377377 if 'output' in sigtypes :
378- first = Output (name = name , width = width ,
379- signed = signed , lineno = lineno )
378+ first = Output (name = name , width = width , signed = signed , dimensions = dimensions , lineno = lineno )
380379 if 'inout' in sigtypes :
381- first = Inout (name = name , width = width , signed = signed , lineno = lineno )
380+ first = Inout (name = name , width = width , signed = signed , dimensions = dimensions , lineno = lineno )
382381 if 'wire' in sigtypes :
383- second = Wire (name = name , width = width , signed = signed , lineno = lineno )
382+ second = Wire (name = name , width = width , signed = signed , dimensions = dimensions , lineno = lineno )
384383 if 'reg' in sigtypes :
385- second = Reg (name = name , width = width , signed = signed , lineno = lineno )
384+ second = Reg (name = name , width = width , signed = signed , dimensions = dimensions , lineno = lineno )
386385 if 'tri' in sigtypes :
387- second = Tri (name = name , width = width , signed = signed , lineno = lineno )
386+ second = Tri (name = name , width = width , signed = signed , dimensions = dimensions , lineno = lineno )
388387 return Ioport (first , second , lineno = lineno )
389388
390389 def typecheck_ioport (self , sigtypes ):
@@ -415,6 +414,11 @@ def p_ioport_width(self, p):
415414 p [0 ] = self .create_ioport (p [1 ], p [3 ], width = p [2 ], lineno = p .lineno (3 ))
416415 p .set_lineno (0 , p .lineno (1 ))
417416
417+ def p_ioport_dimensions (self , p ):
418+ 'ioport : sigtypes width portname dimensions'
419+ p [0 ] = self .create_ioport (p [1 ], p [3 ], width = p [2 ], dimensions = p [4 ], lineno = p .lineno (3 ))
420+ p .set_lineno (0 , p .lineno (1 ))
421+
418422 def p_ioport_head (self , p ):
419423 'ioport_head : sigtypes portname'
420424 p [0 ] = self .create_ioport (p [1 ], p [2 ], lineno = p .lineno (2 ))
@@ -425,6 +429,11 @@ def p_ioport_head_width(self, p):
425429 p [0 ] = self .create_ioport (p [1 ], p [3 ], width = p [2 ], lineno = p .lineno (3 ))
426430 p .set_lineno (0 , p .lineno (1 ))
427431
432+ def p_ioport_head_dimensions (self , p ):
433+ 'ioport_head : sigtypes width portname dimensions'
434+ p [0 ] = self .create_ioport (p [1 ], p [3 ], width = p [2 ], dimensions = p [4 ], lineno = p .lineno (3 ))
435+ p .set_lineno (0 , p .lineno (1 ))
436+
428437 def p_ioport_portname (self , p ):
429438 'ioport : portname'
430439 p [0 ] = p [1 ]
0 commit comments