ЛР11. Добавление тестбенча

This commit is contained in:
Andrei Solodovnikov
2023-11-14 15:15:11 +03:00
parent c53e555a44
commit c7a6569eed
3 changed files with 91 additions and 3 deletions

View File

@@ -19,6 +19,6 @@
1. Интегрируйте модули `csr_controller` и `irq_controller` в модуль `riscv_core`.
1. Обратите внимание, что что в модуле `riscv_core` появились новые входные и выходные сигналы: `irq_req_i` и `irq_ret_o`. Эти сигналы должны быть использованы при подключении `riscv_core` в модуле `riscv_unit`.
1. На вход `irq_req_i` пока что необходимо подать `32'd0` (в следующей лабораторной это будет изменено).
2. При подключении сигнала `irq_ret_o` можно ничего не указывать (до следующей лабораторной к нему ничего не будет подключено).
2. После интеграции модулей, проверьте процессорную систему с помощью программы из ЛР10 с помощью предоставленного тестбенча.
1. Ко входу `irq_req_i` должен быть подключен провод `irq_req`, другой конец которого пока не будет ни к чему подключен (в следующей лабораторной это будет изменено).
2. К выходу `irq_ret_o` необходимо подключить провод `irq_ret`, который также пока не будет использован.
2. После интеграции модулей, проверьте процессорную систему с помощью [программы](irq_program.txt), текст которой был представлен в ЛР10 с помощью предоставленного [тестбенча](tb_irq_unit.sv).

View 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

View 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