пятница, 6 июня 2014 г.

Выбор ПЛИС

[b]the Devil incarnate[/b]
Существует несколько подходов к проектированию. Но лично я остановлюсь на и более популярных. А именно ведение, управление проектов согласно ГСОТ и ISO 9000.
Обе системы предполагают итерационный процесс выполнения проекта. Итерационный или как говорят циклический процесс как раз и вносит путаницу, в неведающие головы, что разрабатывается первее.

Более детально остановлюсь на системе ГОСТ:
1. эскизное проектирование
2. техническое проектирование (ТП)
3. конструирование,
4. испытания и доработка.


На этапе эскизного проектирования вы набираете материал для своего проекта. Описываете идеи и фантазии. Тут нет особых требований откуда начинать проектирования с ПЛИС или с платы. Как вам проще так и действуйте. Обычно это делает человек достаточно далёкий от производства, либо специалист прошедший все этапы развития.

В техническом проекте Вы уже более детально и предметно описываете блоки и элементы будущей конструкции. ГОСТ предполагает вести разработку иерархически сверху-вниз. Кде всё изделие делиться на составные части.
Примерно на одном уровне будет и плата и программа для ПЛИС.
Для написания технического проекта уже привлекаются специалисты из разных областей.
Собственно после этого этапа вам уже должно быть понятно какую ПЛИС вам надо брать. Вам будет известен состав. Будет известно что будет снаружи и какие программы будут в ПЛИС внутри. Более того вы должны будете уже найти готовые блоки и блоки которые будут разрабатываться.
Если все блоки известны, то всё просто смотрим сколько и каких ресурсов требует каждый блок. Для ПЛИС это количество логических элементов, количество памяти количество входов, выводов, число блоков DSP и тд. Сложности возникают когда каких-то блоков нет.
Их надо разрабатывать и начинается разработка ОКР или НИР. НИР - выбирается если конь ещё не валялся и результат не предвидится положительным. ОКР - выбирается когда есть специалисты готовые выполнить текущей проект.

Как правило такой подход это очень дорогое удовольствие и заказчик стремиться сократить расходы пропустив некоторые этапы.
Тогда выбор ложиться на специалиста в заданной области. Специалист из сходя из аналогии и подобия выбирает недостающие блоки. Рекомендуется проводить макетирует и моделирует недостающих блоки и всей конструкции в целом. После макетирования моделирования можно уже достаточно оценить требования к ПЛИС. Ровно как и к другим элементам. Не забываем что не плохо ещё сделать запас в виду того, что как правило есть ошибки, просчёты.

[quote] Не хочется, например, по незнанию, ставить FPGA Artix-7 и платить немалые деньги за него, если там можно было поставить вообще CPLD-ку какую-нибудь самую простую.[/quote] Для единичного изделия и опытного образца берите самый мощный. Но из сходя из разумного. Хотя на этапе ТП и требуется минимизация экономических затрат это можно обосновать и обойти. Тем более цена ОКР намного превышает материалы и комплектующие на само изделие.

А вот что касается серийного производства, то после ОКР работ должна быть ещё работы по подготовке к серии. На которых вы сможете заменить или подобрать более дешёвые аналоги. НО не стоит на это надеяться, так как в современном мире это роскошь. Поэтому на этапе ОКР уже должно быть выбран наиболее оптимальный вариант. А оптимум можно определить исходя из потребностей рынка. Одно дело это серия в 100 экземпляров в год и совсем другое 10 миллионов.


Что касается учебной ПЛИС, то её трудно выбрать. Это связанно с тем, что можно выделить разные области применения ПЛИС. Одно дело изучать шины и периферией другое дело больше заниматься ЦОС. Поэтому прежде чем её покупать не плохо бы провести симуляцию, моделирование и макетировать те изделия и проекты, которые вы хотите сделать. Эмуляторов и сред разработке сейчас очень много. Лично я покупал себе макетную плату с ПЛИС исходя из тех задач которые хочу решать на ней. Более того ebay можно встретить много подержанных макетных с ПЛИС. Наигравшись через пару дней люди понимают, что она им не нужна и продают их.

суббота, 18 января 2014 г.

ПЛИС отладочный набор

Отладочный комплект OpenEP4CE6-C Package A на базе ПЛИС EP4CE6E22C8N с набором плат расширения.
Приобрёл этот комплект на aliexpress.com у Алибабы и 40 М разбойников. ;-)
Что дешевле чем покупать у нас.

Комплект представляет собой конструктор состоящих из мелких блоков. 

Дальше идёт перевод того что там есть.
http://www.wayengineer.com/index.php?main_page=product_info&cPath=50_55&products_id=2210


