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.
|
||||
thisSubtraction:netlist.h:4991
|
||||
thisSubtraction:netlist.h:5000
|
||||
thisSubtraction:netlist.h:5081
|
||||
thisSubtraction:netlist.h:5090
|
||||
|
||||
// These are the functions that the compiler exports to the targets.
|
||||
//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,
|
||||
Design*des, NetScope*scope,
|
||||
const netenum_t*netenum,
|
||||
pform_name_t use_path,
|
||||
const pform_name_t&use_path,
|
||||
perm_string method_name,
|
||||
NetExpr*expr,
|
||||
unsigned rtn_wid,
|
||||
|
|
|
|||
|
|
@ -75,17 +75,10 @@
|
|||
*/
|
||||
NetAssign_* PExpr::elaborate_lval(Design*, NetScope*, bool, bool) const
|
||||
{
|
||||
NetNet*ll = 0;
|
||||
if (ll == 0) {
|
||||
cerr << get_fileline() << ": Assignment l-value too complex."
|
||||
<< endl;
|
||||
cerr << get_fileline() << ": Assignment l-value too complex." << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
NetAssign_*lv = new NetAssign_(ll);
|
||||
return lv;
|
||||
}
|
||||
|
||||
/*
|
||||
* Concatenation expressions can appear as l-values. Handle them here.
|
||||
*
|
||||
|
|
|
|||
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;
|
||||
}
|
||||
|
||||
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
|
||||
// module[s] port. sig is the thing outside the module
|
||||
// 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
|
||||
* 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);
|
||||
if (! flag) return 0;
|
||||
|
||||
verinum result(((lval == rval) ^ ne_flag) ?
|
||||
verinum result(((lval == rval) != ne_flag) ?
|
||||
verinum::V1 : verinum::V0, 1);
|
||||
NetEConst*res = new NetEConst(result);
|
||||
ivl_assert(*this, res);
|
||||
|
|
|
|||
|
|
@ -558,7 +558,7 @@ void NetNet::calculate_slice_widths_from_packed_dims_(void)
|
|||
ivl_assert(*this, ! slice_wids_.empty());
|
||||
slice_wids_[0] = netrange_width(slice_dims_);
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
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)
|
||||
{
|
||||
if (lexical_scope) {
|
||||
ivl_assert(*enum_set, lexical_scope);
|
||||
lexical_scope->enum_sets.insert(enum_set);
|
||||
} else {
|
||||
pform_enum_sets.insert(enum_set);
|
||||
|
|
|
|||
|
|
@ -5,31 +5,3 @@ uninitVar:vvp_net.cc:167
|
|||
// These functions are not used by Icarus
|
||||
// __libvpi_c_dummy_function()
|
||||
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