Merge branch 'master' of github.com:steveicarus/iverilog
This commit is contained in:
commit
e56e52bc42
|
|
@ -1,6 +1,6 @@
|
||||||
// These are correct and are used to find the base (zero) pin.
|
// These are correct and are used to find the base (zero) pin.
|
||||||
thisSubtraction:netlist.h:4991
|
thisSubtraction:netlist.h:5081
|
||||||
thisSubtraction:netlist.h:5000
|
thisSubtraction:netlist.h:5090
|
||||||
|
|
||||||
// These are the functions that the compiler exports to the targets.
|
// These are the functions that the compiler exports to the targets.
|
||||||
//ivl_branch_island()
|
//ivl_branch_island()
|
||||||
|
|
|
||||||
|
|
@ -1657,7 +1657,7 @@ NetExpr* PECallFunction::elaborate_access_func_(Design*des, NetScope*scope,
|
||||||
static NetExpr* check_for_enum_methods(const LineInfo*li,
|
static NetExpr* check_for_enum_methods(const LineInfo*li,
|
||||||
Design*des, NetScope*scope,
|
Design*des, NetScope*scope,
|
||||||
const netenum_t*netenum,
|
const netenum_t*netenum,
|
||||||
pform_name_t use_path,
|
const pform_name_t&use_path,
|
||||||
perm_string method_name,
|
perm_string method_name,
|
||||||
NetExpr*expr,
|
NetExpr*expr,
|
||||||
unsigned rtn_wid,
|
unsigned rtn_wid,
|
||||||
|
|
|
||||||
|
|
@ -75,15 +75,8 @@
|
||||||
*/
|
*/
|
||||||
NetAssign_* PExpr::elaborate_lval(Design*, NetScope*, bool, bool) const
|
NetAssign_* PExpr::elaborate_lval(Design*, NetScope*, bool, bool) const
|
||||||
{
|
{
|
||||||
NetNet*ll = 0;
|
cerr << get_fileline() << ": Assignment l-value too complex." << endl;
|
||||||
if (ll == 0) {
|
|
||||||
cerr << get_fileline() << ": Assignment l-value too complex."
|
|
||||||
<< endl;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
|
||||||
|
|
||||||
NetAssign_*lv = new NetAssign_(ll);
|
|
||||||
return lv;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
10
elaborate.cc
10
elaborate.cc
|
|
@ -1407,6 +1407,16 @@ void PGModule::elaborate_mod_(Design*des, Module*rmod, NetScope*scope) const
|
||||||
<< prts[0]->name() << " is coerced to inout." << endl;
|
<< prts[0]->name() << " is coerced to inout." << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!prts.empty() && (prts[0]->port_type() == NetNet::POUTPUT)
|
||||||
|
&& (prts[0]->type() != NetNet::REG)
|
||||||
|
&& prts[0]->pin(0).nexus()->has_floating_input()
|
||||||
|
&& pins[idx]->is_collapsible_net(des, scope)) {
|
||||||
|
prts[0]->port_type(NetNet::PINOUT);
|
||||||
|
|
||||||
|
cerr << pins[idx]->get_fileline() << ": warning: output port "
|
||||||
|
<< prts[0]->name() << " is coerced to inout." << endl;
|
||||||
|
}
|
||||||
|
|
||||||
// Elaborate the expression that connects to the
|
// Elaborate the expression that connects to the
|
||||||
// module[s] port. sig is the thing outside the module
|
// module[s] port. sig is the thing outside the module
|
||||||
// that connects to the port.
|
// that connects to the port.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1999-2014 Stephen Williams (steve@icarus.com)
|
* Copyright (c) 1999-2016 Stephen Williams (steve@icarus.com)
|
||||||
*
|
*
|
||||||
* This source code is free software; you can redistribute it
|
* This source code is free software; you can redistribute it
|
||||||
* and/or modify it in source code form under the terms of the GNU
|
* and/or modify it in source code form under the terms of the GNU
|
||||||
|
|
@ -545,7 +545,7 @@ NetEConst* NetEBComp::eval_eqeq_real_(bool ne_flag, const NetExpr*le, const NetE
|
||||||
bool flag = get_real_arguments(le, re, lval, rval);
|
bool flag = get_real_arguments(le, re, lval, rval);
|
||||||
if (! flag) return 0;
|
if (! flag) return 0;
|
||||||
|
|
||||||
verinum result(((lval == rval) ^ ne_flag) ?
|
verinum result(((lval == rval) != ne_flag) ?
|
||||||
verinum::V1 : verinum::V0, 1);
|
verinum::V1 : verinum::V0, 1);
|
||||||
NetEConst*res = new NetEConst(result);
|
NetEConst*res = new NetEConst(result);
|
||||||
ivl_assert(*this, res);
|
ivl_assert(*this, res);
|
||||||
|
|
|
||||||
|
|
@ -558,7 +558,7 @@ void NetNet::calculate_slice_widths_from_packed_dims_(void)
|
||||||
ivl_assert(*this, ! slice_wids_.empty());
|
ivl_assert(*this, ! slice_wids_.empty());
|
||||||
slice_wids_[0] = netrange_width(slice_dims_);
|
slice_wids_[0] = netrange_width(slice_dims_);
|
||||||
vector<netrange_t>::const_iterator cur = slice_dims_.begin();
|
vector<netrange_t>::const_iterator cur = slice_dims_.begin();
|
||||||
for (size_t idx = 1 ; idx < slice_wids_.size() ; idx += 1, cur++) {
|
for (size_t idx = 1 ; idx < slice_wids_.size() ; idx += 1, ++cur) {
|
||||||
slice_wids_[idx] = slice_wids_[idx-1] / cur->width();
|
slice_wids_[idx] = slice_wids_[idx-1] / cur->width();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1
pform.cc
1
pform.cc
|
|
@ -622,7 +622,6 @@ static void pform_put_wire_in_scope(perm_string name, PWire*net)
|
||||||
static void pform_put_enum_type_in_scope(enum_type_t*enum_set)
|
static void pform_put_enum_type_in_scope(enum_type_t*enum_set)
|
||||||
{
|
{
|
||||||
if (lexical_scope) {
|
if (lexical_scope) {
|
||||||
ivl_assert(*enum_set, lexical_scope);
|
|
||||||
lexical_scope->enum_sets.insert(enum_set);
|
lexical_scope->enum_sets.insert(enum_set);
|
||||||
} else {
|
} else {
|
||||||
pform_enum_sets.insert(enum_set);
|
pform_enum_sets.insert(enum_set);
|
||||||
|
|
|
||||||
|
|
@ -5,31 +5,3 @@ uninitVar:vvp_net.cc:167
|
||||||
// These functions are not used by Icarus
|
// These functions are not used by Icarus
|
||||||
// __libvpi_c_dummy_function()
|
// __libvpi_c_dummy_function()
|
||||||
unusedFunction:libvpi.c:24
|
unusedFunction:libvpi.c:24
|
||||||
// yy_flex_strlen()
|
|
||||||
unusedFunction:lexor.cc:3632
|
|
||||||
// yy_scan_string()
|
|
||||||
unusedFunction:lexor.cc:3417
|
|
||||||
// yyget_debug()
|
|
||||||
unusedFunction:lexor.cc:3557
|
|
||||||
// yyget_in()
|
|
||||||
unusedFunction:lexor.cc:3501
|
|
||||||
// yyget_leng()
|
|
||||||
unusedFunction:lexor.cc:3517
|
|
||||||
// yyget_lineno()
|
|
||||||
unusedFunction:lexor.cc:3492
|
|
||||||
// yyget_out()
|
|
||||||
unusedFunction:lexor.cc:3509
|
|
||||||
// yyget_text()
|
|
||||||
unusedFunction:lexor.cc:3526
|
|
||||||
// yylex_destroy()
|
|
||||||
unusedFunction:lexor.cc:3596
|
|
||||||
// yypush_buffer_state()
|
|
||||||
unusedFunction:lexor.cc:3282
|
|
||||||
// yyset_debug()
|
|
||||||
unusedFunction:lexor.cc:3562
|
|
||||||
// yyset_in()
|
|
||||||
unusedFunction:lexor.cc:3547
|
|
||||||
// yyset_lineno()
|
|
||||||
unusedFunction:lexor.cc:3535
|
|
||||||
// yyset_out()
|
|
||||||
unusedFunction:lexor.cc:3552
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue