Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Xilinx ISE 13.1
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Страницы: 1, 2
vugluskr
только что поставил, для пробы компилю проект из предыдущей версии. Субъективно, мне кажется, что процесс стал чуть быстрее. Xilinx позиционирует этот продукт как system level - буду разбираться. В пресс релизе написано о повышении уровня абстракции кодирования (System C), мол, меньше думайте об RTL - кодируйте функционал. К сожалению нет поддержки SysnemVerilog (очень надеюсь, что когда-нибудь вставят).
ISE 13.1
Boris_TS
В опциях XST появилась галочка VHDL 200x...
Koluchiy
Традиционный вопрос про глюки sm.gif.

Насколько дружит с Synplify?
yes
Цитата(Koluchiy @ Mar 3 2011, 15:12) *
Традиционный вопрос про глюки sm.gif.

Насколько дружит с Synplify?


а почему бы и не дружить? нетлист хоть руками написать можно

имхо, сам Синплифай плохеет как-то
как в Синплифае с поддержкой новых камней, я не говорю про 7-е семейство, хотя бы 6-е?
Victor®
Цитата(yes @ Mar 3 2011, 16:58) *
а почему бы и не дружить? нетлист хоть руками написать можно

имхо, сам Синплифай плохеет как-то
как в Синплифае с поддержкой новых камней, я не говорю про 7-е семейство, хотя бы 6-е?

http://www.synopsys.com/Tools/Implementati...iceSupport.aspx
Kuzmi4
2 yes
6-е семейство в последнем 2010 поддерживается (в смысле наличия камня и возможности для него просинтезировать дизайн) очень хорошо laughing.gif
на 7-е семейство как то не обращал внимания...кажись нет его..
Alexium
Извиняюсь за оффтопик, но разве Синплифай лучше для FPGA Xilinx, чем фирменный ISE?
Victor®
Цитата(Alexium @ Mar 3 2011, 16:36) *
Извиняюсь за оффтопик, но разве Синплифай лучше для FPGA Xilinx, чем фирменный ISE?


Это как яблоко (Xilinx) и червяк (Synopsys)
Яблоко без червяка может, а червяк без яблока нет. :-)
Если серьезнее и вкратце
1) Synplify - синтезатор, ISE - "все в одном"
2) Synplify может дать лучший результат.
3) Synplify имеет смысл использовать, если надо "утрамбовать" проект по ресурсам\скорости
4) Для получения "прошивки" FPGA в любом случае нужен ISE.

P.S.
А вообще оффтоп bb-offtopic.gif
SDM_Electronix
Как показывет практика, 1-ые версии обычно глючат. Подождем 13.2 или 13.3.
jojo
>Как показывет практика, 1-ые версии обычно глючат. Подождем 13.2 или 13.3.

Теперь все версии глючат, и первые, и последние.

В 12.4 Planahead глючит.
vugluskr
Цитата(Alexium @ Mar 3 2011, 16:36) *
Извиняюсь за оффтопик, но разве Синплифай лучше для FPGA Xilinx, чем фирменный ISE?

на мой взгляд, - не лучше не хуже, одно гигантское НО - синплифай поддерживает SV
Victor®
Цитата(vugluskr @ Mar 3 2011, 18:28) *
может и даже не плохо, одно гигантское НО - синплифай поддерживает SV


Очень многим это перпендикулярно-фиолетово :-)
vugluskr
так, скомпилил в новой версии старый(из 12 версии) проект (видеокодер). Никаких преимуществ пока не вижу. Пришлось перекомпилить все корки.... Пока экономии/производительности примерно 0 по сравнению с предыдущей версией. Буду копать дальше, искать фактические преимущества.

Цитата(Koluchiy @ Mar 3 2011, 15:12) *
Традиционный вопрос про глюки sm.gif.

Насколько дружит с Synplify?


глюков пока не увидел, но и не глубоко тестил. Synplify еще не пробовал. Прошивка моя очень долго компилиться
vanduongbk
can try license at here
Цитата
vugluskr
Цитата(vanduongbk @ Mar 5 2011, 05:40) *
can try license at here

