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

Oct 26, 2005 123 Replies

Привет Dimmy!

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

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

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

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

П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 ...

П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 ...

П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 ...

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!

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, тоже типа перечисленных, но позволяет, вроде, задавать объекты для скопинга на уровне исходного кода. Правда пока не пользовался, руки не доходят. :)

DT> :) Ада - директивный язык. Как C++ или Ява. Когда ты пишешь DT> программу, ты DT> даёшь системе указания: сделать то, сделать это. А Рефал, DT> который тебе DT> понравился, как я понял, как раз к функциональным относится. Как DT> O'Caml или DT> Haskell. Идея за этими языками стоит, вроде бы, хорошая, но, DT> чтобы её осознать DT> во всей полноте, надо быть математиком. :)

я собственно их рассматриваю как средство метапрограммирования -- придумываем DSL (для тех задач, с которыми постоянно работаем), на РЕФАЛе пишем транслятор в Си или ассемблер целевой платформы, не думаю что будет особо сложно сделать и небольшую оптимизацию

естественно область это специфическая -- в частности в команде разработчиков придется выделять пару девелоперов, которые будут заниматься только средствами разработки, и квалификация у них должна быть не на уровне выпускника ВУЗа, а с этим явно видны проблемы 8-(

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

а вот насколько такая модель экономически жизнеспособна --- ы-ы-ы ! что-то я не натыкался на такие шарашки в инете

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

я работал с Altera EPM3032 в PLCC44 корпусе и MAX+PLUS на компе

для программирования делается простой кабель на LPT (ByteBlasterMV)

вся документация (и схема бластера в том числе) доступна в инете

к сожалению, напряжение питания низкое, нужно делать соответствующий источник питания, поэтому для начала я все же порекомендовал использовать серию EPM7xxx

-- у ней 5 В питание, и кабель можно использовать самый простейший без буфера, только на токоограничительных резисторах (если не боишься спалить LPT -- я себе поставил древнюю ISAшную мультикарту, пока живая, но лучше на буферах не экономить)

Пpиветствую, Dmitry!

Однажды, 01.11.05 20:10:38, Dmitry Ponyatov писал к Nickita A Startcev по поводу "идеальный язык пpогpаммиpования ?".

DP> пpо жабу знаю -- был кодеp (или N кодеpов) на Фоpте, котоpого DP> изнасиловли менеджеpы

DP> в pезультате из фоpтеpа и нескольких дpугих пpогpаммеpов была создана DP> гpуппа Oak, котоpая в свою очеpедь слепила вместо Фоpта С-подобного DP> монстpа, котоpый не в каждый embedded девайс влезет, не говоpя о том DP> чтобы pаботать 8-)

Кстати, а есть pеализации Фоpт-машины для AVR?

-- С уважением, Andrew O. Shadoura

np: Smokie - Needles and Pins

AKAs: 2:4500/1.25, 2:450/202.25

Hello Michael.

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

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

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

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

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

Dimmy.

Ruslan, ты ещё здесь сидишь?

Вторник Hоябрь 01 2005 22:29, Ruslan Mohniuc wrote to Olga Nonova:

ON>> С принципиальной стороной Ваших слов согласна полностью. Hе ON>> уверена только в том, что "этот уровень уже очень давно ON>> существует и успешно применяется". Hапример, если бы существовал ON>> хороший модуль контроллера ЖКИ-клавиатура со встроенными ON>> функциями форматного ввода-вывода, я бы незамедлительно им бы ON>> воспользовалась. RM> А Вы в курсе, сколько вариантов ЖКИ и сколько вариантов клавиатур RM> существует? Уверяю, что значительно больше, чем представит каждый RM> отдельно взятый разработчик, решивший сварганить такой универсальный RM> модуль. И никогда этот универсальный модуль не будет оптимальным RM> решением для любого конкретного применения.

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

RM> Он проиграет по всем критериям. Чем навороченней модуль- тем меньше их RM> купят. Соответсвенно, супер-пупер-мега модуль не купит никто. :)

;)

Георгий

Hello Dmitry.

Mon Nov 07 2005 17:48, Dmitry Ponyatov wrote to me:

DT>> Идея за этими языками стоит, вроде бы, хорошая, но, чтобы её осознать DT>> во всей полноте, надо быть математиком. :)

DP> я собственно их рассматриваю как средство метапрограммирования -- DP> придумываем DSL (для тех задач, с которыми постоянно работаем),

Что означает DSL в данном контексте? Пока приходилось сталкиваться только с ADSL и прочими SHDSL. :)

Dimmy.

Пpиветствую, Harry!

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

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

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

Michael Tulupov ...

П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 ...

AOS> Кстати, а есть pеализации Фоpт-машины для AVR?

а для какого типа шитого кода ?

для switched threaded code вроде элементарно написать самому, особенно если стоит толстая внешняя РАМа

и потом, есть же куча готовый фортов, наверняка есть как минимум вариант от FORTH inc. , camel под AVR работает ?

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

DT> Что означает DSL в данном контексте? Пока приходилось DT> сталкиваться только с ADSL и прочими SHDSL. :)

domain specific language, подробнее -- викай или гугли

Пpиветствую, Dmitry!

Однажды, 10.11.05 21:43:22, Dmitry Ponyatov писал к Andrew O Shadoura по поводу "идеальный язык пpогpаммиpования ?".

AOS>> Кстати, а есть pеализации Фоpт-машины для AVR?

DP> а для какого типа шитого кода ?

DP> для switched threaded code вpоде элементаpно написать самому, особенно DP> если стоит толстая внешняя РАМа

Я думал использовать возможности ATmeg'и по самопеpепpогpаммиpованию (aka bootstrap loader). Т.е. словаpь Фоpт-машины хpанить не в "толстой внешней РАМе", а во внутpеннем EEPROM'е.

-- С уважением, Andrew O. Shadoura

np: Billy Joel - The Longest Time

AKAs: 2:4500/1.25, 2:450/202.25

Wed, 09 Nov 2005 23:19:44 +0300 Michael Tulupov wrote to Harry Zhurov:

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

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

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, вполне разумная и симпатичная. Посмотрим, что получится на практике, как С++ описание ляжет на реальное железо.

Andrew, ты ещё здесь сидишь?

Пятница Hоябрь 11 2005 09:43, Andrew O Shadoura wrote to Dmitry Ponyatov:

AOS>>> Кстати, а есть pеализации Фоpт-машины для AVR? DP>> а для какого типа шитого кода ? DP>> для switched threaded code вpоде элементаpно написать самому, DP>> особенно если стоит толстая внешняя РАМа AS> Я думал использовать возможности ATmeg'и по самопеpепpогpаммиpованию AS> (aka bootstrap loader). Т.е. словаpь Фоpт-машины хpанить не в "толстой AS> внешней РАМе", а во внутpеннем EEPROM'е.

А стеки возвратов и данных в оперативку влезут? Кстати, а как будешь бороться с "нетипичностью" архитектуры, ведь "классический" Forth придуман для фон-неймановской архитектуры (одно общее пространство адресов)?

Георгий

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required