Add message that L-value concatenation is not supported in synthesis
This commit is contained in:
parent
b1d15436fd
commit
6765e32ab9
10
syn-rules.y
10
syn-rules.y
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
%{
|
%{
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000-2010 Stephen Williams (steve@icarus.com)
|
* Copyright (c) 2000-2014 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
|
||||||
|
|
@ -100,7 +100,13 @@ static void hookup_DFF_CE(NetFF*ff, NetESignal*d, NetEvProbe*pclk,
|
||||||
NetNet*ce, NetAssign_*a, unsigned rval_pinoffset)
|
NetNet*ce, NetAssign_*a, unsigned rval_pinoffset)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(rval_pinoffset == 0);
|
if (rval_pinoffset != 0) {
|
||||||
|
cerr << a->get_fileline() << ": sorry: "
|
||||||
|
<< "unable to hook up an R-value with offset "
|
||||||
|
<< rval_pinoffset << " to signal " << a->name()
|
||||||
|
<< "." << endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
// a->sig() is a *NetNet, which doesn't have the loff_ and
|
// a->sig() is a *NetNet, which doesn't have the loff_ and
|
||||||
// lwid_ context. Add the correction for loff_ ourselves.
|
// lwid_ context. Add the correction for loff_ ourselves.
|
||||||
|
|
||||||
|
|
|
||||||
12
synth2.cc
12
synth2.cc
|
|
@ -82,7 +82,15 @@ bool NetAssignBase::synth_async(Design*des, NetScope*scope,
|
||||||
des->errors += 1;
|
des->errors += 1;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
assert(lval_->more == 0);
|
if (lval_->more) {
|
||||||
|
cerr << get_fileline() << ": sorry: "
|
||||||
|
<< "NetAssignBase::synth_async does not support an "
|
||||||
|
<< "L-value concatenation ";
|
||||||
|
dump_lval(cerr);
|
||||||
|
cerr << endl;
|
||||||
|
des->errors += 1;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (debug_synth2) {
|
if (debug_synth2) {
|
||||||
cerr << get_fileline() << ": NetAssignBase::synth_async: "
|
cerr << get_fileline() << ": NetAssignBase::synth_async: "
|
||||||
|
|
@ -1308,7 +1316,7 @@ bool NetCondit::synth_sync(Design*des, NetScope*scope,
|
||||||
NetBus tmp_out(scope, nex_out.pin_count());
|
NetBus tmp_out(scope, nex_out.pin_count());
|
||||||
NetBus accumulated_tmp_out(scope, nex_out.pin_count());
|
NetBus accumulated_tmp_out(scope, nex_out.pin_count());
|
||||||
flag = if_->synth_async(des, scope, nex_map, tmp_out, accumulated_tmp_out);
|
flag = if_->synth_async(des, scope, nex_map, tmp_out, accumulated_tmp_out);
|
||||||
ivl_assert(*this, flag);
|
if (! flag) return false;
|
||||||
|
|
||||||
ivl_assert(*this, tmp_out.pin_count() == ff_aclr.pin_count());
|
ivl_assert(*this, tmp_out.pin_count() == ff_aclr.pin_count());
|
||||||
ivl_assert(*this, tmp_out.pin_count() == ff_aset.pin_count());
|
ivl_assert(*this, tmp_out.pin_count() == ff_aset.pin_count());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue