UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 64777

Vivado Synthesis - System Verilog case inside range expression support

Description

When synthesizing my design, I find the following error when using a System Verilog case inside statement:

Error:[Synth 8-26] range choice in case statement not implemented

Error:[Synth 8-285] failed synthesizing module 'test'

The code is below:

always @ (posedge clk)   
    case (sel) inside
        [1:0]: reg_out <= data_a;
        [3:2]: reg_out <= data_b;
       endcase

Solution

Support for a System Verilog case inside a range expression [#:#]  has been added in Vivado 2017.3.

As a work-around In Vivado versions prior to  2017.3, please use the following code structure.

always @ (posedge clk)   
    case (sel) inside
        0,1: reg_out <= data_a;
        2,3: reg_out <= data_b;
       endcase

AR# 64777
Date 01/05/2018
Status Active
Type Known Issues
Tools
  • Vivado Design Suite
Page Bookmarked