verilator/test_regress/t/t_hier_block1_bad.v

48 lines
1.0 KiB
Systemverilog

// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed into the Public Domain, for any use,
// without warranty, 2020 by Yutetsu TAKATSUKASA
// SPDX-License-Identifier: Unlicense
`define HIER_BLOCK /*verilator hier_block*/
interface byte_ifs(input clk);
logic [7:0] data;
modport sender(input clk, output data);
modport receiver(input clk, input data);
endinterface;
module t (/*AUTOARG*/
// Inputs
clk
); `HIER_BLOCK // Top module can not be a hierarchy block
input wire clk;
wire [7:0] out0;
int count = 0;
byte_ifs in_ifs(.clk(clk));
byte_ifs out_ifs(.clk(clk));
assign in_ifs.data = out0;
sub0 i_sub0(.clk(clk), .in(count), .out(out0));
sub1 i_sub1(.in(in_ifs), .out(out_ifs));
endmodule
module sub0 (
input wire clk,
input wire [7:0] in,
output wire [7:0] out); `HIER_BLOCK
logic [7:0] ff;
always_ff @(posedge clk) ff <= in;
assign out = ff;
endmodule
module sub1 (byte_ifs.receiver in, byte_ifs.sender out); `HIER_BLOCK
assign out.data = in.data;
endmodule