реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Особенности разводки проектов в ISE, сделал для себя важое открытие
Мур
сообщение Jan 24 2011, 09:20
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Сделал важное открытие для себя с ISE как раз касательно времянок.
Просто в Кактусе считалось библиотечные примитивы работают всегда быстрее структур определяемых на HDL.
В ISE всё наоборот!
Мой комплексный проект (80% на НDL!) удалось поднять по скорости в 2 раза (с 68МГц до 120МГц) только за счёт того, что переписал блоки из библиотечных примитивов на чистый VHDL.
Вот так говорит практика...
Может кому время разработки сокращу(особенно кактусникам!)...
Причина редактирования: топики выделны в отдельную тему
Go to the top of the page
 
+Quote Post
Leka
сообщение Jan 28 2011, 09:46
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Надо еще учитывать, что "а=б+с" и "а=с+б" (утрированно) могут давать разный результат синтеза, на мелких примерах можно выявить подобные особенности синтезаторов.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 28 2011, 10:11
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(Мур @ Jan 28 2011, 12:20) *
Мой комплексный проект (80% на НDL!) удалось поднять по скорости в 2 раза (с 68МГц до 120МГц) только за счёт того, что переписал блоки из библиотечных примитивов на чистый VHDL.

Это как правило является результатом того, что вы или неправильно настроили корки, или неправильно их переписали. Потому если бы вы могли сходу писать лучше, чем инженеры Xilinx - то наверное работали бы уже там.
Go to the top of the page
 
+Quote Post
Мур
сообщение Jan 28 2011, 10:41
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(DmitryR @ Jan 28 2011, 14:11) *
Это как правило является результатом того, что вы или неправильно настроили корки, или неправильно их переписали. Потому если бы вы могли сходу писать лучше, чем инженеры Xilinx - то наверное работали бы уже там.

Тю! К коркам нет претензий. Там ОК!
Вот простенький пример. Вот этот формирователь На HDL работает заметно быстрее!

Цитата
Как автор темы в целях невнесения путаницы прошу Вас завести собственную тему.


Не вижу никакой путаницы. Название темы слишком обширно. Радуйтесь!

Сообщение отредактировал Мур - Jan 28 2011, 12:47
Прикрепленные файлы
Прикрепленный файл  123.bmp ( 46.56 килобайт ) Кол-во скачиваний: 102
 
Go to the top of the page
 
+Quote Post
VladimirB
сообщение Jan 31 2011, 18:48
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219



Цитата(Мур @ Jan 28 2011, 13:41) *
Тю! К коркам нет претензий. Там ОК!
Вот простенький пример. Вот этот формирователь На HDL работает заметно быстрее!...

индусы много лет старательно портили схематик в ISE - а вы всё равно им пользуетесь, да вам памятник надо поставить biggrin.gif
я уж тоже было про корки подумал
Go to the top of the page
 
+Quote Post
Мур
сообщение Feb 1 2011, 08:35
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(VladimirB @ Jan 31 2011, 22:48) *
индусы много лет старательно портили схематик в ISE - а вы всё равно им пользуетесь, да вам памятник надо поставить biggrin.gif
я уж тоже было про корки подумал

В схематике своя логика. Её можно понять со временем. Теперь я острого дискомфорта не испытываю...
Как следствие моего "открытия" конвеерные регисторные и триггерные вставки надо делать на HDL.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Feb 1 2011, 13:28
Сообщение #7


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Leka @ Jan 28 2011, 11:46) *
Надо еще учитывать, что "а=б+с" и "а=с+б" (утрированно) могут давать разный результат синтеза, на мелких примерах можно выявить подобные особенности синтезаторов.

можно поподробнее про это...
Когда и где это может проявиться и где на следует обращать внимание?


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
disel
сообщение Feb 1 2011, 13:32
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Цитата(Мур @ Jan 28 2011, 13:41) *
Вот простенький пример. Вот этот формирователь На HDL работает заметно быстрее!


Вы бы полностью примеры выложили, с временным отчетом. А также его конкурента на ХДЛ, также с отчетом.
Go to the top of the page
 
+Quote Post
Leka
сообщение Feb 1 2011, 17:47
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Цитата(Maverick @ Feb 1 2011, 17:28) *
можно поподробнее про это...

Пример для ISE, Spartan3* :
Код
module tst(
   output[7:0] q,
   input [7:0] a, b,
   input ena, enb
);
   wire [7:0] aa = ena ? a : -1;
   wire [7:0] bb = enb ? b : 0;
   assign q = aa + bb;
   //assign q = bb + aa;
endmodule

- перестановка слагаемых вдвое уменьшает число ЛУТ (и уровней). Подобных фокусов - хватает...
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 1 2011, 18:51
Сообщение #10


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Maverick @ Feb 1 2011, 15:28) *
можно поподробнее про это...
Когда и где это может проявиться и где на следует обращать внимание?

А вот мой пример
http://electronix.ru/forum/index.php?showtopic=82881
оставшийся без комментариев. Как я понял, все согласились и приняли к сведению sm.gif
Go to the top of the page
 
