Skip to content

Commit 4cebbb6

Browse files
authored
Merge pull request #147 from stffrdhrn/or1k-linux-failing
Revert "dcache: Allow writing during write_pending"
2 parents 44ea698 + 1a8c19b commit 4cebbb6

36 files changed

+1910
-888
lines changed

.github/workflows/Dockerfile

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,13 @@
1414
#
1515
FROM ubuntu:18.04
1616
RUN apt-get update && apt-get -y install \
17-
build-essential \
18-
python3 python3-pip
19-
RUN apt-get -y install git
17+
build-essential python3 python3-pip xz-utils git iverilog \
18+
flex libelf-dev
2019

2120
RUN pip3 install setuptools wheel
2221
RUN pip3 install fusesoc
2322

2423
RUN apt-get -y install curl
25-
RUN apt-get -y install iverilog libelf-dev
2624

2725
RUN groupadd -g 999 runner && \
2826
useradd -m -r -u 999 -g runner runner

.github/workflows/ci.yml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ jobs:
3434
# Install OS and Python Tools
3535
- name: Install Tools
3636
run: |
37-
sudo apt-get install build-essential python3 xz-utils git iverilog libelf-dev
37+
sudo apt-get install build-essential python3 xz-utils git iverilog \
38+
libfl2 libelf-dev
3839
pip3 install setuptools wheel
3940
pip3 install fusesoc
4041
export PATH=$PATH:$HOME/.local/bin
@@ -47,9 +48,8 @@ jobs:
4748
mkdir -p /tmp/tools/lib
4849
cd /tmp/tools
4950
curl --remote-name --location \
50-
https://github.com/stffrdhrn/gcc/releases/download/or1k-10.0.0-20190723/or1k-elf-10.0.0-20190723.tar.xz
51-
tar xC /tmp/tools -f or1k-elf-10.0.0-20190723.tar.xz
52-
ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /tmp/tools/lib/libmpfr.so.4
51+
https://github.com/openrisc/or1k-gcc/releases/download/or1k-12.0.1-20220210-20220304/or1k-elf-12.0.1-20220210-20220304.tar.xz
52+
tar xC /tmp/tools -f or1k-elf-12.0.1-20220210-20220304.tar.xz
5353
export PATH=$PATH:/tmp/tools/or1k-elf/bin/
5454
or1k-elf-gcc --version
5555
@@ -59,7 +59,7 @@ jobs:
5959
export PATH=$PATH:/tmp/tools/or1k-elf/bin:$HOME/.local/bin
6060
mkdir -p /tmp/tools
6161
cd /tmp/tools
62-
git clone --depth 1 https://github.com/openrisc/or1k-tests.git -b v1.0.4
62+
git clone --depth 1 https://github.com/openrisc/or1k-tests.git -b v1.0.5
6363
cd or1k-tests/native
6464
make -j8
6565
fusesoc library add mor1kx-generic https://github.com/openrisc/mor1kx-generic.git
@@ -77,7 +77,8 @@ jobs:
7777
export PIPELINE=CAPPUCCINO
7878
export TARGET=mor1kx_tb
7979
export TARGET_ARGS="--tool=icarus"
80-
export CORE_ARGS="--pipeline=$PIPELINE $EXTRA_CORE_ARGS"
80+
export CORE_ARGS="--pipeline=$PIPELINE --vcd --trace_enable $EXTRA_CORE_ARGS"
81+
export ARTIFACT_PATH="build/mor1kx-generic_*/mor1kx_tb-icarus"
8182
cd /tmp/tools/or1k-tests/native
8283
./runtests.sh
8384
result=$?
@@ -86,6 +87,13 @@ jobs:
8687
fi
8788
exit $result
8889
90+
# Upload test results
91+
- uses: actions/upload-artifact@v2
92+
if: failure()
93+
with:
94+
name: runtest-results
95+
path: /tmp/tools/or1k-tests/native/artifacts/**/*
96+
8997
strategy:
9098
matrix:
9199
env:
@@ -113,6 +121,7 @@ jobs:
113121
libreadline-dev gawk tcl-dev libffi-dev git graphviz xdot \
114122
pkg-config python python3 libboost-system-dev \
115123
libboost-python-dev libboost-filesystem-dev zlib1g-dev
124+
pip3 install dataclasses
116125
117126
- name: Install clang
118127
run: |

bench/formal/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
mor1kx_*/
1+
mor1kx*/

