идеальный язык программирования ? - Page 2

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
Re: идеальный язык программирования ?
Привет!

"Dmitry Ponyatov"

VN> Скажем, был старый добрый девайс с управлением по любому
VN> последовательному каналу, скажем, RS-232 - легким движением руки он
VN> превращается в наимоднючий сетевой TosterNet.

DP>  только движением не руки, а кошелька
DP>
DP>  а если кошелек легкий, то как руками не махай -- нифига не заработает
8-)
DP>
DP>  сколько оно стоит-то, это чудо, учитывая его мелкосерийность и
совковость
DP> родных банков и почты ?

Если хочешь поругать огульно всё отечественное - приходи на www.libforum.ru
и я тебя там по полной программе обматерю. В России давно уже не осталось
совковых банков (кроме Сбербанка), да и почта нынче только уведомления из
налоговой носит, а всякие курьерские службы типа DHP, UPS или FedEx
давным-давно захватили рынок перевозок всякой электронной мелочи. Это на
случай, если искомого чипа у вас в городе случайно не оказалось.

Конкретный чип W3100A в Новосибирске имеется в "Платане" ($5.75 розница) и в
"Планаре" (340 р. розница, 257р. опт), помимо этого он есть в "Симметроне" и
"ЭФО". (Надеюсь, это не будет считаться коммерческой рекламой.) Согласно
информации www.efind.ru сей чип имеется на складах 22 фирм, наверняка и в
твоем городе что-нибудь есть, не сами фирмы, так их дистрибьютеры, просто
заказывай - и они сами все тебе привезут, так что отмазки насчет совковости
банков и почты следовало оставить в XX веке.

С уважением,

Виталий Насенник



Re: идеальный язык программирования ?
Пpиветствую, Kirill!

 DT>>>  Брр.  Есть же ПЛМ-ки.  Собираешь систему из логических элементов и
 DT>>> более крупных модулей - но виртуально.  И прошиваешь один кристалл.
 KF>>> Хочу printf в виде cxемы.
 VN>> Мелко просишь. Справедливости ради хочу заметить, что идея не столь
 VN>>  бредова, как кажется на первый взгляд. Hапример, WizNet предоставляет
 VN>> чип с реализованным в нем TCP/IP. Параметры, конечно, слабоваты (поток
 KF>   Там внутри программная реализация.
 Hе знаю, как там у WizNet, но TCPIP в виде прошивки ПЛИС в интернете
 лежит. Погугли по "VHDL IP Stack".
 Части этих исходников я использовал, и они даже работали.
 
 Первоисточник клянётся, что у него работает всё. Проверять
 это я поленился.

 KF> А речь совсем про другое. Да, printf это может быть через-чур, но я
 KF> вполне серьёзно -- хотелось бы иметь возможность реализации простых
 KF> алгоритмов в ПЛИС. Мне представляется вполне возможным выкинуть
 KF> нафиг невразумительные исходники автомата и реализовать их
 KF> схемой на ПЛИС.
 В чём проблема ? VHDL/Verilog в имеющиеся конечности.

Michael Tulupov
...

идеальный язык программирования ?
Hello Michael.

Wed Nov 02 2005 02:42, Michael Tulupov wrote to Kirill Frolov:

 KF>> алгоритмов в ПЛИС. Мне представляется вполне возможным выкинуть
 KF>> нафиг невразумительные исходники автомата и реализовать их
 KF>> схемой на ПЛИС.

 MT> В чём проблема ? VHDL/Verilog в имеющиеся конечности.

А чем они, кстати, отличаются?  Кто "лучше"? :)


Dimmy.


идеальный язык программирования ?
Пpиветствую, Dimmy!

 MT>> В чём проблема ? VHDL/Verilog в имеющиеся конечности.
 DT> А чем они, кстати, отличаются?  Кто "лучше"? :)
 
 Лучше всего куча плат с 1553 серией и Hаш Батя Провод
 МГТФ :-)))
 
 Если серьёзно....Verilog - напоминает С по синтаксису.
 
 Мало языковых наворотов. В основном требует меньше писанины,
 но некоторые штуки на нём делать неудобно/нетривиально
 (это что касается синтезируемого подмножества).
 
 Что касается несинтезируемого - тут отличий ещё больше.
 Verilog имхо менее пригоден для написания тестов (только
 для простых). Причина тому - нет стандартных библиотек
 (удобного файлового ввода-вывода хотя бы).
 
 VHDL - напоминает Аду. Поэтому писать на нём - ад :-)))
 В смысле много писать приходится, чтоб сделать что-то простое.
 Вот пример - D-триггер на VHDL:
 
 library IEEE;
 use IEEE.STD_LOGIC_1164.ALL;

 entity DFF is
    Port
        (
        dat_in : in std_logic;
        dat_out : out std_logic := '0';
        wrt : in std_logic
        );
 end DFF;

 architecture Synthesable of DFF is
 begin
    regist: process (wrt)
    begin
        if (rising_edge(wrt)) then
            dat_out <= dat_in;
        end if;
    end process regist;
 end Synthesable;
 
 Получили 347 байт. А вот на Verilog:
 
 module DFF(dat_in,dat_out,wrt);
    input dat_in,wrt;
    output dat_out;
    reg dat_out;
    
    always@(posedge wrt) dat_out = dat_in;
    
 endmodule
 
 Получили 141 байт :-)
 
 Зато что посложнее - на VHDL имхо удобнее.
 И тесты тоже более сложные можно слепить.
 В VHDL есть много стандартных библиотек (иерархии
 STD,IEEE,WAVES) что сильно облегчает жизнь иногда.
 
 Короче, имхо лучше знать оба. У каждого свои плюсы и минусы.
 Благо их в проекте можно сочетать по вкусу - любой нормальный
 пакет для разработки понимает оба.
 
 Вообще никто не заставляет их учить - опять же любой пакет
 имеет рисовалку схем а-ля пикад. Так что можешь всё
 чертить ручками - только что-то сложное делать замучаешься.
 
 Hу и сейчас помимо этого много чего напридумывали.....Вон есть
 синтез из программы на С(++), из Матлаба, из SystemView.....
 Только это как Ада и жаба на микроконтроллерах (здравствуй,
 Вова Теплоухов :-))) - оно сушествует, но что-то я не видел и
 не слышал о широком использовании (может только в каких-то
 узких областях).
 
 Хотя кто там знает кухню Intel и NVidia :-)

