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