bench/formal/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ TESTS := mor1kx_cache_lru \
3535

3636
all: $(TESTS)
3737
clean:
38-
rm -rf $(TESTS)
38+
rm -rf mor1kx*/
3939

4040
.PHONY: all clean $(TESTS)
4141

bench/formal/mor1kx.gtkw

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
[*]
2+
[*] GTKWave Analyzer v3.3.108 (w)1999-2020 BSI
3+
[*] Sat Apr 16 09:30:26 2022
4+
[*]
5+
[dumpfile] "/home/shorne/work/openrisc/local-cores/mor1kx/bench/formal/mor1kx/engine_0/trace_induct.vcd"
6+
[dumpfile_mtime] "Sat Apr 16 09:19:48 2022"
7+
[dumpfile_size] 313480
8+
[savefile] "/home/shorne/work/openrisc/local-cores/mor1kx/bench/formal/mor1kx.gtkw"
9+
[timestart] 0
10+
[size] 1000 600
11+
[pos] -1 -1
12+
*-4.914850 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
13+
[treeopen] mor1kx.
14+
[treeopen] mor1kx.mor1kx_cpu.
15+
[treeopen] mor1kx.mor1kx_cpu.cappuccino.
16+
[treeopen] mor1kx.mor1kx_cpu.cappuccino.mor1kx_cpu.
17+
[treeopen] mor1kx.mor1kx_cpu.cappuccino.mor1kx_cpu.mor1kx_lsu_cappuccino.
18+
[treeopen] mor1kx.mor1kx_cpu.cappuccino.mor1kx_cpu.mor1kx_lsu_cappuccino.dcache_gen.
19+
[sst_width] 281
20+
[signals_width] 142
21+
[sst_expanded] 1
22+
[sst_vpaned_height] 295
23+
@28
24+
smt_clock
25+
@420
26+
smt_step
27+
@200
28+
-LSU
29+
@28
30+
mor1kx.mor1kx_cpu.cappuccino.mor1kx_cpu.mor1kx_lsu_cappuccino.dc_enable_i
31+
@29
32+
mor1kx.mor1kx_cpu.cappuccino.mor1kx_cpu.mor1kx_lsu_cappuccino.dmmu_enable_i
33+
@28
34+
mor1kx.mor1kx_cpu.cappuccino.mor1kx_cpu.mor1kx_lsu_cappuccino.dbus_err_i
35+
mor1kx.mor1kx_cpu.cappuccino.mor1kx_cpu.mor1kx_lsu_cappuccino.dc_enabled
36+
mor1kx.mor1kx_cpu.cappuccino.mor1kx_cpu.mor1kx_lsu_cappuccino.dc_err
37+
@2024
38+
[color] 3
39+
^2 /home/shorne/work/openrisc/local-cores/mor1kx/bench/formal/states-lsu.txt
40+
mor1kx.mor1kx_cpu.cappuccino.mor1kx_cpu.mor1kx_lsu_cappuccino.state[2:0]
41+
@28
42+
mor1kx.mor1kx_cpu.cappuccino.mor1kx_cpu.mor1kx_lsu_cappuccino.dc_refill_req
43+
mor1kx.mor1kx_cpu.cappuccino.mor1kx_cpu.mor1kx_lsu_cappuccino.dc_refill_done
44+
@200
45+
-LSU.dcache
46+
@2024
47+
[color] 3
48+
^1 /home/shorne/work/openrisc/local-cores/mor1kx/bench/formal/states-dcache.txt
49+
mor1kx.mor1kx_cpu.cappuccino.mor1kx_cpu.mor1kx_lsu_cappuccino.dcache_gen.mor1kx_dcache.state[4:0]
50+
[pattern_trace] 1
51+
[pattern_trace] 0

bench/formal/mor1kx.sby

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# We only check the first few cycles since we just confirm reset conditions
22
[options]
3-
mode prove
4-
depth 5
3+
mode bmc
4+
depth 10
55