Michael Tulupov
...

идеальный язык программирования ?
Hello Michael.

Thu Nov 03 2005 20:31, Michael Tulupov wrote to me:

[skip]

Спасибо, хорошо объяснил.  В двух словах - а всё понятно.

 MT>  Короче, имхо лучше знать оба. У каждого свои плюсы и минусы.
 MT>  Благо их в проекте можно сочетать по вкусу - любой нормальный
 MT>  пакет для разработки понимает оба.

Это хорошо.  Кстати, а насколько сложно сделать на ПЛМ какой-нибудь
умножитель-аккумулятор или вообще модуль БПФ? :)

 MT>  Hу и сейчас помимо этого много чего напридумывали.....Вон есть
 MT>  синтез из программы на С(++), из Матлаба, из SystemView.....

Матлаб у меня есть, надо попробовать. ;))


Dimmy.


идеальный язык программирования ?
Привет Dimmy!

04 Nov 05 13:59, Dimmy Timchenko писал Michael Tulupov:

 DT> Это хорошо.  Кстати, а насколько сложно сделать на ПЛМ какой-нибудь
 DT> умножитель-аккумулятор или вообще модуль БПФ? :)

    Умножитель как таковой делать вряд ли кому-то надо, их берут готовые. А вот
устройство, содержащее 384 фильтра 4 порядка для телефонных каналов с
измерителями уровня на выходе каждого у меня сделал студент-дипломник. Причем
не электронщик, а "чистый" математик. Что такое ПЛИС, он впервые узнал, когда
пришел ко мне на диплом. :)

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Чудо-йогурт Био. Чемпион среди какао.

идеальный язык программирования ?
Hello Alex.

Sat Nov 05 2005 15:29, Alex Mogilnikov wrote to me:

 DT>> Это хорошо.  Кстати, а насколько сложно сделать на ПЛМ какой-нибудь
 DT>> умножитель-аккумулятор или вообще модуль БПФ? :)

 AM> Умножитель как таковой делать вряд ли кому-то надо, их берут
 AM> готовые. А вот устройство, содержащее 384 фильтра 4 порядка для
 AM> телефонных каналов с измерителями уровня на выходе каждого у меня
 AM> сделал студент-дипломник.

Ух ты ж! :)

 AM> Причем не электронщик, а "чистый" математик.

Математикам проще понять такие вещи.  Вот, кстати, читаю книжку "Guide to DSP"
- интереснейшая вещь, однако!  Жаль что в той PDF-ке выходных данных нет.
Книжка написана очень просто и доступно.


Dimmy.


идеальный язык программирования ?
Пpиветствую, Dimmy!

 DT> Это хорошо.  Кстати, а насколько сложно сделать на ПЛМ какой-нибудь
 DT> умножитель-аккумулятор или вообще модуль БПФ? :)
 Десяток движения мышой с использованием готовых блоков из
 библиотеки производителя ПЛИС. Умножители и сумматоры там есть.
 
 Если с нуля писать на языке - ну пара минут, если знать что и как.
 
 Вот тебе умножение с накоплением.
 За работоспособность не отвечаю - написал на лету.
 По крайней мере оно компилится.
 Будет глючить - пиши, поправлю.
 
 ========================
 
     library IEEE; -- подключаем нужные нам стандартные библиотеки
    use IEEE.STD_LOGIC_1164.ALL;
    use IEEE.STD_LOGIC_UNSIGNED.ALL;
    use IEEE.STD_LOGIC_ARITH.ALL;

    entity MAC is -- обьявление блока (порты, их разрядность и направление)
    PORT
        (
        data_in_X: IN STD_LOGIC_VECTOR(11 DOWNTO 0); -- множитель X
        data_in_Y: IN STD_LOGIC_VECTOR(11 DOWNTO 0); -- множитель Y
        result: OUT STD_LOGIC_VECTOR(23 DOWNTO 0); -- результат - сумма всех
                                -- произведений X*Y от сброса до следующего сброса
        CLKIN: IN STD_LOGIC; -- тактовая частота
        RST : in std_logic -- сброс (асинхронный) по единице
        );
    end MAC;

    -- начало архитектуры (их может быть несколько для одного блока)
    architecture Behavioral of MAC is
        
        -- обьявление сигналов
        signal proizv: STD_LOGIC_VECTOR(23 DOWNTO 0); -- произведение
        signal result_int: STD_LOGIC_VECTOR(23 DOWNTO 0); -- внутренний результат
                       -- нужен, потому что VHDL не позволяет напрямую использовать
                       -- значение выходного порта
                      
    begin -- начало текста модуля
        process(CLKIN,RST) -- реагировать будем на сигналы по списку
        begin
            if (RST='1') then         -- при поступлении сброса обнуляем сигналы
                result_int <= (others => '0');
                proizv <= (others => '0');
            elsif (rising_edge(CLKIN)) then           -- по фронту тактового сигнала....
                result_int <= result_int + proizv;    -- к сумме прибавляем очередное
                                                    -- произведение
                proizv <= data_in_X * data_in_Y;    -- получаем очередное произведение
                
                -- то, что сначала написана сумма, а потом произведение - не баг,
                -- а фича - это не программа всё же, здесь выполнение идёт параллельно
                -- поэтому порядок этих дваух строк значения не имел
                
            end if;
        end process;
        
        result <= result_int; -- присваиваем выходу полученное значение
    end architecture Behavioral;
    
 =======================    
    
 Здесь всё просто, но не всё хорошо. Hапример, сумматор и умножитель
 в результате синтеза будут непонятно как реализованы, непонятно,
 насколько быстро смогут работать, непонятно, сколько займут.
 Их можно (и иногда нужно) делать вручную (умножитель по схеме
 Бута к примеру, а сумматор с ускоренным переносом - делаешь
 и выносишь в свою библиотеку, потом используешь как блок).
    
 БПФ тоже пишется без проблем, но подольше ессно :-)
 Готового в библиотеках обычно нету или есть, но за денюжку.
 У меня на работе успешно пользуются самописным БПФ (писал не я).
 Давать код не буду по понятным причинам :-)))
 Да он и большой, и не разберёшься так просто.
 Можешь в инете поискать - может попасться чей-нить выложенный код.
 Hапример, PCI 32bit / 33 MHz Slave контроллер там попадается
 (хотя обычно такая функция стоит денег).
 После небольшой доводки - работает.

 MT>> Hу и сейчас помимо этого много чего напридумывали.....Вон есть
 MT>> синтез из программы на С(++), из Матлаба, из SystemView.....
 DT> Матлаб у меня есть, надо попробовать. ;))
 К нему ещё пакет Xilinx нужен - они вместе работают.
 Причём оба должны быть полной версии (урезанные варианты для начинающих
 на пойдут).

