Files
APS/Labs/07. Datapath/alu_opcodes_pkg.sv
Andrei Solodovnikov 85883858ac Переработка лабораторных работ, связанных с памятью (#89)
* Переработка лабораторных работ, связанных с памятью

Существенно переработаны ЛР3 и ЛР7:

Из ЛР3 убрано задание реализовать память данных. Эта память
использовалась только студентами ИВТ и только в рамках одной лабы.
В итоге использовалась готовая память, и ничего не мешает использовать
ее с самого начала.

Задание по реализации памяти инструкций также претерпело изменения.
Теперь код памяти инструкций предоставляется сразу. Это объясняется тем,
что код модуля состоит в общем-то из 4х строк, на которые тратится
слишком много времени (с учетом добавления тестбенча и проверок).
Кроме того, использование готового кода позволяет дать модуль чуть
посложнее (с параметризацией размера).

По итогу правок, третья лабораторная работа превращается чисто в
лабораторную по написанию регистрового файла, что должно положительно
сказаться на кривой сложности лаб. После второй лабы происходит слишком
резкий скачок в объемах работы.

Соответственно, в связи с тем, что память данных больше не делается на
третьей лабе, дополнительная ЛР по памяти данных с byte enable
необходимо перенести до реализации тракта данных.

* ЛР3, 5, 6. Правки из ревью

* ЛР7. Добавление иллюстраций
2024-07-02 10:24:41 +03:00

38 lines
1.1 KiB
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.
* ------------------------------------------------------------------------------
*/
package alu_opcodes_pkg;
localparam ALU_OP_WIDTH = 5;
localparam ALU_ADD = 5'b00000;
localparam ALU_SUB = 5'b01000;
localparam ALU_XOR = 5'b00100;
localparam ALU_OR = 5'b00110;
localparam ALU_AND = 5'b00111;
// shifts
localparam ALU_SRA = 5'b01101;
localparam ALU_SRL = 5'b00101;
localparam ALU_SLL = 5'b00001;
// comparisons
localparam ALU_LTS = 5'b11100;
localparam ALU_LTU = 5'b11110;
localparam ALU_GES = 5'b11101;
localparam ALU_GEU = 5'b11111;
localparam ALU_EQ = 5'b11000;
localparam ALU_NE = 5'b11001;
// set lower than operations
localparam ALU_SLTS = 5'b00010;
localparam ALU_SLTU = 5'b00011;
endpackage