Files
iverilog/ivtest/ivltests/specify1.v
T
Stephen Williams cea237b407 Add ivtest to the iverilog source tree
By adding ivtest to the iverilog source tree, it is easier to keep
the regression test synchronized with the source that is being tested.
This should be especially helpful for PRs that add a new feature, and
have a matching ivtest PR with the regression test for that feature.
2022-01-15 10:18:50 -08:00

96 lines
2.1 KiB
Verilog

/*
* Copyright (c) 2000 Philips Semiconductors [email protected]
*
* This source code is free software; you can redistribute it
* Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
`timescale 1ns / 10ps
`celldefine
module MULT_8x8_f (P, A, B);
parameter
NA = 8,
NB = 8,
NP = 16,
PX = 16'bx;
input [NA-1:0] A;
input [NB-1:0] B;
output [NP-1:0] P;
reg [NA-1:0] A_sign;
reg [NB-1:0] B_sign;
reg [NP-1:0] P_sign;
reg Sign;
wire [NA-1:0] AI;
wire [NB-1:0] BI;
// SDF constraint: set of buffers to allow the MIPDs annotation
buf a0 (AI[0], A[0]);
buf a1 (AI[1], A[1]);
buf a2 (AI[2], A[2]);
buf a3 (AI[3], A[3]);
buf a4 (AI[4], A[4]);
buf a5 (AI[5], A[5]);
buf a6 (AI[6], A[6]);
buf a7 (AI[7], A[7]);
buf b0 (BI[0], B[0]);
buf b1 (BI[1], B[1]);
buf b2 (BI[2], B[2]);
buf b3 (BI[3], B[3]);
buf b4 (BI[4], B[4]);
buf b5 (BI[5], B[5]);
buf b6 (BI[6], B[6]);
buf b7 (BI[7], B[7]);
reg change_in;
wire change_out;
initial change_in = 0;
buf #(0.01) bc (change_out, change_in);
wire [NP-1:0] PI;
// SDF constraint: P_sign cannot be used to drive directly buffers
assign PI = P_sign;
// SDF constraint: set of buffers to allow the output acceleration
buf p0 (P[0], PI[0]);
buf p1 (P[1], PI[1]);
buf p2 (P[2], PI[2]);
buf p3 (P[3], PI[3]);
buf p4 (P[4], PI[4]);
buf p5 (P[5], PI[5]);
buf p6 (P[6], PI[6]);
buf p7 (P[7], PI[7]);
buf p8 (P[8], PI[8]);
buf p9 (P[9], PI[9]);
buf p10 (P[10], PI[10]);
buf p11 (P[11], PI[11]);
buf p12 (P[12], PI[12]);
buf p13 (P[13], PI[13]);
buf p14 (P[14], PI[14]);
buf p15 (P[15], PI[15]);
specify
specparam
th = 0.940,
td = 4.930;
// Pin-to-pin delay
(A, B *> P) = (td, td, th, 0, th, 0);
endspecify
endmodule
`endcelldefine