+1
Victor®
Цитата(vanduongbk @ Mar 5 2011, 06:40) *
can try license at here


да как-бы и от 12.3 "+1"
Koluchiy
Граждане, умеет ли в 13.1 Map занимать несколько ядер?
Не в том смысле, что "настройка такая есть", а реально работает всё равно только одно ядро.
А так, чтобы реально несколько ядер считали с заметным прогрессом по времени.
toshas
на 12.2 замечал, что при выставленной галке многоядерности, если ошибка в сборке проекта происходит на map или par,
отчета с ошибкой иногда вообще нет, пишет ошибка и все, приходится переключать снова на 1 ядро.
faa
Цитата(Koluchiy @ Mar 5 2011, 10:46) *
Граждане, умеет ли в 13.1 Map занимать несколько ядер?

MAP падает под линухом 64 бит. Молча. Разбираться почему, что и как пока не стал.
А вот PAR работает на 4 ядрах.
vugluskr
Windows
При просмотре репортов Design summary при нажатии Сollate Consecutive невозможно равернуть вкладки - очень раздражает
faa
Наткнулся на несоответствие в библиотеке UNIMACRO и template ISE 13.1.
В макросе ADDMACC_MACRO
в template PREADDER1 и PREADDER2
Код
-- ADDMACC_MACRO : In order to incorporate this function into the design,
--     VHDL      : the following instance declaration needs to be placed
--   instance    : in the architecture body of the design code.  The
--  declaration  : (ADDMACC_MACRO_inst) and/or the port declarations
--     code      : after the "=>" assignment maybe changed to properly
--               : reference and connect this function to the design.
--               : All inputs and outputs must be connected.

--    Library    : In addition to adding the instance declaration, a use
--  declaration  : statement for the UNISIM.vcomponents library needs to be
--      for      : added before the entity declaration.  This library
--    Xilinx     : contains the component declarations for all Xilinx
--   primitives  : primitives and points to the models that will be used
--               : for simulation.

--  Copy the following four statements and paste them before the
--  Entity declaration, unless they already exist.

Library UNISIM;
use UNISIM.vcomponents.all;

Library UNIMACRO;
use UNIMACRO.vcomponents.all;
--  <-----Cut code below this line and paste into the architecture body---->

   -- ADDMACC_MACRO: Add and Multiple Accumulate Function implemented in a DSP48E
   --                Virtex-6
   -- Xilinx HDL Language Template, version 13.1

   ADDMACC_MACRO_inst : ADDMACC_MACRO
   generic map (
      DEVICE => "VIRTEX6",  -- Target Device: "VIRTEX6", "SPARTAN6"
      LATENCY => 4,         -- Desired clock cycle latency, 1-4
      WIDTH_PREADD => 25,   -- Pre-Adder input bus width, 1-25
      WIDTH_MULTIPLIER => 18, -- Multiplier input bus width, 1-18    
      WIDTH_PRODUCT => 48)    -- MACC output width, 1-48
   port map (
      PRODUCT => PRODUCT,     -- MACC result output, width defined by WIDTH_PRODUCT generic
      MULTIPLIER => MULTIPLIER, -- Multiplier data input, width determined by WIDTH_MULTIPLIER generic
      PREADDER1 => PREADDER1,   -- Preadder data input, width determined by WIDTH_PREADDER generic
      PREADDER2 => PREADDER2,   -- Preadder data input, width determined by WIDTH_PREADDER generic
      CARRYIN => CARRYIN, -- 1-bit carry-in input
      CE => CE,      -- 1-bit input clock enable
      CLK => CLK,    -- 1-bit clock input
      LOAD => LOAD, -- 1-bit accumulator load input
      LOAD_DATA => LOAD_DATA, -- Accumulator load data input, width defined by WIDTH_PRODUCT generic
      RST => RST    -- 1-bit input active high synchronous reset
   );
   -- End of ADDMACC_MACRO_inst instantiation


а в библиотеке
PREADD1 и PREADD2
Код
----- CELL ADDMACC_MACRO -----

library IEEE;
use ieee.std_logic_1164.ALL;
use ieee.numeric_std.ALL;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;

