AR# 8788: C_IP4 COREGEN: DA_FIR_V1_0: Warning! Port sizes differ in port connection (port 4) [Verilog-PCDPC]
C_IP4 COREGEN: DA_FIR_V1_0: Warning! Port sizes differ in port connection (port 4) [Verilog-PCDPC]
Keywords: Distributed Arithmetic FIR Filter, Verilog
A warning similar to the following may be seen during Verilog behavioral simulation of the CORE Generator DA FIR Filter for Virtex:
"Warning! Port sizes differ in port connection (port 4) [Verilog-PCDPC] "top_dafir.v", 111: DIN"
Although this type of warning is typically associated with a user error in connecting up the interface ports of interconnected modules, another possible cause in the case of the CORE Generator DA FIR module is a bug in the ordering of the customization parameters being passed in the VEO template file. If the latter is the cause, the problem is that some parameters passed in the module declaration section of the VEO template for the Virtex DA FIR Filter have been inadvertently switched around.
Specifically, C_COEFF_WIDTH and C_DATA_WIDTH, the 3rd and 5th parameters in the Verilog model are passed as the 4th and 6th parameters of the declaration template in the .VEO file. Parameters 3 & 4 appear to have been swapped with parameters 5 & 6.
The parameter list in the VEO is excerpted below with annotations (delimited with a "//" comment marker) added to indicate the parameter in the behavioral model to which the value being passed.
Also, the following related definitions for data types of "signed" and "unsigned" are also declared in the model:
`define c_signed 0 // for c_data_type `define c_unsigned 1
You can determine the correct settings for the VEO parameters by reviewing the corresponding settings in the XCO file for the generated core (the XCO for each core is usually written to your project directory).
Based on this, the relevant lines in the VEO template can be corrected as follows so that COEFF_WIDTH is set to 16, COEFF_TYPE is set to 0 (signed), C_DATA_WIDTH is set to 10, and C_DATA_TYPE is set to 0 (signed):
C_DA_FIR_V1_0 #( 1, // C_BAAT 1, // C_CHANNELS 16, // C_COEFF_WIDTH parameter #3 - corresponds to CSET coefficient_data_width=10 0, // C_COEFF_TYPE parameter #4 -- corresponds to SIGNED data type for coefficients - 10, // C_DATA_WIDTH parameter #5 -- corresponds to CSET input_data_width = 16 0, // C_DATA_TYPE paramepter #6 -- corresponds to CSET input_data_type = signed