Що б змусило мене вибрати Verilog або VHDL над схематичним дизайном на CPLD або FPGA?


13

У мене абсолютно немає досвіду програмованої логіки, я використовую в основному мікроконтролери в своїх проектах, але останнім часом мені потрібно було працювати з відео, і мікроконтролер занадто повільний, що мені потрібно, тому я почав грати з CPLD.

Мені вдалося отримати хороші результати з CPLD лише за допомогою схематичного дизайну, але під час пошуку інформації про CPLD я натрапив на багато прикладів за допомогою VHDL та Verilog. Мені цікаво, що може змусити мене визначити свій пристрій однією з цих мов. Що вони можуть зробити, щоб схематична конструкція не могла? Вони використовуються здебільшого для функцій?

До цих пір я використовував лише CPLD, чи можуть проекти FPGA використовувати більше цих мов, ніж CPLD?


1
Ви, ймовірно, знайдете інструменти синтезу, що постачаються постачальниками як для Verilog, так і для VHDL для основних частин. Тому вибір - це суто думка. Я б закликав вас поглянути на обидва та вирішити, який ви віддаєте перевагу. Xilinx дає хороші приклади на обох мовах, я підозрюю, що і інші постачальники це роблять.
Девід

3
Ви обов'язково повинні відійти від схематичного захоплення для логічного проектування. На початку відчувається легше, але це ілюзорно. Мої $ 0,02 на мовах: VHDL - гидота, використовуйте Verilog.
Маркт

@markt, чому ти вважаєш, що VHDL так погано?
stanri

2
Можна також сказати, що Verilog - це гидота, використовуйте VHDL. VHDL очікує, що ти скажеш саме те, що ти хочеш, в той час як Verilog щось здогадується. Але це лише мої 0,02 фунта.
Брайан Драммонд

1
@markt, я почав з VHDL, тому в один момент я оцінив сильно типізованість. Це змусило мене думати про те, чого я хотів, і створити добрі звички, коли я починав. Тепер я занадто далеко в табір SystemVerilog, щоб занадто сильно піклуватися, чесно.
stanri

Відповіді:


14

Схематична конструкція корисна лише тоді, коли ви зв’язуєте разом декілька позаштатних модулів (лічильники, суматори, пам'ять тощо). Але реалізувати власне алгоритм (скажімо, алгоритм хешування криптографії) майже неможливо обійтися без HDL (наприклад, VHDL чи Verilog), оскільки немає способу описати систему на поведінковому рівні зі схематичними символами.

Більшість проектів виконуються в HDL-стилі поведінки, оскільки вони занадто складні, щоб їх синтезувати вручну та малювати схематично за допомогою логічних примітивів.

CPLD, як правило, використовуються для логіки клею і менше використовуються для обробки, і загалом логіку легко здійснити схематично, тому я думаю, що ви праві, коли ви припускаєте, що дизайни на основі FPGA більше виграють від використання HDL.


У символічній схематичній системі можна робити дуже складні речі. Я б пішов так далеко, щоб сказати, що все, що можна зробити в HDL, може бути реалізовано в схематичній системі, хоча і ціною ремонту. Поки набір інструментів може визначати блоки символів, які діють як єдиний символ, ви можете робити майже все, що завгодно.
Коннор Вольф

1
Одним з хороших прикладів тут є лабораторний огляд. Це символічний інтерфейс програмування, де люди розробили масово складні системи, що автоматизують цілі заводи. Кінцевий результат майже неможливий , але це можливо (зауважте: я не говорю про те, чи це гарна ідея, лише основна життєздатність).
Коннор Вольф

"Більшість проектів виконані в поведінковому стилі HDL ..." є непідтримуваним і насправді НЕ, як працюють потоки дизайну.
заповнювач місця

@ConnorWolf Доводиться не погоджуватися з приводу того, що код Labview є нездійсненним - не те, що я величезний шанувальник. Є кілька найкращих практик, які справді допомагають. Для мене, як правило, відмова від будь-якої надії на сумісність вперед або назад, що спричиняє проблеми з технічним обслуговуванням, на відміну від усього, що є властивим G-мові;)
Скотт Сейдман,

4

Кілька практичних аспектів на додаток до відмінної відповіді Джея:

  • Клопи. Схематичні інструменти, як правило, бугіші *, ніж решта набору інструментів. Можливо, це пов'язано з перевагою Verilog / VHDL перед схемами в галузі, і таким чином схематичні записи приділяються менше уваги розробниками програмного забезпечення.
  • Швидкість. Схему потрібно спочатку перетворити на HDL, перш ніж передавати її інструменту синтезу. Це може мати негативний вплив на час складання. Згенерований HDL також може бути не дуже читабельним, якщо у випадку, якщо вам знадобиться перевірити його з якихось причин.
  • Переносність. Залежно від кількості примітивів, специфічних для постачальника, Verilog та VHDL є більш-менш портативними між пристроями. Переносячи схеми, вам або доведеться перемальовувати все, або покладатися на надані можливості імпорту / експорту (якщо такі є).

* Моєю улюбленою помилкою в Xilinx ISE була неможливість вибору вертикальних проводів.


2

Є багато переваг HDL (Hardware Description Languages) як стандарту введення дизайну.

Опис функціональності може бути на більш високому рівні, конструкції на основі HDL можуть бути синтезовані в описі на рівні воріт вибраної технології, дизайн HDL легше зрозуміти, ніж мережевий список на рівні воріт або схематичний опис та HDL зменшити помилки через сильну перевірку типу.

Мови опису апаратних засобів VHDL і Verilog були розроблені для моделювання обладнання з метою моделювання на більш високому рівні абстракції, що включає такі функції, як паралельність, терміни, ієрархія, повторне використання компонентів, поведінка стану, синхронна поведінка, асинхронна поведінка, синхронізація та притаманний паралелізм .

Проблеми виникають під час синтезу, зіставлення опису проекту до конкретного процесу та впровадження воріт. Це вимагає, що ви не можете використовувати функції високого рівня ЛПВЩ - ви повинні створити "синтезований Verilog / VHDL"

Отже, у вас є HDL для синтезу та HDL для моделювання, а підмножина, яка синтезується, є специфічною для інструменту.

Ви не можете перейти від опису поведінкового дизайну до нетто-списку / макета. Але ви можете побудувати свій дизайн таким чином, щоб він містив компоненти поведінки, які також мають синтезований аспект, який можна порівняти один з одним. Ви починаєте з поведінкової поведінки, а потім, коли це працює, ви перепишете для синтезу (що є підмножиною). Ви переходите від загального до конкретного і будуєте тестові стенди по дорозі.


1

Ще однією перевагою є те, що HDL мають усі ті ж переваги, що і звичайні мови програмування, оскільки їх можна використовувати в стандартних системах управління версіями, різними для вивчення змін тощо.


0

На додаток до вже сказаного: подання тексту просто набагато зручніше, особливо у великих проектах. Ви можете (хоча і з величезними труднощами) перетворити будь-який синтезується HDL в схематичний, але сотні рядків простого тексту легше працювати, ніж сотні схематичних елементів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.