QuestaIntel 24.2:通过端口连接驱动,是多重驱动的。 (结构打包)

问题描述 投票:0回答:1
  typedef struct packed {
    logic            wr;
    t_bram_addr      addr;
    logic [WIDE-1:0] rd_data;
    logic [WIDE-1:0] wr_data;
  } t_memt;

  t_memt memt, memt_ff;

  xpm_memory_spram #(
    .SIM_ASSERT_CHK       (1),
    .READ_LATENCY_A       (1),
    .ADDR_WIDTH_A         ($bits(t_bram_addr)),
    .BYTE_WRITE_WIDTH_A   (WIDE),
    .MEMORY_SIZE          (2*DEPTH*WIDE),
    .READ_DATA_WIDTH_A    (WIDE),
    .WRITE_DATA_WIDTH_A   (WIDE),
    .WRITE_MODE_A         ("write_first")
  ) bram_inst (
    .clka                 (clk),
    .rsta                 (rst),

    .ena                  ('1),
    .wea                  (memt.wr),
    .addra                (memt.addr),
    .douta                (memt.rd_data),
    .dina                 (memt.wr_data),

    .sbiterra             (),
    .dbiterra             (),
    .injectdbiterra       ('0),
    .injectsbiterra       ('0),
    .regcea               ('1),
    .sleep                ('0)
  );

  always_comb begin
    memt = memt_ff;
    memt.wr = '0;
  end

Questa 给我一个错误

# ** Error (suppressible): (vsim-3839) Variable '/tb/DUT/memt', driven via a port connection, is multiply driven. See ../file.sv(***).

为什么? 以前的版本从未出现过任何问题。

它是一个打包结构,我使用 xpm 实例的输入/输出字段。

对我来说这是误报。 我可以抑制错误,但它不会再告诉我真正的积极错误。

system-verilog modelsim questasim
1个回答
0
投票

将一组信号连接到模块实例端口时,更常见的是使用

interface
而不是
struct
。 也许 Questa 在这种情况下不支持
struct

© www.soinside.com 2019 - 2024. All rights reserved.