В этой статье я расскажу, как создать новый проект в среде Altera Quartus II, как его откомпилировать и как прошить плату Марсоход.
В предыдущей статье "Введение в Verilog, урок первый" я писал о простых "программах" на языке Verilog. Мы изучили простое понятие провод (wire) и регистр (reg). Я хочу сделать совсем простой проект - соединить проводами кнопочки и светодиоды на плате Марсоход. Чтоб было не совсем скучно, добавим совсем простую логику в наш проект - две логические функции И и ИЛИ.
Соединить проводами - это не значит, что мы будем что-то паять. Мы напишем "программу" на языке Verilog, откомпилируем ее средствами среды разработки Quartus II и зашьем в плату Марсоход.
Вот какая у меня будет программа на Verilog:
module test_wires(
input wire key0,
input wire key1,
input wire key2,
input wire key3,
output wire led0,
output wire led1
);
assign led0 = key0 & key1;
assign led1 = key2 | key3;
endmodule
Светодиод led0 будет гореть если от кнопочек key0 И key1 будет приходить сигнал единица.
Светодиод led1 будет гореть если от кнопочек key2 ИЛИ key3 будет приходить сигнал единица.
Посмотрим, что у нас получится (внимание траффик - более 30 картинок - очень подробная инструкция).
Шаг 1.
Запускаем среду разработки Altera Quartus II Web Edition и выбираем пункт меню File/New Project Wizard. (Нажмите на картинку, чтобы посмотреть крупнее).
Шаг 2.
Вы видите начальный диалог мастера создания проекта. Этот диалог в несколько простых шагов поможет нам сделать наш первый проект. Сейчас нажмем кнопку Next - и пойдем дальше.
Шаг 3.
Сейчас нам нужно выбрать папку для нашего нового проекта и его название. Выберите себе любую пустую папку. Я назвал наш проект lesson1, вы можете использовать любое другое название.
Шаг 4.
Сейчас можно добавить в новый проект какие-то существующие файлы, модули, может быть из других проектов. Поскольку это наш первый проект, то пропускаем этот шаг. Нажимаем Next.
Шаг 5.
Вот здесь пожалуйста внимательнее. Нужно выбрать тип микросхемы CPLD или FPGA , для которой будет делаться проект. Конечно этот шаг тоже можно пропустить и сделать это назначение позже. Я предлагаю делать выбор сейчас. На плате Марсоход стоит микросхема ПЛИС (CPLD) EPM240T100C5. Вот ее и выбираем. После того, как выбрали - нажимаем Next.
Шаг 6.
Здесь можно выбрать дополнительные программные инструменты, например, для симуляции проекта, мы пропускаем этот шаг. Нажимаем кнопку Finish. Наш проект создан. Теперь нужно добавить в него файлы, описывающие логику проекта.
Шаг 7.
Заходим в меню File/New и видим вот такой диалог. Здесь нам нужно решить какой именно файл мы собираемся создать, какого типа. Вы можете выбрать Block diagram/Schematic file - тогда логику проекта будем рисовать в виде схемы. Запустится специальный графический редактор и можно будет вставить в проект разные логические элементы, триггера, регистры, счетчики, сумматоры, мультиплексоры и много еще чего. Потом все эти элементы соединяются проводками - они буквально "рисуются" в этом графическом редакторе. Очень удобно. Я расскажу об этом как нибудь в другой раз. Сейчас в этом диалоге мы можем выбрать создание файла на языках описания аппаратуры: AHDL, VHDL, Verilog и других. Я выбираю Verilog - пункт списка Verilog HDL File.
Шаг 8.
Вот наш новый файл создан! Здесь мы будем набирать текст нашей программы.
Шаг 9.
Вот я набрал текст программы и теперь нужно его сохранить в каком нибудь файле. По умолчанию сейчас имя файла Verilog1.v - его можно поменять на любое другое имя файла.
Шаг 10.
Выбираем пункт меню File/Save As.
Шаг 11.
Вот появился диалог позволяющий задать имя записываемого файла. Я предпочитаю давать имена файлов по названию модулей, описанных в них. Конечно это не обязательно, вы можете выбрать себе любое другое имя файла. Сейчас я хочу задать имя файла test_wires.v
Шаг 12.
Файл записан. Вы можете видеть наше имя файла на закладке.
Шаг 13.
Вот здесь пожалуйста внимательней. Сейчас мы скажем среде программирования Quartus II, что этот наш текущий файл test_wires.v является самым главным файлом проекта. Попробую объяснить. Проект всегда включает в себя самый главный модуль, который может включать в себя многие другие модули в других файлах. Сейчас мы явно скажем, кто у нас тут самый главный
. Заходим в меню Project/Set As Top Level Entity. Все - готово.
Шаг 14.
Пожалуй можно пробовать компилировать наш проект. Видите кнопочку треугольничек на панели инструментов?.Ну или можно зайти в меню Processing/Start Compilation.
Пожалуй перед компиляцией сделаем еще одну очень важную настройку нашего проекта.
Шаг 15.
Выберем пункт меню Assignments/Device. Здесь можно задать многие параметры компиляции проекта, связанные конкретно с чипом.
Шаг 16.
Появился вот такой диалог - на нем куча всяких настроек. Например можно выбрать тип микросхемы, для которой будет делаться компиляция проекта. Мы уже выбрали микросхему раньше. Сейчас можете проверить - должно быть EPM240T100C5. Нас же сейчас интересует кнопка Device and Pin Options. Нажмем ее.
Шаг 17.
Появился еще более страшный диалог. Не пугайтесь. Выбираем закладку Unused Pins.
Шаг 18.
Сейчас нам нужно сделать очень важную настройку. Мы должны сказать компилятору, что делать с неиспользуемыми ножками микросхемы. Поясню. В написанной нами программе всего 4 входа подключенных к кнопочкам, и два выхода, подключенных к светодиодам. Итого наш проект будет использовать 6 контактов микросхемы ПЛИС. А у нее, например всего 80 контактов, которые мы можем использовать по своему разумению. Компилятор подключит 6 контактов, а что делать с остальными? По умолчанию все неиспользуемые контакты микросхемы подключаются к нулю по питанию. Конечно все зависит от печатной платы, куда впаяна микросхема. Если на плате, например ошибочно, неиспользуемый контакт микросхемы подключен к питанию платы, то произойдет короткое замыкание. Не очень приятно. Что нибудь может сгореть на плате. Поэтому я всегда устанавливаю эту настройку. Я ставлю As input tri-stated. Это обозначает, что неиспользуемые входы будут входами с высоким входным сопротивлением. Это обезопасит микросхему и плату.
Шаг 19.
Вот теперь компилируем!
Шаг 20.
Мы видим, что проект успешно откомпилирован! Поздравляю! 
Тем не менее, это еще не все. Пожалуйста обратите внимание на Warnings - предупреждения, а особенно на Critical Warnings - критические предупреждения. Я вообще, всегда рекомендую внимательно читать предупреждения компилятора. Конечно, хорошо бы знать английский язык, но я думаю вы довольно быстро освоитесь. Посмотрим, что же нам выдал компилятор?
Шаг 21.
Читаем: "Critical Warning: No exact pin location assignments for 6 pins of a total 6 pins".
Это обозначает, что в проекте всего было 6 контактов и всем шести контактам не были сделаны назначения по расположению на чипе. На самом деле компилятор выполнил свою работу, но расположил контакты как попало, как ему было удобно. Так дело не пойдет. У нас уже есть плата Марсоход и кнопочки присоединены к конкретным ножкам микросхемы. Светодиоды так же подключены на плате. Точное расположение контактов нужно смотреть на схеме нашей платы
или в нашем документе . Нам нужно сказать компилятору куда подключать какую ногу микросхемы.Шаг 22.
Выберем пункт меню Assignments/Assignment Editor.
Шаг 23.
В открывшемся окне делаем нужные нам назначения согласно схеме нашей платы. В колонке To вписываем имя входа или выхода. В колонке Assignment Name выбираем из списка нужную нам настройку Location. В колонке Value вписываем номер контакта микросхемы - его смотрим в PIN OUT файле или на схеме платы.
Шаг 24.
Кроме назначения местоположения всех контактов нашего проекта нужно сделать еще одну важную настройку. Наши кнопочки подключены одним контактом к нашей ПЛИС, а вторым контактом к нулевому проводу (к земле). Таким образом, при нажатии кнопки, контакт микросхемы ПЛИС будет подключен к земле. А вот что будет, когда кнопка не нажата? Вход микросхемы будет болтаться неподсоединенный и это конечно плохо. Вход микросхемы нужно "притянуть" к напряжению питания резистором, чтобы не нажатая кнопка давала на входе микросхемы четкую логическую единицу. Можно было бы припаять такой резистор снаружи чипа - но не нужно. Микросхема ПЛИС позволяет по вашему желанию подключить внутренний резистор к любому входу. Именно это мы и сделаем. Мы назначаем всем входам проекта с именем key* настройку "Weak Pull Up resistor".
Вот теперь можете компилировать проект и все будет нормально!
Шаг 25.
После успешной компиляции проекта его можно зашить в чип платы Марсоход. Для этого запускаем программу программатора. Выберите пункт меню Tools/Programmer.
Шаг 26.
Вот так выглядит окно программатора на экране. Видите в левом верхнем углу "No Hardware" - похоже программатор еще не установлен. Подключите программатор к вашему ПК. Если у вас UsbBlaster, то нужно будет установить драйвера к нему. Они находятся в папке C:/Altera/91/Quartus/Drivers. Если у вас ByteBlaster (в том числе сделанный самостоятельно), то драйвера не нужны. Теперь нажмите кнопку Hardware Setup.
Шаг 27.
В открывшемся диалоговом окне выберите тип программатора, который у вас установлен.
Шаг 28.
Теперь нужно проставить нужные "галочки" в Program/Configure и Verify. Строка CFM имеет отношение к собственно программированию ПЛИС. Строка UFM имеет отношение к программированию флеш памяти внутри чипа ПЛИС. Их можно программировать по отдельности.
Колонка Verify обозначает проверить после прошивки.
Шаг 29.