+Quote Post
Leka
сообщение Feb 1 2011, 20:53
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Цитата(ViKo @ Feb 1 2011, 22:51) *
А вот мой пример
http://electronix.ru/forum/index.php?showtopic=82881
оставшийся без комментариев. Как я понял, все согласились и приняли к сведению sm.gif

Имхо, запись можно заметно упростить за счет индексов, тогда и комментарии будут. А так вникать надо...
Отписался в той ветке...
Go to the top of the page
 
+Quote Post
Maverick
сообщение Feb 1 2011, 21:11
Сообщение #12


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Leka @ Feb 1 2011, 19:47) *
Пример для ISE, Spartan3* :
Код
module tst(
   output[7:0] q,
   input [7:0] a, b,
   input ena, enb
);
   wire [7:0] aa = ena ? a : -1;
   wire [7:0] bb = enb ? b : 0;
   assign q = aa + bb;
   //assign q = bb + aa;
endmodule

- перестановка слагаемых вдвое уменьшает число ЛУТ (и уровней). Подобных фокусов - хватает...

прикольно, надо будет поиследовать biggrin.gif
Я не замечал...
Какая версия ISE на тот момент была установлена? В какой версией ISE в 10 или в 9 наблюдалось?


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Leka
сообщение Feb 1 2011, 21:14
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



9.2 и 12.x
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 2 2011, 05:08
Сообщение #14


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Maverick @ Feb 1 2011, 15:11) *
прикольно, надо будет поиследовать biggrin.gif
Я не замечал...

если правильно помню архитектуру хилого слайса, результат в данном случае очевиден, настолько, что даже объяснений не требует %)


--------------------
Go to the top of the page
 
+Quote Post
litv
сообщение Feb 2 2011, 06:24
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 6-10-04
Из: Воронеж
Пользователь №: 806



А если пользоваться еще и Synplify - то быстродействие будет еще выше и число вентилей меньше.Всякие перестановки типа арифметики synplify сам понимает и нормально оптимизит. XST - фигня.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 2 2011, 08:13
Сообщение #16


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(des00 @ Feb 2 2011, 07:08) *
если правильно помню архитектуру хилого слайса, результат в данном случае очевиден, настолько, что даже объяснений не требует %)

Верю, что вам это видно. Но вот мне, в частности, не видно. Xilinx я вообще не знаю. Разбирает любопытство. Расскажете?
P.S. а мой проект был на Altera
Go to the top of the page
 
+Quote Post
Maverick
сообщение Feb 2 2011, 08:48
Сообщение #17


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(des00 @ Feb 2 2011, 07:08) *
если правильно помню архитектуру хилого слайса, результат в данном случае очевиден, настолько, что даже объяснений не требует %)

может поделитесь опытом... wink.gif
И расскажите поподробнее


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 2 2011, 09:34
Сообщение #18


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(ViKo @ Feb 2 2011, 02:13) *
Разбирает любопытство. Расскажете?

Цитата(Maverick @ Feb 2 2011, 02:48) *
И расскажите поподробнее

ну в даташите же написано, гораздо интереснее самому узнать %) Куда именно смотреть в даташите лежит в атаче. И если вернуться к корню (с точки зрения важности) в примере Leka
Код
   wire [7:0] aa = ena ? a : -1;
   wire [7:0] bb = enb ? b : 0;

то становиться очевидно, почему aa + bb будет реализована по разному в зависимости от того, куда будет подцеплены aa и bb. А вот почему авторы ИСЕ не зрят в корень и делают все в лоб, вопрос лучше им задать %)

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
Go to the top of the page
 
+Quote Post
Мур
сообщение Feb 2 2011, 09:44
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(disel @ Feb 1 2011, 17:32) *
Вы бы полностью примеры выложили, с временным отчетом. А также его конкурента на ХДЛ, также с отчетом.


Поразительно, но тот пример, что я приводил, в отчёте Clock Information , что в Design Summary, явно показывал выигрыш около 0.5нс при Speed Grade: -2
По приведенному фрагменту, схему которого я приводил(странно, что вызвало интерес!)
Цитата
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity log_fd is
Port ( clk : in STD_LOGIC;
dddin : in STD_LOGIC;
en : out STD_LOGIC);
end log_fd;

architecture fd2 of log_fd is
signal dd1 : STD_LOGIC;
signal dd2 : STD_LOGIC;

begin
ffr: process (CLK)
begin
if CLK'event and CLK = '1' then
dd1 <= dddin;
dd2 <= dd1;
end if;
end process;
en <= dd1 and not dd2;
end fd2;

Кстати, в одном из вариантов, скачок быстродействия получился, когда элемент И я спрятал в следующем за этим формирователем автомате(Копилятор методично показывал критичный путь именно в этом месте)

По всей видимости графические примитивы групируются на ПЛИС иначе, без учёта всего дизайна. Это скорее всего и вызывало узкое место, понижая цифры в отчёте
Minimum period: хххх ns (Maximum Frequency:ххххх MHz)

Тут важен сам подход. Мне пришлось перелопатить весь проект (около 20 мест) в таком-же ключе и с другими схемами в прототипе... ничего не меняя по архитектуре

Сообщение отредактировал Мур - Feb 3 2011, 06:55
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 14:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01521 секунд с 7
ELECTRONIX ©2004-2016