Uwe Bonnes <[EMAIL PROTECTED]> writes:

Hallo Uwe,

> I run the testbench like
> iverilog -t vvp -m sdf sdftest-tb.v sdftest_timesim.v 
>/tmp/ise-5.1/verilog/src/glbl.v -y /tmp/ise-5.1/verilog/src/simprims/

ok,

> /tmp/ise-5.1/verilog/src/simprims//X_FF.v:29: error: syntax error in specify block

This is Steve's parser's fault.  Nothing to do with isdf.
  
> sdftest_timesim.v as generated by the Xilinx tools contains
> "initial $sdf_annotate("sdftest_timesim.sdf");"
> so the run of the resulting sdf file gives
>> ./a.out 
> ERROR: $sdf_annotate requires parameters (file, scope)

This is fixed in the appended patch.  <scope> defaults to the current
scope now.

> Changing the offending line to 
> initial $sdf_annotate("sdftest_timesim.sdf",test);
> with "test" being the module name of the testbench

Bad.  Better:  $sdf_annotate("sdftest_timesim.sdf", test1);
$sdf_annotate needs to know the scope to annotate, not the testbench.

> resulting a.out gives:
>> ./a.out 
> SDF: parse error

Also fixed.  Tiny bug in the sdf lexer.

Not fixed yet is the error message, which could be a bit more verbose
:-(

> If you don't have access to the Xilinx simprims ( and don't want to download
> the free Xilinx webpack) I can send the needed X_**.v files.

No, I do not have those simprims.  Would I be allowed to distribute
them in a test case with isdf?

I guess I would not want to download the Xilinx webpack via a modem,
would I?  Could you please send me the *.v files required to run your
example.

Looking at your sdf file: isdf does not yet support the (PORT ..)
delays.  This should not be too difficult to add, but I need to find
the time.

Thanks for testing isdf.

Cheers
Stephan

Index: lexer.l
===================================================================
RCS file: /home/mrjury/cvs/icarus/verilog/sdf/lexer.l,v
retrieving revision 1.5
diff -u -r1.5 lexer.l
--- lexer.l	6 Aug 2001 01:40:22 -0000	1.5
+++ lexer.l	15 Dec 2002 09:12:59 -0000
@@ -56,7 +56,7 @@
 		 return STRING;
               	}
 
-([a-zA-Z_]|\\.)[a-zA-Z0-9_./]*(\\.[a-zA-Z0-9_./])*(\[[0-9]+(:[0-9]+)?\])? {
+([a-zA-Z_]|\\.)[a-zA-Z0-9_./]*(\\.[a-zA-Z0-9_./]*)*(\[[0-9]+(:[0-9]+)?\])? {
                  yylval.text = yytext;
 		 int r = IDENTIFIER;
 		 if (keyw)
Index: sys_sdf.cc
===================================================================
RCS file: /home/mrjury/cvs/icarus/verilog/sdf/sys_sdf.cc,v
retrieving revision 1.7
diff -u -r1.7 sys_sdf.cc
--- sys_sdf.cc	4 Feb 2002 00:15:21 -0000	1.7
+++ sys_sdf.cc	15 Dec 2002 09:33:18 -0000
@@ -65,11 +65,13 @@
     
     vpiHandle scope = vpi_scan(argv);
     if (!scope)
-      goto argument_error;
+      scope = vpi_handle(vpiScope, sys);
+    else
+      vpi_free_object(argv);
+
     if (vpi_get(vpiType, scope) != vpiModule)
       goto argument_error1;
     
-    vpi_free_object(argv);
     
     FILE *sdf_file = fopen(filename, "r");
     if (!sdf_file)


-- 
Stephan B�ttcher                     FAX: +49-431-85660
Extraterrestrische Physik            Tel: +49-431-880-2508
I.f.Exp.u.Angew.Physik               mailto:[EMAIL PROTECTED]
Leibnizstr. 11, 24118 Kiel, Germany  http://www.nevis.columbia.edu/~stephan

Reply via email to