From f7526c6c4b636b23b41555f18848fb9a5aefd512 Mon Sep 17 00:00:00 2001 From: steve Date: Fri, 5 Nov 1999 19:36:36 +0000 Subject: [PATCH] parse drive strengths. --- README.txt | 2 ++ parse.y | 23 ++++++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/README.txt b/README.txt index ae2ec6242..2d288e21f 100644 --- a/README.txt +++ b/README.txt @@ -327,6 +327,8 @@ current state of support for Verilog. reg [7:0] del; always #(reg) $display($time,,"del = %d", del); // sorry + - drive strengths are parsed, bug ignored. + Specify blocks are parsed but ignored in general. diff --git a/parse.y b/parse.y index 85121a49f..c10ac832b 100644 --- a/parse.y +++ b/parse.y @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) -#ident "$Id: parse.y,v 1.74 1999/10/15 05:03:33 steve Exp $" +#ident "$Id: parse.y,v 1.75 1999/11/05 19:36:36 steve Exp $" #endif # include "parse_misc.h" @@ -336,6 +336,23 @@ description } ; +drive_strength + : '(' dr_strength0 ',' dr_strength1 ')' + | '(' dr_strength1 ',' dr_strength0 ')' + | '(' dr_strength0 ',' K_highz1 ')' + | '(' dr_strength1 ',' K_highz0 ')' + | '(' K_highz1 ',' dr_strength0 ')' + | '(' K_highz0 ',' dr_strength1 ')' + ; + +drive_strength_opt + : drive_strength + | + ; + +dr_strength0 : K_supply0 | K_strong0 | K_pull0 | K_weak0 ; +dr_strength1 : K_supply1 | K_strong1 | K_pull1 | K_weak1 ; + event_control : '@' IDENTIFIER { yyerror(@1, "sorry: event control not supported."); @@ -1061,8 +1078,8 @@ module_item { pform_make_modgates($1, $2, $3); delete $1; } - | K_assign delay_opt assign_list ';' - { pform_make_pgassign_list($3, $2, @1.text, @1.first_line); } + | K_assign drive_strength_opt delay_opt assign_list ';' + { pform_make_pgassign_list($4, $3, @1.text, @1.first_line); } | K_assign error '=' expression ';' | K_always statement { PProcess*tmp = pform_make_behavior(PProcess::PR_ALWAYS, $2);