AR# 58025

|

Vivado Synthesis - BRAM inference fails due to the synchronous reset on the Synchronous read address register

描述

When I run Vivado Synthesis on my design, I receive the following message:

INFO: [Synth 8-3967] The signal mem_reg was recognized as a RAM template but could not be mapped onto a dedicated block RAM for the following reason(s): The *asynchronous read* does not match a dedicated block HDL RAM template.

The read address is actually registered, so it is synchronous read but it has a sync reset on it.

What is the root cause of the issue? Is the feature supported?

解决方案

The synchronous reset on the read address register is the root cause of the block RAM inference failure.

Vivado Synthesis does not currently support this feature.

The INFO message is misleading here as the read address is actually synchronous but Vivado Synthesis fails to extract it due to the reset.

To work around the issue, the following options are available:

1. Use the following switch:

set_param synth.elaboration.rodinMoreOptions "rt::set_parameter doBramAddrRegResetTransform true"

This will pull reset from the address register so that it can be used to infer BRAM.

In addition if there is a max_fanout attribute on that register, remove it from the read address register.

2. Use the RAM templates provided in the Vivado Synthesis User Guide.

AR# 58025
日期 10/20/2015
状态 Active
Type 已知问题
Tools More Less
People Also Viewed