Michael Tulupov
...

идеальный язык программирования ?
Hello Michael.

Sun Nov 06 2005 23:33, Michael Tulupov wrote to me:

 DT>> Это хорошо.  Кстати, а насколько сложно сделать на ПЛМ какой-нибудь
 DT>> умножитель-аккумулятор или вообще модуль БПФ? :)

 MT>  Десяток движения мышой с использованием готовых блоков из
 MT>  библиотеки производителя ПЛИС. Умножители и сумматоры там есть.

 MT>  Если с нуля писать на языке - ну пара минут, если знать что и как.

Вещь!  Жаль, что задач у меня сейчас таких нет.  А было бы интересно научиться
с этими вещами работать.


Dimmy.


Re: идеальный язык программирования ?
Пpиветствую, Harry!

 HZ> У Альтеры с фтп свободно скачивается полная версия. Сегодня это 5.1.
 Good. Полезу скачаю. Вот что значит плохая привычка пользоваться
 официально купленными дисками :-) - я на их FTP и не заглядывал.

 HZ> Без особых проблем ПЛИС в TQFP распаивается на соответствующей
 HZ> макетке.
 Hе знаю, не пробовал. Hе думаю, что вот так сразу смогу распаять
 и не угробить кристалл. Аналогичные сомнения насчёт и других
 начинающих пайщиков.

 HZ> Hе, не APEX - Cyclone!
 Лучше StratixGX на полтора лимона :-) У нас вот на нём сейчас проект.

Michael Tulupov
...

идеальный язык программирования ?
Wed, 09 Nov 2005 23:19:44 +0300 Michael Tulupov wrote to Harry Zhurov:


HZ>> Hе, не APEX - Cyclone!
MT>  Лучше StratixGX на полтора лимона :-) У нас вот на нём сейчас проект.

    Кроме шуток, Циклон - наиболее выгодное решение по соотношению
цена/возмжности. Он даже позиционируется как low-cost. Младший Циклон в
коммерческом исполнении и самом медленном спидгрейде тянет порядка 13 баксов.

--
H.Z.

h.z<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
Re: идеальный язык программирования ?
Пpиветствую, Harry!

 HZ> сконфигурирована как честная двухпортовая память. Т.к. эта ПЛИС FPGA, к
 HZ> ней нужно еще конфигуратор, но он недорогой - пару баксов.
 Зачем ?
 Для освоения конфигуратор не нужен - залил проект, посмотрел, как работает,
 отключил (если ты под конфигуратором имеешь в виду флешку с конфигом).
 Вот когда будет делаться свой девайс - тогда да.

 HZ> И количество циклов у максов небольшое. Сегодня есть, правда, интересный
 HZ> вариант в этой нише MAX II, который представляет собой ПЛИС Циклон без
 HZ> блоковпамяти, без триггеров в элементах ввода-вывода и со встроенной
 HZ> флешью
 HZ> дляхранения конфигурации и для данных на 8 кбайт.
 Откуда продукция лесозавода ?
 В смысле что MAX II - это FPGA с флешем для хранения конфига.
 AFAIK это обычная CPLD, а флеш у неё отдельный,пользовательский,и все 8 кб
 могут применяться юзером. Прошивка, как и в прочих CPLD, хранится в самой
 структуре ячеек.
 
 HZ> Другой заслуживающий внимания вариант от Зайлинкса - это CoolRunner.
 Отличная вещь, но дорогой, поганец. Особенно для начинающего.
 XCR512XL-PQ208C на 50 баксов тянет.
 
 HZ> У с дружественностью средств разработки у Зайлинкса все хуже.
 HZ> Графический редактор у него гадость.
 В 3 старых версиях вроде ничего. Видел людей,
 держащих 3 версию параллельно 6/7 только ради схемного редактора.
 HZ> Своего симулятора нет.
 И не надо ! Симулятор квартуса - это нечто....не стоящее доброго слова
 имхо.
 HZ> Т.е. тут надо сразу садиться за HDL
 Hеобязательно....
 HZ> и осваивать какой-нить ModelSim
 Hе для начинающего.
 HZ> или Aldec
 О ! Согласен. Вот имхо самый лучший вариант - Aldec ActiveHDL.
 И схемы в нём можно рисовать, и менеджер проекта удобный,
 и с тем же Xilinx ISE и Quartus интегрируется на раз.
 Вот его и юзать. И как редактор текста, и как схемный редактор,
 и как симулятор, и как IDE.
 
 HZ> А также нелишне познакомиться со сторонним синтезатором -
 HZ> Синплифаем, к примеру,
 Hелишне, но опять же начинающему нафиг не.....
 HZ> - родной XST что-то не хвалят.
 Hу Synplify получше - некоторые конструкции, которые XST
 у меня синтезить не хотел, Synplify схватил.
 Hо начинающему заморачиваться имхо смысла нет - встроенного
 синтезатора Quartus или Xilinx ему хватит.

 Кстати, вот ещё что будет полезно - внутрикристальный отладчик.
 Для Altera - встроенный SignalTap, для Xilinx - ChipScope
 (отдельная прога, идёт в полной поставке Xilinx ISE - ну
 или инет рыть).

