Отрицательнице вагинального оргазма Наталье Радуловой - 40 лет!
panchul — 10.02.2015 Теги: РадуловаСорок лет - возраст мудрости. Журналистка "Огонька" и популярная блоггерша Наталья Радулова тоже стала к этому возрасту мудрой. Но до этого она была мудрой не всегда и в возрасте 30 лет устроила вендетту против русских мужиков.
Одним из методов радуловской вендетты была агрессивная агитация русских женщин, чтобы те бросали русских мужчин и бежали к мужчинам любых западных национальностей. И не только бежали! В радуловской статье "День святой Марины" главная героиня ползла по топи пять километров через советско-финскую границу, чтобы сбежать от брака с советским инженером и соединиться с американским мальчиком-студентом.
Толпы российских женщин вняли радуловской пропаганде и устремились за границу к американским мужчинам. За границей они увидели, что один жених уже стар и перерезал себе семявыводящие потоки; другой живет на зарплату, которая из России казалась большой, но в Америке является нищенским существованием; третий привез свежую российскую девушку в какую-то тундру в Вайоминге, где он работает водителем автобуса и т.д.
Почему же жертвы Радуловой не жаловались и поток не прерывался? Ответ на это мне подсказала русская интеллигентка из Лос-Анжелеса Эльвира Барякина, которая однажды у себя в ЖЖ написала пост в духе (пост куда-то исчез, поэтому привожу по памяти) "Вот приезжает любой американец в Нижний Новгород - и уже жених! А почему? Потому что за ним стоит передовая в технологическом отношении страна, которая проектирует айфоны и другую технологию!"
Не надо смеяться, господа! Понятно, что и русская интеллигентка Наталья, и русская интеллигентка Эльвира мыслят гениталиями. Но из этого не следует, что их мнениями нужно пренебречь! Эволюция сотни миллионов лет оттачивала интуитивное мышление у самок социальных млекопитающих. Ее устами глаголит истина.
И эта истина звучит так: для устранения дискриминации русских мужчин русскими женщинами и окончательной победе над Наталией Радуловой - в России необходимо повысить уровень технологического развития с помощью интеграции страны с мировым рынком технологий и апгрейда системы образования инженеров.
Для этого вовсе не обязательно выбрасывать несуразные деньги а-ля сделка Сколкова и MIT.
Есть масса дешевых и эффективных мер апгрейда. Одна из них - широко ввести практические классы ПЛИС / ППВМ / FPGA среди старших школьников и студентов. Это то, на чем учатся и инженеры, которые потом разрабатывают микросхемы внутри Apple iPhone в Купертино, Калифорния.
ПЛИС - Программируемая логическая интегральная схема
ППВМ - Программируемая пользователем вентильная матрица
FPGA - Field Programmable Gate Array
Так как ниже речь идет о платах, то у многих читателей тут же может возникнуть реакиция "а, это ардуино/raspberry pi/роботы - знаем!" Нет, это не ардуино, не имеет вообще никакого отношения к данному классу устройств. Еще раз повторяю: это не ардуино, потому что у ардуин стоит внутри основанный на микропроцессорном ядре микроконтроллер, а тут вообще никакого процессора нет - чистая матрица перепрограммируемых логических ячеек.
Пока американские школьники будут играться только с микроконтроллерами, российские школьники могут играться одновременно и с микроконтроллерами, и с FPGA, и тем самым получат технологическое преимущество за счет системного мышления - понимания и программирования, и принципов разработки хардверной логики одновременно.
Одной из проблем использования FPGA для образования российских тинейджеров является нехватка литературы на русском языке. Довольно скоро должен выйти русский перевод книжки Digital Design and Computer Architecture, Second Edition, by David Harris and Sarah Harris, и эта проблема будет частично решена. Но помимо литературы, описывающей схемотехнику и разработку хардвера на уровне регистровых обменов (Register Transfer Level - RTL) используя языки описания аппаратуры (Hardware Description Languages - HDL), есть и другая проблема - для новичка работа со студенческими платами нетривиальна, а программная среда для разработки - недружелюбна.
Поэтому я решил показать по шагам, как начать работать с одной из FPGA плат, которая удобна тем, что втыкается в макетную плату и может быть использована преподавателями кружков школьников наподобие informatikum, который начинает введение в схемотехнику через микросхемы малой степени интеграции типа К155ЛА3 (TTL 7400, CMOS 4000). Втыкаемая в макетку FPGA плата является естественным продолжением существующего курса informatikum.
Вот с чего мог бы начинать в своем курсе informatikum до введения FPGA. Так учили основам цифровой логики с начала 1970-х годов:
и вот к чему он может переходить после ознакомления школьников с базовыми понятиями логического элемента, триггера и сигнала тактовой частоты. Это то же самое, но на технологии 2010-х:
Фишка в том, что внутри FPGA по сути находится конструктор из тысяч логических элементов наподобие элементов в K155ЛА3, но в FPGA их можно соединять не руками с помощью проводов, а меняя содержимое специальной памяти, биты которое соединены с мультиплексорами, которые меняют логические функции ячеек FPGA и соединения между ними:
Где достать платы, софтвер для разработки и необходимые плагины, я расскажу в конце, а сейчас погрузимся непосредственно в создание простой схемы с помощью бесплатной среды разработки Xilinx ISE WebPACK:
Входим и создаем новый проект:
Важно выбрать отдельную директорию для проекта и не смешивать его с вашими исходными файлами, ибо синтезатор генерирует много всяких временных файлов и вы в них можете запутаться (все их можно удалить после использования):
Вводим имя проекта. Это имя совпадает с именем главного модуля на Verilog-е (языке описания железа):
Вводим параметры FPGA: Family, Device, Package, Speed. Их нужно взять из документации по плате.
Проект создан:
Добавляем исходные файлы на языке описания аппаратуры Verilog. Файл top.v содержит описание схемы:
module top ( input btn_0, input btn_1, output led_0, output led_1, output led_2, output led_3 ); assign led_0 = btn_0; assign led_1 = btn_1; assign led_2 = btn_0 & btn_1; assign led_3 = btn_0 | btn_1; endmodule
Файл cmods6.ucf содержит информацию для среды разработки о том, как связаны логические вводы и выводы главного модуля (btn_0, led_2, ...) с местонахождением (location, LOC) физических ножек микросхемы FPGA, которые именуются P8, N4 и т.д. Этот файл - урезанная версия файла для данной платы, загруженная с сайта компании Digilent (производитель плат):
NET "btn_0" LOC = "P8" | IOSTANDARD = LVCMOS33; NET "btn_1" LOC = "P9" | IOSTANDARD = LVCMOS33; NET "led_0" LOC = "N3" | IOSTANDARD = LVCMOS33; NET "led_1" LOC = "P3" | IOSTANDARD = LVCMOS33; NET "led_2" LOC = "N4" | IOSTANDARD = LVCMOS33; NET "led_3" LOC = "P4" | IOSTANDARD = LVCMOS33;
Теперь нажмем на кнопку "сгенерировать файл для программирования ПЛИС". Тут есть важный момент - "программирование" - это не софтверное софтверным программированием, которое сводится к созданию последовательности команд некоего процессора. Programming File в данном случае - это содержимое памяти в ПЛИС, которое определяет логические функции и соединения ячеек ПЛИС. Процессор в данной схеме не присутствует (хотя вы можете сами создать процессор, программируя (в вышеприведенном смысле) ячейки ПЛИС).
Теперь нажмем кнопку "посмотреть на абстрактную (не привязанную к конкретному FPGA) схему, описанную на верилоге и синтезированную софтвером):
Верхний модуль:
Нажмем на мышкой чтобы посмотреть внутрь:
Нажмем на кнопку "Zoom to Full View" чтобы увидеть всю схему:
А теперь посмотрим на переработанную схему, сгенерированную софтвером для конкретного FPGA (View Technology-Specific):
Мы видим слово LUT - это Look-Up Table - его нужно запомнить на будущее:
Теперь нажмем на кнопку "View/Edit Routed Design (FPGA Editor)", чтобы посмотреть, как схема ляжет на ячейки FPGA:
Укрупним:
Жмем кнопку чтобы сконфигурировать FPGA. Плата прицеплена микро-USB кабелем к компьютеру.
С этого момента важно, что установлен плагин от Digilent-а для этой платы - http://digilentinc.com/Products/Detail.cfm?NavPath=2,66,768&Prod=DIGILENT-PLUGIN
У Digilent-а есть еще софтвер под названием Digilent Adept, но он на моем компьютере с этой платой почему-то не работает, так что лучше использовать плагин и iMPACT. Последовательность действий ниже понимать не обязательно, это просто "магические заклинания", чтобы перенести *.bit файл в конфигурационную память внутри FPGA:
Все, теперь плата должна работать - откликаться на нажатия кнопок и соответственно им мигать лампочками.
Теперь не будем закрывать iMPACT, вернемся к главному окну ISE и построим не комбинационную, а последовательностную схему - сдвиговый регистр. Используем генератор тактового сигнала низкой частоты 1 Hz, т.е. один раз в секунду. На плате еще есть генератор тактового сигнала на 8 MHz - это частоту с помощью PLL можно поднять до 200 MHz. Но высокая частота - это других дизайнов, а для наглядности 1 Hz - то что надо:
Засинтезируем ее, сгенерим bit-файл, вернемся в iMPACT и нажмем на кнопку Program. Оно скажет:
Нужно нажать Yes и в FPGA будет загружен новый дизайн. Кстати, теоретически повторная (после создания iMPACT project) загрузка должна происходить просто нажатием Configure Target Device в главном окне ISE, но реально у меня это не происходит - софтвер норовит создать новый iMPACT project. Поэтому и лучше использовать кнопку Program внутри окна iMPACT. Все претензии по этому поводу - в Digilent и Xilinx.
Приложение A. Два видео - как реализовать сдвиговый регистр и счетчик
Приложение B. Полный заголовок верхнего модуля на верилоге для данной платы
Со всеми соединениями и комментариями:
module cmods6 ( input CLK, // FPGA_GCLK, 8MHz - можно поднять до 200 MHz input CLK_LFC, // FPGA_LFC, 1 Hz output LED_0, // Четыре лампочки output LED_1, output LED_2, output LED_3, input BTN_0, // Две кнопочки input BTN_1, // DEPP interface - интерфейс для связи с PC через USB input DEPP_ASTB, // Address strobe input DEPP_DSTB, // Data strobe input DEPP_WRITE, // Write enable (write operation = 0, read operation = 1) output DEPP_WAIT, // Ready inout [7:0] DBUS, // General purpose I/O - куча пинов для брэдборды input [7:0] PORTA, input [7:0] PORTB, output [6:0] PORTC, input [7:0] PORTD, input [7:0] PORTE, output [6:0] PORTF );
Приложение C. Где взять платы
Платы с Xilinx FPGA можно брать на сайте Digilent, сейчас это отделение National Instruments. Вот плата Digilent Cmod S6, которую я использовал в посте, с самым небольшим Xilinx Spartan-6 FPGA:
Для последующего обучения есть например платы Nexys 4 с более мощными FPGA Xilinx Artix-7. На них не нужно скручивать провода на макетной плате, так как эта стадия обучения уже пройдена:
Про платы с Altera FPGA я напишу другой пост.
Приложение D. Где взять софтвер Xilinx ISE
Его можно загрузить прямо с сайта Xilinx. Использовать можно бесплатную версию. Но для Spartan-6 нужно использовать не самую новую версию среды разработки Xilinx Vivado 2014.4, а Xilinx ISE 14.7 2013 года. Почему не Vivado? Маркетологи в Xilinx решили пересадить всех пользователей чипов Spartan на более новые FPGA Artix, и выключили поддержку для Spartan из нового софтвера. Вот только плат, которые можно вставлять в макетную плату, на Artix еще нет. Поэтому нужно использовать версию софтвера 2013 года:
А вот софтвер Xilinx Vivado который подерживает в частности плату Nexys 4 с Xilinx Artix-7 (для платы со Spartan-6 он не нужен):
Теперь важный момент. Для того, чтобы загружать .bit-файл в конфигурационную память FPGA на плате, необходимо скачать специальный плагин с сайта Digilent:
На сайте еще есть софтвер Digilent Adept, но я его не рекомендую для Spartan-6, у меня были с ним проблемы.
Приложение E. Немного табличек с параметрами FPGA
И в заключение еще одна фотка FPGA платы на макетной плате с кнопками, резисторами и семисегментным индикатором:
Спасибо за внимание! Радулова, с Днем Рождения!
|
</> |
Отрицательнице вагинального оргазма Наталье Радуловой - 40 лет!
Оставить комментарий
Популярные посты:
Mail.Ru | ЦСКА снова без Радулова? Mail.Ru Отсутствие лучшего бомбардира сезона Александра Радулова не могло не сказаться на результативности красно-синих (7 шайб в пяти матчах), хотя главный тренер не стал акцентировать на этом внимание. «У нас есть длинная скамейка. Мы и сейчас справляемся, играя без ведущих ... Астана для ЦСКА как дом родной |
Mail.Ru | Пока Хьяльмарссон пьянствует, Радулов побеждает Mail.Ru И вот шайба у Радулова, Александр за воротами выверяет свой знаменитый пас и… шайбу у него отбирают. Что сделает в такой момент любой маэстро, которому помешали в момент творчества? Правильно, психанет. Радулов после потери шайбы тут же сфолил — цапанул ... КХЛ. Итоги дня. 09.02.2015 ЦСКА выиграл у "Металлурга" со счетом 3:1 "Магнитка" - ЦСКА и СКА - "Ак Барс": две репетиции финала |
СПОРТ - ЭКСПРЕСС | Шайба Радулова принесла ЦСКА победу в Уфе СПОРТ - ЭКСПРЕСС Шайба Радулова принесла ЦСКА победу в Уфе. КХЛ. ЦСКА в гостевом матче регулярного чемпионата КХЛ победил "Салават Юлаев" (2:1). Победную шайбу на свой счет записал нападающий Александр Радулов. Отметим, что все 3 шайбы были заброшены во втором периоде. КХЛ. Шайба Радулова помогла ЦСКА на выезде обыграть «Салават Юлаев» Гол Радулова помог ХК ЦСКА одолеть в Уфе «Салават Юлаев» Лиланд-Лаланд и аншлаг имени Саши Радулова. «Салават Юлаев» опять проиграл ЦСКА |