Розробка цифрових засобiв ПЛРЖС в iнтегрованому середовищi проектування MAX+PLUS II

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?бляСФ всi вхiднi файли плинного проекту.

Процес компiляцiСЧ можна бачити у вiкнi компiлятора (рис. 5.1) в наступному виглядi:

  1. спустошуСФться i перевертаСФться пiсковий годинник, що вказуСФ на активнiсть компiлятора;
  2. висвiтлюються, за чергою, прямокутники модулiв компiлятора;
  3. пiд прямокутником модуля компiлятора зявляСФться пiктограма вихiдного файлу, що був генерований даним модулем;
  4. вiдсоток завершення компiляцiСЧ поступово збiльшуСФться (до 100%);
  5. пiд час розбиття та монтажу кнопка компiлятора Stop (Стоп) перетворюСФться в кнопку Stop/Show Status (Стоп/Показати стан), яку користувач може вибрати для вiдкриття дiалогового вiкна, в якому вiдображаСФться плинний стан розбиття i монтажу проекту;
  6. при виявленнi в процесi компiляцiСЧ будь-яких помилок або можливих проблем автоматично вiдкриваСФться вiкно обробника повiдомлень, в якому вiдображаСФться список повiдомлень про помилку, що попереджують та iнформацiйних повiдомлень, а також вiдразу даСФться довiдка по виправленню помилки. Крiм того, користувач може визначити джерела повiдомлень в файлах проекту або в його порiвневому планi призначень.

Рис. 5.1. Процес компiляцiСЧ проекту

Компiлятор системи автоматичного проектування MAX+PLUS II обробляСФ проект, використовуючи наступнi модулi та утилiти:

  1. екстрактор списку ланцюгiв (Compiler Netlist Extractor), що включаСФ програми для читання форматiв EDIF, VHDL, Verilog, XNF;
  2. будiвник бази даних (Database Builder);
  3. логiчний синтезатор (Logic Synthesizer);
  4. роздiльник (Partitioner);
  5. трасувальник (Fitter);
  6. екстрактор для функцiонального тестування (Functional SNF Extractor);
  7. екстрактор для тестування часових параметрiв (Timing SNF Extractor);
  8. екстрактор для тестування компонування (Linked SNF Extractor);
  9. програма для запису вихiдного файла в формат EDIF (EDIF Netlist Writer);
  10. програма для запису вихiдного файла в формат Verilog (Verilog Netlist Writer);
  11. програма для запису вихiдного файла в формат VHDL (VHDL Netlist Writer);
  12. модуль асемблера (Assembler);
  13. утилiта дiагностики проекту (Design Doctor Utility).

Модуль екстрактора форматiв (Compiler Netllist Extractor) перетворюСФ кожний файл проекту в один або декiлька двiйкових файлiв з розширенням .cnf (compiler netlist file). Оскiльки компiлятор пiдставляСФ значення всiх параметрiв, що використовуються в параметризованих функцiях, вмiст cnf-файлу може змiнюватись при послiдовнiй компiляцiСЧ, якщо значення параметрiв змiнюСФться. Даний модуль також створюСФ i файл iСФрархiчних взаСФмозвязкiв, з розширенням .hif (hierarchy interconnect file). В цьому файлi документуються iСФрархiчнi звязки мiж файлами проекту, а також iнформацiя, необхiдна для показу iСФрархiчного дерева у вiкнi тАЬHierarchy DisplayтАЭ. Крiм того, даний модуль створюСФ файл бази даних вузлiв з розширенням .ndb (node database), в якому мiстяться iмена вузлiв проекту для бази даних призначень ресурсiв.

Модуль будiвника бази даних (Database Builder) використовуСФ файл iСФрархiчних звязкiв для компонування створених компiлятором cnf-файлiв, в яких мiститься описання проекту. На основi даних про iСФрархiчну структуру проекту даний модуль копiюСФ кожний cnf-файл в одну базу даних без iСФрархiчноСЧ структури. Таким чином, ця база даних зберiгаСФ електричнi звязки проекту.

При створеннi бази даних модуль дослiджуСФ логiчну повноту та узгодженiсть проекту, а також перевiряСФ прикордоннi звязки i наявнiсть синтаксичних помилок. На цiй стадiСЧ компiляцiСЧ виявляСФться бiльшiсть помилок, якi можуть бути тут же легко виправленi. Кожний модуль компiлятора послiдовно обробляСФ i поновлюСФ цю базу даних.

Перший раз, коли компiлятор обробляСФ проект, всi файли проекту компiлюються. Користувач маСФ можливiсть обрати тАЬшвидку повторну компiляцiютАЭ (smart recompile) для створення розширеноСЧ бази даних проекту, що дозволяСФ прискорити наступнi компiляцiСЧ. Використовуючи можливiсть повноСЧ повторноСЧ компiляцiСЧ (total recompile), СФ можливiсть зробити вибiр мiж повторною компiляцiСФю лише тих файлiв, якi редагувались пiсля останньоСЧ компiляцiСЧ, i повною повторною компiляцiСФю.

Модуль логiчного синтезу (Logic Synthesizer) використовуСФ ряд алгоритмiв, що зменшуСФ використання ресурсiв i прибирають дубльовану логiку, забезпечуючи тим самим ефективне використання структури логiчного елемента для архiтектури цiлоСЧ родини пристроСЧв. Крiм того логiчний синтезатор шукаСФ логiку для не поСФднаних вузлiв. Якщо вiн знаходить такий вузол, вiн прибираСФ примiтиви, що вiдносяться до такого вузла.

Якщо проект не вмiщуСФться при монтажi в одному пристроСЧ, модуль роздiльника (Partitioner) роздiляСФ базу даних на декiлька ПЛРЖС однiСФю i тiСФ ж самоСЧ родини, намагаючись при цьому роздiлити проект на мiнiмальну кiлькiсть пристроСЧв.

Використовуючи базу даних, поновлену модулем розбиття, модуль трасування (Fitter) приводить у вiдповiднiсть вимоги проекту з вiдомими ресурсами одного або декiлькох пристроСЧв. Вiн призначаСФ кожнiй логiчний функцiСЧ положення логiчного елемента, що СЧСЧ реалiзуСФ та обираСФ вiдповiднi шляхи взаСФмозвязкiв i призначень виводiв.

Екстрактор для функцiонального тестування (Functional SNF Extractor) створюСФ файл для функцiонального тестування з розширенням .snf. Компiлятор генеруСФ цей файл перед синтезом проекту, вiн мiстить всi вузли, що присутнi в початкових файлах проекту.

Екстрактор для тестування часових параметрiв (Timing SNF Extractor) створюСФ, якщо компiляцiя проекту пройшла без помилок, файл для тестування часових параметрiв, що мiстить данi про часовi параметри проекту. Розширення файлу також - .snf.

Екстрактор для тестування компонування (Linked SNF Extractor) створюСФ файл (.snf) для тестування к