Upload folder using huggingface_hub
Browse files- .gitattributes +3 -0
- MANIFEST.in +1 -0
- dist/openenv_chipforge-0.1.0-py3-none-any.whl +3 -0
- dist/openenv_chipforge-0.1.0.tar.gz +3 -0
- openenv_chipforge.egg-info/SOURCES.txt +101 -1
- server/tasks/hard/01_priority_encoder_latch/design.v +207 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign +3 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign.cpp +94 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign.h +87 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign.mk +66 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ALL.a +0 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ALL.cpp +8 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ALL.d +11 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ALL.o +0 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__Syms.h +38 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__Syms__Slow.cpp +28 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign___024root.h +51 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign___024root__0.cpp +361 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign___024root__0__Slow.cpp +172 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign___024root__Slow.cpp +24 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__main.cpp +39 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__pch.h +27 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ver.d +1 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__verFiles.dat +21 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign_classes.mk +53 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated.d +12 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated.o +3 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated_threads.d +8 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated_threads.o +0 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated_timing.d +8 -0
- server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated_timing.o +0 -0
.gitattributes
CHANGED
|
@@ -38,3 +38,6 @@ obj_dir/verilated.o filter=lfs diff=lfs merge=lfs -text
|
|
| 38 |
obj_dir/verilated_vcd_c.o filter=lfs diff=lfs merge=lfs -text
|
| 39 |
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign filter=lfs diff=lfs merge=lfs -text
|
| 40 |
server/tasks/easy/01_inverter_semicolon/obj_dir/verilated.o filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
obj_dir/verilated_vcd_c.o filter=lfs diff=lfs merge=lfs -text
|
| 39 |
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign filter=lfs diff=lfs merge=lfs -text
|
| 40 |
server/tasks/easy/01_inverter_semicolon/obj_dir/verilated.o filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
dist/openenv_chipforge-0.1.0-py3-none-any.whl filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated.o filter=lfs diff=lfs merge=lfs -text
|
MANIFEST.in
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
recursive-include server/tasks *
|
dist/openenv_chipforge-0.1.0-py3-none-any.whl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dfad2246acd7f6f7234746ac3ca9995cb8a1350f157d5e951ed697478fb8c58a
|
| 3 |
+
size 491069
|
dist/openenv_chipforge-0.1.0.tar.gz
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0f92238bfb2f8edd6bafb3bdb389455402760d7ff2e994a07267daa3e4e4c0f1
|
| 3 |
+
size 456458
|
openenv_chipforge.egg-info/SOURCES.txt
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
|
|
| 1 |
README.md
|
| 2 |
__init__.py
|
| 3 |
client.py
|
|
@@ -16,4 +17,103 @@ openenv_chipforge.egg-info/requires.txt
|
|
| 16 |
openenv_chipforge.egg-info/top_level.txt
|
| 17 |
server/__init__.py
|
| 18 |
server/app.py
|
| 19 |
-
server/chipforge_environment.py
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MANIFEST.in
|
| 2 |
README.md
|
| 3 |
__init__.py
|
| 4 |
client.py
|
|
|
|
| 17 |
openenv_chipforge.egg-info/top_level.txt
|
| 18 |
server/__init__.py
|
| 19 |
server/app.py
|
| 20 |
+
server/chipforge_environment.py
|
| 21 |
+
server/tasks/easy/01_inverter_semicolon/design.v
|
| 22 |
+
server/tasks/easy/01_inverter_semicolon/design_buggy.v
|
| 23 |
+
server/tasks/easy/01_inverter_semicolon/design_golden.v
|
| 24 |
+
server/tasks/easy/01_inverter_semicolon/task.json
|
| 25 |
+
server/tasks/easy/01_inverter_semicolon/testbench.v
|
| 26 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign
|
| 27 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign.cpp
|
| 28 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign.h
|
| 29 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign.mk
|
| 30 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign__ALL.a
|
| 31 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign__ALL.cpp
|
| 32 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign__ALL.d
|
| 33 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign__ALL.o
|
| 34 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign__Syms.h
|
| 35 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign__Syms__Slow.cpp
|
| 36 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign___024root.h
|
| 37 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign___024root__0.cpp
|
| 38 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign___024root__0__Slow.cpp
|
| 39 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign___024root__Slow.cpp
|
| 40 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign__main.cpp
|
| 41 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign__pch.h
|
| 42 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign__ver.d
|
| 43 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign__verFiles.dat
|
| 44 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/Vdesign_classes.mk
|
| 45 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/verilated.d
|
| 46 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/verilated.o
|
| 47 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/verilated_threads.d
|
| 48 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/verilated_threads.o
|
| 49 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/verilated_timing.d
|
| 50 |
+
server/tasks/easy/01_inverter_semicolon/obj_dir/verilated_timing.o
|
| 51 |
+
server/tasks/easy/02_and_missing_paren/design_buggy.v
|
| 52 |
+
server/tasks/easy/02_and_missing_paren/design_golden.v
|
| 53 |
+
server/tasks/easy/02_and_missing_paren/task.json
|
| 54 |
+
server/tasks/easy/02_and_missing_paren/testbench.v
|
| 55 |
+
server/tasks/easy/03_write_testbench_from_prompt/design_buggy.v
|
| 56 |
+
server/tasks/easy/03_write_testbench_from_prompt/task.json
|
| 57 |
+
server/tasks/hard/01_priority_encoder_latch/design.v
|
| 58 |
+
server/tasks/hard/01_priority_encoder_latch/design_buggy.v
|
| 59 |
+
server/tasks/hard/01_priority_encoder_latch/design_golden.v
|
| 60 |
+
server/tasks/hard/01_priority_encoder_latch/task.json
|
| 61 |
+
server/tasks/hard/01_priority_encoder_latch/testbench.v
|
| 62 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign
|
| 63 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign.cpp
|
| 64 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign.h
|
| 65 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign.mk
|
| 66 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ALL.a
|
| 67 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ALL.cpp
|
| 68 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ALL.d
|
| 69 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ALL.o
|
| 70 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__Syms.h
|
| 71 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__Syms__Slow.cpp
|
| 72 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign___024root.h
|
| 73 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign___024root__0.cpp
|
| 74 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign___024root__0__Slow.cpp
|
| 75 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign___024root__Slow.cpp
|
| 76 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__main.cpp
|
| 77 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__pch.h
|
| 78 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ver.d
|
| 79 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__verFiles.dat
|
| 80 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign_classes.mk
|
| 81 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated.d
|
| 82 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated.o
|
| 83 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated_threads.d
|
| 84 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated_threads.o
|
| 85 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated_timing.d
|
| 86 |
+
server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated_timing.o
|
| 87 |
+
server/tasks/hard/02_alu_incomplete_case/design_buggy.v
|
| 88 |
+
server/tasks/hard/02_alu_incomplete_case/design_golden.v
|
| 89 |
+
server/tasks/hard/02_alu_incomplete_case/task.json
|
| 90 |
+
server/tasks/hard/02_alu_incomplete_case/testbench.v
|
| 91 |
+
server/tasks/medium/01_half_subtractor_logic/design_buggy.v
|
| 92 |
+
server/tasks/medium/01_half_subtractor_logic/design_golden.v
|
| 93 |
+
server/tasks/medium/01_half_subtractor_logic/task.json
|
| 94 |
+
server/tasks/medium/01_half_subtractor_logic/testbench.v
|
| 95 |
+
server/tasks/medium/02_decoder_logic/design_buggy.v
|
| 96 |
+
server/tasks/medium/02_decoder_logic/design_golden.v
|
| 97 |
+
server/tasks/medium/02_decoder_logic/task.json
|
| 98 |
+
server/tasks/medium/02_decoder_logic/testbench.v
|
| 99 |
+
server/tasks/medium/03_write_design_and_testbench_from_prompt/task.json
|
| 100 |
+
server/tasks/task_easy_missing_semicolon/design_buggy.v
|
| 101 |
+
server/tasks/task_easy_missing_semicolon/design_golden.v
|
| 102 |
+
server/tasks/task_easy_missing_semicolon/task.json
|
| 103 |
+
server/tasks/task_easy_missing_semicolon/testbench.v
|
| 104 |
+
server/tasks/task_easy_syntax/design_buggy.v
|
| 105 |
+
server/tasks/task_easy_syntax/design_golden.v
|
| 106 |
+
server/tasks/task_easy_syntax/task.json
|
| 107 |
+
server/tasks/task_easy_syntax/testbench.v
|
| 108 |
+
server/tasks/task_hard_latch_inference/design_buggy.v
|
| 109 |
+
server/tasks/task_hard_latch_inference/design_golden.v
|
| 110 |
+
server/tasks/task_hard_latch_inference/task.json
|
| 111 |
+
server/tasks/task_hard_latch_inference/testbench.v
|
| 112 |
+
server/tasks/task_medium_logic_bug/design_buggy.v
|
| 113 |
+
server/tasks/task_medium_logic_bug/design_golden.v
|
| 114 |
+
server/tasks/task_medium_logic_bug/task.json
|
| 115 |
+
server/tasks/task_medium_logic_bug/testbench.v
|
| 116 |
+
server/tasks/task_medium_wrong_operator/design_buggy.v
|
| 117 |
+
server/tasks/task_medium_wrong_operator/design_golden.v
|
| 118 |
+
server/tasks/task_medium_wrong_operator/task.json
|
| 119 |
+
server/tasks/task_medium_wrong_operator/testbench.v
|
server/tasks/hard/01_priority_encoder_latch/design.v
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
module priority_encoder3 (
|
| 2 |
+
input req2,
|
| 3 |
+
input req1,
|
| 4 |
+
input req0,
|
| 5 |
+
output reg valid,
|
| 6 |
+
output reg [1:0] code
|
| 7 |
+
);
|
| 8 |
+
|
| 9 |
+
wire pad00;
|
| 10 |
+
wire pad01;
|
| 11 |
+
wire pad02;
|
| 12 |
+
wire pad03;
|
| 13 |
+
wire pad04;
|
| 14 |
+
wire pad05;
|
| 15 |
+
wire pad06;
|
| 16 |
+
wire pad07;
|
| 17 |
+
wire pad08;
|
| 18 |
+
wire pad09;
|
| 19 |
+
wire pad10;
|
| 20 |
+
wire pad11;
|
| 21 |
+
wire pad12;
|
| 22 |
+
wire pad13;
|
| 23 |
+
wire pad14;
|
| 24 |
+
wire pad15;
|
| 25 |
+
wire pad16;
|
| 26 |
+
wire pad17;
|
| 27 |
+
wire pad18;
|
| 28 |
+
wire pad19;
|
| 29 |
+
wire pad20;
|
| 30 |
+
wire pad21;
|
| 31 |
+
wire pad22;
|
| 32 |
+
wire pad23;
|
| 33 |
+
wire pad24;
|
| 34 |
+
wire pad25;
|
| 35 |
+
wire pad26;
|
| 36 |
+
wire pad27;
|
| 37 |
+
wire pad28;
|
| 38 |
+
wire pad29;
|
| 39 |
+
wire pad30;
|
| 40 |
+
wire pad31;
|
| 41 |
+
wire pad32;
|
| 42 |
+
wire pad33;
|
| 43 |
+
wire pad34;
|
| 44 |
+
wire pad35;
|
| 45 |
+
wire pad36;
|
| 46 |
+
wire pad37;
|
| 47 |
+
wire pad38;
|
| 48 |
+
wire pad39;
|
| 49 |
+
wire pad40;
|
| 50 |
+
wire pad41;
|
| 51 |
+
wire pad42;
|
| 52 |
+
wire pad43;
|
| 53 |
+
wire pad44;
|
| 54 |
+
wire pad45;
|
| 55 |
+
wire pad46;
|
| 56 |
+
wire pad47;
|
| 57 |
+
wire pad48;
|
| 58 |
+
wire pad49;
|
| 59 |
+
wire pad50;
|
| 60 |
+
wire pad51;
|
| 61 |
+
wire pad52;
|
| 62 |
+
wire pad53;
|
| 63 |
+
wire pad54;
|
| 64 |
+
wire pad55;
|
| 65 |
+
wire pad56;
|
| 66 |
+
wire pad57;
|
| 67 |
+
wire pad58;
|
| 68 |
+
wire pad59;
|
| 69 |
+
wire pad60;
|
| 70 |
+
wire pad61;
|
| 71 |
+
wire pad62;
|
| 72 |
+
wire pad63;
|
| 73 |
+
wire pad64;
|
| 74 |
+
wire pad65;
|
| 75 |
+
wire pad66;
|
| 76 |
+
wire pad67;
|
| 77 |
+
wire pad68;
|
| 78 |
+
wire pad69;
|
| 79 |
+
wire pad70;
|
| 80 |
+
wire pad71;
|
| 81 |
+
wire pad72;
|
| 82 |
+
wire pad73;
|
| 83 |
+
wire pad74;
|
| 84 |
+
wire pad75;
|
| 85 |
+
wire pad76;
|
| 86 |
+
wire pad77;
|
| 87 |
+
wire pad78;
|
| 88 |
+
wire pad79;
|
| 89 |
+
wire pad80;
|
| 90 |
+
wire pad81;
|
| 91 |
+
wire pad82;
|
| 92 |
+
wire pad83;
|
| 93 |
+
wire pad84;
|
| 94 |
+
wire pad85;
|
| 95 |
+
wire pad86;
|
| 96 |
+
wire pad87;
|
| 97 |
+
wire pad88;
|
| 98 |
+
wire pad89;
|
| 99 |
+
|
| 100 |
+
assign pad00 = req0;
|
| 101 |
+
assign pad01 = pad00;
|
| 102 |
+
assign pad02 = pad01;
|
| 103 |
+
assign pad03 = pad02;
|
| 104 |
+
assign pad04 = pad03;
|
| 105 |
+
assign pad05 = pad04;
|
| 106 |
+
assign pad06 = pad05;
|
| 107 |
+
assign pad07 = pad06;
|
| 108 |
+
assign pad08 = pad07;
|
| 109 |
+
assign pad09 = pad08;
|
| 110 |
+
assign pad10 = pad09;
|
| 111 |
+
assign pad11 = pad10;
|
| 112 |
+
assign pad12 = pad11;
|
| 113 |
+
assign pad13 = pad12;
|
| 114 |
+
assign pad14 = pad13;
|
| 115 |
+
assign pad15 = pad14;
|
| 116 |
+
assign pad16 = pad15;
|
| 117 |
+
assign pad17 = pad16;
|
| 118 |
+
assign pad18 = pad17;
|
| 119 |
+
assign pad19 = pad18;
|
| 120 |
+
assign pad20 = pad19;
|
| 121 |
+
assign pad21 = pad20;
|
| 122 |
+
assign pad22 = pad21;
|
| 123 |
+
assign pad23 = pad22;
|
| 124 |
+
assign pad24 = pad23;
|
| 125 |
+
assign pad25 = pad24;
|
| 126 |
+
assign pad26 = pad25;
|
| 127 |
+
assign pad27 = pad26;
|
| 128 |
+
assign pad28 = pad27;
|
| 129 |
+
assign pad29 = pad28;
|
| 130 |
+
assign pad30 = pad29;
|
| 131 |
+
assign pad31 = pad30;
|
| 132 |
+
assign pad32 = pad31;
|
| 133 |
+
assign pad33 = pad32;
|
| 134 |
+
assign pad34 = pad33;
|
| 135 |
+
assign pad35 = pad34;
|
| 136 |
+
assign pad36 = pad35;
|
| 137 |
+
assign pad37 = pad36;
|
| 138 |
+
assign pad38 = pad37;
|
| 139 |
+
assign pad39 = pad38;
|
| 140 |
+
assign pad40 = pad39;
|
| 141 |
+
assign pad41 = pad40;
|
| 142 |
+
assign pad42 = pad41;
|
| 143 |
+
assign pad43 = pad42;
|
| 144 |
+
assign pad44 = pad43;
|
| 145 |
+
assign pad45 = pad44;
|
| 146 |
+
assign pad46 = pad45;
|
| 147 |
+
assign pad47 = pad46;
|
| 148 |
+
assign pad48 = pad47;
|
| 149 |
+
assign pad49 = pad48;
|
| 150 |
+
assign pad50 = pad49;
|
| 151 |
+
assign pad51 = pad50;
|
| 152 |
+
assign pad52 = pad51;
|
| 153 |
+
assign pad53 = pad52;
|
| 154 |
+
assign pad54 = pad53;
|
| 155 |
+
assign pad55 = pad54;
|
| 156 |
+
assign pad56 = pad55;
|
| 157 |
+
assign pad57 = pad56;
|
| 158 |
+
assign pad58 = pad57;
|
| 159 |
+
assign pad59 = pad58;
|
| 160 |
+
assign pad60 = pad59;
|
| 161 |
+
assign pad61 = pad60;
|
| 162 |
+
assign pad62 = pad61;
|
| 163 |
+
assign pad63 = pad62;
|
| 164 |
+
assign pad64 = pad63;
|
| 165 |
+
assign pad65 = pad64;
|
| 166 |
+
assign pad66 = pad65;
|
| 167 |
+
assign pad67 = pad66;
|
| 168 |
+
assign pad68 = pad67;
|
| 169 |
+
assign pad69 = pad68;
|
| 170 |
+
assign pad70 = pad69;
|
| 171 |
+
assign pad71 = pad70;
|
| 172 |
+
assign pad72 = pad71;
|
| 173 |
+
assign pad73 = pad72;
|
| 174 |
+
assign pad74 = pad73;
|
| 175 |
+
assign pad75 = pad74;
|
| 176 |
+
assign pad76 = pad75;
|
| 177 |
+
assign pad77 = pad76;
|
| 178 |
+
assign pad78 = pad77;
|
| 179 |
+
assign pad79 = pad78;
|
| 180 |
+
assign pad80 = pad79;
|
| 181 |
+
assign pad81 = pad80;
|
| 182 |
+
assign pad82 = pad81;
|
| 183 |
+
assign pad83 = pad82;
|
| 184 |
+
assign pad84 = pad83;
|
| 185 |
+
assign pad85 = pad84;
|
| 186 |
+
assign pad86 = pad85;
|
| 187 |
+
assign pad87 = pad86;
|
| 188 |
+
assign pad88 = pad87;
|
| 189 |
+
assign pad89 = pad88;
|
| 190 |
+
|
| 191 |
+
always @(*) begin
|
| 192 |
+
valid = 1'b0;
|
| 193 |
+
code = 2'b00;
|
| 194 |
+
|
| 195 |
+
if (req2) begin
|
| 196 |
+
valid = 1'b1;
|
| 197 |
+
code = 2'b10;
|
| 198 |
+
end else if (req1) begin
|
| 199 |
+
valid = 1'b1;
|
| 200 |
+
code = 2'b01;
|
| 201 |
+
end else if (req0) begin
|
| 202 |
+
valid = 1'b1;
|
| 203 |
+
code = 2'b00;
|
| 204 |
+
end
|
| 205 |
+
end
|
| 206 |
+
|
| 207 |
+
endmodule
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cf420ed0f34211a52e32fbf542bbd288d958af45b713a18bbef76b751b085960
|
| 3 |
+
size 274672
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign.cpp
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Verilated -*- C++ -*-
|
| 2 |
+
// DESCRIPTION: Verilator output: Model implementation (design independent parts)
|
| 3 |
+
|
| 4 |
+
#include "Vdesign__pch.h"
|
| 5 |
+
|
| 6 |
+
//============================================================
|
| 7 |
+
// Constructors
|
| 8 |
+
|
| 9 |
+
Vdesign::Vdesign(VerilatedContext* _vcontextp__, const char* _vcname__)
|
| 10 |
+
: VerilatedModel{*_vcontextp__}
|
| 11 |
+
, vlSymsp{new Vdesign__Syms(contextp(), _vcname__, this)}
|
| 12 |
+
, rootp{&(vlSymsp->TOP)}
|
| 13 |
+
{
|
| 14 |
+
// Register model with the context
|
| 15 |
+
contextp()->addModel(this);
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
Vdesign::Vdesign(const char* _vcname__)
|
| 19 |
+
: Vdesign(Verilated::threadContextp(), _vcname__)
|
| 20 |
+
{
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
//============================================================
|
| 24 |
+
// Destructor
|
| 25 |
+
|
| 26 |
+
Vdesign::~Vdesign() {
|
| 27 |
+
delete vlSymsp;
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
//============================================================
|
| 31 |
+
// Evaluation function
|
| 32 |
+
|
| 33 |
+
#ifdef VL_DEBUG
|
| 34 |
+
void Vdesign___024root___eval_debug_assertions(Vdesign___024root* vlSelf);
|
| 35 |
+
#endif // VL_DEBUG
|
| 36 |
+
void Vdesign___024root___eval_static(Vdesign___024root* vlSelf);
|
| 37 |
+
void Vdesign___024root___eval_initial(Vdesign___024root* vlSelf);
|
| 38 |
+
void Vdesign___024root___eval_settle(Vdesign___024root* vlSelf);
|
| 39 |
+
void Vdesign___024root___eval(Vdesign___024root* vlSelf);
|
| 40 |
+
|
| 41 |
+
void Vdesign::eval_step() {
|
| 42 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate Vdesign::eval_step\n"); );
|
| 43 |
+
#ifdef VL_DEBUG
|
| 44 |
+
// Debug assertions
|
| 45 |
+
Vdesign___024root___eval_debug_assertions(&(vlSymsp->TOP));
|
| 46 |
+
#endif // VL_DEBUG
|
| 47 |
+
vlSymsp->__Vm_deleter.deleteAll();
|
| 48 |
+
if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) {
|
| 49 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Initial\n"););
|
| 50 |
+
Vdesign___024root___eval_static(&(vlSymsp->TOP));
|
| 51 |
+
Vdesign___024root___eval_initial(&(vlSymsp->TOP));
|
| 52 |
+
Vdesign___024root___eval_settle(&(vlSymsp->TOP));
|
| 53 |
+
vlSymsp->__Vm_didInit = true;
|
| 54 |
+
}
|
| 55 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Eval\n"););
|
| 56 |
+
Vdesign___024root___eval(&(vlSymsp->TOP));
|
| 57 |
+
// Evaluate cleanup
|
| 58 |
+
Verilated::endOfEval(vlSymsp->__Vm_evalMsgQp);
|
| 59 |
+
}
|
| 60 |
+
|
| 61 |
+
//============================================================
|
| 62 |
+
// Events and timing
|
| 63 |
+
bool Vdesign::eventsPending() { return !vlSymsp->TOP.__VdlySched.empty() && !contextp()->gotFinish(); }
|
| 64 |
+
|
| 65 |
+
uint64_t Vdesign::nextTimeSlot() { return vlSymsp->TOP.__VdlySched.nextTimeSlot(); }
|
| 66 |
+
|
| 67 |
+
//============================================================
|
| 68 |
+
// Utilities
|
| 69 |
+
|
| 70 |
+
const char* Vdesign::name() const {
|
| 71 |
+
return vlSymsp->name();
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
//============================================================
|
| 75 |
+
// Invoke final blocks
|
| 76 |
+
|
| 77 |
+
void Vdesign___024root___eval_final(Vdesign___024root* vlSelf);
|
| 78 |
+
|
| 79 |
+
VL_ATTR_COLD void Vdesign::final() {
|
| 80 |
+
contextp()->executingFinal(true);
|
| 81 |
+
Vdesign___024root___eval_final(&(vlSymsp->TOP));
|
| 82 |
+
contextp()->executingFinal(false);
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
//============================================================
|
| 86 |
+
// Implementations of abstract methods from VerilatedModel
|
| 87 |
+
|
| 88 |
+
const char* Vdesign::hierName() const { return vlSymsp->name(); }
|
| 89 |
+
const char* Vdesign::modelName() const { return "Vdesign"; }
|
| 90 |
+
unsigned Vdesign::threads() const { return 1; }
|
| 91 |
+
void Vdesign::prepareClone() const { contextp()->prepareClone(); }
|
| 92 |
+
void Vdesign::atClone() const {
|
| 93 |
+
contextp()->threadPoolpOnClone();
|
| 94 |
+
}
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign.h
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Verilated -*- C++ -*-
|
| 2 |
+
// DESCRIPTION: Verilator output: Primary model header
|
| 3 |
+
//
|
| 4 |
+
// This header should be included by all source files instantiating the design.
|
| 5 |
+
// The class here is then constructed to instantiate the design.
|
| 6 |
+
// See the Verilator manual for examples.
|
| 7 |
+
|
| 8 |
+
#ifndef VERILATED_VDESIGN_H_
|
| 9 |
+
#define VERILATED_VDESIGN_H_ // guard
|
| 10 |
+
|
| 11 |
+
#include "verilated.h"
|
| 12 |
+
|
| 13 |
+
class Vdesign__Syms;
|
| 14 |
+
class Vdesign___024root;
|
| 15 |
+
|
| 16 |
+
// This class is the main interface to the Verilated model
|
| 17 |
+
class alignas(VL_CACHE_LINE_BYTES) Vdesign VL_NOT_FINAL : public VerilatedModel {
|
| 18 |
+
private:
|
| 19 |
+
// Symbol table holding complete model state (owned by this class)
|
| 20 |
+
Vdesign__Syms* const vlSymsp;
|
| 21 |
+
|
| 22 |
+
public:
|
| 23 |
+
|
| 24 |
+
// CONSTEXPR CAPABILITIES
|
| 25 |
+
// Verilated with --trace?
|
| 26 |
+
static constexpr bool traceCapable = false;
|
| 27 |
+
|
| 28 |
+
// PORTS
|
| 29 |
+
// The application code writes and reads these signals to
|
| 30 |
+
// propagate new values into/out from the Verilated model.
|
| 31 |
+
|
| 32 |
+
// CELLS
|
| 33 |
+
// Public to allow access to /* verilator public */ items.
|
| 34 |
+
// Otherwise the application code can consider these internals.
|
| 35 |
+
|
| 36 |
+
// Root instance pointer to allow access to model internals,
|
| 37 |
+
// including inlined /* verilator public_flat_* */ items.
|
| 38 |
+
Vdesign___024root* const rootp;
|
| 39 |
+
|
| 40 |
+
// CONSTRUCTORS
|
| 41 |
+
/// Construct the model; called by application code
|
| 42 |
+
/// If contextp is null, then the model will use the default global context
|
| 43 |
+
/// If name is "", then makes a wrapper with a
|
| 44 |
+
/// single model invisible with respect to DPI scope names.
|
| 45 |
+
explicit Vdesign(VerilatedContext* contextp, const char* name = "TOP");
|
| 46 |
+
explicit Vdesign(const char* name = "TOP");
|
| 47 |
+
/// Destroy the model; called (often implicitly) by application code
|
| 48 |
+
virtual ~Vdesign();
|
| 49 |
+
private:
|
| 50 |
+
VL_UNCOPYABLE(Vdesign); ///< Copying not allowed
|
| 51 |
+
|
| 52 |
+
public:
|
| 53 |
+
// API METHODS
|
| 54 |
+
/// Evaluate the model. Application must call when inputs change.
|
| 55 |
+
void eval() { eval_step(); }
|
| 56 |
+
/// Evaluate when calling multiple units/models per time step.
|
| 57 |
+
void eval_step();
|
| 58 |
+
/// Evaluate at end of a timestep for tracing, when using eval_step().
|
| 59 |
+
/// Application must call after all eval() and before time changes.
|
| 60 |
+
void eval_end_step() {}
|
| 61 |
+
/// Simulation complete, run final blocks. Application must call on completion.
|
| 62 |
+
void final();
|
| 63 |
+
/// Are there scheduled events to handle?
|
| 64 |
+
bool eventsPending();
|
| 65 |
+
/// Returns time at next time slot. Aborts if !eventsPending()
|
| 66 |
+
uint64_t nextTimeSlot();
|
| 67 |
+
/// Trace signals in the model; called by application code
|
| 68 |
+
void trace(VerilatedTraceBaseC* tfp, int levels, int options = 0) { contextp()->trace(tfp, levels, options); }
|
| 69 |
+
/// Retrieve name of this model instance (as passed to constructor).
|
| 70 |
+
const char* name() const;
|
| 71 |
+
|
| 72 |
+
// Abstract methods from VerilatedModel
|
| 73 |
+
const char* hierName() const override final;
|
| 74 |
+
const char* modelName() const override final;
|
| 75 |
+
unsigned threads() const override final;
|
| 76 |
+
/// Prepare for cloning the model at the process level (e.g. fork in Linux)
|
| 77 |
+
/// Release necessary resources. Called before cloning.
|
| 78 |
+
void prepareClone() const;
|
| 79 |
+
/// Re-init after cloning the model at the process level (e.g. fork in Linux)
|
| 80 |
+
/// Re-allocate necessary resources. Called after cloning.
|
| 81 |
+
void atClone() const;
|
| 82 |
+
private:
|
| 83 |
+
// Internal functions - trace registration
|
| 84 |
+
void traceBaseModel(VerilatedTraceBaseC* tfp, int levels, int options);
|
| 85 |
+
};
|
| 86 |
+
|
| 87 |
+
#endif // guard
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign.mk
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Verilated -*- Makefile -*-
|
| 2 |
+
# DESCRIPTION: Verilator output: Makefile for building Verilated archive or executable
|
| 3 |
+
#
|
| 4 |
+
# Execute this makefile from the object directory:
|
| 5 |
+
# make -f Vdesign.mk
|
| 6 |
+
|
| 7 |
+
default: Vdesign
|
| 8 |
+
|
| 9 |
+
### Constants...
|
| 10 |
+
# Perl executable (from $PERL, defaults to 'perl' if not set)
|
| 11 |
+
PERL = perl
|
| 12 |
+
# Python3 executable (from $PYTHON3, defaults to 'python3' if not set)
|
| 13 |
+
PYTHON3 = python3
|
| 14 |
+
# Path to Verilator kit (from $VERILATOR_ROOT)
|
| 15 |
+
VERILATOR_ROOT = /opt/oss-cad-suite/share/verilator
|
| 16 |
+
# SystemC include directory with systemc.h (from $SYSTEMC_INCLUDE)
|
| 17 |
+
SYSTEMC_INCLUDE ?=
|
| 18 |
+
# SystemC library directory with libsystemc.a (from $SYSTEMC_LIBDIR)
|
| 19 |
+
SYSTEMC_LIBDIR ?=
|
| 20 |
+
|
| 21 |
+
### Switches...
|
| 22 |
+
# C++ code coverage 0/1 (from --prof-c)
|
| 23 |
+
VM_PROFC = 0
|
| 24 |
+
# SystemC output mode? 0/1 (from --sc)
|
| 25 |
+
VM_SC = 0
|
| 26 |
+
# Legacy or SystemC output mode? 0/1 (from --sc)
|
| 27 |
+
VM_SP_OR_SC = $(VM_SC)
|
| 28 |
+
# Deprecated
|
| 29 |
+
VM_PCLI = 1
|
| 30 |
+
# Deprecated: SystemC architecture to find link library path (from $SYSTEMC_ARCH)
|
| 31 |
+
VM_SC_TARGET_ARCH = linux
|
| 32 |
+
|
| 33 |
+
### Vars...
|
| 34 |
+
# Design prefix (from --prefix)
|
| 35 |
+
VM_PREFIX = Vdesign
|
| 36 |
+
# Module prefix (from --prefix)
|
| 37 |
+
VM_MODPREFIX = Vdesign
|
| 38 |
+
# User CFLAGS (from -CFLAGS on Verilator command line)
|
| 39 |
+
VM_USER_CFLAGS = \
|
| 40 |
+
-DVL_TIME_CONTEXT \
|
| 41 |
+
|
| 42 |
+
# User LDLIBS (from -LDFLAGS on Verilator command line)
|
| 43 |
+
VM_USER_LDLIBS = \
|
| 44 |
+
|
| 45 |
+
# User .cpp files (from .cpp's on Verilator command line)
|
| 46 |
+
VM_USER_CLASSES = \
|
| 47 |
+
|
| 48 |
+
# User .cpp directories (from .cpp's on Verilator command line)
|
| 49 |
+
VM_USER_DIR = \
|
| 50 |
+
.. \
|
| 51 |
+
|
| 52 |
+
### Default rules...
|
| 53 |
+
# Include list of all generated classes
|
| 54 |
+
include Vdesign_classes.mk
|
| 55 |
+
# Include global rules
|
| 56 |
+
include $(VERILATOR_ROOT)/include/verilated.mk
|
| 57 |
+
|
| 58 |
+
### Executable rules... (from --exe)
|
| 59 |
+
VPATH += $(VM_USER_DIR)
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
### Link rules... (from --exe)
|
| 63 |
+
Vdesign: $(VK_USER_OBJS) $(VK_GLOBAL_OBJS) $(VM_PREFIX)__ALL.a
|
| 64 |
+
$(LINK) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) $(LIBS) $(SC_LIBS) -o $@
|
| 65 |
+
|
| 66 |
+
# Verilated -*- Makefile -*-
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ALL.a
ADDED
|
Binary file (47.9 kB). View file
|
|
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ALL.cpp
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// DESCRIPTION: Generated by verilator_includer via makefile
|
| 2 |
+
#define VL_INCLUDE_OPT include
|
| 3 |
+
#include "Vdesign.cpp"
|
| 4 |
+
#include "Vdesign___024root__0.cpp"
|
| 5 |
+
#include "Vdesign__main.cpp"
|
| 6 |
+
#include "Vdesign___024root__Slow.cpp"
|
| 7 |
+
#include "Vdesign___024root__0__Slow.cpp"
|
| 8 |
+
#include "Vdesign__Syms__Slow.cpp"
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ALL.d
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Vdesign__ALL.o: Vdesign__ALL.cpp Vdesign.cpp Vdesign__pch.h \
|
| 2 |
+
/opt/oss-cad-suite/share/verilator/include/verilated.h \
|
| 3 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_config.h \
|
| 4 |
+
/opt/oss-cad-suite/share/verilator/include/verilatedos.h \
|
| 5 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_types.h \
|
| 6 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_funcs.h \
|
| 7 |
+
Vdesign__Syms.h Vdesign.h Vdesign___024root.h \
|
| 8 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_timing.h \
|
| 9 |
+
/opt/oss-cad-suite/share/verilator/include/verilated.h \
|
| 10 |
+
Vdesign___024root__0.cpp Vdesign__main.cpp Vdesign___024root__Slow.cpp \
|
| 11 |
+
Vdesign___024root__0__Slow.cpp Vdesign__Syms__Slow.cpp
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ALL.o
ADDED
|
Binary file (43.5 kB). View file
|
|
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__Syms.h
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Verilated -*- C++ -*-
|
| 2 |
+
// DESCRIPTION: Verilator output: Symbol table internal header
|
| 3 |
+
//
|
| 4 |
+
// Internal details; most calling programs do not need this header,
|
| 5 |
+
// unless using verilator public meta comments.
|
| 6 |
+
|
| 7 |
+
#ifndef VERILATED_VDESIGN__SYMS_H_
|
| 8 |
+
#define VERILATED_VDESIGN__SYMS_H_ // guard
|
| 9 |
+
|
| 10 |
+
#include "verilated.h"
|
| 11 |
+
|
| 12 |
+
// INCLUDE MODEL CLASS
|
| 13 |
+
|
| 14 |
+
#include "Vdesign.h"
|
| 15 |
+
|
| 16 |
+
// INCLUDE MODULE CLASSES
|
| 17 |
+
#include "Vdesign___024root.h"
|
| 18 |
+
|
| 19 |
+
// SYMS CLASS (contains all model state)
|
| 20 |
+
class alignas(VL_CACHE_LINE_BYTES) Vdesign__Syms final : public VerilatedSyms {
|
| 21 |
+
public:
|
| 22 |
+
// INTERNAL STATE
|
| 23 |
+
Vdesign* const __Vm_modelp;
|
| 24 |
+
VlDeleter __Vm_deleter;
|
| 25 |
+
bool __Vm_didInit = false;
|
| 26 |
+
|
| 27 |
+
// MODULE INSTANCE STATE
|
| 28 |
+
Vdesign___024root TOP;
|
| 29 |
+
|
| 30 |
+
// CONSTRUCTORS
|
| 31 |
+
Vdesign__Syms(VerilatedContext* contextp, const char* namep, Vdesign* modelp);
|
| 32 |
+
~Vdesign__Syms();
|
| 33 |
+
|
| 34 |
+
// METHODS
|
| 35 |
+
const char* name() const { return TOP.vlNamep; }
|
| 36 |
+
};
|
| 37 |
+
|
| 38 |
+
#endif // guard
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__Syms__Slow.cpp
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Verilated -*- C++ -*-
|
| 2 |
+
// DESCRIPTION: Verilator output: Symbol table implementation internals
|
| 3 |
+
|
| 4 |
+
#include "Vdesign__pch.h"
|
| 5 |
+
|
| 6 |
+
Vdesign__Syms::Vdesign__Syms(VerilatedContext* contextp, const char* namep, Vdesign* modelp)
|
| 7 |
+
: VerilatedSyms{contextp}
|
| 8 |
+
// Setup internal state of the Syms class
|
| 9 |
+
, __Vm_modelp{modelp}
|
| 10 |
+
// Setup top module instance
|
| 11 |
+
, TOP{this, namep}
|
| 12 |
+
{
|
| 13 |
+
// Check resources
|
| 14 |
+
Verilated::stackCheck(256);
|
| 15 |
+
// Setup sub module instances
|
| 16 |
+
// Configure time unit / time precision
|
| 17 |
+
_vm_contextp__->timeunit(-9);
|
| 18 |
+
_vm_contextp__->timeprecision(-12);
|
| 19 |
+
// Setup each module's pointers to their submodules
|
| 20 |
+
// Setup each module's pointer back to symbol table (for public functions)
|
| 21 |
+
TOP.__Vconfigure(true);
|
| 22 |
+
// Setup scopes
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
Vdesign__Syms::~Vdesign__Syms() {
|
| 26 |
+
// Tear down scopes
|
| 27 |
+
// Tear down sub module instances
|
| 28 |
+
}
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign___024root.h
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Verilated -*- C++ -*-
|
| 2 |
+
// DESCRIPTION: Verilator output: Design internal header
|
| 3 |
+
// See Vdesign.h for the primary calling header
|
| 4 |
+
|
| 5 |
+
#ifndef VERILATED_VDESIGN___024ROOT_H_
|
| 6 |
+
#define VERILATED_VDESIGN___024ROOT_H_ // guard
|
| 7 |
+
|
| 8 |
+
#include "verilated.h"
|
| 9 |
+
#include "verilated_timing.h"
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
class Vdesign__Syms;
|
| 13 |
+
|
| 14 |
+
class alignas(VL_CACHE_LINE_BYTES) Vdesign___024root final {
|
| 15 |
+
public:
|
| 16 |
+
|
| 17 |
+
// DESIGN SPECIFIC STATE
|
| 18 |
+
CData/*0:0*/ tb_priority_encoder3__DOT__req2;
|
| 19 |
+
CData/*0:0*/ tb_priority_encoder3__DOT__req1;
|
| 20 |
+
CData/*0:0*/ tb_priority_encoder3__DOT__req0;
|
| 21 |
+
CData/*0:0*/ tb_priority_encoder3__DOT__valid;
|
| 22 |
+
CData/*1:0*/ tb_priority_encoder3__DOT__code;
|
| 23 |
+
CData/*0:0*/ __VstlFirstIteration;
|
| 24 |
+
CData/*0:0*/ __VstlPhaseResult;
|
| 25 |
+
CData/*0:0*/ __VactPhaseResult;
|
| 26 |
+
CData/*0:0*/ __VinactPhaseResult;
|
| 27 |
+
CData/*0:0*/ __VnbaPhaseResult;
|
| 28 |
+
IData/*31:0*/ __VactIterCount;
|
| 29 |
+
IData/*31:0*/ __VinactIterCount;
|
| 30 |
+
IData/*31:0*/ __Vi;
|
| 31 |
+
VlUnpacked<QData/*63:0*/, 1> __VstlTriggered;
|
| 32 |
+
VlUnpacked<QData/*63:0*/, 1> __VactTriggered;
|
| 33 |
+
VlUnpacked<QData/*63:0*/, 1> __VactTriggeredAcc;
|
| 34 |
+
VlUnpacked<QData/*63:0*/, 1> __VnbaTriggered;
|
| 35 |
+
VlDelayScheduler __VdlySched;
|
| 36 |
+
|
| 37 |
+
// INTERNAL VARIABLES
|
| 38 |
+
Vdesign__Syms* vlSymsp;
|
| 39 |
+
const char* vlNamep;
|
| 40 |
+
|
| 41 |
+
// CONSTRUCTORS
|
| 42 |
+
Vdesign___024root(Vdesign__Syms* symsp, const char* namep);
|
| 43 |
+
~Vdesign___024root();
|
| 44 |
+
VL_UNCOPYABLE(Vdesign___024root);
|
| 45 |
+
|
| 46 |
+
// INTERNAL METHODS
|
| 47 |
+
void __Vconfigure(bool first);
|
| 48 |
+
};
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
#endif // guard
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign___024root__0.cpp
ADDED
|
@@ -0,0 +1,361 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Verilated -*- C++ -*-
|
| 2 |
+
// DESCRIPTION: Verilator output: Design implementation internals
|
| 3 |
+
// See Vdesign.h for the primary calling header
|
| 4 |
+
|
| 5 |
+
#include "Vdesign__pch.h"
|
| 6 |
+
|
| 7 |
+
VlCoroutine Vdesign___024root___eval_initial__TOP__Vtiming__0(Vdesign___024root* vlSelf);
|
| 8 |
+
|
| 9 |
+
void Vdesign___024root___eval_initial(Vdesign___024root* vlSelf) {
|
| 10 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_initial\n"); );
|
| 11 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 12 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 13 |
+
// Body
|
| 14 |
+
Vdesign___024root___eval_initial__TOP__Vtiming__0(vlSelf);
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
VlCoroutine Vdesign___024root___eval_initial__TOP__Vtiming__0(Vdesign___024root* vlSelf) {
|
| 18 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_initial__TOP__Vtiming__0\n"); );
|
| 19 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 20 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 21 |
+
// Body
|
| 22 |
+
VL_WRITEF_NX("req2 req1 req0 | valid code\n-------------------------\n",0);
|
| 23 |
+
vlSelfRef.tb_priority_encoder3__DOT__req2 = 0U;
|
| 24 |
+
vlSelfRef.tb_priority_encoder3__DOT__req1 = 0U;
|
| 25 |
+
vlSelfRef.tb_priority_encoder3__DOT__req0 = 0U;
|
| 26 |
+
co_await vlSelfRef.__VdlySched.delay(0x0000000000002710ULL,
|
| 27 |
+
nullptr, "testbench.v",
|
| 28 |
+
23);
|
| 29 |
+
VL_WRITEF_NX(" %b %b %b | %b %b%b\n",6
|
| 30 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req2
|
| 31 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__req1)
|
| 32 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req0
|
| 33 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__valid)
|
| 34 |
+
, '#',1,(1U & ((IData)(vlSelfRef.tb_priority_encoder3__DOT__code)
|
| 35 |
+
>> 1U)), '#',1,(1U
|
| 36 |
+
& (IData)(vlSelfRef.tb_priority_encoder3__DOT__code)));
|
| 37 |
+
vlSelfRef.tb_priority_encoder3__DOT__req2 = 0U;
|
| 38 |
+
vlSelfRef.tb_priority_encoder3__DOT__req1 = 0U;
|
| 39 |
+
vlSelfRef.tb_priority_encoder3__DOT__req0 = 1U;
|
| 40 |
+
co_await vlSelfRef.__VdlySched.delay(0x0000000000002710ULL,
|
| 41 |
+
nullptr, "testbench.v",
|
| 42 |
+
24);
|
| 43 |
+
VL_WRITEF_NX(" %b %b %b | %b %b%b\n",6
|
| 44 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req2
|
| 45 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__req1)
|
| 46 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req0
|
| 47 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__valid)
|
| 48 |
+
, '#',1,(1U & ((IData)(vlSelfRef.tb_priority_encoder3__DOT__code)
|
| 49 |
+
>> 1U)), '#',1,(1U
|
| 50 |
+
& (IData)(vlSelfRef.tb_priority_encoder3__DOT__code)));
|
| 51 |
+
vlSelfRef.tb_priority_encoder3__DOT__req2 = 0U;
|
| 52 |
+
vlSelfRef.tb_priority_encoder3__DOT__req1 = 1U;
|
| 53 |
+
vlSelfRef.tb_priority_encoder3__DOT__req0 = 0U;
|
| 54 |
+
co_await vlSelfRef.__VdlySched.delay(0x0000000000002710ULL,
|
| 55 |
+
nullptr, "testbench.v",
|
| 56 |
+
25);
|
| 57 |
+
VL_WRITEF_NX(" %b %b %b | %b %b%b\n",6
|
| 58 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req2
|
| 59 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__req1)
|
| 60 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req0
|
| 61 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__valid)
|
| 62 |
+
, '#',1,(1U & ((IData)(vlSelfRef.tb_priority_encoder3__DOT__code)
|
| 63 |
+
>> 1U)), '#',1,(1U
|
| 64 |
+
& (IData)(vlSelfRef.tb_priority_encoder3__DOT__code)));
|
| 65 |
+
vlSelfRef.tb_priority_encoder3__DOT__req2 = 0U;
|
| 66 |
+
vlSelfRef.tb_priority_encoder3__DOT__req1 = 1U;
|
| 67 |
+
vlSelfRef.tb_priority_encoder3__DOT__req0 = 1U;
|
| 68 |
+
co_await vlSelfRef.__VdlySched.delay(0x0000000000002710ULL,
|
| 69 |
+
nullptr, "testbench.v",
|
| 70 |
+
26);
|
| 71 |
+
VL_WRITEF_NX(" %b %b %b | %b %b%b\n",6
|
| 72 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req2
|
| 73 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__req1)
|
| 74 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req0
|
| 75 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__valid)
|
| 76 |
+
, '#',1,(1U & ((IData)(vlSelfRef.tb_priority_encoder3__DOT__code)
|
| 77 |
+
>> 1U)), '#',1,(1U
|
| 78 |
+
& (IData)(vlSelfRef.tb_priority_encoder3__DOT__code)));
|
| 79 |
+
vlSelfRef.tb_priority_encoder3__DOT__req2 = 1U;
|
| 80 |
+
vlSelfRef.tb_priority_encoder3__DOT__req1 = 0U;
|
| 81 |
+
vlSelfRef.tb_priority_encoder3__DOT__req0 = 0U;
|
| 82 |
+
co_await vlSelfRef.__VdlySched.delay(0x0000000000002710ULL,
|
| 83 |
+
nullptr, "testbench.v",
|
| 84 |
+
27);
|
| 85 |
+
VL_WRITEF_NX(" %b %b %b | %b %b%b\n",6
|
| 86 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req2
|
| 87 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__req1)
|
| 88 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req0
|
| 89 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__valid)
|
| 90 |
+
, '#',1,(1U & ((IData)(vlSelfRef.tb_priority_encoder3__DOT__code)
|
| 91 |
+
>> 1U)), '#',1,(1U
|
| 92 |
+
& (IData)(vlSelfRef.tb_priority_encoder3__DOT__code)));
|
| 93 |
+
vlSelfRef.tb_priority_encoder3__DOT__req2 = 1U;
|
| 94 |
+
vlSelfRef.tb_priority_encoder3__DOT__req1 = 0U;
|
| 95 |
+
vlSelfRef.tb_priority_encoder3__DOT__req0 = 1U;
|
| 96 |
+
co_await vlSelfRef.__VdlySched.delay(0x0000000000002710ULL,
|
| 97 |
+
nullptr, "testbench.v",
|
| 98 |
+
28);
|
| 99 |
+
VL_WRITEF_NX(" %b %b %b | %b %b%b\n",6
|
| 100 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req2
|
| 101 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__req1)
|
| 102 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req0
|
| 103 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__valid)
|
| 104 |
+
, '#',1,(1U & ((IData)(vlSelfRef.tb_priority_encoder3__DOT__code)
|
| 105 |
+
>> 1U)), '#',1,(1U
|
| 106 |
+
& (IData)(vlSelfRef.tb_priority_encoder3__DOT__code)));
|
| 107 |
+
vlSelfRef.tb_priority_encoder3__DOT__req2 = 1U;
|
| 108 |
+
vlSelfRef.tb_priority_encoder3__DOT__req1 = 1U;
|
| 109 |
+
vlSelfRef.tb_priority_encoder3__DOT__req0 = 0U;
|
| 110 |
+
co_await vlSelfRef.__VdlySched.delay(0x0000000000002710ULL,
|
| 111 |
+
nullptr, "testbench.v",
|
| 112 |
+
29);
|
| 113 |
+
VL_WRITEF_NX(" %b %b %b | %b %b%b\n",6
|
| 114 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req2
|
| 115 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__req1)
|
| 116 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req0
|
| 117 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__valid)
|
| 118 |
+
, '#',1,(1U & ((IData)(vlSelfRef.tb_priority_encoder3__DOT__code)
|
| 119 |
+
>> 1U)), '#',1,(1U
|
| 120 |
+
& (IData)(vlSelfRef.tb_priority_encoder3__DOT__code)));
|
| 121 |
+
vlSelfRef.tb_priority_encoder3__DOT__req2 = 1U;
|
| 122 |
+
vlSelfRef.tb_priority_encoder3__DOT__req1 = 1U;
|
| 123 |
+
vlSelfRef.tb_priority_encoder3__DOT__req0 = 1U;
|
| 124 |
+
co_await vlSelfRef.__VdlySched.delay(0x0000000000002710ULL,
|
| 125 |
+
nullptr, "testbench.v",
|
| 126 |
+
30);
|
| 127 |
+
VL_WRITEF_NX(" %b %b %b | %b %b%b\n",6
|
| 128 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req2
|
| 129 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__req1)
|
| 130 |
+
, '#',1,vlSelfRef.tb_priority_encoder3__DOT__req0
|
| 131 |
+
, '#',1,(IData)(vlSelfRef.tb_priority_encoder3__DOT__valid)
|
| 132 |
+
, '#',1,(1U & ((IData)(vlSelfRef.tb_priority_encoder3__DOT__code)
|
| 133 |
+
>> 1U)), '#',1,(1U
|
| 134 |
+
& (IData)(vlSelfRef.tb_priority_encoder3__DOT__code)));
|
| 135 |
+
VL_FINISH_MT("testbench.v", 32, "");
|
| 136 |
+
co_return;
|
| 137 |
+
}
|
| 138 |
+
|
| 139 |
+
void Vdesign___024root___eval_triggers_vec__act(Vdesign___024root* vlSelf) {
|
| 140 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_triggers_vec__act\n"); );
|
| 141 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 142 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 143 |
+
// Body
|
| 144 |
+
vlSelfRef.__VactTriggered[0U] = (QData)((IData)(vlSelfRef.__VdlySched.awaitingCurrentTime()));
|
| 145 |
+
}
|
| 146 |
+
|
| 147 |
+
bool Vdesign___024root___trigger_anySet__act(const VlUnpacked<QData/*63:0*/, 1> &in) {
|
| 148 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___trigger_anySet__act\n"); );
|
| 149 |
+
// Locals
|
| 150 |
+
IData/*31:0*/ n;
|
| 151 |
+
// Body
|
| 152 |
+
n = 0U;
|
| 153 |
+
do {
|
| 154 |
+
if (in[n]) {
|
| 155 |
+
return (1U);
|
| 156 |
+
}
|
| 157 |
+
n = ((IData)(1U) + n);
|
| 158 |
+
} while ((1U > n));
|
| 159 |
+
return (0U);
|
| 160 |
+
}
|
| 161 |
+
|
| 162 |
+
void Vdesign___024root___act_sequent__TOP__0(Vdesign___024root* vlSelf) {
|
| 163 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___act_sequent__TOP__0\n"); );
|
| 164 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 165 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 166 |
+
// Body
|
| 167 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 0U;
|
| 168 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 0U;
|
| 169 |
+
if (vlSelfRef.tb_priority_encoder3__DOT__req2) {
|
| 170 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 1U;
|
| 171 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 2U;
|
| 172 |
+
} else if (vlSelfRef.tb_priority_encoder3__DOT__req1) {
|
| 173 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 1U;
|
| 174 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 1U;
|
| 175 |
+
} else if (vlSelfRef.tb_priority_encoder3__DOT__req0) {
|
| 176 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 1U;
|
| 177 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 0U;
|
| 178 |
+
}
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
+
void Vdesign___024root___eval_act(Vdesign___024root* vlSelf) {
|
| 182 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_act\n"); );
|
| 183 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 184 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 185 |
+
// Body
|
| 186 |
+
if ((1ULL & vlSelfRef.__VactTriggered[0U])) {
|
| 187 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 0U;
|
| 188 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 0U;
|
| 189 |
+
if (vlSelfRef.tb_priority_encoder3__DOT__req2) {
|
| 190 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 1U;
|
| 191 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 2U;
|
| 192 |
+
} else if (vlSelfRef.tb_priority_encoder3__DOT__req1) {
|
| 193 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 1U;
|
| 194 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 1U;
|
| 195 |
+
} else if (vlSelfRef.tb_priority_encoder3__DOT__req0) {
|
| 196 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 1U;
|
| 197 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 0U;
|
| 198 |
+
}
|
| 199 |
+
}
|
| 200 |
+
}
|
| 201 |
+
|
| 202 |
+
void Vdesign___024root___eval_nba(Vdesign___024root* vlSelf) {
|
| 203 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_nba\n"); );
|
| 204 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 205 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 206 |
+
// Body
|
| 207 |
+
if ((1ULL & vlSelfRef.__VnbaTriggered[0U])) {
|
| 208 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 0U;
|
| 209 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 0U;
|
| 210 |
+
if (vlSelfRef.tb_priority_encoder3__DOT__req2) {
|
| 211 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 1U;
|
| 212 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 2U;
|
| 213 |
+
} else if (vlSelfRef.tb_priority_encoder3__DOT__req1) {
|
| 214 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 1U;
|
| 215 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 1U;
|
| 216 |
+
} else if (vlSelfRef.tb_priority_encoder3__DOT__req0) {
|
| 217 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 1U;
|
| 218 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 0U;
|
| 219 |
+
}
|
| 220 |
+
}
|
| 221 |
+
}
|
| 222 |
+
|
| 223 |
+
void Vdesign___024root___timing_resume(Vdesign___024root* vlSelf) {
|
| 224 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___timing_resume\n"); );
|
| 225 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 226 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 227 |
+
// Body
|
| 228 |
+
if ((1ULL & vlSelfRef.__VactTriggered[0U])) {
|
| 229 |
+
vlSelfRef.__VdlySched.resume();
|
| 230 |
+
}
|
| 231 |
+
}
|
| 232 |
+
|
| 233 |
+
void Vdesign___024root___trigger_orInto__act_vec_vec(VlUnpacked<QData/*63:0*/, 1> &out, const VlUnpacked<QData/*63:0*/, 1> &in) {
|
| 234 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___trigger_orInto__act_vec_vec\n"); );
|
| 235 |
+
// Locals
|
| 236 |
+
IData/*31:0*/ n;
|
| 237 |
+
// Body
|
| 238 |
+
n = 0U;
|
| 239 |
+
do {
|
| 240 |
+
out[n] = (out[n] | in[n]);
|
| 241 |
+
n = ((IData)(1U) + n);
|
| 242 |
+
} while ((0U >= n));
|
| 243 |
+
}
|
| 244 |
+
|
| 245 |
+
#ifdef VL_DEBUG
|
| 246 |
+
VL_ATTR_COLD void Vdesign___024root___dump_triggers__act(const VlUnpacked<QData/*63:0*/, 1> &triggers, const std::string &tag);
|
| 247 |
+
#endif // VL_DEBUG
|
| 248 |
+
|
| 249 |
+
bool Vdesign___024root___eval_phase__act(Vdesign___024root* vlSelf) {
|
| 250 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_phase__act\n"); );
|
| 251 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 252 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 253 |
+
// Locals
|
| 254 |
+
CData/*0:0*/ __VactExecute;
|
| 255 |
+
// Body
|
| 256 |
+
Vdesign___024root___eval_triggers_vec__act(vlSelf);
|
| 257 |
+
Vdesign___024root___trigger_orInto__act_vec_vec(vlSelfRef.__VactTriggered, vlSelfRef.__VactTriggeredAcc);
|
| 258 |
+
#ifdef VL_DEBUG
|
| 259 |
+
if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) {
|
| 260 |
+
Vdesign___024root___dump_triggers__act(vlSelfRef.__VactTriggered, "act"s);
|
| 261 |
+
}
|
| 262 |
+
#endif
|
| 263 |
+
Vdesign___024root___trigger_orInto__act_vec_vec(vlSelfRef.__VnbaTriggered, vlSelfRef.__VactTriggered);
|
| 264 |
+
__VactExecute = Vdesign___024root___trigger_anySet__act(vlSelfRef.__VactTriggered);
|
| 265 |
+
if (__VactExecute) {
|
| 266 |
+
vlSelfRef.__VactTriggeredAcc.fill(0ULL);
|
| 267 |
+
Vdesign___024root___timing_resume(vlSelf);
|
| 268 |
+
Vdesign___024root___eval_act(vlSelf);
|
| 269 |
+
}
|
| 270 |
+
return (__VactExecute);
|
| 271 |
+
}
|
| 272 |
+
|
| 273 |
+
bool Vdesign___024root___eval_phase__inact(Vdesign___024root* vlSelf) {
|
| 274 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_phase__inact\n"); );
|
| 275 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 276 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 277 |
+
// Locals
|
| 278 |
+
CData/*0:0*/ __VinactExecute;
|
| 279 |
+
// Body
|
| 280 |
+
__VinactExecute = vlSelfRef.__VdlySched.awaitingZeroDelay();
|
| 281 |
+
if (__VinactExecute) {
|
| 282 |
+
VL_FATAL_MT("testbench.v", 3, "", "ZERODLY: Design Verilated with '--no-sched-zero-delay', but #0 delay executed at runtime");
|
| 283 |
+
}
|
| 284 |
+
return (__VinactExecute);
|
| 285 |
+
}
|
| 286 |
+
|
| 287 |
+
void Vdesign___024root___trigger_clear__act(VlUnpacked<QData/*63:0*/, 1> &out) {
|
| 288 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___trigger_clear__act\n"); );
|
| 289 |
+
// Locals
|
| 290 |
+
IData/*31:0*/ n;
|
| 291 |
+
// Body
|
| 292 |
+
n = 0U;
|
| 293 |
+
do {
|
| 294 |
+
out[n] = 0ULL;
|
| 295 |
+
n = ((IData)(1U) + n);
|
| 296 |
+
} while ((1U > n));
|
| 297 |
+
}
|
| 298 |
+
|
| 299 |
+
bool Vdesign___024root___eval_phase__nba(Vdesign___024root* vlSelf) {
|
| 300 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_phase__nba\n"); );
|
| 301 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 302 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 303 |
+
// Locals
|
| 304 |
+
CData/*0:0*/ __VnbaExecute;
|
| 305 |
+
// Body
|
| 306 |
+
__VnbaExecute = Vdesign___024root___trigger_anySet__act(vlSelfRef.__VnbaTriggered);
|
| 307 |
+
if (__VnbaExecute) {
|
| 308 |
+
Vdesign___024root___eval_nba(vlSelf);
|
| 309 |
+
Vdesign___024root___trigger_clear__act(vlSelfRef.__VnbaTriggered);
|
| 310 |
+
}
|
| 311 |
+
return (__VnbaExecute);
|
| 312 |
+
}
|
| 313 |
+
|
| 314 |
+
void Vdesign___024root___eval(Vdesign___024root* vlSelf) {
|
| 315 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval\n"); );
|
| 316 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 317 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 318 |
+
// Locals
|
| 319 |
+
IData/*31:0*/ __VnbaIterCount;
|
| 320 |
+
// Body
|
| 321 |
+
__VnbaIterCount = 0U;
|
| 322 |
+
do {
|
| 323 |
+
if (VL_UNLIKELY(((0x00002710U < __VnbaIterCount)))) {
|
| 324 |
+
#ifdef VL_DEBUG
|
| 325 |
+
Vdesign___024root___dump_triggers__act(vlSelfRef.__VnbaTriggered, "nba"s);
|
| 326 |
+
#endif
|
| 327 |
+
VL_FATAL_MT("testbench.v", 3, "", "DIDNOTCONVERGE: NBA region did not converge after '--converge-limit' of 10000 tries");
|
| 328 |
+
}
|
| 329 |
+
__VnbaIterCount = ((IData)(1U) + __VnbaIterCount);
|
| 330 |
+
vlSelfRef.__VinactIterCount = 0U;
|
| 331 |
+
do {
|
| 332 |
+
if (VL_UNLIKELY(((0x00002710U < vlSelfRef.__VinactIterCount)))) {
|
| 333 |
+
VL_FATAL_MT("testbench.v", 3, "", "DIDNOTCONVERGE: Inactive region did not converge after '--converge-limit' of 10000 tries");
|
| 334 |
+
}
|
| 335 |
+
vlSelfRef.__VinactIterCount = ((IData)(1U)
|
| 336 |
+
+ vlSelfRef.__VinactIterCount);
|
| 337 |
+
vlSelfRef.__VactIterCount = 0U;
|
| 338 |
+
do {
|
| 339 |
+
if (VL_UNLIKELY(((0x00002710U < vlSelfRef.__VactIterCount)))) {
|
| 340 |
+
#ifdef VL_DEBUG
|
| 341 |
+
Vdesign___024root___dump_triggers__act(vlSelfRef.__VactTriggered, "act"s);
|
| 342 |
+
#endif
|
| 343 |
+
VL_FATAL_MT("testbench.v", 3, "", "DIDNOTCONVERGE: Active region did not converge after '--converge-limit' of 10000 tries");
|
| 344 |
+
}
|
| 345 |
+
vlSelfRef.__VactIterCount = ((IData)(1U)
|
| 346 |
+
+ vlSelfRef.__VactIterCount);
|
| 347 |
+
vlSelfRef.__VactPhaseResult = Vdesign___024root___eval_phase__act(vlSelf);
|
| 348 |
+
} while (vlSelfRef.__VactPhaseResult);
|
| 349 |
+
vlSelfRef.__VinactPhaseResult = Vdesign___024root___eval_phase__inact(vlSelf);
|
| 350 |
+
} while (vlSelfRef.__VinactPhaseResult);
|
| 351 |
+
vlSelfRef.__VnbaPhaseResult = Vdesign___024root___eval_phase__nba(vlSelf);
|
| 352 |
+
} while (vlSelfRef.__VnbaPhaseResult);
|
| 353 |
+
}
|
| 354 |
+
|
| 355 |
+
#ifdef VL_DEBUG
|
| 356 |
+
void Vdesign___024root___eval_debug_assertions(Vdesign___024root* vlSelf) {
|
| 357 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_debug_assertions\n"); );
|
| 358 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 359 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 360 |
+
}
|
| 361 |
+
#endif // VL_DEBUG
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign___024root__0__Slow.cpp
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Verilated -*- C++ -*-
|
| 2 |
+
// DESCRIPTION: Verilator output: Design implementation internals
|
| 3 |
+
// See Vdesign.h for the primary calling header
|
| 4 |
+
|
| 5 |
+
#include "Vdesign__pch.h"
|
| 6 |
+
|
| 7 |
+
VL_ATTR_COLD void Vdesign___024root___eval_static(Vdesign___024root* vlSelf) {
|
| 8 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_static\n"); );
|
| 9 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 10 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 11 |
+
// Body
|
| 12 |
+
do {
|
| 13 |
+
vlSelfRef.__VactTriggeredAcc[vlSelfRef.__Vi]
|
| 14 |
+
= vlSelfRef.__VactTriggered[vlSelfRef.__Vi];
|
| 15 |
+
vlSelfRef.__Vi = ((IData)(1U) + vlSelfRef.__Vi);
|
| 16 |
+
} while ((0U >= vlSelfRef.__Vi));
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
VL_ATTR_COLD void Vdesign___024root___eval_final(Vdesign___024root* vlSelf) {
|
| 20 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_final\n"); );
|
| 21 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 22 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
#ifdef VL_DEBUG
|
| 26 |
+
VL_ATTR_COLD void Vdesign___024root___dump_triggers__stl(const VlUnpacked<QData/*63:0*/, 1> &triggers, const std::string &tag);
|
| 27 |
+
#endif // VL_DEBUG
|
| 28 |
+
VL_ATTR_COLD bool Vdesign___024root___eval_phase__stl(Vdesign___024root* vlSelf);
|
| 29 |
+
|
| 30 |
+
VL_ATTR_COLD void Vdesign___024root___eval_settle(Vdesign___024root* vlSelf) {
|
| 31 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_settle\n"); );
|
| 32 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 33 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 34 |
+
// Locals
|
| 35 |
+
IData/*31:0*/ __VstlIterCount;
|
| 36 |
+
// Body
|
| 37 |
+
__VstlIterCount = 0U;
|
| 38 |
+
vlSelfRef.__VstlFirstIteration = 1U;
|
| 39 |
+
do {
|
| 40 |
+
if (VL_UNLIKELY(((0x00002710U < __VstlIterCount)))) {
|
| 41 |
+
#ifdef VL_DEBUG
|
| 42 |
+
Vdesign___024root___dump_triggers__stl(vlSelfRef.__VstlTriggered, "stl"s);
|
| 43 |
+
#endif
|
| 44 |
+
VL_FATAL_MT("testbench.v", 3, "", "DIDNOTCONVERGE: Settle region did not converge after '--converge-limit' of 10000 tries");
|
| 45 |
+
}
|
| 46 |
+
__VstlIterCount = ((IData)(1U) + __VstlIterCount);
|
| 47 |
+
vlSelfRef.__VstlPhaseResult = Vdesign___024root___eval_phase__stl(vlSelf);
|
| 48 |
+
vlSelfRef.__VstlFirstIteration = 0U;
|
| 49 |
+
} while (vlSelfRef.__VstlPhaseResult);
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
VL_ATTR_COLD void Vdesign___024root___eval_triggers_vec__stl(Vdesign___024root* vlSelf) {
|
| 53 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_triggers_vec__stl\n"); );
|
| 54 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 55 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 56 |
+
// Body
|
| 57 |
+
vlSelfRef.__VstlTriggered[0U] = ((0xfffffffffffffffeULL
|
| 58 |
+
& vlSelfRef.__VstlTriggered[0U])
|
| 59 |
+
| (IData)((IData)(vlSelfRef.__VstlFirstIteration)));
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
VL_ATTR_COLD bool Vdesign___024root___trigger_anySet__stl(const VlUnpacked<QData/*63:0*/, 1> &in);
|
| 63 |
+
|
| 64 |
+
#ifdef VL_DEBUG
|
| 65 |
+
VL_ATTR_COLD void Vdesign___024root___dump_triggers__stl(const VlUnpacked<QData/*63:0*/, 1> &triggers, const std::string &tag) {
|
| 66 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___dump_triggers__stl\n"); );
|
| 67 |
+
// Body
|
| 68 |
+
if ((1U & (~ (IData)(Vdesign___024root___trigger_anySet__stl(triggers))))) {
|
| 69 |
+
VL_DBG_MSGS(" No '" + tag + "' region triggers active\n");
|
| 70 |
+
}
|
| 71 |
+
if ((1U & (IData)(triggers[0U]))) {
|
| 72 |
+
VL_DBG_MSGS(" '" + tag + "' region trigger index 0 is active: Internal 'stl' trigger - first iteration\n");
|
| 73 |
+
}
|
| 74 |
+
}
|
| 75 |
+
#endif // VL_DEBUG
|
| 76 |
+
|
| 77 |
+
VL_ATTR_COLD bool Vdesign___024root___trigger_anySet__stl(const VlUnpacked<QData/*63:0*/, 1> &in) {
|
| 78 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___trigger_anySet__stl\n"); );
|
| 79 |
+
// Locals
|
| 80 |
+
IData/*31:0*/ n;
|
| 81 |
+
// Body
|
| 82 |
+
n = 0U;
|
| 83 |
+
do {
|
| 84 |
+
if (in[n]) {
|
| 85 |
+
return (1U);
|
| 86 |
+
}
|
| 87 |
+
n = ((IData)(1U) + n);
|
| 88 |
+
} while ((1U > n));
|
| 89 |
+
return (0U);
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
VL_ATTR_COLD void Vdesign___024root___eval_stl(Vdesign___024root* vlSelf) {
|
| 93 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_stl\n"); );
|
| 94 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 95 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 96 |
+
// Body
|
| 97 |
+
if ((1ULL & vlSelfRef.__VstlTriggered[0U])) {
|
| 98 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 0U;
|
| 99 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 0U;
|
| 100 |
+
if (vlSelfRef.tb_priority_encoder3__DOT__req2) {
|
| 101 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 1U;
|
| 102 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 2U;
|
| 103 |
+
} else if (vlSelfRef.tb_priority_encoder3__DOT__req1) {
|
| 104 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 1U;
|
| 105 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 1U;
|
| 106 |
+
} else if (vlSelfRef.tb_priority_encoder3__DOT__req0) {
|
| 107 |
+
vlSelfRef.tb_priority_encoder3__DOT__valid = 1U;
|
| 108 |
+
vlSelfRef.tb_priority_encoder3__DOT__code = 0U;
|
| 109 |
+
}
|
| 110 |
+
}
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
VL_ATTR_COLD bool Vdesign___024root___eval_phase__stl(Vdesign___024root* vlSelf) {
|
| 114 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___eval_phase__stl\n"); );
|
| 115 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 116 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 117 |
+
// Locals
|
| 118 |
+
CData/*0:0*/ __VstlExecute;
|
| 119 |
+
// Body
|
| 120 |
+
Vdesign___024root___eval_triggers_vec__stl(vlSelf);
|
| 121 |
+
#ifdef VL_DEBUG
|
| 122 |
+
if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) {
|
| 123 |
+
Vdesign___024root___dump_triggers__stl(vlSelfRef.__VstlTriggered, "stl"s);
|
| 124 |
+
}
|
| 125 |
+
#endif
|
| 126 |
+
__VstlExecute = Vdesign___024root___trigger_anySet__stl(vlSelfRef.__VstlTriggered);
|
| 127 |
+
if (__VstlExecute) {
|
| 128 |
+
Vdesign___024root___eval_stl(vlSelf);
|
| 129 |
+
}
|
| 130 |
+
return (__VstlExecute);
|
| 131 |
+
}
|
| 132 |
+
|
| 133 |
+
bool Vdesign___024root___trigger_anySet__act(const VlUnpacked<QData/*63:0*/, 1> &in);
|
| 134 |
+
|
| 135 |
+
#ifdef VL_DEBUG
|
| 136 |
+
VL_ATTR_COLD void Vdesign___024root___dump_triggers__act(const VlUnpacked<QData/*63:0*/, 1> &triggers, const std::string &tag) {
|
| 137 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___dump_triggers__act\n"); );
|
| 138 |
+
// Body
|
| 139 |
+
if ((1U & (~ (IData)(Vdesign___024root___trigger_anySet__act(triggers))))) {
|
| 140 |
+
VL_DBG_MSGS(" No '" + tag + "' region triggers active\n");
|
| 141 |
+
}
|
| 142 |
+
if ((1U & (IData)(triggers[0U]))) {
|
| 143 |
+
VL_DBG_MSGS(" '" + tag + "' region trigger index 0 is active: @([true] __VdlySched.awaitingCurrentTime())\n");
|
| 144 |
+
}
|
| 145 |
+
}
|
| 146 |
+
#endif // VL_DEBUG
|
| 147 |
+
|
| 148 |
+
VL_ATTR_COLD void Vdesign___024root___ctor_var_reset(Vdesign___024root* vlSelf) {
|
| 149 |
+
VL_DEBUG_IF(VL_DBG_MSGF("+ Vdesign___024root___ctor_var_reset\n"); );
|
| 150 |
+
Vdesign__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
| 151 |
+
auto& vlSelfRef = std::ref(*vlSelf).get();
|
| 152 |
+
// Body
|
| 153 |
+
const uint64_t __VscopeHash = VL_MURMUR64_HASH(vlSelf->vlNamep);
|
| 154 |
+
vlSelf->tb_priority_encoder3__DOT__req2 = VL_SCOPED_RAND_RESET_I(1, __VscopeHash, 9943119845136453460ull);
|
| 155 |
+
vlSelf->tb_priority_encoder3__DOT__req1 = VL_SCOPED_RAND_RESET_I(1, __VscopeHash, 18060180862738191540ull);
|
| 156 |
+
vlSelf->tb_priority_encoder3__DOT__req0 = VL_SCOPED_RAND_RESET_I(1, __VscopeHash, 687725623710860105ull);
|
| 157 |
+
vlSelf->tb_priority_encoder3__DOT__valid = VL_SCOPED_RAND_RESET_I(1, __VscopeHash, 17636183473393224740ull);
|
| 158 |
+
vlSelf->tb_priority_encoder3__DOT__code = VL_SCOPED_RAND_RESET_I(2, __VscopeHash, 15448362772404662925ull);
|
| 159 |
+
for (int __Vi0 = 0; __Vi0 < 1; ++__Vi0) {
|
| 160 |
+
vlSelf->__VstlTriggered[__Vi0] = 0;
|
| 161 |
+
}
|
| 162 |
+
for (int __Vi0 = 0; __Vi0 < 1; ++__Vi0) {
|
| 163 |
+
vlSelf->__VactTriggered[__Vi0] = 0;
|
| 164 |
+
}
|
| 165 |
+
for (int __Vi0 = 0; __Vi0 < 1; ++__Vi0) {
|
| 166 |
+
vlSelf->__VactTriggeredAcc[__Vi0] = 0;
|
| 167 |
+
}
|
| 168 |
+
for (int __Vi0 = 0; __Vi0 < 1; ++__Vi0) {
|
| 169 |
+
vlSelf->__VnbaTriggered[__Vi0] = 0;
|
| 170 |
+
}
|
| 171 |
+
vlSelf->__Vi = 0;
|
| 172 |
+
}
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign___024root__Slow.cpp
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Verilated -*- C++ -*-
|
| 2 |
+
// DESCRIPTION: Verilator output: Design implementation internals
|
| 3 |
+
// See Vdesign.h for the primary calling header
|
| 4 |
+
|
| 5 |
+
#include "Vdesign__pch.h"
|
| 6 |
+
|
| 7 |
+
void Vdesign___024root___ctor_var_reset(Vdesign___024root* vlSelf);
|
| 8 |
+
|
| 9 |
+
Vdesign___024root::Vdesign___024root(Vdesign__Syms* symsp, const char* namep)
|
| 10 |
+
: __VdlySched{*symsp->_vm_contextp__}
|
| 11 |
+
{
|
| 12 |
+
vlSymsp = symsp;
|
| 13 |
+
vlNamep = strdup(namep);
|
| 14 |
+
// Reset structure values
|
| 15 |
+
Vdesign___024root___ctor_var_reset(this);
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
void Vdesign___024root::__Vconfigure(bool first) {
|
| 19 |
+
(void)first; // Prevent unused variable warning
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
Vdesign___024root::~Vdesign___024root() {
|
| 23 |
+
VL_DO_DANGLING(std::free(const_cast<char*>(vlNamep)), vlNamep);
|
| 24 |
+
}
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__main.cpp
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Verilated -*- C++ -*-
|
| 2 |
+
// DESCRIPTION: Verilator output: main() simulation loop, created with --main
|
| 3 |
+
|
| 4 |
+
#include "verilated.h"
|
| 5 |
+
#include "Vdesign.h"
|
| 6 |
+
|
| 7 |
+
//======================
|
| 8 |
+
|
| 9 |
+
int main(int argc, char** argv, char**) {
|
| 10 |
+
// Setup context, defaults, and parse command line
|
| 11 |
+
Verilated::debug(0);
|
| 12 |
+
const std::unique_ptr<VerilatedContext> contextp{new VerilatedContext};
|
| 13 |
+
contextp->threads(1);
|
| 14 |
+
contextp->commandArgs(argc, argv);
|
| 15 |
+
|
| 16 |
+
// Construct the Verilated model, from Vtop.h generated from Verilating
|
| 17 |
+
const std::unique_ptr<Vdesign> topp{new Vdesign{contextp.get(), ""}};
|
| 18 |
+
|
| 19 |
+
// Simulate until $finish
|
| 20 |
+
while (VL_LIKELY(!contextp->gotFinish())) {
|
| 21 |
+
// Evaluate model
|
| 22 |
+
topp->eval();
|
| 23 |
+
// Advance time
|
| 24 |
+
if (!topp->eventsPending()) break;
|
| 25 |
+
contextp->time(topp->nextTimeSlot());
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
if (VL_LIKELY(!contextp->gotFinish())) {
|
| 29 |
+
VL_DEBUG_IF(VL_PRINTF("+ Exiting without $finish; no events left\n"););
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
// Execute 'final' processes
|
| 33 |
+
topp->final();
|
| 34 |
+
|
| 35 |
+
// Print statistical summary report
|
| 36 |
+
contextp->statsPrintSummary();
|
| 37 |
+
|
| 38 |
+
return 0;
|
| 39 |
+
}
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__pch.h
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Verilated -*- C++ -*-
|
| 2 |
+
// DESCRIPTION: Verilator output: Precompiled header
|
| 3 |
+
//
|
| 4 |
+
// Internal details; most user sources do not need this header,
|
| 5 |
+
// unless using verilator public meta comments.
|
| 6 |
+
// Suggest use Vdesign.h instead.
|
| 7 |
+
|
| 8 |
+
#ifndef VERILATED_VDESIGN__PCH_H_
|
| 9 |
+
#define VERILATED_VDESIGN__PCH_H_ // guard
|
| 10 |
+
|
| 11 |
+
// GCC and Clang only will precompile headers (PCH) for the first header.
|
| 12 |
+
// So, make sure this is the one and only PCH.
|
| 13 |
+
// If multiple module's includes are needed, use individual includes.
|
| 14 |
+
#ifdef VL_PCH_INCLUDED
|
| 15 |
+
# error "Including multiple precompiled header files"
|
| 16 |
+
#endif
|
| 17 |
+
#define VL_PCH_INCLUDED
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
#include "verilated.h"
|
| 21 |
+
|
| 22 |
+
#include "Vdesign__Syms.h"
|
| 23 |
+
#include "Vdesign.h"
|
| 24 |
+
|
| 25 |
+
// Additional include files added using '--compiler-include'
|
| 26 |
+
|
| 27 |
+
#endif // guard
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__ver.d
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
obj_dir/Vdesign.cpp obj_dir/Vdesign.h obj_dir/Vdesign.mk obj_dir/Vdesign__Syms.h obj_dir/Vdesign__Syms__Slow.cpp obj_dir/Vdesign___024root.h obj_dir/Vdesign___024root__0.cpp obj_dir/Vdesign___024root__0__Slow.cpp obj_dir/Vdesign___024root__Slow.cpp obj_dir/Vdesign__main.cpp obj_dir/Vdesign__pch.h obj_dir/Vdesign__ver.d obj_dir/Vdesign_classes.mk : /opt/oss-cad-suite/libexec/verilator_bin /opt/oss-cad-suite/libexec/verilator_bin /opt/oss-cad-suite/share/verilator/include/verilated_std.sv /opt/oss-cad-suite/share/verilator/include/verilated_std_waiver.vlt design.v testbench.v
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign__verFiles.dat
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# DESCRIPTION: Verilator output: Timestamp data for --skip-identical. Delete at will.
|
| 2 |
+
C "-Wall --cc --binary --build-jobs 0 --build --quiet-build -Wno-fatal --timescale 1ns/1ns design.v testbench.v"
|
| 3 |
+
S 15470064 408335 1775589273 781926010 1775535881 0 "unhashed" "/opt/oss-cad-suite/libexec/verilator_bin"
|
| 4 |
+
S 7905 417104 1775589275 228926010 1775535881 0 "vaoJo7Sb62R3p7xvCJKmh57f4Cpmx2GHt7zuj5gO" "/opt/oss-cad-suite/share/verilator/include/verilated_std.sv"
|
| 5 |
+
S 3224 417105 1775589275 228926010 1775535881 0 "Hydzkv9X77JH03JyZeFi7tBFnQaHV7yknXQxBZFr" "/opt/oss-cad-suite/share/verilator/include/verilated_std_waiver.vlt"
|
| 6 |
+
S 3476 2246 1775653914 953249303 1775653914 953249303 "L54YBOTSWlZzA8XUc7Y6yejsxfiSAZUYTjl3XBdK" "design.v"
|
| 7 |
+
T 3092 2251 1775653914 992730269 1775653914 992730269 "unhashed" "obj_dir/Vdesign.cpp"
|
| 8 |
+
T 3431 2250 1775653914 992489978 1775653914 992489978 "unhashed" "obj_dir/Vdesign.h"
|
| 9 |
+
T 1868 2259 1775653914 995424142 1775653914 995424142 "unhashed" "obj_dir/Vdesign.mk"
|
| 10 |
+
T 947 2249 1775653914 992164936 1775653914 992164936 "unhashed" "obj_dir/Vdesign__Syms.h"
|
| 11 |
+
T 869 2248 1775653914 991858062 1775653914 991858062 "unhashed" "obj_dir/Vdesign__Syms__Slow.cpp"
|
| 12 |
+
T 1478 2253 1775653914 993146602 1775653914 993146602 "unhashed" "obj_dir/Vdesign___024root.h"
|
| 13 |
+
T 18016 2256 1775653914 994400351 1775653914 994400351 "unhashed" "obj_dir/Vdesign___024root__0.cpp"
|
| 14 |
+
T 7576 2255 1775653914 993895226 1775653914 993895226 "unhashed" "obj_dir/Vdesign___024root__0__Slow.cpp"
|
| 15 |
+
T 707 2254 1775653914 993471518 1775653914 993471518 "unhashed" "obj_dir/Vdesign___024root__Slow.cpp"
|
| 16 |
+
T 1113 2257 1775653914 994648809 1775653914 994648809 "unhashed" "obj_dir/Vdesign__main.cpp"
|
| 17 |
+
T 760 2252 1775653914 992919769 1775653914 992919769 "unhashed" "obj_dir/Vdesign__pch.h"
|
| 18 |
+
T 583 2260 1775653914 995824225 1775653914 995824225 "unhashed" "obj_dir/Vdesign__ver.d"
|
| 19 |
+
T 0 0 1775653914 995964683 1775653914 995964683 "unhashed" "obj_dir/Vdesign__verFiles.dat"
|
| 20 |
+
T 1672 2258 1775653914 995140267 1775653914 995140267 "unhashed" "obj_dir/Vdesign_classes.mk"
|
| 21 |
+
S 1324 70 1775648367 130973431 1775648367 130973431 "SyGOBpqu1wHLnWY7OyVQCbE3yNLu6Z96GARVmXqC" "testbench.v"
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/Vdesign_classes.mk
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Verilated -*- Makefile -*-
|
| 2 |
+
# DESCRIPTION: Verilator output: Make include file with class lists
|
| 3 |
+
#
|
| 4 |
+
# This file lists generated Verilated files, for including in higher level makefiles.
|
| 5 |
+
# See Vdesign.mk for the caller.
|
| 6 |
+
|
| 7 |
+
### Switches...
|
| 8 |
+
# C11 constructs required? 0/1 (always on now)
|
| 9 |
+
VM_C11 = 1
|
| 10 |
+
# Timing enabled? 0/1
|
| 11 |
+
VM_TIMING = 1
|
| 12 |
+
# Coverage output mode? 0/1 (from --coverage)
|
| 13 |
+
VM_COVERAGE = 0
|
| 14 |
+
# Parallel builds? 0/1 (from --output-split)
|
| 15 |
+
VM_PARALLEL_BUILDS = 0
|
| 16 |
+
# Tracing output mode? 0/1 (from --trace-fst/--trace-saif/--trace-vcd)
|
| 17 |
+
VM_TRACE = 0
|
| 18 |
+
# Tracing output mode in FST format? 0/1 (from --trace-fst)
|
| 19 |
+
VM_TRACE_FST = 0
|
| 20 |
+
# Tracing output mode in SAIF format? 0/1 (from --trace-saif)
|
| 21 |
+
VM_TRACE_SAIF = 0
|
| 22 |
+
# Tracing output mode in VCD format? 0/1 (from --trace-vcd)
|
| 23 |
+
VM_TRACE_VCD = 0
|
| 24 |
+
|
| 25 |
+
### Object file lists...
|
| 26 |
+
# Generated module classes, fast-path, compile with highest optimization
|
| 27 |
+
VM_CLASSES_FAST += \
|
| 28 |
+
Vdesign \
|
| 29 |
+
Vdesign___024root__0 \
|
| 30 |
+
Vdesign__main \
|
| 31 |
+
|
| 32 |
+
# Generated module classes, non-fast-path, compile with low/medium optimization
|
| 33 |
+
VM_CLASSES_SLOW += \
|
| 34 |
+
Vdesign___024root__Slow \
|
| 35 |
+
Vdesign___024root__0__Slow \
|
| 36 |
+
|
| 37 |
+
# Generated support classes, fast-path, compile with highest optimization
|
| 38 |
+
VM_SUPPORT_FAST += \
|
| 39 |
+
|
| 40 |
+
# Generated support classes, non-fast-path, compile with low/medium optimization
|
| 41 |
+
VM_SUPPORT_SLOW += \
|
| 42 |
+
Vdesign__Syms__Slow \
|
| 43 |
+
|
| 44 |
+
# Global classes, need linked once per executable, fast-path, compile with highest optimization
|
| 45 |
+
VM_GLOBAL_FAST += \
|
| 46 |
+
verilated \
|
| 47 |
+
verilated_timing \
|
| 48 |
+
verilated_threads \
|
| 49 |
+
|
| 50 |
+
# Global classes, need linked once per executable, non-fast-path, compile with low/medium optimization
|
| 51 |
+
VM_GLOBAL_SLOW += \
|
| 52 |
+
|
| 53 |
+
# Verilated -*- Makefile -*-
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated.d
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
verilated.o: /opt/oss-cad-suite/share/verilator/include/verilated.cpp \
|
| 2 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_config.h \
|
| 3 |
+
/opt/oss-cad-suite/share/verilator/include/verilatedos.h \
|
| 4 |
+
/opt/oss-cad-suite/share/verilator/include/verilated.h \
|
| 5 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_types.h \
|
| 6 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_funcs.h \
|
| 7 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_imp.h \
|
| 8 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_syms.h \
|
| 9 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_sym_props.h \
|
| 10 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_threads.h \
|
| 11 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_trace.h \
|
| 12 |
+
/opt/oss-cad-suite/share/verilator/include/verilatedos_c.h
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated.o
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c15e0086becf59dedb31cd5b4e20cfab3c618ecba86e0aeda2d5e8c2bf9c6177
|
| 3 |
+
size 254520
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated_threads.d
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
verilated_threads.o: \
|
| 2 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_threads.cpp \
|
| 3 |
+
/opt/oss-cad-suite/share/verilator/include/verilatedos.h \
|
| 4 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_threads.h \
|
| 5 |
+
/opt/oss-cad-suite/share/verilator/include/verilated.h \
|
| 6 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_config.h \
|
| 7 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_types.h \
|
| 8 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_funcs.h
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated_threads.o
ADDED
|
Binary file (64 kB). View file
|
|
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated_timing.d
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
verilated_timing.o: \
|
| 2 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_timing.cpp \
|
| 3 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_timing.h \
|
| 4 |
+
/opt/oss-cad-suite/share/verilator/include/verilated.h \
|
| 5 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_config.h \
|
| 6 |
+
/opt/oss-cad-suite/share/verilator/include/verilatedos.h \
|
| 7 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_types.h \
|
| 8 |
+
/opt/oss-cad-suite/share/verilator/include/verilated_funcs.h
|
server/tasks/hard/01_priority_encoder_latch/obj_dir/verilated_timing.o
ADDED
|
Binary file (16.2 kB). View file
|
|
|