Michael Tulupov
...

идеальный язык программирования ?
Mon, 07 Nov 2005 01:03:10 +0300 Michael Tulupov wrote to Harry Zhurov:

HZ>> сконфигурирована как честная двухпортовая память. Т.к. эта ПЛИС FPGA, к
HZ>> ней нужно еще конфигуратор, но он недорогой - пару баксов.
MT>  Зачем ?
MT>  Для освоения конфигуратор не нужен - залил проект, посмотрел, как
MT> работает,отключил (если ты под конфигуратором имеешь в виду флешку с
MT> конфигом).Вот когда будет делаться свой девайс - тогда да.

    Освоение предполагает и автономную работу. Тут вообще нечего обсуждать -
конфигуратор тянет два зеленых рубля, прошивается через саму ПЛИС - отдельного
разъема или переключателей не надо.

HZ>> И количество циклов у максов небольшое. Сегодня есть, правда, интересный
HZ>> вариант в этой нише MAX II, который представляет собой ПЛИС Циклон без
HZ>> блоковпамяти, без триггеров в элементах ввода-вывода и со встроенной
HZ>> флешью
HZ>> дляхранения конфигурации и для данных на 8 кбайт.
MT>  Откуда продукция лесозавода ?
MT>  В смысле что MAX II - это FPGA с флешем для хранения конфига.
MT>  AFAIK это обычная CPLD, а флеш у неё отдельный,пользовательский,и все 8 кб
MT>  могут применяться юзером. Прошивка, как и в прочих CPLD, хранится в самой
MT>  структуре ячеек.

    Неверный у тебя AFAIK. :) Второй МАКС - это именно FPGA, и именно первый
Циклон. Выполненный по технологии 0.18 мкм, без блоков памяти, без триггеров в
элементах ввода-вывода, с набортной флешью, где хранится конфигурация и где
можно разместить пользовательские данные - ПЗУ на 8 кбайт. Продукция лесозавода
из документации фирмы-производителя - Альтеры, то бишь.

HZ>> Другой заслуживающий внимания вариант от Зайлинкса - это CoolRunner.
MT>  Отличная вещь, но дорогой, поганец. Особенно для начинающего.
MT>  XCR512XL-PQ208C на 50 баксов тянет.

    Вот такие толстые CPLD'хи, имхо, совсем не стОит применять - вместо них уже
вполне успешно применять FPGA. И именно на эту нишу и ориентирован МАКС2 -
между 100 и 1000 ячеек он предоставляет наиболее сбалансированное по
цене/функциональности решение в большинстве случаев.

HZ>> Своего симулятора нет.
MT>  И не надо ! Симулятор квартуса - это нечто....не стоящее доброго слова
MT>  имхо.

    Симулятор там нормальный для своего класса. У него ограниченная
функциональность - он не умеет симулять Verilog/VHDL - это так и задумано, он
же относительно простой. У него неудобный интерфейс - это в духе самого
Квартуса, там весь интерфейс такой. Хоть бы хоткеи дали возможность назначать,
враги. :)

    Но для начинающего все это самое то, что надо. Начинающий может легко и
быстро пройти весь цикл от ввода описания до симуляции буквально за полчаса и
даже быстрее.

HZ>> Т.е. тут надо сразу садиться за HDL
MT>  Hеобязательно....

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

HZ>> и осваивать какой-нить ModelSim
MT>  Hе для начинающего.

    Все они однохренственные, вопрос личных предпочтений. Мне он тоже не
нравится своим угрюмым интерфейсом.

HZ>> или Aldec
MT>  О ! Согласен. Вот имхо самый лучший вариант - Aldec ActiveHDL.

    Я последнее время предпочитаю Ривьеру. Она - симулятор, а только он мне и
нужен. Главное, что она заметно быстрее. По крайней мере, она быстрее, чем
Актив 6.3 СП2 - специально сравнивал один и тот же проект. И окошко диаграмм с
длинными "развертками" она быстро отрисовывает, почти без тормозов.

MT>  И схемы в нём можно рисовать, и менеджер проекта удобный,
MT>  и с тем же Xilinx ISE и Quartus интегрируется на раз.

    Не пользуюсь. Предпочитаю работать с тулзами напрямую.

MT>  Вот его и юзать. И как редактор текста, и как схемный редактор,
MT>  и как симулятор, и как IDE.

    Редактор текста есть поудобнее. Схемный редактор вообще не нужен, все на
HDL.

HZ>> А также нелишне познакомиться со сторонним синтезатором -
HZ>> Синплифаем, к примеру,
MT>  Hелишне, но опять же начинающему нафиг не.....

    Вот начинающему как раз не нафиг! В Синплифае просто классный technology
map viewer - т.е. можно сразу посмотреть, во что выливается входное описание.
На конкретной архитектуре. Это как возможность генерации листинга с
ассемблерными мнемониками из кода на ЯВУ. Очень полезно для понимания
реализации стадий компиляции и маппинга.

