Я новичок в проектировании оборудования с использованием System Verilog, поэтому пытаюсь скомпилировать очень простой файл: D-триггер. он состоит из следующего кода (взято из https://www.chipverify.com/verilog/verilog-modules):
//examples of module declaration
//here i will make a very simple d flip flop
//declaring a new component that will contain some logic
module dff(input d, input clk, input rstn, output reg q);
always @ (posedge clk)
begin
if (!rstn)
q <= 0;
else
q <= d;
end
endmodule
Всякий раз, когда я иду компилировать, я получаю ошибку
Error (12007): Top-level design entity "basics_of_verilog" is undefined
Это имеет смысл. Поскольку мой модуль «DFF» называется совершенно иначе, чем объект верхнего уровня, который я объявил при создании проекта.
Однако я не могу сделать DFF новым объектом верхнего уровня. Поскольку кнопка, позволяющая это сделать, неактивна. (https://i.sstatic.net/aFfC1.png)
Я никогда такого раньше не видел, может кто-нибудь сказать мне, что именно здесь происходит? Я ломал голову над этим несколько минут.
Я уже пытался найти ошибку в Google, но, похоже, я первый человек в истории человечества, который столкнулся с этой ошибкой (за это я должен получить Нобелевскую премию).
Ваш скриншот скрывает все детали инструмента. У вас есть несколько файлов в проекте и вы пытаетесь сделать «dff.sv» верхним модулем? Если да, то рядом с «Иерархией» есть вкладка «Файлы», на этой вкладке вы увидите все файлы проекта. Щелкните правой кнопкой мыши файл и выберите «Установить как верхний модуль», инструмент должен это позволить. или поделитесь другим скриншотом, я укажу, где находятся вкладки
Я нашел решение.
По какой-то причине возможность сделать текущий файл проекта иерархией верхнего уровня, выбрав проект > «Установить как объект верхнего уровня», иногда недоступна.
Я обошел это, выполнив следующие действия: зайдите в окно навигатора проекта, затем выберите раскрывающийся список «Иерархия». https://snipboard.io/2CyP4r.jpg затем щелкните правой кнопкой мыши файл, который вы хотите установить в качестве иерархии верхнего уровня, и выберите «Установить как объект верхнего уровня» https://snipboard.io/4kLheM .jpg
Это исправило ситуацию. Респект Тушару за предоставление этого решения!
Я рад, что вы решили свою проблему; однако ваше решение не отвечает на опубликованный вопрос Why is "Set as Top-Level Entity" grayed out in quartus?
Похоже, вы говорите, что ответ на опубликованный вопрос — For some reason
.
Причина, по которой он стал серым, до сих пор неизвестна. И, честно говоря, это не имеет смысла, поскольку вы все равно можете установить его как объект верхнего уровня через навигатор проекта.
я попытался реализовать однобитный сумматор, используя следующий источник: web.engr.oregonstate.edu/~traylor/ece474/beamer_lectures/… однако возникает та же проблема. не могу установить как объект верхнего уровня.