library UNISIM;
use UNISIM.vcomponents.all;

library STD;
use STD.TEXTIO.ALL;


entity ADDMACC_MACRO is
  generic (
            DEVICE : string := "VIRTEX6";
            LATENCY : integer := 4;
            WIDTH_PREADD : integer := 25;
            WIDTH_MULTIPLIER : integer := 18;
            WIDTH_PRODUCT : integer := 48
       );

  port (
      PRODUCT : out std_logic_vector(WIDTH_PRODUCT-1 downto 0);
      CARRYIN : in std_logic;
      CE : in std_logic;
      CLK : in std_logic;
      MULTIPLIER : in std_logic_vector(WIDTH_MULTIPLIER-1 downto 0);
      LOAD : in std_logic;
      LOAD_DATA : in std_logic_vector(WIDTH_PRODUCT-1 downto 0);
      PREADD1 : in std_logic_vector(WIDTH_PREADD-1 downto 0);
      PREADD2 : in std_logic_vector(WIDTH_PREADD-1 downto 0);
      RST : in std_logic
     );
end entity ADDMACC_MACRO;


ЗЫ: ИМХО, есть смысл тему перекинуть в "среды разработки".
Postoroniy_V
bb-offtopic.gif
млин....опять, очередная...
мне вот очень нравится как хилые выбрасывают из своих либ модули( память, фифо, умножители) старых версий... так потихому.
проверяю разные проекты, как итог нужно держать либы от разных версий, начиная от 10х до..
не понятно что мешает держать враперы общие для всех.
Koluchiy
Скажите пожалуйста.
Позволяет ли MIG в ISE 13.1 генерить интерфейс для нескольких памятей DDR2?

Вот ISE 12.3 для нескольких памятей может генерить только в случае DDR3.
vugluskr
Цитата(Koluchiy @ Mar 17 2011, 15:36) *
Скажите пожалуйста.
Позволяет ли MIG в ISE 13.1 генерить интерфейс для нескольких памятей DDR2?

Вот ISE 12.3 для нескольких памятей может генерить только в случае DDR3.


Koluchiy
Спасибо!
А для Virtex-6?
У S6 всё-таки аппаратные блоки, немного другой коленкор blush.gif .
vugluskr
Цитата(Koluchiy @ Mar 18 2011, 11:40) *
Спасибо!
А для Virtex-6?
У S6 всё-таки аппаратные блоки, немного другой коленкор blush.gif .

Koluchiy
Еще раз спасибо!

Блин, придется переходить на DDR3...
Oldring
Код
Generating Report ...