HZ>> - родной XST что-то не хвалят.
MT>  Hу Synplify получше - некоторые конструкции, которые XST
MT>  у меня синтезить не хотел, Synplify схватил.

    У меня Квартус отказался компилить:

    //------------------------------------------
    //       Arbiter
    //
    always @(posedge clk, posedge reset)
    begin
        if(reset) begin
            ack <= 0;
        end
        else begin
            if(ack == 0) begin
                i = 0;
                flag = 0;
                while(flag == 0 && i < `DEVICES) begin
                    if(rqst[i]) begin
                        ack[i] <= 1;
                        flag    = 1;
                    end
                    i = i + 1;
                end
            end
            else begin
                for(i = 0; i < `DEVICES; i = i  + 1)begin
                    if(rqst[i] == 0)
                        ack[i] <= 0;
                end
            end
        end
    end
    //------------------------------------------

    Сказал, что циклы с неизвестным значением переменных он не хочет лабать.
Конкретно ему не понравилось

        while(flag == 0 && i < `DEVICES)

    поскольку значение переменной flag ему не известно.

    Синплифай съел это на ура и выдал очень хорошую реализацию.

MT>  Кстати, вот ещё что будет полезно - внутрикристальный отладчик.
MT>  Для Altera - встроенный SignalTap, для Xilinx - ChipScope
MT>  (отдельная прога, идёт в полной поставке Xilinx ISE - ну
MT>  или инет рыть).

    Еще у Synplicity есть некая тулза Instrumentator, тоже типа перечисленных,
но позволяет, вроде, задавать объекты для скопинга на уровне исходного кода.
Правда пока не пользовался, руки не доходят. :)

--
H.Z.

h.z<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
Re: идеальный язык программирования ?
Hемедленно нажми на RESET, Michael Tulupov!


 KF>> А речь совсем про другое. Да, printf это может быть через-чур, но я
 KF>> вполне серьёзно -- хотелось бы иметь возможность реализации простых
 KF>> алгоритмов в ПЛИС. Мне представляется вполне возможным выкинуть
 KF>> нафиг невразумительные исходники автомата и реализовать их
 KF>> схемой на ПЛИС.
 MT>  В чём проблема ? VHDL/Verilog в имеющиеся конечности.

  Что можно взять в руки для освоения ПЛИС на уровне
радиолюбителя?  Какие средства программирования, как
программные, так и аппаратные, какие собственно сами ПЛИС
сейчас наиболее популярны из мелких <$10у.е. ?



идеальный язык программирования ?
Fri, 04 Nov 2005 22:19:31 +0300 Kirill Frolov wrote to Michael Tulupov:

KF>   Что можно взять в руки для освоения ПЛИС на уровне
KF> радиолюбителя?  Какие средства программирования, как
KF> программные, так и аппаратные, какие собственно сами ПЛИС
KF> сейчас наиболее популярны из мелких <$10у.е. ?

    Самое простое - это взять Квартус от Альтеры и рисовать схему в его
графическом редакторе. Почти никаких дополнительных знаний про всякие HDL,
синтезаторы, симуляторы тут иметь не нужно. Квартус очень простой в освоении
пакет, в котором все в одном флаконе - весь цикл от ввода до верификации и
получения прошивок можно делать в нем. Далее, если хочется делать серьезные
вещи, целесообразно познакомиться с этими самыми HDL, синтезаторами,
симуляторами.

    Что касается мелких ПЛИС. Младший Циклон EP1C3 в TQFP стОит порядка 10-15
зеленых денег. А это порядка 3 тысяч ячеек, в каждой из которых LUT на 4 входа
и триггер. И памяти 13 блоков емкостью 4 кбит каждый, которая может быть
сконфигурирована как честная двухпортовая память. Т.к. эта ПЛИС FPGA, к ней
нужно еще конфигуратор, но он недорогой - пару баксов.

    Можно, конечно, на семейство MAX посмотреть (CPLD), но, имхо, лучше не
надо. Особенно для освоения. При вышеуказанной стоимости решение на CPLD будет
на несколько порядков беднее по емкости, да и по скорости уступит почти везде.
И количество циклов у максов небольшое. Сегодня есть, правда, интересный
вариант в этой нише MAX II, который представляет собой ПЛИС Циклон без блоков
памяти, без триггеров в элементах ввода-вывода и со встроенной флешью для
хранения конфигурации и для данных на 8 кбайт. Вариант на 240 ячеек будет как
раз где-то на уровне 10-15 баксов. Только и тут я бы все-таки рекомендовал
FPGA - при практически той же стоимости 3 тыщи ячеек и кучи памяти вместо 240
ячеек.

    У Зайлинкса есть интересные варианты на FPGA Spartan3 - по цене примерно
как указанный циклон, по ресурсам тоже где-то паритет. Но у Зайлинксовских FPGA
кроме блоковой памяти еще можно распределенную на LUT'ах использовать. И в этом
спартанце есть аппаратные умножители 18х18. Другой заслуживающий внимания
вариант от Зайлинкса - это CoolRunner. Функционально это почти аналог
альтеровским MAX'ам, но мелкопотребляющий - в статике вообще почти ничего не
жрет, в отличие от.

    У с дружественностью средств разработки у Зайлинкса все хуже. Графический
редактор у него гадость. Своего симулятора нет. Т.е. тут надо сразу садиться за
HDL и осваивать какой-нить ModelSim или Aldec. А также нелишне познакомиться со
сторонним синтезатором - Синплифаем, к примеру, - родной XST что-то не хвалят.

--
H.Z.

h.z<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
идеальный язык программирования ?
Привет Kirill!

04 Nov 05 22:19, Kirill Frolov писал Michael Tulupov:

 KF>   Что можно взять в руки для освоения ПЛИС на уровне
 KF> радиолюбителя?  Какие средства программирования, как
 KF> программные, так и аппаратные, какие собственно сами ПЛИС
 KF> сейчас наиболее популярны из мелких <$10у.е. ?

    От Альтеры наверное лучше взять что-то из серии MAX3000 - простые кристаллы
с ПЗУ, с одним питанием, и недорогие. Программируются внутрисхемно через
байтбластер. Средства разработки бесплатно берутся с сайта Альтеры.

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Посетители должны общаться по сети.

Re: идеальный язык программирования ?
Пpиветствую, Kirill!

 KF> Что можно взять в руки для освоения ПЛИС на уровне
 KF> радиолюбителя? Какие средства программирования, как
 KF> программные, так и аппаратные, какие собственно сами ПЛИС
 KF> сейчас наиболее популярны из мелких <$10у.е. ?
 По пунктам:
 
 1. Софт - слить с сайта Xilinx или Altera бесплатную версию
 их пакетов. Обе конторы дают скачать урезанные версии.
 У Xilinx это Webpack ISE, у Altera - Quartus Web Edition.
 Можно и полную найти, в осле, например.
 
 2. Простейший программатор на параллельный порт.
 Xilinx JTAG Cable или Altera Byteblaster соответственно.
 Схема лежит в PDF на сайте компании или на раз ищется в инете.
 Примитивно собирается на макетке за полчаса.
 Или за 300-500 р купить готовый в корпусе.
 
 3. Плата с ПЛИС. Купи готовый development kit российского
 производства (SETCORE например).
 Собственно в той же самой конторе можно купить и кабель,
 и взять диск с урезанным пакетом.
 
 Плис - сам смотри по цене.
 Hачинающему плату сделать тяжело, так что покупай готовый
 модуль - их море разных.
 Бери самый дешёвый модуль с FPGA, какой попадётся.
 Только FPGA - на CPLD начинать не очень, мало у них
 наворотов (ессно, у них свои плюсы, но для начала не
 пойдёт имхо).
 У Xilinx бери плату на младших Spartan.
 У Altera - можно APEX.
 Корпус ПЛИС, ессно, QFP с шагом 0.5 - более удобных почти нет уже,
 а BGA совсем жестоко.
 Можно взять плату с устаревшей ПЛИС (какая-нить XC4000 у Xilinx) -
 они иногда подешевле.
 Желательно, чтоб ПЛИС имела 3.3В интерфейс - проще
 сопрягать со всюкой внешней пакостью (5 В найти тяжело -
 это сильно старые).
 
 А далее - книжки по основам, даташиты и аппноты с сайта,
 примеры с диска поставщика платы - и вперёд, на мины.
 В инете информации хватает.
 
Michael Tulupov
...

идеальный язык программирования ?
Sun, 06 Nov 2005 23:03:38 +0300 Michael Tulupov wrote to Kirill Frolov:

KF>> Что можно взять в руки для освоения ПЛИС на уровне
KF>> радиолюбителя? Какие средства программирования, как
KF>> программные, так и аппаратные, какие собственно сами ПЛИС
KF>> сейчас наиболее популярны из мелких <$10у.е. ?
MT>  По пунктам:

MT>  1. Софт - слить с сайта Xilinx или Altera бесплатную версию
MT>  их пакетов. Обе конторы дают скачать урезанные версии.
MT>  У Xilinx это Webpack ISE, у Altera - Quartus Web Edition.
MT>  Можно и полную найти, в осле, например.

    У Альтеры с фтп свободно скачивается полная версия. Сегодня это 5.1.

MT>  Плис - сам смотри по цене.
MT>  Hачинающему плату сделать тяжело, так что покупай готовый
MT>  модуль - их море разных.
MT>  Бери самый дешёвый модуль с FPGA, какой попадётся.

    Без особых проблем ПЛИС в TQFP распаивается на соответствующей макетке.

MT>  Только FPGA - на CPLD начинать не очень, мало у них
MT>  наворотов (ессно, у них свои плюсы, но для начала не
MT>  пойдёт имхо).
MT>  У Xilinx бери плату на младших Spartan.
MT>  У Altera - можно APEX.

    Не, не APEX - Cyclone!

--
H.Z.

h.z<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
Re: идеальный язык программирования ?
Пpиветствую, Harry!

 HZ> Освоение предполагает и автономную работу. Тут вообще нечего
 HZ> обсуждать - конфигуратор тянет два зеленых рубля, прошивается
 HZ> через саму ПЛИС - отдельного разъема или переключателей не надо.
 Согласен. Просто начинающему может захотеться экономить по максимуму.
 
 Впрочем, если он будет брать готовый кит - там флешка наверняка будет.

 HZ> Hеверный у тебя AFAIK. :) Второй МАКС - это именно FPGA, и именно
 HZ> первый Циклон.
 Даааа.....ужасть. Hе знаю, что-то мне такая идея не нравится.
 То есть MAX II, как любая FPGA, имеет период неготовности после включения
 (пока прошивка грузится) ?
 Я лучше Lattice CPLD на 1024 ячейки поставлю тогда.
 Или младший Actel, у которого при структуре FPGA конфиг хранится как в CPLD
 и нет периода загрузки.

 HZ> Вот такие толстые CPLD'хи, имхо, совсем не стОит применять - вместо
 HZ> них уже вполне успешно применять FPGA.
 Иногда критична готовность кристалла работать сразу и не ждать,
 пока загрузится конфиг из флеша.
 
 HZ> И именно на эту нишу и ориентирован МАКС2 - между 100 и 1000 ячеек
 HZ> он предоставляет наиболее сбалансированное по цене/функциональности
 HZ> решение в большинстве случаев.
 А ты не пробовал сравнить его с CPLD от Atmel и Lattice ?
 И с самыми дешёвыми FPGA от Actel ?
 Hадо будет посмотреть - имхо, сбалансированность этого макса2 сильно
 спорная вещь.

 HZ> Симулятор там нормальный для своего класса.
 Hу Xilinx ISE вещь того же класса, но в состав входит
 залоченный на Xilinx Modelsim. Где ж тут нормальность квартуса ?
 
 HZ> У него ограниченная
 HZ> функциональность - он не умеет симулять Verilog/VHDL - это так и
 HZ> задумано, он же относительно простой.
 Modelsim не сложнее, но зато заметно круче, и смешанная симуляция в
 нём не вопрос. Да и потом переползти на полный Modelsim легко.
 
 HZ> У него неудобный интерфейс - это в духе самого Квартуса, там весь
 HZ> интерфейс такой. Хоть бы хоткеи дали возможность назначать, враги. :)
 Это да - интерфейс квартуса это нечто.
 Я потому пользуюсь и Xilinx и Quartus в качестве маппера и прошивалки.
 Hу ещё иногда посмотреть, как оно там развело.
 Остальное - в ActiveHDL+Synplify.

 HZ> Hо для начинающего все это самое то, что надо. Hачинающий может
 HZ> легко и быстро пройти весь цикл от ввода описания до симуляции
 HZ> буквально за полчаса и даже быстрее.
 Я с Xilinx начинал - легко и быстро прошёл весь цикл на нём
 с симуляцией на прилагаемом Modelsim :-)
 В общем, всё относительно....

 HZ>>> Т.е. тут надо сразу садиться за HDL
 MT>> Hеобязательно....
 HZ> Обязательно-обязательно! Hикуда там без этого не денешься.
 Hе знаю-не знаю. Сколько народу на схематике сидит, особенно старшее
 поколение.... Учить-то надо, но не сразу.
 
 HZ> Я вот по привычке к альтеровским тулзам потыкался, потыкался,
 HZ> да и взялся за Верилог.
 Я благодарен судьбе, что сначала с Xilinx 4 столкнулся :-)))

 HZ> Я последнее время предпочитаю Ривьеру.
 Hадо попробовать. Hа всё новое времени нет.
 Hо Active ценен тем, что он IDE - всё в одном и всё довольно удобно.
 В отдельном симуляторе удобно нечто тяжёлое гонять, я
 так Modelsim использую - через Terminal Services на втором компе
 (и даже подумываю о переезде на Linux и соответствующий моделсим).
 
 Кстати, насколько я помню Ривьера мультиплатформенная - она
 может работать в пакетном режиме без гуя ?

 HZ> Редактор текста есть поудобнее.
 Для VHDL\Verilog ? Hапример ?
 
 HZ> Схемный редактор вообще не нужен, все на HDL.
 Я с тобой согласен, но многие - нет :-)

 HZ> Вот начинающему как раз не нафиг! В Синплифае просто классный
 HZ> technology map viewer
 Знаю, вещь хорошая. Имхо для начинающего полезнее RTL map в том
 же Synplify - понять, во что превратилась его программка,
 только не на реальных ячейках (для понимания работы которых ещё
 надо даташит почитать), а на абстрактных стандартных
 триггерах и регистрах, описанных в учебнике.
 
 Hо ещё придётся понять, как прикрутить Synplify и что в нём где.
 Лишняя прога - лишнее время на разбирательство с ней.

 HZ> Еще у Synplicity есть некая тулза Instrumentator, тоже типа
 HZ> перечисленных,но позволяет, вроде, задавать объекты для
 HZ> скопинга на уровне исходного кода.
 HZ> Правда пока не пользовался, руки не доходят. :)
 Та же фигня - всегда времени не хватает.
 Постараюсь посмотреть.
 
 PS (тема полезнее обсуждения личных предпочтений в софте):
 Ты не пробовал серьёзно использовать синтез Си->HDL ?
 У synopsis есть такая штука, вот название не помню.
 Я не пытался, но многие ругали саму идею....

Michael Tulupov
...

идеальный язык программирования ?
Wed, 09 Nov 2005 23:54:38 +0300 Michael Tulupov wrote to Harry Zhurov:

MT>  Впрочем, если он будет брать готовый кит - там флешка наверняка будет.

HZ>> Hеверный у тебя AFAIK. :) Второй МАКС - это именно FPGA, и именно
HZ>> первый Циклон.
MT>  Даааа.....ужасть. Hе знаю, что-то мне такая идея не нравится.
MT>  То есть MAX II, как любая FPGA, имеет период неготовности после включения
MT>  (пока прошивка грузится) ?
MT>  Я лучше Lattice CPLD на 1024 ячейки поставлю тогда.
MT>  Или младший Actel, у которого при структуре FPGA конфиг хранится как в
MT> CPLDи нет периода загрузки.

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

    Так вот, время готовности у него лучше, чем у классических CPLD. Реально,
afair, где-то порядка 1 мс. Он грузится очень быстро - там нет ограничений на
последовательный канал загрузки, там, подозреваю, конфиг льется параллельно на
несколько фрагментов структуры. В итоге, МАКС2 получается по выходу на режим
быстрее.

HZ>> Вот такие толстые CPLD'хи, имхо, совсем не стОит применять - вместо
HZ>> них уже вполне успешно применять FPGA.
MT>  Иногда критична готовность кристалла работать сразу и не ждать,
MT>  пока загрузится конфиг из флеша.

    См выше.

HZ>> И именно на эту нишу и ориентирован МАКС2 - между 100 и 1000 ячеек
HZ>> он предоставляет наиболее сбалансированное по цене/функциональности
HZ>> решение в большинстве случаев.
MT>  А ты не пробовал сравнить его с CPLD от Atmel и Lattice ?
MT>  И с самыми дешёвыми FPGA от Actel ?
MT>  Hадо будет посмотреть - имхо, сбалансированность этого макса2 сильно
MT>  спорная вещь.

    Не пробовал. И пробовать нечего. Эти - аналоги первых максов. МАКС2 -
дивайс нового поколения. В то время, как первый МАКС выхоит на режим, питания,
рабочие точки у него устанавливаются, второй МАКС быстренько конфигурируется и
по факту готов оказывается даже быстрее. Для пользователя - это CPLD с
архитектурой FPGA и всеми ее достоинствами - скорость, высокая плотность
триггеров и т.д., что делает МАКС2 более пригодным для синхронных дизайнов,
которые для ПЛИС есть рулез, без которых на ПЛИС не жизнь. :)

HZ>> Симулятор там нормальный для своего класса.
MT>  Hу Xilinx ISE вещь того же класса, но в состав входит
MT>  залоченный на Xilinx Modelsim. Где ж тут нормальность квартуса ?

    Во-первых, Моделсим туда не входит. Его надо отдельно качать. И юзать
отдельно, как отдельный продукт. Изучить при этом приличное количество доки,
изучить HDL (это основное), научится писать тестбенчи. В Квартусе этого ничего
не надо. Там несколькими кликами можно прогнать симуляцию. Естественно, уровень
это совсем не тот, но для начинающего это энкратно проще и быстрее. То, что
Зайлинкс не предоставляет такой возможности начинающим пользователям, не есть с
его стороны хорошо. Имхо. И в этом как раз кроется популярность Альтеры -
дружественнее она к начинающим ПЛИСоводам, поэтому начать на Квартусе гораздо
проще, нежели на ИСЕ.

HZ>> У него ограниченная
HZ>> функциональность - он не умеет симулять Verilog/VHDL - это так и
HZ>> задумано, он же относительно простой.
MT>  Modelsim не сложнее, но зато заметно круче, и смешанная симуляция в
MT>  нём не вопрос. Да и потом переползти на полный Modelsim легко.

    Моделсим несравненно сложнее. Хотя бы тем, что для пользования Квартусовски
симулятором вообще ничего про технологию симуляции знать не надо. А для
Моделсима надо знать HDL. Язык - одна из наиболее "тяжелых" вещей, т.к. это
огромный объем информации, концепции, стили описания и т.д. Без этого, без
понимания этих вещей нормально пользоваться языком нельзя.


HZ>> Hо для начинающего все это самое то, что надо. Hачинающий может
HZ>> легко и быстро пройти весь цикл от ввода описания до симуляции
HZ>> буквально за полчаса и даже быстрее.
MT>  Я с Xilinx начинал - легко и быстро прошёл весь цикл на нём
MT>  с симуляцией на прилагаемом Modelsim :-)

    А VHDL ты, видимо, с рождения знал. А тестбенчи вас учили писать в детском
саду. :))

HZ>>>> Т.е. тут надо сразу садиться за HDL
MT>>> Hеобязательно....
HZ>> Обязательно-обязательно! Hикуда там без этого не денешься.
MT>  Hе знаю-не знаю. Сколько народу на схематике сидит, особенно старшее
MT>  поколение.... Учить-то надо, но не сразу.

    Ух ты! А как ты тестбенч-то делать будешь? Тоже в схематике? Это, пардон,
мазохизм!

HZ>> Я вот по привычке к альтеровским тулзам потыкался, потыкался,
HZ>> да и взялся за Верилог.
MT>  Я благодарен судьбе, что сначала с Xilinx 4 столкнулся :-)))

    Это, в общем, не важно. Понадобилось освоить - освоил.

MT>  Hо Active ценен тем, что он IDE - всё в одном и всё довольно удобно.
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

MT>  Кстати, насколько я помню Ривьера мультиплатформенная - она
MT>  может работать в пакетном режиме без гуя ?

    Да, мультиплатформенная. И отдельно можно симулятор из командной строки
пускать. Только не понял, зачем тебе пакетный режим, если ты ценишь IDE?

HZ>> Редактор текста есть поудобнее.
MT>  Для VHDL\Verilog ? Hапример ?

    SlickEdit старше версий 8.


HZ>> Вот начинающему как раз не нафиг! В Синплифае просто классный
HZ>> technology map viewer
MT>  Знаю, вещь хорошая. Имхо для начинающего полезнее RTL map в том
MT>  же Synplify - понять, во что превратилась его программка,
MT>  только не на реальных ячейках (для понимания работы которых ещё
MT>  надо даташит почитать), а на абстрактных стандартных
MT>  триггерах и регистрах, описанных в учебнике.

    Кому как. Я предпочитаю сразу конечную реализацию смотреть. Впрочем, в
Синплифае есть и то, и другое.

MT>  Hо ещё придётся понять, как прикрутить Synplify и что в нём где.
MT>  Лишняя прога - лишнее время на разбирательство с ней.

    Зачем его куда-то прикручивать? Работаешь с ним отдельно. Прога довольно
простая, там почти все интуитивно понятно. Есть хорошая дока.


MT>  PS (тема полезнее обсуждения личных предпочтений в софте):
MT>  Ты не пробовал серьёзно использовать синтез Си->HDL ?

    Поставил как-то Ментор Катапульту. Потыкался, потыкался. Не понравилось.
Пускать можно только из оболочки, оболочка убожищьная - шрифт мелкий-мелкий, а
изменить нельзя. И потом, если бы оно сразу реализацию давало. А HDL мне как-то
не очень интересен - лишнее звено в процессе.

MT>  У synopsis есть такая штука, вот название не помню.
MT>  Я не пытался, но многие ругали саму идею....

    У Синопсиса это называется DC (Design Compiler). А вся эта кухня С->HDL
называется SystemC. Правда, это не С, а С++, что есть гораздо лучше. DC этот
только под Линкус, из-за этого переползать не стал. Подожду, пока появятся
синтезаторы под винду. Там видно будет. Сама идея, заложенная в SystemC, вполне
разумная и симпатичная. Посмотрим, что получится на практике, как С++ описание
ляжет на реальное железо.

--
H.Z.

h.z<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.

Site Timeline