OpenEP4CE6-C Package A – отладочный комплект разработан на основе ПЛИС EP4CE6E22C8N семейства Cyclone IV компании ALTERA с широким набором стандартной периферии. Конструктивно отладочный комплект состоит из платы CoreEP4CE6 (FPGA), с установленной на нее ПЛИС, материнской платы DVK601, а также модулей расширения функционала.

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


Введение

 Конструктивно комплект состоит из платы для разработки CoreEP4CE6 (FPGA), с установленной на нее ПЛИС, материнской платы DVK601, а также модулей расширения функционала. 

Набор OpenEP4CE6-C может в будущем быть усовершенствован при помощи различных плат расширения которые можно приобрести отдельно. И применять в различных реальных приложениях где требуются различные стандартный и не стандартный интерфейсы. Модульность и открытость создают идеальную возможность для обучения разработки устройств с ПЛИС камнями  ALTERA  серии  Cyclone IV.  Благодаря тому что OpenEP4CE6-C поддерживает  интеграцию с процессором Nios II, вы можете начать свои разработки сразу и быстро.  Процессор Nios II это программа для ПЛИС которая создаёт 32 битный процессор которым вы можете управлять периферией используя более продвинутое операционное управление, а не логическое.  

Состав набора:
В набор не входит программатор и его пришлось заказать отдельно.

Базовая часть набора
1.OpenEP4CE6-C отладочная плата x 1
2.4- контактный провод x 2
3.2- контактный провод x 2
4.USB кабель питания x 1
5.Руководство пользователя CD x 1, мне пришло 2 и оба на китайском. Диск содержит ПО, документацией, примеры программ.

Модулей расширения функционала:
1. Экран LCD с датчиком касания 3.2 дюйма 320x240 (мод. B) x 1
2. Переходник к экрану LCD  (мод. B) x 1
3. Плата с: VGA и PS2 x 1
4. Плата PL2303 USB UART  (мини.) x 1
5.Плата NorFlash  (мод.  B) x 1
6.Плата с памятью SDRAM  16х8М (B)  x 1
7.Плата со слотом для цифрового носителя информации  Micro SD  x 1
8.Плата AT45DBXX DataFlash x 1
9.Плата FM24CLXX FRAM x 1
10.Плата CY7C68013A USB (мини.) x 1
11.Плата ENC28J60 Ethernet  x 1
12.Плата с часами и батарейкой PCF8563 RTC  x 1
13.Цифровой датчик температуры DS18B20 x 1
14. Кабель USB типа A к мини-B x 1

Всего 12 плат и 1 датчик  и 1 кабель.


 Рисунок 1. Набор. Материнская плата с ядром ПЛИС, датчик, экран, под датчиком переходник к экрану, под экраном плата с VGA и PS/2


Материнская плата

Материнская плата  DBK601 предназначена для упрощения доступа к выводам ПЛИС модуля CoreEP4CE6, который устанавливается на материнской плате, а также для подключения плат расширения функционала.


1. Конекторы для подключения центральной платы с FPGA или CPLD, для легкого подключения центральной платы с установленной на ней чипом с ПЛИС или КПЛИС, таких как  Core3S250E
2.8I/Os_1  разъем для подключения  плат или модулей расширения функционала.  
3.8I/Os_2 разъем для подключения  плат или модулей расширения функционала.  
4.8I/Os_3 разъем для подключения  плат или модулей расширения функционала.  
5.8I/Os_4 разъем для подключения  плат или модулей расширения функционала.  
6.16I/Os_1 разъем для подключения  плат или модулей расширения функционала.  
7.16I/Os_2 разъем для подключения  плат или модулей расширения функционала.  
8.32I/Os_1 разъем для подключения  плат или модулей расширения функционала.  
9.32I/Os_2 разъем для подключения  плат или модулей расширения функционала.  

      Все разъем ввода/вывода описанные выше совместимы с интересами:
      •могут выполнять роль шин USART, I2C, SPI, PS/2 и т.п .
      •могут управлять устройствами такими как FRAM, FLASH, USB, Ethernet и т.п .
10.FPGA expansion connectors◦FPGA pins are accessible on expansion connectors
    ◦for connecting SDRAM accessory board
11.Интерфейс LCD , для соединения с LCD22, LCD12864, LCD1602
12.Интерфейс ONE-WIRE: easily connects to ONE-WIRE devices (TO-92 package), таких как сенсор температуры (DS18B20), electronic registration number (DS2401), и тд.
13. Пищалка
14. Джостик, 5 позиций
15. Потенциометр: для выравнивания задней подсветке  LCD22 или контрастности: LCD12864, LCD1602.
16. Перемычка "Пищалка"
17. Перемычка   "джостик"( "Joystick" )
18. Перемычка  "ONE-WIRE"

О перемычках 16-18:
•замкнутая перемычка соединяет порты I/O с  демонстрационными устройствами,  для использование с примерами кода.
•открытая перемычка позволяет использовать пользовательские выводы в обход демонстрационных  устройств.

