Support wide public task outputs.

git-svn-id: file://localhost/svn/verilator/trunk/verilator@810 77ca24e4-aefa-0310-84f0-b9a241c72d87
This commit is contained in:
Wilson Snyder
2006-10-05 14:53:17 +00:00
parent e471a34323
commit 318a6e348c
7 changed files with 35 additions and 18 deletions
+1 -6
View File
@@ -304,7 +304,7 @@ private:
AstVar* portp = NULL;
if (NULL!=(portp = nodep->castFunc()->fvarp()->castVar())) {
if (!portp->isFuncReturn()) nodep->v3error("Not marked as function return var");
if (portp->isWide()) nodep->v3error("Unsupported: Public functions/tasks with inputs or outputs > 64 bits wide.");
if (portp->isWide()) nodep->v3error("Unsupported: Public functions with return > 64 bits wide. (Make it a output instead.)");
portp->unlinkFrBack();
rtnvarp = portp;
rtnvarp->funcLocal(true);
@@ -339,11 +339,6 @@ private:
portp->unlinkFrBack();
portp->funcLocal(true);
funcp->addArgsp(portp);
if (portp->isWide()) {
// As we don't want to export our WData arrays to users,
// and casting to sc_bv's is ugly, we'll just...
nodep->v3error("Unsupported: Public functions/tasks with inputs or outputs > 64 bits wide.");
}
} else {
// "Normal" variable, mark inside function
portp->funcLocal(true);