66
[engines]
77
smtbmc yices
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
[*]
2+
[*] GTKWave Analyzer v3.3.108 (w)1999-2020 BSI
3+
[*] Mon May 2 02:35:06 2022
4+
[*]
5+
[dumpfile] "/home/shorne/work/openrisc/local-cores/mor1kx/bench/formal/mor1kx_cpu_cappuccino/engine_0/trace_induct.vcd"
6+
[dumpfile_mtime] "Sun May 1 08:39:41 2022"
7+
[dumpfile_size] 776476
8+
[savefile] "/home/shorne/work/openrisc/local-cores/mor1kx/bench/formal/mor1kx_cpu_cappuccino.gtkw"
9+
[timestart] 28
10+
[size] 1360 872
11+
[pos] -1 -1
12+
*-5.214850 146 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
13+
[treeopen] mor1kx_cpu_cappuccino.
14+
[treeopen] mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.dcache_gen.
15+
[treeopen] mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.dcache_gen.mor1kx_dcache.
16+
[sst_width] 281
17+
[signals_width] 278
18+
[sst_expanded] 1
19+
[sst_vpaned_height] 251
20+
@28
21+
smt_clock
22+
@420
23+
smt_step
24+
@200
25+
-exceptions
26+
@28
27+
mor1kx_cpu_cappuccino.decode_except_ibus_err_o
28+
mor1kx_cpu_cappuccino.execute_except_ibus_err_o
29+
mor1kx_cpu_cappuccino.msync_stall_o
30+
mor1kx_cpu_cappuccino.pipeline_flush_o
31+
mor1kx_cpu_cappuccino.snoop_en_i
32+
@200
33+
-ibus
34+
@28
35+
mor1kx_cpu_cappuccino.ibus_req_o
36+
mor1kx_cpu_cappuccino.ibus_ack_i
37+
[color] 1
38+
mor1kx_cpu_cappuccino.ibus_err_i
39+
@200
40+
-dbus
41+
@28
42+
mor1kx_cpu_cappuccino.dbus_req_o
43+
mor1kx_cpu_cappuccino.dbus_we_o
44+
mor1kx_cpu_cappuccino.dbus_ack_i
45+
[color] 1
46+
mor1kx_cpu_cappuccino.dbus_err_i
47+
@200
48+
-
49+
-FETCH
50+
@22
51+
mor1kx_cpu_cappuccino.mor1kx_fetch_cappuccino.pc_addr[31:0]
52+
mor1kx_cpu_cappuccino.mor1kx_fetch_cappuccino.pc_decode_o[31:0]
53+
mor1kx_cpu_cappuccino.mor1kx_fetch_cappuccino.decode_insn_o[31:0]
54+
@24
55+
[color] 2
56+
mor1kx_cpu_cappuccino.mor1kx_fetch_cappuccino.fetch_rfa_adr_o[4:0]
57+
[color] 3
58+
mor1kx_cpu_cappuccino.mor1kx_fetch_cappuccino.fetch_rfb_adr_o[4:0]
59+
@28
60+
[color] 3
61+
mor1kx_cpu_cappuccino.mor1kx_fetch_cappuccino.fetch_valid_o
62+
@200
63+
-DECODE
64+
@22
65+
[color] 1
66+
mor1kx_cpu_cappuccino.mor1kx_decode.decode_imm16_o[15:0]
67+
@24
68+
[color] 2
69+
mor1kx_cpu_cappuccino.mor1kx_decode.decode_rfa_adr_o[4:0]
70+
[color] 3
71+
mor1kx_cpu_cappuccino.mor1kx_decode.decode_rfb_adr_o[4:0]
72+
@28
73+
mor1kx_cpu_cappuccino.mor1kx_decode.decode_op_mfspr_o
74+
mor1kx_cpu_cappuccino.mor1kx_decode.decode_op_mtspr_o
75+
mor1kx_cpu_cappuccino.mor1kx_decode.decode_op_lsu_load_o
76+
mor1kx_cpu_cappuccino.mor1kx_decode.decode_op_lsu_store_o
77+
mor1kx_cpu_cappuccino.mor1kx_decode.decode_op_lsu_atomic_o
78+
mor1kx_cpu_cappuccino.mor1kx_decode.decode_op_msync_o
79+
@200
80+
-DECODE EXEC
81+
@28
82+
[color] 7
83+
mor1kx_cpu_cappuccino.mor1kx_decode_execute_cappuccino.padv_i
84+
mor1kx_cpu_cappuccino.mor1kx_decode_execute_cappuccino.execute_op_lsu_load_o
85+
mor1kx_cpu_cappuccino.mor1kx_decode_execute_cappuccino.execute_op_lsu_store_o
86+
mor1kx_cpu_cappuccino.mor1kx_decode_execute_cappuccino.execute_op_lsu_atomic_o
87+
mor1kx_cpu_cappuccino.mor1kx_decode_execute_cappuccino.execute_op_msync_o
88+
@200
89+
-EXEC_CTRL
90+
@28
91+
[color] 7
92+
mor1kx_cpu_cappuccino.mor1kx_execute_ctrl_cappuccino.padv_i
93+
mor1kx_cpu_cappuccino.mor1kx_execute_ctrl_cappuccino.ctrl_op_mfspr_o
94+
mor1kx_cpu_cappuccino.mor1kx_execute_ctrl_cappuccino.ctrl_op_mtspr_o
95+
mor1kx_cpu_cappuccino.mor1kx_execute_ctrl_cappuccino.ctrl_op_lsu_load_o
96+
mor1kx_cpu_cappuccino.mor1kx_execute_ctrl_cappuccino.ctrl_op_lsu_store_o
97+
mor1kx_cpu_cappuccino.mor1kx_execute_ctrl_cappuccino.ctrl_op_lsu_atomic_o
98+
mor1kx_cpu_cappuccino.mor1kx_execute_ctrl_cappuccino.ctrl_op_msync_o
99+
@200
100+
-
101+
-LSU
102+
@28
103+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.dmmu_enable_i
104+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.dc_enable_i
105+
[color] 3
106+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.lsu_valid_o
107+
@200
108+
-LSU.s1
109+
@28
110+
[color] 7
111+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.padv_execute_i
112+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.exec_op_lsu_load_i
113+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.exec_op_lsu_store_i
114+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.exec_op_lsu_atomic_i
115+
@200
116+
-LSU.s2
117+
@28
118+
[color] 7
119+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.padv_ctrl_i
120+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.ctrl_op_lsu_load_i
121+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.ctrl_op_lsu_store_i
122+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.ctrl_op_lsu_atomic_i
123+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.ctrl_op_msync_i
124+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.spr_bus_stb_i
125+
@200
126+
-
127+
@2024
128+
[color] 3
129+
^1 /home/shorne/work/openrisc/local-cores/mor1kx/bench/formal/states-lsu.txt
130+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.state[2:0]
131+
@28
132+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.tlb_reload_done
133+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.store_buffer_write_pending
134+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.store_buffer_full
135+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.dbus_stall
136+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.dcache_gen.dc_req
137+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.dc_ack
138+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.dc_refill
139+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.dc_refill_r
140+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.dc_refill_req
141+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.dc_refill_done
142+
@200
143+
-LSU[dcache]
144+
@2024
145+
[color] 3
146+
^2 /home/shorne/work/openrisc/local-cores/mor1kx/bench/formal/states-dcache.txt
147+
mor1kx_cpu_cappuccino.mor1kx_lsu_cappuccino.dcache_gen.mor1kx_dcache.state[4:0]
148+
@200
149+
-CTRL
150+
@28
151+
mor1kx_cpu_cappuccino.mor1kx_ctrl_cappuccino.spr_we
152+
@22
153+
mor1kx_cpu_cappuccino.mor1kx_ctrl_cappuccino.spr_sr[15:0]
154+
mor1kx_cpu_cappuccino.mor1kx_ctrl_cappuccino.spr_dmmucfgr[31:0]
155+
mor1kx_cpu_cappuccino.mor1kx_ctrl_cappuccino.spr_dccfgr[31:0]
156+
mor1kx_cpu_cappuccino.mor1kx_ctrl_cappuccino.spr_dcfgr[31:0]
157+
[pattern_trace] 1
158+
[pattern_trace] 0

bench/formal/mor1kx_cpu_cappuccino.sby

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# We only check the first few cycles since we just confirm reset conditions
22
[options]
3-
mode prove
4-
depth 5
3+
mode bmc
4+
depth 16
55

66
[engines]
77
smtbmc yices
@@ -14,7 +14,7 @@ read -formal mor1kx_fetch_cappuccino.v
1414
read -formal mor1kx_icache.v
1515
read -formal mor1kx_cache_lru.v
1616
read_verilog mor1kx_branch_prediction.v
17-
read -formal mor1kx_cpu_cappuccino.v
17+
read -formal -D CPU_CAPPUCCINO mor1kx_cpu_cappuccino.v
1818
read -formal mor1kx_ctrl_cappuccino.v
1919
read -formal mor1kx_execute_ctrl_cappuccino.v
2020
read -formal mor1kx_rf_cappuccino.v

0 commit comments

Comments
 (0)