Fatal Error.Occurred at file XXX.twx, line 340, column 320811. An exception occurred! Type:UTFDataFormatException, Message:invalid bytes Г , [ of 3-byte sequence.
Number of warnings: 0
Total time: 6 secs

Process "Generate Post-Place & Route Static Timing" completed successfully


laughing.gif cranky.gif

PS После отключения многопоточности и очистки проекта вроде заработало. Видимо, многопоточность в 13.1 просто нерабочая.

Из небольших глюков еще. В 13.1 декларирована полная поддержка VHDL до уровня элаборейшина. Так что можно написать алиас для пакета и сложное имя с ним, и синтезатор должен понять. И, действительно, синтезатор понимает, не знаю, насколько безглюкаво, но вот только команда "Check syntax" выдает ошибку, что такой пакет отсутствует.
DB51
а какой тогда из последних ISE самый стабильный? 12.4 нормальный?
Koluchiy
А Вы с какими семействами работаете?
Если не выше V5, то я бы посоветовал 11.5.
Если с S6 хотите, то в моём понимании минимум 12.3, да и то есть информация, что даже в ней не совсем корректные временные характеристики для S6.
Если V6, то например документация на нее периодически выдает фразы типа "рекомендуем 13.1, такие-то характеристики там уточнены".

В общем, лично я жду 13.2, а лучше 13.3 sm.gif.
Oldring
Цитата(Koluchiy @ Mar 18 2011, 15:48) *
Если с S6 хотите, то в моём понимании минимум 12.3, да и то есть информация, что даже в ней не совсем корректные временные характеристики для S6.
Если V6, то например документация на нее периодически выдает фразы типа "рекомендуем 13.1, такие-то характеристики там уточнены".

В общем, лично я жду 13.2, а лучше 13.3 sm.gif.


Под S6 ISE 13.1 синтезирует лучше. Уж не знаю, в чём дело, то ли оптимизаторы лучше работают, то ли времянка точнее.
Но глюкавый...

Врочем, на ошибки при трансляции проекта я пока еще не нарывался.
disel
Цитата(Oldring @ Mar 18 2011, 16:01) *
Под S6 ISE 13.1 синтезирует лучше. Уж не знаю, в чём дело, то ли оптимизаторы лучше работают, то ли времянка точнее.
Но глюкавый...


А V6 не пробывали?
DB51
Цитата(Koluchiy @ Mar 18 2011, 16:48) *
А Вы с какими семействами работаете?
Если не выше V5, то я бы посоветовал 11.5.
Если с S6 хотите, то в моём понимании минимум 12.3, да и то есть информация, что даже в ней не совсем корректные временные характеристики для S6.
Если V6, то например документация на нее периодически выдает фразы типа "рекомендуем 13.1, такие-то характеристики там уточнены".

В общем, лично я жду 13.2, а лучше 13.3 sm.gif.


Спасибо.
качну 11.5 и буду ждать 13.4 sm.gif
Koluchiy
Цитата(Oldring @ Mar 18 2011, 16:01) *
Под S6 ISE 13.1 синтезирует лучше. Уж не знаю, в чём дело, то ли оптимизаторы лучше работают, то ли времянка точнее.
Но глюкавый...

Врочем, на ошибки при трансляции проекта я пока еще не нарывался.


Я XST не использую sm.gif. Мне многопроцессорность рабочая в P&R гораздо важнее, чем улучшения в XST.
faa
Цитата(disel @ Mar 18 2011, 16:05) *
А V6 не пробывали?

Пробую VLX130T. Работает.
vugluskr
Цитата(Koluchiy @ Mar 18 2011, 13:07) *
Еще раз спасибо!

Блин, придется переходить на DDR3...


оффтоп: резисторов меньше нужно, да и по цене они вроде дешевле
disel
Цитата(faa @ Mar 18 2011, 16:51) *
Пробую VLX130T. Работает.


А изменения в работе есть? И в какую сторону?
Victor®
Цитата(vugluskr @ Mar 18 2011, 16:51) *
оффтоп: резисторов меньше нужно, да и по цене они вроде дешевле


это по сравнению с каким DDR меньше их нужно?
vugluskr
Цитата(Victor® @ Mar 18 2011, 17:18) *
это по сравнению с каким DDR меньше их нужно?

I
Victor®
Цитата(vugluskr @ Mar 18 2011, 17:25) *
I


Вроде речь шла о переходе с DDR2 на DDR3
Oldring
Цитата(Koluchiy @ Mar 18 2011, 16:33) *
Я XST не использую sm.gif. Мне многопроцессорность рабочая в P&R гораздо важнее, чем улучшения в XST.


Так может и PAR просто лучше. Просто что с 12.3 напрямую в констрейнты не лезло, тут сразу полезло с некоторым запасом. Для меня оказался аргумент.
PAR совершенно точно ускорили. Даже однопоточный.
faa
Цитата(disel @ Mar 18 2011, 16:53) *
А изменения в работе есть? И в какую сторону?

На досуге прогоню через 12.4.
О результатах сообщу.

UPD: ну как-то так
Нажмите для просмотра прикрепленного файла
vugluskr
12.4 эту конструкцию разворачивал, а 13.1 нет
Код
genvar i;
generate  
for (i=0; i < 31; i=i+1)  
begin: lbl
    sync s( .in_async(err_in[i]),.out_sync(err_in_synced[i]),.clk(clk));
    always @(posedge clk or posedge reset)
        if (reset) err[i]<=1'b0;
        else if (err_in_synced[i]==1'b1)err[i]<=1'b1;
        
assign ERR_IRQ = ~(ERR_IRQ|err[i]);
end  
endgenerate
Postoroniy_V
Цитата(vugluskr @ Mar 29 2011, 00:03) *
12.4 эту конструкцию разворачивал, а 13.1 нет
Код
genvar i;
generate   ...
assign ERR_IRQ = ~(ERR_IRQ|err[i]);
end  
endgenerate


а какой смысл пихать в генерате
assign ERR_IRQ = ~(ERR_IRQ|err[i]);? это ж вроде асинхронный луп? cranky.gif

или где то ещё есть присвоение для ERR_IRQ?

vugluskr
Цитата(Postoroniy_V @ Mar 28 2011, 18:11) *
а какой смысл пихать в генерате
assign ERR_IRQ = ~(ERR_IRQ|err[i]);? это ж вроде асинхронный луп? cranky.gif

или где то ещё есть присвоение для ERR_IRQ?


смысл чтобы не писать assign ERR_IRQ = err[0]|err[1]|err[2]....err[30]|err[31]

я в офигении, это во первых не правильно, а во вторых, почему 12.4 это пропускал?
Postoroniy_V
Цитата(vugluskr @ Mar 29 2011, 00:15) *
смысл чтобы не писать assign ERR_IRQ = err[0]|err[1]|err[2]....err[30]|err[31]

я в офигении, это во первых не правильно, а во вторых, почему 12.4 это пропускал?

ну..вы блин даёте!
assign ERR_IRQ = |err;

изучите Unary, Bitwise and Reduction Operators
http://eesun.free.fr/DOC/VERILOG/verilog_manual1.html
vugluskr
Цитата(Postoroniy_V @ Mar 28 2011, 18:43) *
ну..вы блин даёте!
assign ERR_IRQ = |err;

изучите Unary, Bitwise and Reduction Operators
http://eesun.free.fr/DOC/VERILOG/verilog_manual1.html


да, это не мой код... даже не в этом вопрос и непонятка - какого фига ЭТО проходило компиляцию раньше??? Как это получилось, почему в 12.4 проект скомпилировался?
vugluskr
только у меня тормозня такая на 13.1 при генерации IP ядер или еще кто-нибудь заметил это (всравнении с 12.4)?

да уж... беру проверенный проект из 12.4, портирую, перекомпилирую корки, включаю проект на имплементейшн.

В консоли:

Код
Regenerate Core - cmos_mem: All required files are available.

Process "Regenerate Core" completed successfully
Regenerate Core - FIFO_CMOS: All required files are available.

Process "Regenerate Core" completed successfully
Regenerate Core - CLK_GEN: All required files are available.

Process "Regenerate Core" completed successfully
Regenerate Core - ddr2ctl: All required files are available.

Process "Regenerate Core" failed
Regenerate Core - ICON_bud_cs4_cs5: All required files are available.

Process "Regenerate Core" completed successfully
Regenerate Core - ILA_bud_cs4_cs5: All required files are available.

Process "Regenerate Core" completed successfully



и все процесс останавливается - никаких сообщений об ошибках нет.
Естественно я заметил в консоли это
Код
Process "Regenerate Core" failed
Regenerate Core - ICON_bud_cs4_cs5: All required files are available.


корку перегенерил еще раз с учетом, что она Producted - результат тот же, WTF?
Postoroniy_V
Цитата(vugluskr @ Mar 29 2011, 02:14) *
да, это не мой код... даже не в этом вопрос и непонятка - какого фига ЭТО проходило компиляцию раньше??? Как это получилось, почему в 12.4 проект скомпилировался?

вот хороший повод делать код ревью и линт чек biggrin.gif
Oldring
Цитата(Oldring @ Mar 18 2011, 15:56) *
PS После отключения многопоточности и очистки проекта вроде заработало. Видимо, многопоточность в 13.1 просто нерабочая.


Хватило не на долго. Начало глючить и при одном потоке. Дальнейшее расследование показало, что генератор XML репорта просто генерирует его с синтаксической ошибкой, вставляя в репорт группу с каким-то мусорным именем. Видимо, это имя портится в памяти генератора. Который, кстати, однопоточный. Поэтому невключение опции "Generate timegroup section" спасает тайминг репорт. Надолго ли?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.