суббота, 2 ноября 2013 г.

Для чего нужен суперкомпьютер.

А правда для чего? Ответ прост в своё время свои задачи. Но прежде надо ответит что-же такое? Супер компьютер - это компьютер обгоняющий средне статистический компьютер.
В 10, 100, 1000, миллионы раз.

Можно выделить следующие компьютер. Сервер который использует несколько пользователей. Обычно он мощнее средне статистического в несколько раз 10-100. Зависит от числа пользователей.

Для научных расчётов. Для научных расчётов чтобы быть на пике требуется производить и обрабатывать данные в 10-100 раз превосходящие возможности среднего компьютера.
Но рост производительности среднего компьютера был экспоненциальным и те задачи что 10 лет назад решались на компьютере вполне решаются на современном ПК.

Такое обычно достигается путем объединения нескольких компьютеров лаборатории в кластер.

Но если посмотреть в TOP500 то мы увидим что компьютеры 1000 и 1м раз превосходят средне статистические.  Для чего же нужны они?


Если на заре создания компьютеров в годах 50 они использовались для дешифровки сообщений и обработке статистических данных. То в 60-тых это были расчёты баллистики ракет. В 70-тых компьютеры использовались для расчёта на прочность конструкций сооружений.. Или к примеру расчёта винта подводной лодки. Расчёта оптимальной конструкции корпуса самолёта.
А вот в 80-тых мощности компьютеров хватила для первых спец эффектов в фильмах. Такие фильмы как звездные воны с их светящимися мечами. И фильма трон.

В 80-тых и 90-тых суперь компьютер был нужен для расчёта прогноза погоды.


90-тые интересны тем что появились массовые ПК.  Собственно с этого времени и появляется термин супер компьютер. Удивительный факт в 90-тых для производства микросхем стали использовать 2-ное экспонирование. Что потребовала решения обратной задачи трассировки лучей света. Для чего потребовались супер компьютеры. И чем производительнее процессор хотели создать учёные тем производительнее требовался кластер.

2000-ные. Эра  3D мультфильмов. Рендеринг. Фильмы со спец эффектами. Многие компании специально закупают под это дело супер компьютеры.
Прогноз погоды всё ещё актуален.
Виртуальные краштесты автомобилей.

2010-тые сейчас рендеринг можно производить в реальном времени на ПК.
Прогноз погоды тоже успешно считается на ПК.


За последние 10-20 лет наметилась тенденция к компьютерам с очень большим числом ядер.
Не просто тысячами процессоров, а с 10 -100 тысячами.
Спрашивается для чего нужны такие супер компьютеры?
Ясно что они должны окупаться. Но если фильм/мультфильм приносит миллионы долларов.
То должны быть и задачи которые стоят гораздо больше чтобы задействовать более дорогое оборудывание.

Ядерные испытания? Да как бы там и ПК -хватает да и хватало ещё в 80-тых.
Шифры? Да вполне очевидно так как эти компьютеры принадлежат военным и они решают военные задачи.
Обычно шифр не превышает 10 знаков и содержит не более 54 символов. Т.е такой пароль перебираться за 10^17 операций. Что примерно соответствует современным возможностям суперкомпьютера..
Да и 64 битные шифр.  Вполне возможно. Но какова цена? Не думаю что это окупится.

Моделирование ядерной физики? Да эта задача решается, но обычно совместными усилиями объединяя научные супер-компьютеры в общую сеть. А они классом ниже тех что есть у военных.

Моделирование военных действий? Вопрос открытый.
Скорее всего это очередная гонка вооружений, перенесённая в новую область.

суббота, 21 сентября 2013 г.

Лингвистика

Не верти лингвистам. У них много воды и мути.

Первый этап выбор языков для изучения. Разные оценки дают разные показатели.
По численности населения. По численности пользователей интернета. По числу сайтов. 

Число языков привышает 7 000 штук.  Но при этом основными является порядка 40 штук..

Так как выбрать те что стоит изучать? С практической точки зрения интересует наиболее распространённые языки. 
Но даже так трудно сказать кто распространённие. Одно время вся Европа говорила на Латинском языке, а после на Германском. А сейчас на Американском. Воны меняют процентное содержание языка. 

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

http://ru.wikipedia.org/wiki/Языки_в_Интернете
http://ru.wikipedia.org/wiki/Список_наиболее_распространённых_языков

Изучения 7 000 языков затруднительно, так что надо определиться с количеством языков можно выделить 3 основных множества.

10 шт
36 шт
102 шт

Для изучения 102 нужно много времени и не представляется возможным проделать это в одиночку.  Полиглоты обычно говорят на 5-6  языках. 

