Сгенерированные блоки начала и конца должны быть названы - PullRequest
0 голосов
/ 20 февраля 2020

Я собираю симулятор SNN с именем "ODIN" в Xilinx. для блока Generate я получаю эту ошибку, но я думаю, что с этим блоком все в порядке. Можете ли вы помочь мне с этим?

'''
genvar i;
generate
    for (i=0; i<8; i=i+1) begin

        sdsp_update #(
            .WIDTH(3)
        ) sdsp_update_gen (
            // Inputs
                // General
            .SYN_PRE(CTRL_PRE_EN[i] & (SPI_UPDATE_UNMAPPED_SYN | SYNARRAY_RDATA[(i<<2)+3])),
            .SYN_BIST_REF(CTRL_BIST_REF),
                // From neuron
            .V_UP(NEUR_V_UP_int[i]),
            .V_DOWN(NEUR_V_DOWN_int[i]),    
                // From SRAM
            .WSYN_CURR(SYNARRAY_RDATA[(i<<2)+3:(i<<2)]),

            // Output
            .WSYN_NEW(SYNARRAY_WDATA_int[(i<<2)+3:(i<<2)])
        );
    end
endgenerate

Я получаю следующие ошибки:

Сгенерированные начальные блоки должны иметь имя

Недопустимая переопределение ''

1 Ответ

0 голосов
/ 20 февраля 2020

Некоторые компиляторы хотят иметь имя при генерации логики c. Это имя взято из имени блока начала и конца. Попробуйте это:

'''
genvar i;
generate
    for (i=0; i<8; i=i+1) 
    begin : sdsp_gen // <<< Name for begin/end block 

        sdsp_update #(
            .WIDTH(3)
        ) sdsp_update_gen (
            // Inputs
                // General
            .SYN_PRE(CTRL_PRE_EN[i] & (SPI_UPDATE_UNMAPPED_SYN | SYNARRAY_RDATA[(i<<2)+3])),
            .SYN_BIST_REF(CTRL_BIST_REF),
                // From neuron
            .V_UP(NEUR_V_UP_int[i]),
            .V_DOWN(NEUR_V_DOWN_int[i]),    
                // From SRAM
            .WSYN_CURR(SYNARRAY_RDATA[(i<<2)+3:(i<<2)]),

            // Output
            .WSYN_NEW(SYNARRAY_WDATA_int[(i<<2)+3:(i<<2)])
        );
    end
endgenerate
...