Hi anakha,
thanks for the answer. It seems like Quartus has a problem with nested interfaces. Small example:
interface data_reg_read_intfc;
bit data;
bit addr;
modport syn_test(input data, output addr);
endinterface
interface regfile_EXU_intfc (input bit clk, rst);
data_reg_read_intfc drr_intfcs ();
// bit asd_en;
// modport syn_test(input asd_en);
endinterface
module syn_test(clk, rst, in, out, intfc);
input bit clk, rst, in;
output bit out;
regfile_EXU_intfc intfc;
always_ff @ (posedge clk, posedge rst) begin
if(rst == 1'b1) begin
out <= 1'b0;
end else begin
out <= in;
end
end
endmodule
It produces this error:
--- Quote Start ---
Internal Error: Sub-system: VRFX, File: /quartus/synth/vrfx/verific/verilog/verimisc_elab.cpp, Line: 456
type
Stack Trace:
0x38b00: vrfx_altera_assert + 0x20 (synth_vrfx)
0x149177: VeriInst::Initialize + 0x77 (synth_vrfx)
0x14e583: VeriModuleInstantiation::Initialize + 0x53 (synth_vrfx)
...
End-trace
--- Quote End ---
The software version is Quartus II 10.0 sp1, Win7-x64, downloaded yesterday. Quartus 9.1a on a linux machine behaves in the same way.
I'm quite new to SV and maybe I'm doing something wrong, but Modelsim simulates my code properly.
Maybe you can give me a small code example with nested interfaces that works? I would really appreciate it.