Перейти к содержанию
    

Откройте ваш проект в fpga_editor и посмотрите пути от этих выходных пинов до регистров, если просто регистры не легли в IOB, то дело в именах инстансов в UCF файле (синтезатор может по своему усмотрению менять названия регистров, обычно добавляет тарабарщину на конце), так-же имя может сменится после оптимизации синтезатора (например может не быть физического прототипа out_serial), иногда удобней бывает сослаться напрямую на регистры в модуле (если регистры не в топе) INST Module/out_serial* IOB=TRUE; Кстати, как вариант, если регистры внутри модуля а в UCF фигурируют непосредственно пины топа, то не факт что MAP это правильно поймет.

Если после выходных регистров присутсвует логика, тогда хуже, надо разбираться почему, вообще-то это на RTL это видно (я не смог просмотреть ваш RTL, поэтому гадаю) ...

3) можно ли сказать по RTL схеме какие триггеры окажутся в IOB
Надежнее смотреть в fpga_editor.

4) на RTL схеме есть прямоугольноки, которые не раскрываются(например, _n1054(24)_imp) - что это такое
Это либо черные ящики (внешние нетлисты) либо библиотечные примитивы типа буферов, DLL и т.п.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Откройте ваш проект в fpga_editor и посмотрите пути от этих выходных пинов до регистров, если просто регистры не легли в IOB, то дело в именах инстансов в UCF файле (синтезатор может по своему усмотрению менять названия регистров, обычно добавляет тарабарщину на конце), так-же имя может сменится после оптимизации синтезатора (например может не быть физического прототипа out_serial), иногда удобней бывает сослаться напрямую на регистры в модуле (если регистры не в топе) INST Module/out_serial* IOB=TRUE; Кстати, как вариант, если регистры внутри модуля а в UCF фигурируют непосредственно пины топа, то не факт что MAP это правильно поймет.

Если после выходных регистров присутсвует логика, тогда хуже, надо разбираться почему, вообще-то это на RTL это видно (я не смог просмотреть ваш RTL, поэтому гадаю) ...

 

что-то компилятор ругается:

ERROR:NgdBuild:753 - Line 61 in 'top.ucf': Could not find instance(s)

ERROR:Parsers:11 - Encountered unrecognized constraint while parsing.

ERROR:NgdBuild:19 - Errors found while parsing constraint file "top.ucf".

 

ошибка в строке(может синтаксис не верный?):

INST "Inst_serialOUT_LEDDR/out_serial1" IOB=TRUE;

--------------

инстанция объявлена так:

Inst_serialOUT_LEDDR: serialOUT 
    GENERIC MAP    (data_width=> NUM_OF_LED,
                     divider_clk =>LEDDR_divider_clk)
    PORT MAP(
        data_par1     => all_LED_data(CONV_INTEGER(0)),
        data_par2     => all_LED_data(CONV_INTEGER(1)),
        data_par3     => all_LED_data(CONV_INTEGER(2)), 
        data_par4     => all_LED_data(CONV_INTEGER(3)),
        data_par5     => all_LED_data(CONV_INTEGER(4)),
        data_par6     => all_LED_data(CONV_INTEGER(5)),
        data_par7     => all_LED_data(CONV_INTEGER(6)),
        data_par8     => all_LED_data(CONV_INTEGER(7)),
        data_par9     => all_LED_data(CONV_INTEGER(8)),
        data_par10     => all_LED_data(CONV_INTEGER(9)),
        data_par11     => all_LED_data(CONV_INTEGER(10)),
        data_par12    => all_LED_data(CONV_INTEGER(11)),
        data_par13    => all_LED_data(CONV_INTEGER(12)),
        data_par14    => all_LED_data(CONV_INTEGER(13)),
        data_par15    => all_LED_data(CONV_INTEGER(14)),
        data_par16    => all_LED_data(CONV_INTEGER(15)),
        bit_countL    => LEDDR_bit_count,
        data_write     => LEDDR_data_write,
        clk_sys         => LEDDR_CLK_all,
        out_serial1 => LEDDR_SEROUT1,
        out_serial2 => LEDDR_SEROUT2,
        out_serial3 => LEDDR_SEROUT3,
        out_serial4 => LEDDR_SEROUT4,
        out_serial5 => LEDDR_SEROUT5,
        out_serial6 => LEDDR_SEROUT6,
        out_serial7 => LEDDR_SEROUT7,
        out_serial8 => LEDDR_SEROUT8,
        out_serial9 => LEDDR_SEROUT9,
        out_serial10 => LEDDR_SEROUT10,
        out_serial11 => LEDDR_SEROUT11,
        out_serial12 => LEDDR_SEROUT12,
        out_serial13 => LEDDR_SEROUT13,
        out_serial14 => LEDDR_SEROUT14,
        out_serial15 => LEDDR_SEROUT15,
        out_serial16 => LEDDR_SEROUT16,
        out_clk          => LEDDR_CLK_inv,
        free              => LEDDR_free 
    );

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ругается не компилятор а транслятор (от части и "линковщик"), я же писал, что синтезатор меняет названия регистров, тем более в модуле (к тому-же, если синтезатор XST и выключена галка Keep Hierarchy, тут вообще либо только сначала узнавать реальные имена либо из синтеза конктрейнить) ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...