mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Merge branch 'main' of https://github.com/openhwgroup/cvw into dev
This commit is contained in:
commit
6fd32b6643
6
.gitmodules
vendored
6
.gitmodules
vendored
@ -23,9 +23,9 @@
|
|||||||
[submodule "addins/vivado-boards"]
|
[submodule "addins/vivado-boards"]
|
||||||
path = addins/vivado-boards
|
path = addins/vivado-boards
|
||||||
url = https://github.com/Digilent/vivado-boards/
|
url = https://github.com/Digilent/vivado-boards/
|
||||||
[submodule "addins/vivado-risc-v"]
|
[submodule "addins/ahbsdc"]
|
||||||
path = addins/vivado-risc-v
|
path = addins/ahbsdc
|
||||||
url = https://github.com/eugene-tarassov/vivado-risc-v.git
|
url = git@github.com:jacobpease/ahbsdc.git
|
||||||
[submodule "addins/riscv-arch-test"]
|
[submodule "addins/riscv-arch-test"]
|
||||||
path = addins/riscv-arch-test
|
path = addins/riscv-arch-test
|
||||||
url = https://github.com/riscv-non-isa/riscv-arch-test
|
url = https://github.com/riscv-non-isa/riscv-arch-test
|
||||||
|
1
addins/ahbsdc
Submodule
1
addins/ahbsdc
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 5df21aa6625eca120e64ea353ca641aff37d90b2
|
@ -1 +0,0 @@
|
|||||||
Subproject commit c76a8613a177b3a04face2cb8e15dd07a8d2fc40
|
|
@ -45,6 +45,7 @@ ifu/ifu.sv: logic PCPF
|
|||||||
ifu/ifu.sv: logic PostSpillInstrRawF
|
ifu/ifu.sv: logic PostSpillInstrRawF
|
||||||
mmu/hptw.sv: logic ITLBWriteF
|
mmu/hptw.sv: logic ITLBWriteF
|
||||||
mmu/hptw.sv: statetype WalkerState
|
mmu/hptw.sv: statetype WalkerState
|
||||||
|
mmu/hptw.sv: logic ValidPTE
|
||||||
privileged/csrs.sv: logic CSRSReadValM
|
privileged/csrs.sv: logic CSRSReadValM
|
||||||
privileged/csrs.sv: logic SEPC_REGW
|
privileged/csrs.sv: logic SEPC_REGW
|
||||||
privileged/csrs.sv: logic MIP_REGW
|
privileged/csrs.sv: logic MIP_REGW
|
||||||
|
@ -42,13 +42,9 @@ if {$board=="ArtyA7"} {
|
|||||||
# read in all other rtl
|
# read in all other rtl
|
||||||
read_verilog -sv [glob -type f ../src/CopiedFiles_do_not_add_to_repo/*/*.sv ../src/CopiedFiles_do_not_add_to_repo/*/*/*.sv]
|
read_verilog -sv [glob -type f ../src/CopiedFiles_do_not_add_to_repo/*/*.sv ../src/CopiedFiles_do_not_add_to_repo/*/*/*.sv]
|
||||||
# *** Once the sdc is updated to use ahb changes these to system verilog.
|
# *** Once the sdc is updated to use ahb changes these to system verilog.
|
||||||
read_verilog [glob -type f ../src/axi_sdc_controller.v]
|
read_verilog [glob -type f ../../addins/ahbsdc/sdc/*.v]
|
||||||
read_verilog [glob -type f ../../addins/vivado-risc-v/sdc/sd_cmd_master.v]
|
|
||||||
read_verilog [glob -type f ../../addins/vivado-risc-v/sdc/sd_cmd_serial_host.v]
|
|
||||||
read_verilog [glob -type f ../../addins/vivado-risc-v/sdc/sd_data_master.v]
|
|
||||||
read_verilog [glob -type f ../../addins/vivado-risc-v/sdc/sd_data_serial_host.v]
|
|
||||||
|
|
||||||
set_property include_dirs {../src/CopiedFiles_do_not_add_to_repo/config ../../config/shared ../../addins/vivado-risc-v/sdc} [current_fileset]
|
set_property include_dirs {../src/CopiedFiles_do_not_add_to_repo/config ../../config/shared ../../addins/ahbsdc/sdc} [current_fileset]
|
||||||
|
|
||||||
if {$board=="ArtyA7"} {
|
if {$board=="ArtyA7"} {
|
||||||
add_files -fileset constrs_1 -norecurse ../constraints/constraints-$board.xdc
|
add_files -fileset constrs_1 -norecurse ../constraints/constraints-$board.xdc
|
||||||
|
513
fpga/src/boot.mem
Normal file
513
fpga/src/boot.mem
Normal file
@ -0,0 +1,513 @@
|
|||||||
|
8001819300002197
|
||||||
|
4281420141014081
|
||||||
|
4481440143814301
|
||||||
|
4681460145814501
|
||||||
|
4881480147814701
|
||||||
|
4a814a0149814901
|
||||||
|
4c814c014b814b01
|
||||||
|
4e814e014d814d01
|
||||||
|
0110011b4f814f01
|
||||||
|
059b45011161016e
|
||||||
|
0004063705fe0010
|
||||||
|
1f6000ef8006061b
|
||||||
|
0ff003930000100f
|
||||||
|
4e952e3110060e37
|
||||||
|
c602829b0053f2b7
|
||||||
|
2023fe02dfe312fd
|
||||||
|
829b0053f2b7007e
|
||||||
|
fe02dfe312fdc602
|
||||||
|
4de31efd000e2023
|
||||||
|
059bf1402573fdd0
|
||||||
|
0000061705e20870
|
||||||
|
0010029b01260613
|
||||||
|
68110002806702fe
|
||||||
|
0085179bf0080813
|
||||||
|
038008130107f7b3
|
||||||
|
480508a86c632781
|
||||||
|
1533357902a87963
|
||||||
|
38030000181700a8
|
||||||
|
1c6301057833f268
|
||||||
|
081a403018370808
|
||||||
|
0105783342280813
|
||||||
|
1815751308081063
|
||||||
|
00367513c295e14d
|
||||||
|
654ded510207e793
|
||||||
|
c1701ff00613f130
|
||||||
|
0637c530fff6861b
|
||||||
|
664dcd10167d0200
|
||||||
|
17fd001007b7c25c
|
||||||
|
859b5a5cc20cd21c
|
||||||
|
02062a23dfed0007
|
||||||
|
4785fffd561c664d
|
||||||
|
4501461c06f59063
|
||||||
|
4a1cc35c465cc31c
|
||||||
|
e29dc75c4a5cc71c
|
||||||
|
0c63086008138082
|
||||||
|
1ae30a9008130105
|
||||||
|
b7710017e793f905
|
||||||
|
e793b75901d7e793
|
||||||
|
5f5c674db7410197
|
||||||
|
66cd02072e23dffd
|
||||||
|
fff78513ff7d5698
|
||||||
|
40a0053300a03533
|
||||||
|
bfb100a7e7938082
|
||||||
|
e0a2715d8082557d
|
||||||
|
e486f052f44ef84a
|
||||||
|
fa13e85aec56fc26
|
||||||
|
843289ae892a0086
|
||||||
|
00959993000a1463
|
||||||
|
864ac4396b054a85
|
||||||
|
0009859b4549870a
|
||||||
|
0004049b05540363
|
||||||
|
86a66485008b7363
|
||||||
|
870a87aaec7ff0ef
|
||||||
|
4531458146014681
|
||||||
|
f0ef0207c9639c05
|
||||||
|
17820094979beb1f
|
||||||
|
873e020541639381
|
||||||
|
993e99ba020a1963
|
||||||
|
870aa8094501f85d
|
||||||
|
e8bff0ef45454685
|
||||||
|
60a64505fe0559e3
|
||||||
|
79a2794274e26406
|
||||||
|
61616b426ae27a02
|
||||||
|
9301020497138082
|
||||||
|
f40647057179b7f1
|
||||||
|
d79867cdec26f022
|
||||||
|
dff58b85571c674d
|
||||||
|
2423d35c03600793
|
||||||
|
fffd571c674d0207
|
||||||
|
0007a737b00026f3
|
||||||
|
b00027f311f70713
|
||||||
|
674dfef77de38f95
|
||||||
|
4f5ccf9d8b895b1c
|
||||||
|
26f3cf5c0027e793
|
||||||
|
071305f5e737b000
|
||||||
|
8f95b00027f30ff7
|
||||||
|
4f5c674dfef77de3
|
||||||
|
b00026f3cf5c9bf5
|
||||||
|
67f7071300989737
|
||||||
|
7de38f95b00027f3
|
||||||
|
458146014681fef7
|
||||||
|
ddbff0ef4501870a
|
||||||
|
059346014681870a
|
||||||
|
dcbff0ef45211aa0
|
||||||
|
1aa007134782e939
|
||||||
|
816393d117d24411
|
||||||
|
85220ff0041302e7
|
||||||
|
614564e270a27402
|
||||||
|
46e3da5ff0efa0cd
|
||||||
|
0207c7634782fe05
|
||||||
|
458146014681870a
|
||||||
|
d8bff0ef03700513
|
||||||
|
46014681870a87aa
|
||||||
|
0a900513403005b7
|
||||||
|
4409bf7dfc07d9e3
|
||||||
|
c3998b8583f9bfe1
|
||||||
|
4681870a00846413
|
||||||
|
f0ef450945814601
|
||||||
|
870afa0540e3d59f
|
||||||
|
123405b746014681
|
||||||
|
46e3d45ff0ef450d
|
||||||
|
870a77c14482f805
|
||||||
|
85a6460146818cfd
|
||||||
|
4ae3d2dff0ef451d
|
||||||
|
d3d8470567cdf605
|
||||||
|
000f4737b00026f3
|
||||||
|
b00027f323f70713
|
||||||
|
67cdfef77de38f95
|
||||||
|
4681870a0007ae23
|
||||||
|
0370051385a64601
|
||||||
|
f2054fe3cf7ff0ef
|
||||||
|
458146014681870a
|
||||||
|
ce3ff0ef08600513
|
||||||
|
4681870af20545e3
|
||||||
|
4541200005934601
|
||||||
|
f0055de3ccfff0ef
|
||||||
|
3023bf010113bf09
|
||||||
|
4605842a86aa4081
|
||||||
|
40113423850a4585
|
||||||
|
86a265a6da5ff0ef
|
||||||
|
d99ff0ef04084605
|
||||||
|
2201358322813603
|
||||||
|
86a2260508700513
|
||||||
|
d81ff0ef05629e0d
|
||||||
|
2a0135832a813603
|
||||||
|
9e0d86a226054505
|
||||||
|
3603d6bff0ef057e
|
||||||
|
0513320135833281
|
||||||
|
9e0d86a226054010
|
||||||
|
3083d53ff0ef0556
|
||||||
|
4501400134034081
|
||||||
|
0000808241010113
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
0000000000000000
|
||||||
|
00600100d2e3ca40
|
@ -27,14 +27,6 @@ BINARIES := fw_jump.elf vmlinux busybox
|
|||||||
OBJDUMPS := $(foreach name, $(BINARIES), $(basename $(name) .elf))
|
OBJDUMPS := $(foreach name, $(BINARIES), $(basename $(name) .elf))
|
||||||
OBJDUMPS := $(foreach name, $(OBJDUMPS), $(DIS)/$(name).objdump)
|
OBJDUMPS := $(foreach name, $(OBJDUMPS), $(DIS)/$(name).objdump)
|
||||||
|
|
||||||
define linuxDir =
|
|
||||||
$(shell find $(BUILDROOT)/output/build -maxdepth 2 -type d -regex ".*/linux-[0-9]+\.[0-9]+\.[0-9]+$$")
|
|
||||||
endef
|
|
||||||
|
|
||||||
define busyboxDir =
|
|
||||||
$(shell find $(BUILDROOT)/output/build -maxdepth 2 -type d -regex ".*/busybox-[0-9]+\.[0-9]+\.[0-9]+$$")
|
|
||||||
endef
|
|
||||||
|
|
||||||
.PHONY: all generate disassemble install clean cleanDTB cleanDriver test
|
.PHONY: all generate disassemble install clean cleanDTB cleanDriver test
|
||||||
|
|
||||||
all:
|
all:
|
||||||
@ -46,8 +38,7 @@ all:
|
|||||||
|
|
||||||
# Temp rule for debugging
|
# Temp rule for debugging
|
||||||
test:
|
test:
|
||||||
@echo $(linuxDir)
|
echo $(shell find $(BUILDROOT)/output/build -maxdepth 2 -type d -regex ".*/linux-[0-9]+\.[0-9]+\.[0-9]+$$")
|
||||||
@echo $(busyboxDir)
|
|
||||||
|
|
||||||
generate: $(DTB) $(IMAGES)
|
generate: $(DTB) $(IMAGES)
|
||||||
|
|
||||||
@ -74,11 +65,13 @@ $(DIS)/%.objdump: $(IMAGES)/%.elf
|
|||||||
$(DIS)/%.objdump: $(IMAGES)/%
|
$(DIS)/%.objdump: $(IMAGES)/%
|
||||||
riscv64-unknown-elf-objdump -S $< >> $@
|
riscv64-unknown-elf-objdump -S $< >> $@
|
||||||
|
|
||||||
$(IMAGES)/vmlinux: $(call linuxDir)/vmlinux
|
$(IMAGES)/vmlinux:
|
||||||
cp $< $@
|
linuxDir=$$(find $(BUILDROOT)/output/build -maxdepth 2 -type d -regex ".*/linux-[0-9]+\.[0-9]+\.[0-9]+$$") ;\
|
||||||
|
cp $$linuxDir/vmlinux $@ ;\
|
||||||
|
|
||||||
$(IMAGES)/busybox: $(call busyboxDir)/busybox
|
$(IMAGES)/busybox:
|
||||||
cp $< $@
|
busyboxDir=$$(find $(BUILDROOT)/output/build -maxdepth 2 -type d -regex ".*/busybox-[0-9]+\.[0-9]+\.[0-9]+$$") ;\
|
||||||
|
cp $$busyboxDir/busybox $@ ;\
|
||||||
|
|
||||||
# Generating new Buildroot directories --------------------------------
|
# Generating new Buildroot directories --------------------------------
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ module rom1p1r #(parameter ADDR_WIDTH = 8, DATA_WIDTH = 32, PRELOAD_ENABLED = 0)
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Core Memory
|
// Core Memory
|
||||||
logic [DATA_WIDTH-1:0] ROM [(2**ADDR_WIDTH)-1:0];
|
(*rom_style="block" *) logic [DATA_WIDTH-1:0] ROM [(2**ADDR_WIDTH)-1:0];
|
||||||
|
|
||||||
// dh 10/30/23 ROM macros are presently commented out
|
// dh 10/30/23 ROM macros are presently commented out
|
||||||
// because they don't point to a generated ROM
|
// because they don't point to a generated ROM
|
||||||
@ -41,15 +41,23 @@ module rom1p1r #(parameter ADDR_WIDTH = 8, DATA_WIDTH = 32, PRELOAD_ENABLED = 0)
|
|||||||
rom1p1r_128x64 rom1 (.CLK(clk), .CEB(~ce), .A(addr[6:0]), .Q(dout));
|
rom1p1r_128x64 rom1 (.CLK(clk), .CEB(~ce), .A(addr[6:0]), .Q(dout));
|
||||||
|
|
||||||
end if ((`USE_SRAM == 1) & (ADDR_WDITH == 7) & (DATA_WIDTH == 32)) begin
|
end if ((`USE_SRAM == 1) & (ADDR_WDITH == 7) & (DATA_WIDTH == 32)) begin
|
||||||
rom1p1r_128x32 rom1 (.CLK(clk), .CEB(~ce), .A(addr[6:0]), .Q(dout));
|
rom1p1r_128x32 rom1 (.CLK(clk), .CEB(~ce), .A(addr[6:0]), .Q(dout));
|
||||||
|
|
||||||
end else begin */
|
end else begin */
|
||||||
always @ (posedge clk)
|
|
||||||
if(ce) dout <= ROM[addr];
|
initial begin
|
||||||
|
if (PRELOAD_ENABLED) begin
|
||||||
|
$readmemh("../../../fpga/src/boot.mem", ROM, 0);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
always @ (posedge clk) begin
|
||||||
|
if(ce) dout <= ROM[addr];
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
// for FPGA, initialize with zero-stage bootloader
|
// for FPGA, initialize with zero-stage bootloader
|
||||||
if(PRELOAD_ENABLED) begin
|
/*if(PRELOAD_ENABLED) begin
|
||||||
initial begin
|
initial begin
|
||||||
ROM[0]=64'h8001819300002197;
|
ROM[0]=64'h8001819300002197;
|
||||||
ROM[1]=64'h4281420141014081;
|
ROM[1]=64'h4281420141014081;
|
||||||
@ -195,6 +203,6 @@ module rom1p1r #(parameter ADDR_WIDTH = 8, DATA_WIDTH = 32, PRELOAD_ENABLED = 0)
|
|||||||
ROM[141]=64'h0000808241010113;
|
ROM[141]=64'h0000808241010113;
|
||||||
|
|
||||||
end // if (PRELOAD_ENABLED)
|
end // if (PRELOAD_ENABLED)
|
||||||
end
|
end*/
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -30,33 +30,34 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
module align import cvw::*; #(parameter cvw_t P) (
|
module align import cvw::*; #(parameter cvw_t P) (
|
||||||
input logic clk,
|
input logic clk,
|
||||||
input logic reset,
|
input logic reset,
|
||||||
input logic StallM, FlushM,
|
input logic StallM, FlushM,
|
||||||
input logic [P.XLEN-1:0] IEUAdrM, // 2 byte aligned PC in Fetch stage
|
input logic [P.XLEN-1:0] IEUAdrM, // 2 byte aligned PC in Fetch stage
|
||||||
input logic [P.XLEN-1:0] IEUAdrE, // The next IEUAdrM
|
input logic [P.XLEN-1:0] IEUAdrE, // The next IEUAdrM
|
||||||
input logic [2:0] Funct3M, // Size of memory operation
|
input logic [2:0] Funct3M, // Size of memory operation
|
||||||
input logic [1:0] MemRWM,
|
input logic [1:0] MemRWM,
|
||||||
input logic CacheableM,
|
input logic CacheableM,
|
||||||
input logic [P.LLEN*2-1:0]DCacheReadDataWordM, // Instruction from the IROM, I$, or bus. Used to check if the instruction if compressed
|
input logic [P.LLEN*2-1:0] DCacheReadDataWordM, // Instruction from the IROM, I$, or bus. Used to check if the instruction if compressed
|
||||||
input logic CacheBusHPWTStall, // I$ or bus are stalled. Transition to second fetch of spill after the first is fetched
|
input logic CacheBusHPWTStall, // I$ or bus are stalled. Transition to second fetch of spill after the first is fetched
|
||||||
input logic DTLBMissM, // ITLB miss, ignore memory request
|
input logic DTLBMissM, // ITLB miss, ignore memory request
|
||||||
input logic DataUpdateDAM, // ITLB miss, ignore memory request
|
input logic DataUpdateDAM, // ITLB miss, ignore memory request
|
||||||
|
input logic SelHPTW,
|
||||||
|
|
||||||
input logic [(P.LLEN-1)/8:0] ByteMaskM,
|
input logic [(P.LLEN-1)/8:0] ByteMaskM,
|
||||||
input logic [(P.LLEN-1)/8:0] ByteMaskExtendedM,
|
input logic [(P.LLEN-1)/8:0] ByteMaskExtendedM,
|
||||||
input logic [P.LLEN-1:0] LSUWriteDataM,
|
input logic [P.LLEN-1:0] LSUWriteDataM,
|
||||||
|
|
||||||
output logic [(P.LLEN*2-1)/8:0] ByteMaskSpillM,
|
output logic [(P.LLEN*2-1)/8:0] ByteMaskSpillM,
|
||||||
output logic [P.LLEN*2-1:0] LSUWriteDataSpillM,
|
output logic [P.LLEN*2-1:0] LSUWriteDataSpillM,
|
||||||
|
|
||||||
output logic [P.XLEN-1:0] IEUAdrSpillE, // The next PCF for one of the two memory addresses of the spill
|
output logic [P.XLEN-1:0] IEUAdrSpillE, // The next PCF for one of the two memory addresses of the spill
|
||||||
output logic [P.XLEN-1:0] IEUAdrSpillM, // IEUAdrM for one of the two memory addresses of the spill
|
output logic [P.XLEN-1:0] IEUAdrSpillM, // IEUAdrM for one of the two memory addresses of the spill
|
||||||
output logic SelSpillE, // During the transition between the two spill operations, the IFU should stall the pipeline
|
output logic SelSpillE, // During the transition between the two spill operations, the IFU should stall the pipeline
|
||||||
output logic [1:0] MemRWSpillM,
|
output logic [1:0] MemRWSpillM,
|
||||||
output logic SelStoreDelay, //*** this is bad. really don't like moving this outside
|
output logic SelStoreDelay, //*** this is bad. really don't like moving this outside
|
||||||
output logic [P.LLEN-1:0] DCacheReadDataWordSpillM, // The final 32 bit instruction after merging the two spilled fetches into 1 instruction
|
output logic [P.LLEN-1:0] DCacheReadDataWordSpillM, // The final 32 bit instruction after merging the two spilled fetches into 1 instruction
|
||||||
output logic SpillStallM);
|
output logic SpillStallM);
|
||||||
|
|
||||||
localparam LLENINBYTES = P.LLEN/8;
|
localparam LLENINBYTES = P.LLEN/8;
|
||||||
localparam OFFSET_BIT_POS = $clog2(P.DCACHE_LINELENINBITS/8);
|
localparam OFFSET_BIT_POS = $clog2(P.DCACHE_LINELENINBITS/8);
|
||||||
@ -83,6 +84,7 @@ module align import cvw::*; #(parameter cvw_t P) (
|
|||||||
logic [$clog2(LLENINBYTES)-1:0] ByteOffsetM;
|
logic [$clog2(LLENINBYTES)-1:0] ByteOffsetM;
|
||||||
logic HalfSpillM, WordSpillM;
|
logic HalfSpillM, WordSpillM;
|
||||||
logic [$clog2(LLENINBYTES)-1:0] AccessByteOffsetM;
|
logic [$clog2(LLENINBYTES)-1:0] AccessByteOffsetM;
|
||||||
|
logic ValidAccess;
|
||||||
|
|
||||||
/* verilator lint_off WIDTHEXPAND */
|
/* verilator lint_off WIDTHEXPAND */
|
||||||
assign IEUAdrIncrementM = IEUAdrM + LLENINBYTES;
|
assign IEUAdrIncrementM = IEUAdrM + LLENINBYTES;
|
||||||
@ -116,17 +118,18 @@ module align import cvw::*; #(parameter cvw_t P) (
|
|||||||
assign WordMisalignedM = (ByteOffsetM[1:0] != '0) & Funct3M[1:0] == 2'b10;
|
assign WordMisalignedM = (ByteOffsetM[1:0] != '0) & Funct3M[1:0] == 2'b10;
|
||||||
assign HalfSpillM = (IEUAdrM[OFFSET_BIT_POS-1:1] == '1) & HalfMisalignedM;
|
assign HalfSpillM = (IEUAdrM[OFFSET_BIT_POS-1:1] == '1) & HalfMisalignedM;
|
||||||
assign WordSpillM = (IEUAdrM[OFFSET_BIT_POS-1:2] == '1) & WordMisalignedM;
|
assign WordSpillM = (IEUAdrM[OFFSET_BIT_POS-1:2] == '1) & WordMisalignedM;
|
||||||
|
assign ValidAccess = (|MemRWM) & ~SelHPTW;
|
||||||
|
|
||||||
if(P.LLEN == 64) begin
|
if(P.LLEN == 64) begin
|
||||||
logic DoubleSpillM;
|
logic DoubleSpillM;
|
||||||
logic DoubleMisalignedM;
|
logic DoubleMisalignedM;
|
||||||
assign DoubleMisalignedM = (ByteOffsetM[2:0] != '0) & Funct3M[1:0] == 2'b11;
|
assign DoubleMisalignedM = (ByteOffsetM[2:0] != '0) & Funct3M[1:0] == 2'b11;
|
||||||
assign DoubleSpillM = (IEUAdrM[OFFSET_BIT_POS-1:3] == '1) & DoubleMisalignedM;
|
assign DoubleSpillM = (IEUAdrM[OFFSET_BIT_POS-1:3] == '1) & DoubleMisalignedM;
|
||||||
assign MisalignedM = HalfMisalignedM | WordMisalignedM | DoubleMisalignedM;
|
assign MisalignedM = ValidAccess & (HalfMisalignedM | WordMisalignedM | DoubleMisalignedM);
|
||||||
assign SpillM = (|MemRWM) & CacheableM & (HalfSpillM | WordSpillM | DoubleSpillM);
|
assign SpillM = ValidAccess & CacheableM & (HalfSpillM | WordSpillM | DoubleSpillM);
|
||||||
end else begin
|
end else begin
|
||||||
assign SpillM = (|MemRWM) & CacheableM & (HalfSpillM | WordSpillM);
|
assign SpillM = ValidAccess & CacheableM & (HalfSpillM | WordSpillM);
|
||||||
assign MisalignedM = HalfMisalignedM | WordMisalignedM;
|
assign MisalignedM = ValidAccess & (HalfMisalignedM | WordMisalignedM);
|
||||||
end
|
end
|
||||||
|
|
||||||
// align by shifting
|
// align by shifting
|
||||||
|
@ -159,7 +159,7 @@ module lsu import cvw::*; #(parameter cvw_t P) (
|
|||||||
logic [P.XLEN-1:0] IEUAdrSpillE, IEUAdrSpillM;
|
logic [P.XLEN-1:0] IEUAdrSpillE, IEUAdrSpillM;
|
||||||
align #(P) align(.clk, .reset, .StallM, .FlushM, .IEUAdrE, .IEUAdrM, .Funct3M,
|
align #(P) align(.clk, .reset, .StallM, .FlushM, .IEUAdrE, .IEUAdrM, .Funct3M,
|
||||||
.MemRWM, .CacheableM,
|
.MemRWM, .CacheableM,
|
||||||
.DCacheReadDataWordM, .CacheBusHPWTStall, .DTLBMissM, .DataUpdateDAM,
|
.DCacheReadDataWordM, .CacheBusHPWTStall, .DTLBMissM, .DataUpdateDAM, .SelHPTW,
|
||||||
.ByteMaskM, .ByteMaskExtendedM, .LSUWriteDataM, .ByteMaskSpillM, .LSUWriteDataSpillM,
|
.ByteMaskM, .ByteMaskExtendedM, .LSUWriteDataM, .ByteMaskSpillM, .LSUWriteDataSpillM,
|
||||||
.IEUAdrSpillE, .IEUAdrSpillM, .SelSpillE, .MemRWSpillM, .DCacheReadDataWordSpillM, .SpillStallM,
|
.IEUAdrSpillE, .IEUAdrSpillM, .SelSpillE, .MemRWSpillM, .DCacheReadDataWordSpillM, .SpillStallM,
|
||||||
.SelStoreDelay);
|
.SelStoreDelay);
|
||||||
|
@ -389,6 +389,7 @@ module testbench;
|
|||||||
|
|
||||||
assign SDCCmd = SDCCmdOE ? SDCCmdOut : 1'bz;
|
assign SDCCmd = SDCCmdOE ? SDCCmdOut : 1'bz;
|
||||||
assign SDCCmdIn = SDCCmd;
|
assign SDCCmdIn = SDCCmd;
|
||||||
|
assign SDCDat = sd_dat_reg_t ? sd_dat_reg_o : sd_dat_i;
|
||||||
assign SDCDatIn = SDCDat;
|
assign SDCDatIn = SDCDat;
|
||||||
-----/\----- EXCLUDED -----/\----- */
|
-----/\----- EXCLUDED -----/\----- */
|
||||||
assign SDCIntr = '0;
|
assign SDCIntr = '0;
|
||||||
|
Loading…
Reference in New Issue
Block a user