Поэтому в качестве основного  списка выбираем следующий 11 языков.
1 английский
2 китайский
3 испанский
4 японский
5 португальский
6 немецкий
7 арабский  
8 французский
9 русский
10 корейский
11    Хинди

Хинди слабо представлен в интернете поэтому он включён в список опционально.

Следующие 38 языков можно использовать для отработки обще языковых методов  
 1. английский
 2. русский
 3. немецкий
 4. японский
 5. испанский
 6. китайский
 7. французский
 8. португальский
 9. польский
10. итальянский
11. турецкий
12. нидерландский
13. арабский
14. персидский
15. чешский
16. шведский
17. индонезийский
18. вьетнамский
19. румынский
20. корейский
21. греческий
22. венгерский
23. датский
24. тайский
25. финский
26. словацкий
27. болгарский
28. норвежский (нюнорск)
29. иврит
30. литовский
31. хорватский
32. сербский
33. украинский
34. словенский
35. норвежский (букмол)
36. каталонский
37. хинди
38. латинский

Остальные языки составляют малую толику и их рассмотрение не интересно.

В качестве открытых инструментов можно выделить 
Которая разрабатывается при финансировании со стороны правительств Испании и Каталонии в Университете Аликанте (Universitat d’Alacant). 

http://en.wikipedia.org/wiki/Apertium
http://devel.cpl.upc.edu/freeling/browser/trunk

Это наиболее успешные проекты в машинной лингвистике. Как можно заметить они существуют всего недавно менее 10 лет и были возможны только при финансирование со стороны государства. Но даже они рассматривают только Европейские языки которые произошли от одного общего предка.


http://nlp.lsi.upc.edu/freeling/
Библиотека для анализа предложений по морфологии и грамматике.

http://www.aot.ru/download.php
Отечественная разработка.

суббота, 14 сентября 2013 г.

Начало поисковика или парсера, определение кодировки


Начало поисковика или парсера, определение кодировки

Первой задачей которая встаёт перед поисковиком это определить кодировку и язык.

Это трудная система. Включающая много ступенчатый анализ. А посему требующий системный подход к решению проблемы.

Ошибки неизбежны. Поэтому надо собирать статистику и адаптировать, улучшать систему. Сводя ошибки определения к мнимому, но они останутся по любому.

Факторы проверки кодировки.

1. Чтение кодировки от сервера сайта.

2. Анализ символов документа, проверка BOM, и юникода.

3.Анализ грамматики документа, проверка на наличия тегов.

4. Чтение кодировки и языка из документа.

5. Анализ кодировки и языка.

6. Анализ слов(лексем)

7. Анализ грамматики языка.

8. Анализ семантики.

9. Анализ нескольких страниц с сайта.



Каждый фактор должен вносить свое улучшение. Но не к каждой порции данных можно применить тот или иной тип анализа. Поэтому помимо количественного значения нужно и качественная оценка анализа.



Количественная это параметр от 0 до 1 реальное число. Качественное Boolean.
False в случае неудачи и true в случае удачи.


Внося несколько факторов в анализ мы можем улучшить распознавание кодировки.


Систему строить на основе Бесовского принципа, а именно предполагать что предыдущая информация верна.
Система анализа текста функционирует рекурсивно. В случае неправильного определения возвращаемся на пункт назад и пробуем другие параметры. На некоторых стадиях надо делать перебор и выбирать максимум.

Техническое воплощение анализа.

1. Чтение кодировки и языка от сервера сайта.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14,11

Сервер может возвращать содержания документа. Также cgi/php скрипт может помещать эту информацию в заголовок сообщения.

Для того чтобы определить язык и кодировку надо найти в заголовки строки

 «Content-Language: da»

 «Content-Type: text/html; charset=ISO-8859—4»



2. Анализ символов документа, проверка BOM, и юникода.



3.Анализ грамматики документа, проверка на наличия тегов.

4. Чтение кодировки и языка из документа.

< META HTTP-EQUIV='content-type' CONTENT='text/html; charset=big5' >


5. Анализ кодировки и языка.

Исходный код mozilla
http://chsdet.sourceforge.net/


6. Анализ слов(лексем)
Для лексического анализа нужно применить либо большой словарь. Либо малый но с набором правил для модификации слов.

7. Анализ грамматики языка.
Набор слов в разных языках может быть очень похожим при этом грамматические конструкции могут сильно отличаться.

8. Анализ семантики.
Семантика это анализ смысла. Самая мало изученная область в парсерах. Так что сдесь обычно применяют эвристические правила. Такие какие можно придумать.

9. Анализ нескольких страниц с сайта.
Также не забываем что на сайте есть несколько страниц. И надо учесть что страницы с одного сайта имеют чаще всего одинаковую структуру.


Выбор площадки для блога

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

blog.ru - кривые программисты, с десяток потерянных сообщений. Вечные баги, то с разметкой то с фильтрами.