SASS — это замечательно, но это язык, а не библиотека компонентов. В данном случае я вижу для себя смысл попробовать вашу библиотеку там, где раньше я задумывался о bootstrap.
По-моему, хороший инструмент, вполне может заменить bootstrap в многих use case'ах, хотя не спорю, что инструменты разные.
За coffeescript отдельный бонус в карму.
Возможно, не в однотактном делителе дело.
У меня была похожая ситуация. Я сделал по глупости однотактный 64-битный сумматор.
Если не указать в constrains ограничение на частоту clock, то САПР может сгенерировать прошивку с рабочей частотой ниже, чем опорная частота генератора частоты на плате, и тогда будет работать многое неправильно.
Для меня после знакомства с coffeescript verilog кажется очень сильно избыточным. SystemVerilog лучше, но все-равно не то. Потому после года мучений в работе с verilog я плюнул и написал свой недо-DSL, который максимально убирает дублирование кода. Как доведу код до ума — может напишу статью и выложу код на github.
Фичи для тех кому интересно:
1. Python-like scopes (прощай begin/end)
2. Инстанциирование в ооп-стиле с автоматическим пробросом пинов с одинаковым именем и шириной шины от родителя к ребенку (прощай .clk(clk) и запятые, здравствуй CSON (CoffeeScript Object Notation, аналог JSON))
3. Если в instance есть неприсоединенные пины к родителю — проект не соберется.
4. Автоматическое генерирование компонентов по шаблону. (Надо сумматор на 32 бита, получи sum_32, надо на 16 — получи sum_16, прощай неявное генерирование и параметры в verilog, здравствуй полный контроль над генерированным кодом)
5. JTAG socket server (tcl, доделка примера от xilinx) + client (nodejs). Возможность in-chip отладки проекта в т.ч. покрытие кода регистрами. Дает возможность узнать какие ветви были активированы, а какие нет, также дает возможность просмотреть через ограниченную шину (даже 4 бита, меньше нет смысла) всю собранную информацию включая состояние входов, выходов и внутренних регистров. Бонус. Мы почти не привязываемся к стеку технологий xilinx, заменяем vio на такую же megafunction от Altera, заменяем tcl сервер для общения с JTAG, и у нас снова есть полноценная возможность отлаживать код внутри кристалла. Невостребованный бонус. При наличии двух JTAG кабелей можно отлаживать одновременно два чипа разных производителей, которые присоединены друг к другу.
6. Достаточно большая скорость работы, что позволяет отлавливать примитивные ошибки гораздо быстрее. Не нужно ждать 20 сек, пока ISE соберет все IPcore, проверит все мелочи и только потом скажет, что ты где-то пропустил один пин, или у тебя ошибка в синтаксисе.
7. Мелочные сокращалки синтаксиса для мелких популярных паттернов. (еще на 5-10% меньше букв)
8. Исправление некоторых недочетов парсера verilog за счет генерации функционально идентичного кода. Например два always блока в некоторых случаях приводят к ошибке (pin has multiple drivers). Один блок — нет.
Я тоже хотел сделать на реле, но это было бы дольше т.к. надо докупать либо ethernet shield (реле и микроконтроллеры есть), либо rapsberry PI, либо что-то подобное.
Больше см
habrahabr.ru/post/51572/
habrahabr.ru/post/230383/
будет оттранслировано в
Вот там я видел много схем эволюции систем и эту тоже.
По-моему, лучше отражает динамику
esportsearnings.com/history/2013/top_players
esportsearnings.com/history/2006/top_players
esportsearnings.com/history/1998/top_players
За coffeescript отдельный бонус в карму.
www.youtube.com/watch?v=j98QsMJXJEc
У меня была похожая ситуация. Я сделал по глупости однотактный 64-битный сумматор.
Если не указать в constrains ограничение на частоту clock, то САПР может сгенерировать прошивку с рабочей частотой ниже, чем опорная частота генератора частоты на плате, и тогда будет работать многое неправильно.
3. Конечно, присоединяются только пины, которые не были соединены вручную.
Фичи для тех кому интересно:
1. Python-like scopes (прощай begin/end)
2. Инстанциирование в ооп-стиле с автоматическим пробросом пинов с одинаковым именем и шириной шины от родителя к ребенку (прощай .clk(clk) и запятые, здравствуй CSON (CoffeeScript Object Notation, аналог JSON))
3. Если в instance есть неприсоединенные пины к родителю — проект не соберется.
4. Автоматическое генерирование компонентов по шаблону. (Надо сумматор на 32 бита, получи sum_32, надо на 16 — получи sum_16, прощай неявное генерирование и параметры в verilog, здравствуй полный контроль над генерированным кодом)
5. JTAG socket server (tcl, доделка примера от xilinx) + client (nodejs). Возможность in-chip отладки проекта в т.ч. покрытие кода регистрами. Дает возможность узнать какие ветви были активированы, а какие нет, также дает возможность просмотреть через ограниченную шину (даже 4 бита, меньше нет смысла) всю собранную информацию включая состояние входов, выходов и внутренних регистров. Бонус. Мы почти не привязываемся к стеку технологий xilinx, заменяем vio на такую же megafunction от Altera, заменяем tcl сервер для общения с JTAG, и у нас снова есть полноценная возможность отлаживать код внутри кристалла. Невостребованный бонус. При наличии двух JTAG кабелей можно отлаживать одновременно два чипа разных производителей, которые присоединены друг к другу.
6. Достаточно большая скорость работы, что позволяет отлавливать примитивные ошибки гораздо быстрее. Не нужно ждать 20 сек, пока ISE соберет все IPcore, проверит все мелочи и только потом скажет, что ты где-то пропустил один пин, или у тебя ошибка в синтаксисе.
7. Мелочные сокращалки синтаксиса для мелких популярных паттернов. (еще на 5-10% меньше букв)
8. Исправление некоторых недочетов парсера verilog за счет генерации функционально идентичного кода. Например два always блока в некоторых случаях приводят к ошибке (pin has multiple drivers). Один блок — нет.