Цифровий дизайн не має багато спільного з розробкою програмного забезпечення (можливо, за винятком того, що синтаксис Verilog трохи схожий на мову C, але він просто виглядає). Тому дуже важко відповісти на таке питання. Але, як хлопець, який пройшов шлях від розробки програмного забезпечення до дизайну апаратних засобів, я зроблю це. Озираючись на себе, ось як я б тоді радив собі, якби знав, що зараз знаю:
Починати з нуля
Забудьте про все, що стосується розробки програмного забезпечення. Особливо мови програмування. Ці принципи не застосовуються в цифровому дизайні. Хлопець, який розробив ЦП, зможе запрограмувати його на асемблері чи навіть на С, але програміст з асемблера не зможе розробити процесор.
На вашому навчальному шляху не прагнете вирішити те, що здається легкою проблемою з наявними знаннями з програмного забезпечення. Один з класичних прикладів - це «для циклу». Незважаючи на те, що ви можете написати цикл для, скажімо, verilog - він служить для інших цілей. В основному використовується для генерації коду. Це може бути і циклом, як розробники програмного забезпечення бачать це, але це не буде корисним для нічого, крім моделювання (тобто ви не зможете програмувати FPGA так).
Тому для кожного завдання, яке ви хочете вирішити, не думайте, що ви знаєте, як це зробити, замість цього робіть дослідження - перевіряйте книги, приклади, запитуйте досвідченіших людей тощо.
Вивчіть апаратну та HDL мову
Найпопулярніші мови HDL - це Verilog та VHDL. Існують також специфічні для продавця такі, як AHDL (Altera HDL). Оскільки ці мови використовуються для опису апаратних компонентів, всі вони в значній мірі використовуються для вираження одних і тих же речей аналогічно, але з іншим синтаксисом.
Деякі люди рекомендують вивчати Verilog, оскільки він схожий на C. Так, його синтаксис - це суміш C та Ada, але це не спрощує розробника програмного забезпечення нахилятися. Насправді, я думаю, це може навіть погіршити, оскільки виникне спокуса написати C у Verilog. Це хороший рецепт дуже поганого проведення часу.
Маючи це на увазі, я рекомендую дивитися з VHDL. Хоча Verilog також нормальний, якщо вищезгадане враховано.
Важливо пам’ятати, що ви повинні розуміти, що ви виражаєте цією мовою. Яке апаратне забезпечення «описується» та як воно працює.
З цієї причини я б рекомендував вам придбати собі книгу з електроніки взагалі та хорошу книгу на кшталт цієї - HDL Chip Design (він же - синя книга).
Отримайте тренажер
Перш ніж почати робити що-небудь технічне та використовувати будь-які функції, що стосуються постачальника тощо, знайдіть собі тренажер. Я починав з Verilog, і використовував Icarus Verilog разом з GTK Wave. Це безкоштовні проекти з відкритим кодом. Виконайте приклади, які ви бачите в книгах, практикуйте, створюючи власні схеми, щоб відчути смак.
Отримайте дошку розвитку
Коли ви відчуваєте, що йдете вперед, знайдіть дошку розвитку. Якщо ви знаєте, що ваш роботодавець хоче поїхати з решіткою, то отримайте решітчату дошку.
Методи програмування дуже схожі, але є деталі, які відрізняються. Наприклад, різні інструменти, різні варіанти, різні інтерфейси. Зазвичай, якщо у вас є досвід роботи з одним постачальником, переключитись не важко. Але ви, мабуть, хочете уникнути цієї додаткової кривої навчання.
Я також переконався, що дошка постачається з компонентами, які ви плануєте використовувати або розширювати. Наприклад, якщо ви хочете створити такий мережевий пристрій, як маршрутизатор, переконайтеся, що на платі є Ethernet PHY, або вона може бути розширена через, скажімо, роз'єм HSMC тощо.
Дошки зазвичай мають хорошу довідку, керівництво користувача та приклади дизайну. Вивчіть їх.
Читати книги
Вам потрібно буде читати книги. У моєму випадку у мене не було друзів, які знали цифровий дизайн, і цей сайт не був дуже корисним ні через одну просту річ - я навіть не знав, як сформулювати своє запитання. Все, що я міг придумати, виглядав на кшталт "Гм, хлопці, є річ dcfifo, і я чув щось про проблеми переходу доменних годин, що це таке, і чому мій дизайн не працює?".
Я особисто почав з цього:
Постачальники FPGA мають безліч кулінарних книг з найкращими методами. Вивчіть їх разом із еталонними конструкціями. Ось, наприклад , від Altera.
Поверніться з більш конкретними питаннями
Поки ви переглядаєте свої книги, моделюєте дизайн, блимаєте деякими світлодіодами на вашій дошці розвитку, у вас, швидше за все, виникне багато питань. Переконайтесь, що ви не бачите відповіді на відповіді на наступній сторінці книги чи в Інтернеті (тобто на форумі, що відповідає специфічній ґратці), перш ніж запитати їх тут.