Вам потребуется вот что:
1. Знание языка программирования - Verilog или VHDL - полагаю, слышали про такие.
// Как вариант есть ещё System Verilog и SystemC, но начать лучше с первых двух (с любого из них).
Какой из этих двух именно выбрать? -- В общем, это не имеет НИКАКОГО значения. Когда-то раньше, лет 10 назад, имело. Но сейчас возможности языков сравнялись.
По синтаксису:
- VHDL является дочкой языка ADA - поэтому его можно рекомендовать тем, кто больше дружит я языком PASCAL. Проще будет синтаксис выучить.
- Verilog чем-то напоминает Си (который "C"). Хотя, на самом деле разница весьма ощутимая.
- System Verilog - это продвинутая версия Verilog, которая дотянула Verilog до уровня VHDL в плане разработки сложных систем
- SystemC - это набор классов для языка C++, который позволяет написать функциональную (и даже регистровую) модель устройства прямо на C++. Для разработки реального железа я бы его не рекомендовал
Разработчики чипов исторически больше тяготеют к Verilog -- поэтому если в дальнейшем планируете устроиться на работу в контору, которая делает ASIC, то лучше учите Verilog.
Однако, если планируете работать и разрабатывать сложные системы (состоящие из нескольких чипов), то начать лучше с VHDL -- тогда у вас автоматически выработается системный подход к разработке (который "от общего - к частному").
Книжек по этим языкам много. Правда, хороших книжек из них - мало (особенно, переведенных на русский). Так что, без Инглиш вам никуда.
Радует лишь то, что можно взять книжку начала 90-х годов и запросто учить по ней язык, т.к. данные языки не сильно поменялись с того времени.
Можно также попытаться выучить язык по книжке Xilinx или Altera.
Вот вам простенькая книжка по VHDL (сам когда-то с неё начинал) -- хотя бы какое-то представление получите:
"The VHDL cookbook" Peter J. Ashenden
2. Знание какой-нибудь системы разработки на базе этих языков.
а) Есть бесплатные от производителей чипов - Xilinx, Altera. Но чтобы ими как-то пользоваться, придётся, правда, раскошелиться на фирменный программатор (потому они и бесплатные).
Плюс этих систем в том, что они изначально подружены с соответствующим программатором и линейкой отладочных плат -- т.е. не будет проблем с интеграцией системы с железом.
Бонус - по ним есть книжки "для начинающих".
Какую из них выбрать -- без разницы, во всяком случае, для старта. Ответ, скорее, будет зависеть от п.3 (читай ниже).
б) Есть платные системы - от Mentor Graphics (ModelSim), Aldec (Active-HDL), Synopsys (VCS). Они гораздо покруче - поддерживают без глюков самые последние модификации языков, ну и всё такое.
Ну, разумеется, к ним есть демо-версии, а также их полные версии можно купить бесплатно на рутрекере (поторопитесь! пока этот сайт ещё не прикрыли)... но я вам этого не говорил!
Однако вот подружить эти системы с какой-то конкретной микросхемой может быть большой проблемой, особенно для начинающего.
Поэтому, для "домашнего" применения, их можно порекомендовать лишь в качестве виртуальных симуляторов -- очень хороших и полезных симуляторов.
в) Для самого-самого старта могу рекомендовать вот эту он-лайн среду (кстати, очень удобная):
http://www.edaplayground.com/Полный список - вот здесь:
https://en.wikipedia.org/wiki/List_of_HDL_simulators(V - значит Verilog, SV - System Verilog. Цифры - это год издания стандарта языка. Впрочем, вам достаточно будет и самой первой версии языка, если только она реализована без глюков)
Обратите внимание, что:
а) для изучения языка - вам лучше взять какой-нибудь симулятор, даже если он не способен генерировать (синтезировать) бинарник под конкретную микросхему, или если в вашем частном случае он не подружен с имеющейся отладочной платой
б) но для разработки устройства - вам потребуется именно синтезатор, даже если он не даёт расширенных возможностей в плане симуляции и юнит-тестирования
3. Безусловно потребуются программатор и какая-нибудь отладочная плата.
Отладочная плата архинужна, т.к. вряд ли у вас вот так прям сразу получится припаять многовыводного таракана, да ещё и запрограммировать его.
Соответственно, от того, какую плату удастся раздобыть, такую и надо под неё брать систему программирования, язык и т.д.
Плату ОЧЕНЬ рекомендую брать В КОМПЛЕКТЕ с (1) программатором и (2) соединительными кабельками + родной блок питания ----- иначе потом поимеете нереально много траблов.
И не поленитесь, прежде чем отдать деньги, почитать про неё в Инете -- возможно, что данная плата либо уже устарела (нет новых дров для программатора под винду), либо под неё вот ну нету бесплатной тулзы от производителя платы.
Лучше брать фирменную плату Xilinx или Altera + фирменный программатор.
Да, можно купить программатор от компании, которая занимается разработкой программаторов (например Digilent), но для старта я бы не рекомендовал связываться с таким тернистым путём.
Плату можно купить в терраэлектронике, например, или другом магазе, но весьма не дёшево.
С большой скидкой такую можно прикупить на авито -- их там продают добрые люди в категории "спионеренные железки".
// у меня - не спрашивайте
Удачи!