Нужно подключить плату Марсоход к UsbBlaster и подать питание на плату.
Шаг 30.
Нажимаем в програматоре кнопку Start - и, все готово! Плата Марсоход прошита с только что откомпилированным проектом! Урра! 
После прошивки, подключаем питание и пробуем, что у нас получилось:
Обратите внимание, как все работает.
Прежде всего, у нас горят два светода, когда мы ничего не нажимаем. Как я уже говорил, не нажатая кнопочка обозначает логическую единицу на входе микросхемы. Входы притянуты внутренним резистором чипа к напряжению питания (Weak Pull-Up Resistors).
Левые две кнопки key3, key2 объединены в логическую функцию ИЛИ. Именно поэтому светодиод led1 гаснет только если нажать обе эти кнопки.
Правые две кнопки key1, key0 объединены в логическую функцию И. Именно поэтому светодиод led0 гаснет если нажать хотя бы одну кнопку.
Вот так это все работает.
Теперь у нас есть инструкция, по которой вы сможете создавать свои проекты. Возможно она показалась вам длинной и занудной. Может быть сложной. На самом деле, дальше будет гораздо проще. Если у вас будет хотя бы один готовый проект (а их у нас на сайте уже много), то достаточно просто открыть его и удалить лишнее. Очень много времени обычно уходит на разные настройки. Если брать готовые проекты за основу, то там все настройки уже сделаны и тратить время на это уже не нужно.






























