Remove support for parameterized UDPs (#4518)

This commit is contained in:
Anthony Donlon 2023-09-25 22:40:44 +08:00 committed by GitHub
parent 28bd7e5b19
commit 750b5be5d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 51 additions and 4 deletions

View File

@ -1346,16 +1346,15 @@ module_declaration: // ==IEEE: module_declaration
GRAMMARP->m_modp = nullptr;
SYMP->popScope($1);
GRAMMARP->endLabel($<fl>7, $1, $7); }
| udpFront parameter_port_listE portsStarE ';'
| udpFront portsStarE ';'
/*cont*/ module_itemListE yENDPRIMITIVE endLabelE
{ $1->modTrace(false); // Stash for implicit wires, etc
if ($2) $1->addStmtsp($2);
if ($3) $1->addStmtsp($3);
if ($5) $1->addStmtsp($5);
if ($4) $1->addStmtsp($4);
GRAMMARP->m_tracingParse = true;
GRAMMARP->m_modp = nullptr;
SYMP->popScope($1);
GRAMMARP->endLabel($<fl>7, $1, $7); }
GRAMMARP->endLabel($<fl>6, $1, $6); }
//
| yEXTERN modFront parameter_port_listE portsStarE ';'
{ BBUNSUP($<fl>1, "Unsupported: extern module"); }

View File

@ -0,0 +1,7 @@
%Error: t/t_udp_param_bad.v:12:15: syntax error, unexpected '#', expecting ';'
12 | primitive udp #(
| ^
%Error: t/t_udp_param_bad.v:14:1: syntax error, unexpected ')', expecting ';'
14 | ) (o, a);
| ^
%Error: Exiting due to

View File

@ -0,0 +1,19 @@
#!/usr/bin/env perl
if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; }
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
#
# Copyright 2003 by Wilson Snyder. This program is free software; you
# can redistribute it and/or modify it under the terms of either the GNU
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
scenarios(linter => 1);
lint(
fails => 1,
expect_filename => $Self->{golden_filename},
);
ok(1);
1;

View File

@ -0,0 +1,22 @@
// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2023 by Anthony Donlon.
// SPDX-License-Identifier: CC0-1.0
module t;
wire a, b;
udp i_udp (a, b);
endmodule
primitive udp #(
parameter A = 1
) (o, a);
output o;
input a;
table
//o a
0 : 1;
1 : 0;
endtable
endprimitive