Обучение программированию
Oct. 1st, 2011 12:10 pmНесколько интересных постов. Пусть полежат.
Это - для студентов. Да и сам бы не отказался от такого курса, наверное.
http://ramlamyammambam.livejournal.com/160701.html
http://ramlamyammambam.livejournal.com/160954.html
А это - для школьников.
http://ailev.livejournal.com/948015.html
http://ailev.livejournal.com/953444.html
Это - для студентов. Да и сам бы не отказался от такого курса, наверное.
http://ramlamyammambam.livejournal.com/160701.html
http://ramlamyammambam.livejournal.com/160954.html
А это - для школьников.
http://ailev.livejournal.com/948015.html
http://ailev.livejournal.com/953444.html
Re: Про курсы для студентов
Date: 2011-10-02 07:21 am (UTC)? Это вы наверное прочитали только краткий вариант у вакуленко, а не мой исходный пост http://panchul.livejournal.com/184647.html
Вся фишка моего предложения - чтобы люди на этапе 4 сделали свой маленький процессор, засинтезировали его с помощью конкретного софта от Xilinx в netlist (граф из логических примитивов), сделали place-and-route, и имплементировали его на FPGA-плате (если вы не знаете, что это такое, то просьба прочитать, прежде чем мне возражать). После этого у них получится настоящий процессор, хотя и игрушечный (с простой системой команд, на низкой тактовой частоте, без суперскалярности, многоядерности, иерархии памяти и т.д.).
Это по своей сути минимальный вариант той же технологии, которую мы используем в MIPS Technologies, за исключением того, что наши процессоры гораздо сложнее и работают не только на FPGA платах, но потом превращаются в ASIC на фабрике и тиражами сотни миллионов экземпляров расходятся по свету в цифровых телевизорах, роутерах и других изделиях.
А также наша компания использует софтвер для дизайна и моделирования, который стоит сотни тысяч долларов, а студенты используют бесплатный софтвер, но в данном конкретном случае это не имеет значение - это становится важным, когда речь идет об сложных и массовых изделиях.
Называть то, что я предлагаю "теоретическим" можно только от незнакомства с данной технологической цепочкой.
Я описал общий принцип в другом посте - http://ru-programming.livejournal.com/1271886.html "Введение в дизайн харвера микросхем для тех программистов, которые этим никогда не занимались"
*** Подозреваю, что и в Verilog есть куча стандартных библиотек, позволяющих фокусироваться на конкретной задачи. ***
Стандартные библиотеки в SystemVerilog есть для верификации (напр. UVM) или специальные библиотеки для примитивов DSP, но не для дизайна процессоров.
У нас в компании есть внутренняя библиотека блоков и примитивов на Verilog-е, но это не меняет сути действа - эти блоки в частности используются, чтобы было удобнее делать low-power процессоры. Существует куча академических процессоров на верилоге, которые написаны в наиболее прямолинейном стиле и без использования "высокоуровневых" библиотек (хотя конечно во время синтеза используется technology-dependent ASIC library, но это не часть дизайна процессора, это часть процесса имплементации его в силикон).
Иными словами, предложенная инфраструктура совершенно реальна и приближена к индустрии насколько это возможно (понятно, что студент не может потратить пару миллионов долларов, чтобы выпечь его дизайн на фабрике на Тайване, но все остальное можно сделать как вы жизни и почти за бесплатно - $50 на студента за плату и с использованием бесплатной версии софта).