Info: Running Quartus II Analysis & Synthesis
Info: Version 9.1 Build 350 03/24/2010 Service Pack 2 SJ Web Edition
Info: Processing started: Fri Nov 07 14:22:52 2025
Info: Command: quartus_map --read_settings _files=on --write_setting s_files=off l1 -c l1
Info: Found 1 design units, including 1 entities, in source file test.v
Info: Found entity 1: test_wires
Error: Top-level design entity "test" is undefined
Error: Quartus II Analysis & Synthesis was unsuccessful. 1 error, 0 warnings
Error: Peak virtual memory: 212 megabytes
Error: Processing ended: Fri Nov 07 14:22:53 2025
Error: Elapsed time: 00:00:01
Error: Total CPU time (on all processors): 00:00:00
Error: Quartus II Full Compilation was unsuccessful. 3 errors, 0 warnings
но меню пункт "Set As Top Level Entity" не срабатывает.
Что посоветуете?
А какая у вас плата и какая FPGA?
Попробуйте убрать в назначениях пулапрезистор.
Похоже , в вашем чипе на этой ноге такой детали нет.
Поиск по номеру ошибки привел меня лишь сюда: alteraforum.com/.../... . Не помогло. Подскажите, пожалуйста, как с недугом справиться. Заранее спасибо.
Такая же ерунда. Все время работал с квартусом из под виндовс, Всегда все компилировалось , небыло проблем. По работе пришлось поставить на комп линукс, поставил квартеус, и на всех версиях квартуса вылетает эта ошибка:
Error: Peak virtual memory: 323 megabytes
Перепутать язык модуля я точно не мог.
Module: quartus_map.exe
Stack Trace:
0x258e4: GEN_MACHINE_INF O::get_cache_si ze + 0x3b4 (CCL_GEN)
End-trace
Error (10500): VHDL syntax error at 2.vhd(1) near text "module"; expecting "entity", or "architecture", or "use", or "library", or "package", or "configuration"
Info (12021): Found 0 design units, including 0 entities, in source file 2.vhd
Error: Quartus II 64-Bit Analysis & Synthesis was unsuccessful. 1 error, 1 warning
Error: Peak virtual memory: 649 megabytes
Error: Processing ended: Mon Feb 16 03:34:22 2015
Error: Elapsed time: 00:00:48
Error: Total CPU time (on all processors): 00:00:42
Error (293001): Quartus II Full Compilation was unsuccessful. 3 errors, 1 warning
:-|
может проблема с ПК? память битая или еще что?
Module: quartus_map.exe
Stack Trace:
0x258e4: GEN_MACHINE_INF O::get_cache_si ze + 0x3b4 (CCL_GEN)
End-trace
~~~~~~~~~~~~~~~~~~~~~~~~~~
Поставил другой квартус. При компиляции любого проекта выскакивает уже другая ошибка(((( ставил на другую машину работает все отлично!!!
я думаю это просто баг в квартусе.
Module: quartus_map.exe
Stack Trace:
0x20eb: gen_get_usec_wa llclock + 0x5b (CCL_GEN)
0x6179: GEN_STOPWATCH:: start + 0x19 (CCL_GEN)
0x12473: QTL_PROFILER::Q TL_PROFILER + 0xe3 (ccl_qtl)
0xfcb4: qexe_get_tcl_su b_option + 0xe54 (comp_qexe)
0x133a7: qexe_process_cm dline_arguments + 0x5b7 (comp_qexe)
0x134a1: qexe_standard_m ain + 0x71 (comp_qexe)
0x1a18: msg_exe_fini + 0xf8 (CCL_MSG)
0x19bc: msg_exe_fini + 0x9c (CCL_MSG)
0xa290: operator new[] + 0x130 (ccl_mem)
0x344d4: msg_exe_main + 0x74 (CCL_MSG)
0x159ec: BaseThreadInitT hunk + 0xc (kernel32)
0x2c540: RtlUserThreadSt art + 0x20 (ntdll)
End-trace
///////////////////////////////////////////////////////////
при компиляции вот что происходит((( кто знает с чем связанно???
Когда нажимаю кнопку AUTO Detect, то в окне появляется строка EPM240, строки CFM и UFM по прежднему отсутствуют.
Удается только выполнить Erase chip, а прошить ПЛИСку не получается.
Использую Quartus 11.1, программатор – MBFTDI.
Попробовал прошить плиску «почти пустым проектом», все прошло нормально.
________________________________________
Такая же фигня!!. Но только на Марсоходе2
строки CFM и UFM отсутствуют, но ПЛИСИНА прошивается и пока питание от USB есть все работает.
Выдергиваю USB шнурок, подключаю по новой и о чудо ПЛИСИНА забыла все!
Пробовал версии Quartus II(Web Free) 13 и 11.1 Sp2, не помогает.
Попробовал прошить проекты из под 13 версии для Марса 1 - все работает.
Наверняка какая то мелочь, но не вижу.
Никто еще не сталкивался с этой проблемой? Если кому то удалось её решить, поделитесь пожалуйста информацией, почему отсутствуют строки с определением ПЛИС
Посмотрите сами или пришлите нам файл *.asm.rpt
Когда нажимаю кнопку AUTO Detect, то в окне появляется строка EPM240, строки CFM и UFM по прежднему отсутствуют.
Удается только выполнить Erase chip, а прошить ПЛИСку не получается.
Использую Quartus 11.1, программатор – MBFTDI.
Попробовал прошить плиску «почти пустым проектом», все прошло нормально.
Подскажите, пожалуйста, где ошибка.
О! Разобрался! Там просто надо насильно вписывать PIN_xx :D Куча предупреждений конечно при компиляции... Но всё-же запуслилось! И кстати, на плате Марсоход-2 ну никак не хочет компилироваться , если делать так:
"Мы назначаем всем входам проекта с именем key* настройку "Weak Pull Up resistor"."
s2.ipicture.ru/.../...
Помогите пожалуйста, ато застрял :-|
неплохо было бы обратить на это внимание в обучалке - я находил 3 обучалки (вместе с вашей) и нигде это не описано...
Возможно имя файла top level не совпадает с именем модуля top level
Делаю проект по вашей инструкции
назначаю главный файл проекта:
s40.radikal.ru/.../... radikal.ru/.../...
но при компиляции все равно получаю ошибку:
s017.radikal.ru/.../... radikal.ru/.../...
в чем дело ?
Quartus II версия 9.2 SP2
"PIN 1" написано на шлейфике (на последней фотографии видно). Неправильно включали много раз, ничего не ломалось, просто не работало.
Для назначения свойств пина можно использовать Assignment Editor.
"шаг 22"
Проблема в том что тут PinPlaner, немного отличается от той которая приведена тут, а именно отсутствует колонка "Assignment Name" соответственно и подтяжку не могу сделать. Как быть, или я чего-то недопонимаю? Спасибо
Нашел в чём причина, оказывается когда делал project/set as top-level entity он именем главного проекта делал название файла (у меня файл называется test_main, а модуль test_wire)... потом зашёл в assigments/sett ins/general/ и там где написано top-level entity (это строка такая) жмакал кнопку "..." вылазеет оккошко с названием Select Entity, так вот в этом окошке есть мой модуль (test_wire), выбрал его жмакнул Ок, скомпилил всё заработало.... Получается если для задания главного модуля пользоваться project/set as top-level entity надо чтоб файл и модуль имели одно имя...а лучше всегда файлу и модулю задавать одно и тоже имя.
Тожже самое...может это чет из-за лицензии?...
откройте ваш файл, зайдите в меню Project и выберите Set As Top-Level entity
Info: *******************************************************************
Info: Running Quartus II Analysis & Synthesis
Info: Version 11.0 Build 157 04/27/2011 SJ Web Edition
Info: Processing started: Thu Sep 01 16:16:10 2011
Info: Command: quartus_map --read_settings _files=on --write_setting s_files=off 2 -c 2
Warning: Parallel compilation is not licensed and has been disabled
Info: Found 1 design units, including 1 entities, in source file 2.v
Info: Found entity 1: test_wire
Error: Top-level design entity "2" is undefined
Error: Quartus II Analysis & Synthesis was unsuccessful. 1 error, 1 warning
Error: Peak virtual memory: 247 megabytes
Error: Processing ended: Thu Sep 01 16:16:11 2011
Error: Elapsed time: 00:00:01
Error: Total CPU time (on all processors): 00:00:01
Спасибо за быстрый ответ, до Вашей ссылки еще не дошел.
В MAX2 могут быть только "Pull Up".
Более подробно все свойства пинов описаны здесь:https://m arsohod.org/11- blog/145-quartu ssch
Горд собой безмерно ;)
info
может проблема с назначениями?
не могли бы Вы прислать весь получившийся проект?
Могу только сказать спасибо за то, что написали этот комментарий. Теперь одним вопросом меньше, возможно другие читатели не повторят это ошибку. Ура!
Для тех, кто будет читать эту эпопею с фантомными эррорами.
Все проблемы с error code 44 и другими решились следующим образом:
исправил неправильное подключение источника питания на правильное. Был перепутан плюс с минусом.
Вот так..
P.S. это был тройной бокс от фонарика. Можете кидать тухлыми яйцами)
P.P.S. Спасибо за поддержку.
там "1" или "0". Если "1", то нужно разбираться с
компьютером, если "0" , то попробуй отпаять проводок
от штырька и померить именно на проводке.
если снова "0" то неисправен LPT, если "1" то нужно
разбираться с чипом.
1) Почему такое происходит и что можно сделать?
2) Цитирую Ю р ий:
Как это сделать (где земля?) ? И для чего это нужно?
3) Ю р ий,
Цитирую Ю р ий:
Подробнее, если можно. Какова цель этого действия, какой светодиод (напряжение).
LPT к JTAG подсоединён верно, сейчас аккуратно подпаяны проводки LPT прямо на штырьки разъёма.
Проблема та же -
Цитирую Kerio:
Цитирую Kerio:
Похоже он и так на земле- "might be shorted to GND".
Пробуешь с отключенным разъемомм? если нет,
попробуй отключить и повторить эксперимент.
Можно , при отключенном разъеме, между TDI и TCK
воткнуть светодиод , плюсом (анодом) к TDI.
При нажатии на "Auto Detect" он должен моргать.
Нажимаем AutoDetect и видим MessageBox:
Unable to scan device chain. Can't scan JTAG chain. Do you want to open the JTAG Chain Debugger to troubleshoot the JTAG chain?
Нажимаем Да, открывается дебаггер, в логе:
!Info: Please wait ...
!Error: JTAG chain problem detected
!Error: No device detected
!Error: The TDO connection to the download cable might be shorted to GND or is an open circuit
!Error: The TCK and TMS connections to the last device might have problem
Т.е., как я понимаю, к JTAG-у не может подключиться программатор квартуса. Что бы сделать такого. Замкнуть TDO на землю, в смысле? TDOGND1 или GND2 соединить?
Попробуй нажать не "Start", а "Auto Detect"
и запустить дебагер. Если получится, внимательно
почитай что он пишет. Попробуй позамыкать TDO на
землю.
странная проблема, которую мы не можем повторить у себя. Похожее было у "eungene" - он тоже писал про error 44, но чем у него дело закончилось не знаю
При нажатии Start в окне программатора в логах квартуса 9.1 пишется
Error: Can't access JTAG chain
Error: Unexpected error in JTAG server -- error code 44
Error: Operation failed
То же самое в др. проектах, попробовал на игре "Волк-коза-капу ста" из раздела проектов.
Может, с кабелем что-то не то.. Спаян точно правильно, может на самих контактах разъёма, что на JTAG одевается, что-то не так
В меню Assignments->Se ttings потом в диалоге Timing Analysis Settings можно переключать режимы временного анализатора.
Но все равно как-то странно. Только что пробовал 10й Quartus - таких сообщений не видел
в котором есть только проводочки, и нет
микросхем, дополнительных источников питания и т.д.
то спалить нельзя. На выходе LPT порта нет сигналов,
способных причинить вред входам или выходам чипа,
куда-бы они небыли подключены.
Дошёл до 30 шага, нажимаю Start в окне программатора и компилятор выдаёт:
Error: Can't access JTAG chain
Error: Unexpected error in JTAG server -- error code 44
Error: Operation failed
Что может означать?
marsohod.org/.../programmer
Win XP
При компиляции получаю:
Info: You have a valid up-to-date license
Info: You have a valid up-to-date license
Error: Selected feature of TimeQuest Timing Analyzer is not available with your current license, or license does not exist
Info: You have a valid up-to-date license
Error: Current module quartus_asm ended unexpectedly
Error: Quartus II Full Compilation was unsuccessful. 2 errors, 0 warnings
В гугле нашёл только совет
in case you are using an older version of Quartus II, you can try to disable the TimeQuest Timing Analyzer.
Go to -> Assignments -> Settings -> Time Analysis Settings and switch to Classic Timing Analyzer
Time Analysis Settings в опциях нет
s002.radikal.ru/.../...
Цитирую Denis:
Цитирую nckm:
Windows сам не видит ByteBlaster. Его должен показывать Quartus в том диалоге как в "Шаг27".
Как вообще происходит его определение? Когда я подключаю его - в винде новое оборудование не определяется, то же самое если произвести обновление списка оборудования в ручную. Каким образом оборудование должно определиться в Quartus II?
хм.. честно говоря никогда не пробовал в xp64. чтобы проверить как оно работает в xp64 может понадобится несколько дней
Может мне кто-нибудь помочь справиться?
При желании, можно припаять проводок к USB-разъему,там есть 5В.
USBBlaster можно купить например в www.icgamma.ru/ примерно 70$ или у нас вместе с платой Марсоход.
USBBlaster + Марсоход = 3100 рублей
нашел
пересобрал проект
заработало
жду следующих уроков!
А где посмотреть что модуль стал top-level?
откройте ваш проект и ваш файл (вероятно lesson1_test_wi res.v?) Затем зайдите в меню "Project" и почти в самом низу выпадающего меню будет пункт "Set As Top Level Entity" - это действие скажет квартусу какой модуль является top-level
Дает ошибки:
Error: Top-level design entity "lesson1_test_w ires" is undefined
Error: Quartus II Analysis & Synthesis was unsuccessful. 1 error, 0 warnings
Error: Peak virtual memory: 167 megabytes
Error: Processing ended: Sat Jul 10 23:38:59 2010
Error: Elapsed time: 00:00:01
Error: Total CPU time (on all processors): 00:00:01
Error: Quartus II Full Compilation was unsuccessful. 3 errors, 0 warnings