ЛР13. Обновление тб и порядка выполнения задания

This commit is contained in:
Andrei Solodovnikov
2024-07-28 12:00:35 +03:00
parent ee071a541c
commit 124b37c1a4
4 changed files with 164 additions and 137 deletions

View File

@@ -0,0 +1,42 @@
/* -----------------------------------------------------------------------------
* 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 peripheral_pkg;
localparam DMEM_ADDR_HIGH = 8'h00;
localparam SW_ADDR_HIGH = 8'h01;
localparam LED_ADDR_HIGH = 8'h02;
localparam PS2_ADDR_HIGH = 8'h03;
localparam HEX_ADDR_HIGH = 8'h04;
localparam RX_ADDR_HIGH = 8'h05;
localparam TX_ADDR_HIGH = 8'h06;
localparam VGA_ADDR_HIGH = 8'h07;
localparam TIMER_ADDR_HIGH = 8'h08;
task automatic ps2_send_scan_code(input logic [7:0] code, ref logic ps2_clk, ref logic ps2_dat);
logic [11:0] data = {2'b11, !(^code), code, 1'b0};
for(int i = 0; i < 11; i++) begin
ps2_dat = data[i];
#15us;
ps2_clk = 1'b0;
#15us;
ps2_clk = 1'b1;
end
endtask
task automatic uart_rx_send_char(input logic [7:0] char, input logic [31:0] baudrate, ref logic tx);
logic [11:0] data = {2'b11, (^char), char, 1'b0};
for(int i = 0; i < 12; i++) begin
tx = data[i];
#(1s/baudrate);
end
endtask
endpackage