mirror of
https://github.com/MPSU/APS.git
synced 2025-09-16 09:40:10 +00:00
ЛР11. Добавление тестбенча
This commit is contained in:
@@ -19,6 +19,6 @@
|
|||||||
|
|
||||||
1. Интегрируйте модули `csr_controller` и `irq_controller` в модуль `riscv_core`.
|
1. Интегрируйте модули `csr_controller` и `irq_controller` в модуль `riscv_core`.
|
||||||
1. Обратите внимание, что что в модуле `riscv_core` появились новые входные и выходные сигналы: `irq_req_i` и `irq_ret_o`. Эти сигналы должны быть использованы при подключении `riscv_core` в модуле `riscv_unit`.
|
1. Обратите внимание, что что в модуле `riscv_core` появились новые входные и выходные сигналы: `irq_req_i` и `irq_ret_o`. Эти сигналы должны быть использованы при подключении `riscv_core` в модуле `riscv_unit`.
|
||||||
1. На вход `irq_req_i` пока что необходимо подать `32'd0` (в следующей лабораторной это будет изменено).
|
1. Ко входу `irq_req_i` должен быть подключен провод `irq_req`, другой конец которого пока не будет ни к чему подключен (в следующей лабораторной это будет изменено).
|
||||||
2. При подключении сигнала `irq_ret_o` можно ничего не указывать (до следующей лабораторной к нему ничего не будет подключено).
|
2. К выходу `irq_ret_o` необходимо подключить провод `irq_ret`, который также пока не будет использован.
|
||||||
2. После интеграции модулей, проверьте процессорную систему с помощью программы из ЛР10 с помощью предоставленного тестбенча.
|
2. После интеграции модулей, проверьте процессорную систему с помощью [программы](irq_program.txt), текст которой был представлен в ЛР10 с помощью предоставленного [тестбенча](tb_irq_unit.sv).
|
||||||
|
39
Labs/11. Interrupt integration/irq_program.txt
Normal file
39
Labs/11. Interrupt integration/irq_program.txt
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
00004137
|
||||||
|
FFC10113
|
||||||
|
00000193
|
||||||
|
00100293
|
||||||
|
30429073
|
||||||
|
04400293
|
||||||
|
00028293
|
||||||
|
30529073
|
||||||
|
000022B7
|
||||||
|
FFC28293
|
||||||
|
34029073
|
||||||
|
00100293
|
||||||
|
0051A023
|
||||||
|
00000313
|
||||||
|
00000393
|
||||||
|
00000073
|
||||||
|
00000063
|
||||||
|
340292F3
|
||||||
|
0062A023
|
||||||
|
0072A223
|
||||||
|
34202373
|
||||||
|
100003B7
|
||||||
|
01038393
|
||||||
|
00731A63
|
||||||
|
0001A383
|
||||||
|
00338393
|
||||||
|
0071A023
|
||||||
|
0200006F
|
||||||
|
00200393
|
||||||
|
00731C63
|
||||||
|
34102373
|
||||||
|
00032383
|
||||||
|
00430313
|
||||||
|
34131073
|
||||||
|
0040006F
|
||||||
|
0002A303
|
||||||
|
0042A383
|
||||||
|
340292F3
|
||||||
|
30200073
|
49
Labs/11. Interrupt integration/tb_irq_unit.sv
Normal file
49
Labs/11. Interrupt integration/tb_irq_unit.sv
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Company: MIET
|
||||||
|
// Engineer: Andrei Solodovnikov
|
||||||
|
//
|
||||||
|
// Create Date:
|
||||||
|
// Design Name:
|
||||||
|
// Module Name: tb_riscv_unit
|
||||||
|
// Project Name: RISCV_practicum
|
||||||
|
// Target Devices: Nexys A7-100T
|
||||||
|
// Tool Versions:
|
||||||
|
// Description: tb for riscv unit with irq support
|
||||||
|
//
|
||||||
|
// Dependencies:
|
||||||
|
//
|
||||||
|
// Revision:
|
||||||
|
// Revision 0.01 - File Created
|
||||||
|
// Additional Comments:
|
||||||
|
//
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
module tb_irq_unit();
|
||||||
|
|
||||||
|
reg clk;
|
||||||
|
reg rst;
|
||||||
|
|
||||||
|
riscv_unit unit(
|
||||||
|
.clk_i(clk),
|
||||||
|
.rst_i(rst)
|
||||||
|
);
|
||||||
|
|
||||||
|
initial clk = 0;
|
||||||
|
always #10 clk = ~clk;
|
||||||
|
initial begin
|
||||||
|
$display( "\nStart test: \n\n==========================\nCLICK THE BUTTON 'Run All'\n==========================\n"); $stop();
|
||||||
|
unit.irq_req = 0;
|
||||||
|
rst = 1;
|
||||||
|
#20;
|
||||||
|
rst = 0;
|
||||||
|
repeat(20)@(posedge clk);
|
||||||
|
unit.irq_req = 1;
|
||||||
|
while(unit.irq_ret == 0) begin
|
||||||
|
@(posedge clk);
|
||||||
|
end
|
||||||
|
unit.irq_req = 0;
|
||||||
|
$display("\n The test is over \n See the internal signals of the module on the waveform \n");
|
||||||
|
$finish;
|
||||||
|
end
|
||||||
|
|
||||||
|
endmodule
|
Reference in New Issue
Block a user