roboforum.ru

Технический форум по робототехнике.


blindman - [Как возвести 2 в степень n?]

Блоги посетителей.
Правила форума
В данном разделе каждый может иметь не более одной темы. Тема должна начинаться с логина (ника) робофорума.

Re: blindman - [ПЛИС - с чего начать?]

Сообщение Michael_K » 09 янв 2012, 01:09

пооффтоплю - раньше во времена железяк типа 16v8 не умели делать на одном кристалле и ЕЕПРОМ, и логику (достаточно плотную), и раму, и силовуху. Тогда различие между PLD и FPGA действительно было заметно. Первые были набором И-ИЛИ элементов с прожигаемыми связями (то есть на них нельзя было сделать триггер без танцев с бубнами), а вторые - основывались на встроенной памяти (и там уже были триггеры). Сейчас технологические ограничения сильно подвинулись, CPLD типа заняло промежуточную нишу, а с точки зрения пользователя совершенно по барабану, как оно там внутре устроено.

Кроме того, там по-моему, чисто маркетинговые названия всплывали частенько...
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: blindman - [ПЛИС - с чего начать?]

Сообщение Dmitry__ » 09 янв 2012, 02:15

Как это в 16v8 нет триггеров? :shock:
Там элемент построен на основе триггера, а чтоб его отключить надо использовать режим "Combinatorial Configuration for Registered Mode"

Добавлено спустя 2 минуты 26 секунд:
да и фпга плохо подходят для триггеров :) не для этого они...
в общем все переврал :)
Аватара пользователя
Dmitry__
 
Сообщения: 7958
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: blindman - [ПЛИС - с чего начать?]

Сообщение Michael_K » 09 янв 2012, 02:21

Да, уже есть, просто более древних не вспомнил :) Гуглить влом - если не лень, флаг в руки %)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: blindman - [ПЛИС - с чего начать?]

Сообщение Dmitry__ » 09 янв 2012, 02:43

PLA
1970, Texas Instruments
TMS2000 had up to 17 inputs and 18 outputs with 8 JK flip flop for memory
куда старее? :wink:

без триггеров только одно упоминание нагуглилось:
Early programmable logic
In 1969, Motorola offered the XC157, a mask-programmed gate array with 12 gates and 30 uncommitted input/output pins. :D

т.е. PLD без триггеров не было...
Аватара пользователя
Dmitry__
 
Сообщения: 7958
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: blindman - [ПЛИС - с чего начать?]

Сообщение Michael_K » 09 янв 2012, 04:41

да... ну и ладно... Но суть не меняется. :)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: blindman - [ПЛИС - с чего начать?]

Сообщение Dmitry__ » 09 янв 2012, 05:05

это ой как меняет суть :D
теперь есть смысл искать различия между PLD и FPGA :wink:
Аватара пользователя
Dmitry__
 
Сообщения: 7958
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: blindman - [ПЛИС - с чего начать?]

Сообщение Michael_K » 09 янв 2012, 13:08

Вот вы бы, вместо препирательств, по сути бы и написали - в чем же, по-вашему, кардинальное отличие между PLD и FPGA!
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: blindman - [ПЛИС - с чего начать?]

Сообщение Dmitry__ » 09 янв 2012, 15:29

может лучше устроить визг? типа:
Michael_K писал(а):Лично я считаю, что откровенно неверные построения нужно с форума удалять, хотя бы потому, что не всякий школьник способен отличить вранье от правды. Кроме того, на этом форуме запрещена публикация заведомо неверной информации.

Шутка :)

И тут так часто всех посылают гуглить, а сами не могут набрать "FPGA vs CPLD"
http://www.fpgarelated.com/usenet/fpga/show/11740-1.php
Аватара пользователя
Dmitry__
 
Сообщения: 7958
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: blindman - [ПЛИС - с чего начать?]

Сообщение Michael_K » 10 янв 2012, 00:18

Ну и внятных ответов там нет. Я продолжаю считать, что с точки зрения пользователя - один фиг. Возможно когда-то бывшее различие давно ушло в область маркетинговых лозунгов.

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

The main difference is that CPLDs are mainly focused on
Input->(fast)Logic->Register->Output
while Fpgas are typically slower for CPLD tasks, but have more
configuration possibillities and support more complex logic
structures.
A typical CPLD design would have fast but simple operations while a
fpga has complex operations based on many internal registers.


Как вы сами понимаете, границы между "сложными" и "простыми" проектами - очень-очень размыты. Можно конечно указать крайности - быстрый счетчик или дешифратор - это CPLD, а MPEG-декодер - FPGA, но между ними еще много-много других "промежуточных" приложений.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: blindman - [ПЛИС - с чего начать?]

Сообщение Dmitry__ » 10 янв 2012, 04:12

Прикалываешься??? :shock:
Аватара пользователя
Dmitry__
 
Сообщения: 7958
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: blindman - [Как возвести 2 в степень n?]

Сообщение blindman » 11 янв 2012, 04:45

http://code.google.com/p/ht1632c/source ... t1632c.cpp

попробуйте сделать оптимальнее
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: blindman - [Как возвести 2 в степень n?]

Сообщение =DeaD= » 11 янв 2012, 07:47

Массив? :)

Добавлено спустя 2 минуты 32 секунды:
Ну или если равновероятны степени, то среднее время можно "в лоб" сократить так:

word inline pow2(byte exp)
{
word result = 1;
if(exp>7){ result = 128; exp-=7; };
while(exp--)
result *= 2;

return result;
}

:)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: blindman - [Как возвести 2 в степень n?]

Сообщение Strijar » 11 янв 2012, 08:07

Я чего то не понял. А разве это просто сдвигом нельзя сделать? 2^n == 1<<n
Аватара пользователя
Strijar
 
Сообщения: 662
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: blindman - [Как возвести 2 в степень n?]

Сообщение =DeaD= » 11 янв 2012, 08:26

Если есть такая операция, а то компилятор может её превратить в примерно такой же код, только вместо result*=2 напишет внутри result = result << 1.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: blindman - [Как возвести 2 в степень n?]

Сообщение blindman » 11 янв 2012, 08:49

Причем это будут фактически 2 операции - контроллер 8-битный. И avr-gcc скомпилирует и умножение на 2, и сдвиг влево на 1 разряд как сложение числа с самим собой

Добавлено спустя 4 минуты 59 секунд:
=DeaD= писал(а):то компилятор может её превратить в примерно такой же код, только вместо result*=2 напишет внутри result = result << 1.


Фактически при замене всей pow2() на return 1 << exp; генерируется тот же самый код, что и с умножением в цикле
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Пред.След.

Вернуться в Блоги

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Mail.ru counter