3.14 0 5 сентября, 2006 Опубликовано 5 сентября, 2006 · Жалоба Откройте ваш проект в 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 и т.п. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zxazx 0 5 сентября, 2006 Опубликовано 5 сентября, 2006 · Жалоба Откройте ваш проект в 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 ); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 5 сентября, 2006 Опубликовано 5 сентября, 2006 · Жалоба Ругается не компилятор а транслятор (от части и "линковщик"), я же писал, что синтезатор меняет названия регистров, тем более в модуле (к тому-же, если синтезатор XST и выключена галка Keep Hierarchy, тут вообще либо только сначала узнавать реальные имена либо из синтеза конктрейнить) ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться