AR# 52124

MIG 7 Series DDR3/DDR2 - Synplify fails due to DQS parameters

Description

The MIG 7 Series DDR3/DDR2 designs will fail in Synplify with errors similar to the following:

@E: CG596 :"/user_design/rtl/phy/mig_7series_v1_7_ddr_mc_phy_wrapper.v":1185:14:1185:21|Parameter DQS_BIAS cannot be found in module IOBUFDS_DCIEN.

or

@E: CG596 :"/user_design/rtl/ddr3_sdram/phy/mig_7series_v1_8_ddr_byte_lane.v":435:3:435:18|Parameter DQS_FIND_PATTERN cannot be found in module PHASER_IN_PHY.

Solution

These errors occur because between ISE design tools 14.2 and 14.3, the DQS_BIAS I/O feature changed from an attribute on an I/O primitive to a parameter on an I/O primitive. This change is nowreflected in the Synplify FPGA 2012.09 overlay patch and will be included into the official release of Synplify FPGA G-2012.09-SP1.

The overlay update can be downloaded at the bottom of this answer record.

Note: When this overlay is applied, critical warnings may be seen in Vivado implementation similar to the following:
[Netlist 29-73] Incorrect value 'UNDECLARED' specified for property 'OSERDES_DATA_WIDTH'. The system will either use the default value or the property value will be dropped. Verify your source files. ["/proj/ipmig/mig_7series_v1_8//
test10_ddr3_ver_synp/example_design/par_vivado/project_1/pro
ject_1.srcs/sources_1/imports/rev_1/example_top.edf":44124]

These critical warnings can safely be ignored.


If the overlay file cannot be used, then the following workaround can be used to bypass the error message.

Synplify Flow Work-around:

1. Open the user_design/rtl/phy/mig_7series_v1_7_ddr_mc_phy_wrapper.v module.
2. Make the following edits:

Original code:

IOBUFDS_DCIEN #
(
.IBUF_LOW_PWR (IBUF_LOW_PWR),
.DQS_BIAS ("TRUE")
)

Modified code:

(* DQS_BIAS = "TRUE" *) IOBUFDS_DCIEN #
(
.IBUF_LOW_PWR (IBUF_LOW_PWR)
)

Original code:

IOBUFDS_INTERMDISABLE #
(
.IBUF_LOW_PWR (IBUF_LOW_PWR),
.DQS_BIAS ("TRUE")
)

Modified code:

(* DQS_BIAS = "TRUE" *) IOBUFDS_INTERMDISABLE #
(
.IBUF_LOW_PWR (IBUF_LOW_PWR)
)

Original code:

IOBUFDS #
(
.IBUF_LOW_PWR (IBUF_LOW_PWR),
.DQS_BIAS ("TRUE")
)

Modified code:

(* DQS_BIAS = "TRUE" *) IOBUFDS #
(
.IBUF_LOW_PWR (IBUF_LOW_PWR)
)

Note:These updates cannot be made for simulation because the Xilinx models require the DQS_BIAS I/O parameter. The file originally generated by MIG 7 Series v1.7 must be used for simulation.

In the ISE 14.4 release, the same situation occurs with the DQS_AUTO_RECALL and DQS_FIND_PATTERN attributes in the ddr_byte_lane module. Between 14.3 and 14.4 these changed from attributes to parameters. A similar workaround can be made to the mig_7series_v1_8_ddr_byte_lane.v module:

Original code:
PHASER_IN_PHY #(
.BURST_MODE ( PI_BURST_MODE),
.CLKOUT_DIV ( PI_CLKOUT_DIV),
.DQS_AUTO_RECAL ( DQS_AUTO_RECAL),
.DQS_FIND_PATTERN ( DQS_FIND_PATTERN),
Modified code:

(* DQS_AUTO_RECAL = DQS_AUTO_RECAL, DQS_FIND_PATTERN = DQS_FIND_PATTERN *) PHASER_IN_PHY #(
.BURST_MODE ( PI_BURST_MODE),
.CLKOUT_DIV ( PI_CLKOUT_DIV),
// .DQS_AUTO_RECAL ( DQS_AUTO_RECAL),
// .DQS_FIND_PATTERN ( DQS_FIND_PATTERN),

Revision History
01/18/2013 - Added workaround for DQS_AUTO_RECALL and DQS_FIND_PATTERN issue in v1.8
11/02/2012 - updated with overlay patch
10/16/2012 - Initial release

Linked Answer Records

Master Answer Records

Answer Number Answer Title Version Found Version Resolved
45195 MIG 7 Series - Release Notes and Known Issues for All ISE versions and Vivado 2012.4 and older tool versions N/A N/A
AR# 52124
Date 02/27/2013
Status Needs Tech Review
Type Known Issues
Devices
IP