mirror of
https://github.com/MPSU/APS.git
synced 2025-09-15 17:20:10 +00:00
* WIP: APS cumulative update * Update How FPGA works.md * Перенос раздела "Последовательностная логика" в отдельный док * Исправление картинки * Исправление оформления индексов * Переработка раздела Vivado Basics * Добавление картинки в руководство по созданию проекта * Исправление ссылок в анализе rtl * Обновление изображения в sequential logic * Исправление ссылок в bug hunting * Исправление ссылок * Рефактор руководства по прошивке ПЛИС * Mass update * Update fig_10 * Restore fig_02
36 lines
881 B
Systemverilog
36 lines
881 B
Systemverilog
/* -----------------------------------------------------------------------------
|
|
* Project Name : Architectures of Processor Systems (APS) lab work
|
|
* Organization : National Research University of Electronic Technology (MIET)
|
|
* Department : Institute of Microdevices and Control Systems
|
|
* Author(s) : Andrei Solodovnikov
|
|
* Email(s) : hepoh@org.miet.ru
|
|
|
|
See https://github.com/MPSU/APS/blob/master/LICENSE file for licensing details.
|
|
* ------------------------------------------------------------------------------
|
|
*/
|
|
module vector_abs(
|
|
input logic [31:0] x,
|
|
input logic [31:0] y,
|
|
output logic [31:0] abs
|
|
);
|
|
|
|
|
|
logic [31:0] min;
|
|
logic [31:0] min_half;
|
|
|
|
max_min max_min_unit(
|
|
.a(x),
|
|
.b(y),
|
|
.max(max),
|
|
.min(min)
|
|
);
|
|
|
|
half_divider div_unit(
|
|
.numerator(min),
|
|
.quotient(min_half)
|
|
);
|
|
|
|
assign abs = max + min_half;
|
|
|
|
endmodule
|