Tengo errores de síntesis al usar un módulo VHDL en Verilog. El siguiente mensaje de error dice que el tipo de entrada rd_ptr en el módulo VHDL no coincide con la variable rd_ptr_integer en el código de registro de verificación. El compilador también da este error para la variable de salida pckt_size. Por favor, ayúdame en esto.
La entidad del módulo vhdl es esta
entity packet_size is
generic(
fifo_MaxDepth:integer range 0 to 256:=16
);
port(
fifo_tlast:in std_logic_vector(fifo_MaxDepth -1 downto 0);
depth:in std_logic_vector(fifo_MaxDepth -1 downto 0);
rd_ptr:in integer range 0 to fifo_MaxDepth - 1;
pckt_size:out integer
);
end packet_size;
La parte de mi código de verilog que es la fuente del error es esta
reg [WIDTH-1:0] queue [MAX_DEPTH - 1 : 0];
reg [MAX_DEPTH_BITS - 1 : 0] rd_ptr;
reg [MAX_DEPTH_BITS - 1 : 0] wr_ptr;
reg [MAX_DEPTH_BITS : 0] depth;
wire [MAX_DEPTH : 0]fifo_tlast_packet;
wire [MAX_DEPTH_BITS - 1 : 0] rd_ptr_temp;
integer packet_size_out;
integer rd_ptr_integer;
assign num_of_packets=depth;
assign rd_ptr_temp=rd_ptr;
// Sample the data
//initialising the fifo_tlast_packet array for the packet_size module
genvar i;
for (i=0;i<MAX_DEPTH;i=i+1) begin
assign fifo_tlast_packet[i]=queue[i][0];
end;
//converting array to integer
always @(rd_ptr_temp)
begin
rd_ptr_integer=rd_ptr_temp;
end
//adding the packet_size module for measuring the packet size of the first fifo data
packet_size
#(.fifo_MaxDepth(MAX_DEPTH) )
packet1(
.fifo_tlast(fifo_tlast_packet),
.depth(depth),
.rd_ptr(rd_ptr_integer),
.pckt_size(packet_size_out)
);
Los errores que se muestran en la síntesis de ISE están aquí
ERROR:HDLCompiler:440 - "K:/final project/codes/v3/small_fifo_v3.v" Line 69: Formal port rd_ptr of type integer does not match with actual type integer
ERROR:HDLCompiler:440 - "K:/final project/codes/v3/small_fifo_v3.v" Line 70: Formal port pckt_size of type integer does not match with actual type integer
ERROR:HDLCompiler:1654 - "K:/final project/codes/v3/small_fifo_v3.v" Line 64: Instantiating <packet1> from unknown module <packet_size>