He escrito un banco de pruebas VHDL para probar un diseño Verilog. Un módulo Verilog de nivel inferior crea una instancia de algunos FIFO a través de Altera Megawizard. El código FIFO leído está debajo:
// synopsys translate_off
'timescale 1 ps / 1 ps
// synopsys translate_on
module Sdram_RD_FIFO (
aclr,
data,
rdclk,
rdreq,
wrclk,
wrreq,
q,
wrusedw);
input aclr;
input [31:0] data;
input rdclk;
input rdreq;
input wrclk;
input wrreq;
output [15:0] q;
output [7:0] wrusedw;
'ifndef ALTERA_RESERVED_QIS
// synopsys translate_off
'endif
tri0 aclr;
'ifndef ALTERA_RESERVED_QIS
// synopsys translate_on
'endif
wire [15:0] sub_wire0;
wire [7:0] sub_wire1;
wire [15:0] q = sub_wire0[15:0];
wire [7:0] wrusedw = sub_wire1[7:0];
dcfifo_mixed_widths dcfifo_mixed_widths_component (
.aclr (aclr),
.data (data),
.rdclk (rdclk),
.rdreq (rdreq),
.wrclk (wrclk),
.wrreq (wrreq),
.q (sub_wire0),
.wrusedw (sub_wire1),
.rdempty (),
.rdfull (),
.rdusedw (),
.wrempty (),
.wrfull ());
defparam
dcfifo_mixed_widths_component.intended_device_family = "Cyclone IV E",
dcfifo_mixed_widths_component.lpm_numwords = 256,
dcfifo_mixed_widths_component.lpm_showahead = "OFF",
dcfifo_mixed_widths_component.lpm_type = "dcfifo_mixed_widths",
dcfifo_mixed_widths_component.lpm_width = 32,
dcfifo_mixed_widths_component.lpm_widthu = 8,
dcfifo_mixed_widths_component.lpm_widthu_r = 9,
dcfifo_mixed_widths_component.lpm_width_r = 16,
dcfifo_mixed_widths_component.overflow_checking = "ON",
dcfifo_mixed_widths_component.rdsync_delaypipe = 4,
dcfifo_mixed_widths_component.read_aclr_synch = "OFF",
dcfifo_mixed_widths_component.underflow_checking = "ON",
dcfifo_mixed_widths_component.use_eab = "ON",
dcfifo_mixed_widths_component.write_aclr_synch = "OFF",
dcfifo_mixed_widths_component.wrsync_delaypipe = 4;
endmodule
El dcfifo_mixed_widths es algo que se define en la biblioteca altera_mf en mi Modelsim. Si esto fuera un FIFO VHDL, podría decir simplemente biblioteca altera_mf; utilizar altera_mf.all. Sin embargo, dado que este es el módulo Verilog, no puedo hacerlo. Sin embargo, espero que ModelSim detecte lo que ya existe en una biblioteca llamada altera_mf.
Cuando comienzo la simulación, obtengo errores por FIFO que dice "# ** Error: (vsim-3033) D: /Project/DE2_115_CAMERA/Sdram_Control/Sdram_WR_FIFO.v (70): Instanciación de 'dcfifo_mixed_widths'. no se encontró la unidad ".
¿Cuál es la solución?