From 530aeb2b13d0ab6337703c417b87b298e89f3ea6 Mon Sep 17 00:00:00 2001 From: Andrei Solodovnikov Date: Tue, 28 Oct 2025 15:31:29 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D1=83=D0=B1=D0=BB=D0=B8=D1=80?= =?UTF-8?q?=D1=83=D1=8E=D1=89=D0=B5=D0=B3=D0=BE=D1=81=D1=8F=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BA=D1=81=D1=82=D0=B0=20=D0=B2=20=D0=B4=D0=BE=D0=BA=D1=83?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=82=D0=B5=20"=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=B4=D0=B6=D0=B5=D1=80=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82?= =?UTF-8?q?=D0=B0"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Vivado Basics/03. Project manager.md | 65 ---------------------------- 1 file changed, 65 deletions(-) diff --git a/Vivado Basics/03. Project manager.md b/Vivado Basics/03. Project manager.md index f0712c8..d499fc0 100644 --- a/Vivado Basics/03. Project manager.md +++ b/Vivado Basics/03. Project manager.md @@ -253,71 +253,6 @@ _Рисунок 9. Выбор модуля верхнего уровня (пок Обратите внимание на то, как строится иерархия проекта. Модули, являющиеся объектами других модулей "вложены" в эти модули. Причем в иерархии проекта сперва указывается имя объекта модуля, затем через двоеточие имя самого модуля. В скобках указывается имя файла, где модуль описан. Модуль, который не содержится в других модулях, не имеет имени объекта модуля (т.к. нет сущности, которая бы этот объект создавала). Если модуль будет содержать несколько объектов одного и того же модуля, в иерархии будут отображены все эти объекты — именно поэтому нужно понимать, чем иерархия модулей отличается от дерева файлов. Несмотря на то, что модуль описан всего в одном файле, в иерархии проекта может встречаться несколько экземпляров одного и того же модуля. -Добавьте в `Simulation Sources` файл `tb_vector_abs`, содержимое которого представлено в _листинге 4_. - -```Verilog -module tb_vector_abs(); - -logic [31:0] a; -logic [31:0] b; -logic [31:0] res; - -vector_abs dut( - .x(a), - .y(b), - .abs(res) -); -integer err_count = 0; - -task check_result(input logic [31:0]a, b, res); -begin : check_result - reg [31:0] ref_res; - ref_res = a < b? a/2 + b : a + b/2; - if (res !== ref_res) begin - $display("Incorrect res at time %0t:", $time); - $display("a = %0d, b = %0d", a, b); - $display("design res = %0d", res); - $display("reference res = %0d", ref_res); - $display("------------------"); - err_count = err_count + 1'b1; - end -end -endtask - -initial begin : test - integer i; - $timeformat(-9,0,"ns"); - a = 0; b = 0; - #5; - check_result(a,b,res); - - - a = 1; b = 1; - #5; - check_result(a,b,res); - - a = 3; b = 4; - #5; - check_result(a,b,res); - - - for(i = 0; i < 100; i=i+1) begin - a = $random()&32'hff; b = $random()&32'hff; - #5; - check_result(a,b,res); - end - - $display("Test has been finished with %d errors", err_count); - if(err_count == 0) begin - $display("SUCCESS!"); - end - $finish(); -end -endmodule -``` - -_Листинг 4. Описание модуля tb\_vector\_abs._ - #### Ошибки иерархии В случае, если при создании какого-либо из файлов вы ошиблись с папкой назначения (добавили файл, предназначенный для `Design Sources` в `Simulation Sources` или наоборот), вы можете перенести этот файл в нужную папку без необходимости его удаления и повторного добавления. Для этого кликните по нужному файлу правой кнопкой мыши и выберите `Move to Design/Simulation sources` (см. _рис. 10_).