Fix VL_FCLOSE declaration, broke two commits ago, bug363
This commit is contained in:
parent
696660639a
commit
7f49619875
|
|
@ -321,12 +321,14 @@ extern WDataOutP VL_ZERO_RESET_W(int obits, WDataOutP outwp); ///< Zero reset a
|
||||||
extern WDataOutP _vl_moddiv_w(int lbits, WDataOutP owp, WDataInP lwp, WDataInP rwp, bool is_modulus);
|
extern WDataOutP _vl_moddiv_w(int lbits, WDataOutP owp, WDataInP lwp, WDataInP rwp, bool is_modulus);
|
||||||
|
|
||||||
/// File I/O
|
/// File I/O
|
||||||
extern IData VL_FGETS_IXQ(int obits, void* destp, QData fpq);
|
extern IData VL_FGETS_IXI(int obits, void* destp, IData fpi);
|
||||||
|
|
||||||
extern QData VL_FOPEN_WI(int fnwords, WDataInP ofilename, IData mode);
|
extern QData VL_FOPEN_WI(int fnwords, WDataInP ofilename, IData mode);
|
||||||
extern QData VL_FOPEN_QI(QData ofilename, IData mode);
|
extern QData VL_FOPEN_QI(QData ofilename, IData mode);
|
||||||
inline QData VL_FOPEN_II(IData ofilename, IData mode) { return VL_FOPEN_QI(ofilename,mode); }
|
inline QData VL_FOPEN_II(IData ofilename, IData mode) { return VL_FOPEN_QI(ofilename,mode); }
|
||||||
|
|
||||||
|
extern void VL_FCLOSE_I(IData fdi);
|
||||||
|
|
||||||
extern void VL_READMEM_W(bool hex, int width, int depth, int array_lsb, int fnwords,
|
extern void VL_READMEM_W(bool hex, int width, int depth, int array_lsb, int fnwords,
|
||||||
WDataInP ofilename, void* memp, IData start, IData end);
|
WDataInP ofilename, void* memp, IData start, IData end);
|
||||||
extern void VL_READMEM_Q(bool hex, int width, int depth, int array_lsb, int fnwords,
|
extern void VL_READMEM_Q(bool hex, int width, int depth, int array_lsb, int fnwords,
|
||||||
|
|
@ -336,9 +338,9 @@ inline void VL_READMEM_I(bool hex, int width, int depth, int array_lsb, int fnwo
|
||||||
VL_READMEM_Q(hex, width,depth,array_lsb,fnwords, ofilename,memp,start,end); }
|
VL_READMEM_Q(hex, width,depth,array_lsb,fnwords, ofilename,memp,start,end); }
|
||||||
|
|
||||||
extern void VL_WRITEF(const char* formatp, ...);
|
extern void VL_WRITEF(const char* formatp, ...);
|
||||||
extern void VL_FWRITEF(QData fpq, const char* formatp, ...);
|
extern void VL_FWRITEF(IData fpi, const char* formatp, ...);
|
||||||
|
|
||||||
extern IData VL_FSCANF_IX(QData fpq, const char* formatp, ...);
|
extern IData VL_FSCANF_IX(IData fpi, const char* formatp, ...);
|
||||||
extern IData VL_SSCANF_IIX(int lbits, IData ld, const char* formatp, ...);
|
extern IData VL_SSCANF_IIX(int lbits, IData ld, const char* formatp, ...);
|
||||||
extern IData VL_SSCANF_IQX(int lbits, QData ld, const char* formatp, ...);
|
extern IData VL_SSCANF_IQX(int lbits, QData ld, const char* formatp, ...);
|
||||||
extern IData VL_SSCANF_IWX(int lbits, WDataInP lwp, const char* formatp, ...);
|
extern IData VL_SSCANF_IWX(int lbits, WDataInP lwp, const char* formatp, ...);
|
||||||
|
|
@ -365,9 +367,8 @@ extern const char* vl_mc_scan_plusargs(const char* prefixp); // PLIish
|
||||||
#define _VL_SET_QII(ld,rd) ( ((QData)(ld)<<VL_ULL(32)) | (QData)(rd) )
|
#define _VL_SET_QII(ld,rd) ( ((QData)(ld)<<VL_ULL(32)) | (QData)(rd) )
|
||||||
|
|
||||||
/// Return FILE* from IData
|
/// Return FILE* from IData
|
||||||
FILE* VL_CVT_I_FP(IData lhs);
|
extern FILE* VL_CVT_I_FP(IData lhs);
|
||||||
/// Return IData from FILE*
|
|
||||||
IData VL_CVT_FP_I(FILE* fp);
|
|
||||||
// Use a union to avoid cast-to-different-size warnings
|
// Use a union to avoid cast-to-different-size warnings
|
||||||
/// Return void* from QData
|
/// Return void* from QData
|
||||||
static inline void* VL_CVT_Q_VP(QData lhs) { union { void* fp; QData q; } u; u.q=lhs; return u.fp; }
|
static inline void* VL_CVT_Q_VP(QData lhs) { union { void* fp; QData q; } u; u.q=lhs; return u.fp; }
|
||||||
|
|
|
||||||
|
|
@ -336,6 +336,7 @@ sub new {
|
||||||
$self->{run_log_filename} ||= "$self->{obj_dir}/vlt_sim.log";
|
$self->{run_log_filename} ||= "$self->{obj_dir}/vlt_sim.log";
|
||||||
$self->{coverage_filename} ||= "$self->{obj_dir}/vlt_coverage.pl";
|
$self->{coverage_filename} ||= "$self->{obj_dir}/vlt_coverage.pl";
|
||||||
$self->{vcd_filename} ||= "$self->{obj_dir}/sim.vcd";
|
$self->{vcd_filename} ||= "$self->{obj_dir}/sim.vcd";
|
||||||
|
$self->{main_filename} ||= "$self->{obj_dir}/$self->{VM_PREFIX}__main.cpp";
|
||||||
($self->{top_filename} = $self->{pl_filename}) =~ s/\.pl$/\.v/;
|
($self->{top_filename} = $self->{pl_filename}) =~ s/\.pl$/\.v/;
|
||||||
if (!$self->{make_top_shell}) {
|
if (!$self->{make_top_shell}) {
|
||||||
$self->{top_shell_filename} = $self->{top_filename};
|
$self->{top_shell_filename} = $self->{top_filename};
|
||||||
|
|
@ -536,6 +537,11 @@ sub compile {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!$param{fails} && $param{verilator_make_gcc}
|
||||||
|
&& $param{make_main}) {
|
||||||
|
$self->_make_main();
|
||||||
|
}
|
||||||
|
|
||||||
$self->_run(logfile=>"$self->{obj_dir}/vlt_compile.log",
|
$self->_run(logfile=>"$self->{obj_dir}/vlt_compile.log",
|
||||||
fails=>$param{fails},
|
fails=>$param{fails},
|
||||||
expect=>$param{expect},
|
expect=>$param{expect},
|
||||||
|
|
@ -543,9 +549,6 @@ sub compile {
|
||||||
return 1 if $self->errors || $self->skips;
|
return 1 if $self->errors || $self->skips;
|
||||||
|
|
||||||
if (!$param{fails} && $param{verilator_make_gcc}) {
|
if (!$param{fails} && $param{verilator_make_gcc}) {
|
||||||
if ($param{make_main}) {
|
|
||||||
$self->_make_main();
|
|
||||||
}
|
|
||||||
if ($self->sp) {
|
if ($self->sp) {
|
||||||
$self->_sp_preproc(%param);
|
$self->_sp_preproc(%param);
|
||||||
}
|
}
|
||||||
|
|
@ -806,7 +809,7 @@ sub _make_main {
|
||||||
|
|
||||||
$self->_read_inputs();
|
$self->_read_inputs();
|
||||||
|
|
||||||
my $filename = "$self->{obj_dir}/$self->{VM_PREFIX}__main.cpp";
|
my $filename = $self->{main_filename};
|
||||||
my $fh = IO::File->new(">$filename") or die "%Error: $! $filename,";
|
my $fh = IO::File->new(">$filename") or die "%Error: $! $filename,";
|
||||||
|
|
||||||
print $fh "// Test defines\n";
|
print $fh "// Test defines\n";
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,15 @@ if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); di
|
||||||
unlink("$Self->{obj_dir}/t_sys_file_basic_test.log");
|
unlink("$Self->{obj_dir}/t_sys_file_basic_test.log");
|
||||||
|
|
||||||
compile (
|
compile (
|
||||||
v_flags2 => ['+incdir+../include'],
|
v_flags2 => ['+incdir+../include',
|
||||||
);
|
# Build without cached objects, see bug363
|
||||||
|
"--exe ../$Self->{main_filename}"],
|
||||||
|
make_flags=>'MAKE_MAIN=0 VM_PARALLEL_BUILDS=0',
|
||||||
|
);
|
||||||
|
|
||||||
execute (
|
execute (
|
||||||
check_finished=>1,
|
check_finished=>1,
|
||||||
);
|
);
|
||||||
|
|
||||||
file_grep ("$Self->{obj_dir}/t_sys_file_basic_test.log",
|
file_grep ("$Self->{obj_dir}/t_sys_file_basic_test.log",
|
||||||
qr/\[0\] hello v=12345667
|
qr/\[0\] hello v=12345667
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue