mirror of
https://github.com/steveicarus/iverilog.git
synced 2026-08-22 05:47:31 +02:00
Add message that L-value concatenation is not supported in synthesis
This commit is contained in:
+8
-2
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
%{
|
%{
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000-2010 Stephen Williams ([email protected])
|
* Copyright (c) 2000-2014 Stephen Williams ([email protected])
|
||||||
*
|
*
|
||||||
* 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.
|
||||||
|
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
Reference in New Issue
Block a user