Skip to content

Commit

Permalink
ЛР11. Добавление тестбенча
Browse files Browse the repository at this point in the history
  • Loading branch information
HepoH3 committed Nov 14, 2023
1 parent c53e555 commit c7a6569
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 3 deletions.
6 changes: 3 additions & 3 deletions Labs/11. Interrupt integration/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).
39 changes: 39 additions & 0 deletions Labs/11. Interrupt integration/irq_program.txt
Original file line number Diff line number Diff line change
@@ -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 changes: 49 additions & 0 deletions Labs/11. Interrupt integration/tb_irq_unit.sv
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit c7a6569

Please sign in to comment.