add address_range to MemoryInterfaceConfig and add support to simple_uart
This commit is contained in:
parent
0d451e4e95
commit
a15367c37e
5 changed files with 169 additions and 50 deletions
48
crates/cpu/tests/expected/fetch.vcd
generated
48
crates/cpu/tests/expected/fetch.vcd
generated
|
|
@ -3633,7 +3633,7 @@ b0 UA{3,"
|
|||
0mS#3<"
|
||||
0^qjb["
|
||||
b0 tN>yu"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) '@T[?"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) '@T[?"
|
||||
0BXk&["
|
||||
sHdlNone\x20(0) &wG|&"
|
||||
sSuccess\x20(0) ^F2z4"
|
||||
|
|
@ -3647,7 +3647,7 @@ b0 VXdV?"
|
|||
b0 =`@6L"
|
||||
b0 e2JF6"
|
||||
b0 ]ocL{"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) ^<ah9"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) ^<ah9"
|
||||
02sb.i"
|
||||
sHdlNone\x20(0) JC:kM"
|
||||
b0 .*4N""
|
||||
|
|
@ -3668,7 +3668,7 @@ b0 huWrb"
|
|||
b0 EO39y"
|
||||
b0 |d_{U"
|
||||
sPhantomConst(\"0..=16\") 3(idJ"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) P'(UK"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) P'(UK"
|
||||
sHdlSome\x20(1) N^Lck"
|
||||
b1000000000000 q3ltq"
|
||||
b0 zZOnr"
|
||||
|
|
@ -3756,7 +3756,7 @@ b0 46)Xi"
|
|||
0"(@LS"
|
||||
0&NGtM"
|
||||
b0 "tB6}"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) Hn\.r"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) Hn\.r"
|
||||
0jbUZ8"
|
||||
sHdlNone\x20(0) NcD^Z"
|
||||
sSuccess\x20(0) X3rb0"
|
||||
|
|
@ -3770,7 +3770,7 @@ b0 vyE_1"
|
|||
b0 D}2RZ"
|
||||
b0 \XUCp"
|
||||
b0 [^@q%"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) G4KC#"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) G4KC#"
|
||||
01thaQ"
|
||||
sHdlNone\x20(0) +5LtZ"
|
||||
b0 {6^Pl"
|
||||
|
|
@ -3791,7 +3791,7 @@ b0 iB{BF"
|
|||
b0 eR=Hx"
|
||||
b0 8!8=?"
|
||||
sPhantomConst(\"0..=16\") V?X!X"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) T-cQB"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) T-cQB"
|
||||
sHdlSome\x20(1) JqP67"
|
||||
b1000000000000 iRy|N"
|
||||
b0 IIeMq"
|
||||
|
|
@ -4439,7 +4439,7 @@ b0 H{?Xz"
|
|||
03\z-w"
|
||||
00^&W_"
|
||||
b0 n/%-/"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) ./0U4"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) ./0U4"
|
||||
0NE4rt"
|
||||
sHdlNone\x20(0) :GU,#"
|
||||
sSuccess\x20(0) D87*9"
|
||||
|
|
@ -4453,7 +4453,7 @@ b0 d%H]f"
|
|||
b0 zgzi@"
|
||||
b0 7B-!)"
|
||||
b0 Y1Qf)"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) a.$Aw"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) a.$Aw"
|
||||
0*d$ca"
|
||||
sHdlNone\x20(0) /N@6H"
|
||||
b0 '10Cg"
|
||||
|
|
@ -4474,7 +4474,7 @@ b0 hn|]["
|
|||
b0 bWF^\"
|
||||
b0 -"k'e"
|
||||
sPhantomConst(\"0..=16\") uoZP0"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) /KK^t"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) /KK^t"
|
||||
sHdlSome\x20(1) e\)?v"
|
||||
b1000000000000 %G_Dt"
|
||||
b0 E7iTa"
|
||||
|
|
@ -4919,7 +4919,7 @@ b0 H{?Xz
|
|||
03\z-w
|
||||
00^&W_
|
||||
b0 n/%-/
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) ./0U4
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) ./0U4
|
||||
0NE4rt
|
||||
sHdlNone\x20(0) :GU,#
|
||||
sSuccess\x20(0) D87*9
|
||||
|
|
@ -4933,7 +4933,7 @@ b0 d%H]f
|
|||
b0 zgzi@
|
||||
b0 7B-!)
|
||||
b0 Y1Qf)
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) a.$Aw
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) a.$Aw
|
||||
0*d$ca
|
||||
sHdlNone\x20(0) /N@6H
|
||||
b0 '10Cg
|
||||
|
|
@ -4954,7 +4954,7 @@ b0 hn|][
|
|||
b0 bWF^\
|
||||
b0 -"k'e
|
||||
sPhantomConst(\"0..=16\") uoZP0
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) /KK^t
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) /KK^t
|
||||
sHdlSome\x20(1) e\)?v
|
||||
b1000000000000 %G_Dt
|
||||
b0 E7iTa
|
||||
|
|
@ -5399,7 +5399,7 @@ b0 46)Xi
|
|||
0"(@LS
|
||||
0&NGtM
|
||||
b0 "tB6}
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) Hn\.r
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) Hn\.r
|
||||
0jbUZ8
|
||||
sHdlNone\x20(0) NcD^Z
|
||||
sSuccess\x20(0) X3rb0
|
||||
|
|
@ -5413,7 +5413,7 @@ b0 vyE_1
|
|||
b0 D}2RZ
|
||||
b0 \XUCp
|
||||
b0 [^@q%
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) G4KC#
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) G4KC#
|
||||
01thaQ
|
||||
sHdlNone\x20(0) +5LtZ
|
||||
b0 {6^Pl
|
||||
|
|
@ -5434,7 +5434,7 @@ b0 iB{BF
|
|||
b0 eR=Hx
|
||||
b0 8!8=?
|
||||
sPhantomConst(\"0..=16\") V?X!X
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) T-cQB
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) T-cQB
|
||||
sHdlSome\x20(1) JqP67
|
||||
b1000000000000 iRy|N
|
||||
b0 IIeMq
|
||||
|
|
@ -5522,7 +5522,7 @@ b0 UA{3,
|
|||
0mS#3<
|
||||
0^qjb[
|
||||
b0 tN>yu
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) '@T[?
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) '@T[?
|
||||
0BXk&[
|
||||
sHdlNone\x20(0) &wG|&
|
||||
sSuccess\x20(0) ^F2z4
|
||||
|
|
@ -5536,7 +5536,7 @@ b0 VXdV?
|
|||
b0 =`@6L
|
||||
b0 e2JF6
|
||||
b0 ]ocL{
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) ^<ah9
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) ^<ah9
|
||||
02sb.i
|
||||
sHdlNone\x20(0) JC:kM
|
||||
b0 .*4N"
|
||||
|
|
@ -5557,7 +5557,7 @@ b0 huWrb
|
|||
b0 EO39y
|
||||
b0 |d_{U
|
||||
sPhantomConst(\"0..=16\") 3(idJ
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) P'(UK
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) P'(UK
|
||||
sHdlSome\x20(1) N^Lck
|
||||
b1000000000000 q3ltq
|
||||
b0 zZOnr
|
||||
|
|
@ -5645,7 +5645,7 @@ b0 %poA2"
|
|||
0Bw<V4"
|
||||
0'@.QH"
|
||||
b0 !3G%M"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) nRws$"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) nRws$"
|
||||
0";E`m"
|
||||
sHdlNone\x20(0) QVVGm"
|
||||
sSuccess\x20(0) H{!U&"
|
||||
|
|
@ -5659,7 +5659,7 @@ b0 hCJZ("
|
|||
b0 yV&`["
|
||||
b0 o&C+Q"
|
||||
b0 :R>Z\"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) %zH|b"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) %zH|b"
|
||||
0'(8m+"
|
||||
sHdlNone\x20(0) MMwRE"
|
||||
b0 96-j|"
|
||||
|
|
@ -5680,7 +5680,7 @@ b0 n:O1E"
|
|||
b0 \TnT)"
|
||||
b0 %KEY#"
|
||||
sPhantomConst(\"0..=16\") 2S<L;"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) <f)US"
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) <f)US"
|
||||
b0 i/#1{"
|
||||
b0 $/d2*"
|
||||
b0 mdUW+"
|
||||
|
|
@ -5753,7 +5753,7 @@ b0 %poA2
|
|||
0Bw<V4
|
||||
0'@.QH
|
||||
b0 !3G%M
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) nRws$
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) nRws$
|
||||
0";E`m
|
||||
sHdlNone\x20(0) QVVGm
|
||||
sSuccess\x20(0) H{!U&
|
||||
|
|
@ -5767,7 +5767,7 @@ b0 hCJZ(
|
|||
b0 yV&`[
|
||||
b0 o&C+Q
|
||||
b0 :R>Z\
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) %zH|b
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) %zH|b
|
||||
0'(8m+
|
||||
sHdlNone\x20(0) MMwRE
|
||||
b0 96-j|
|
||||
|
|
@ -5788,7 +5788,7 @@ b0 n:O1E
|
|||
b0 \TnT)
|
||||
b0 %KEY#
|
||||
sPhantomConst(\"0..=16\") 2S<L;
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8}) <f)US
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":3,\"queue_capacity\":16,\"op_id_width\":8,\"address_range\":\"Full\"}) <f)US
|
||||
b0 i/#1{
|
||||
b0 $/d2*
|
||||
b0 mdUW+
|
||||
|
|
|
|||
22
crates/cpu/tests/expected/simple_uart.vcd
generated
22
crates/cpu/tests/expected/simple_uart.vcd
generated
|
|
@ -549,7 +549,7 @@ b0 YK<TM
|
|||
0dM>i/
|
||||
0f><7V
|
||||
b0 #+y/d
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8}) k$)j$
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8,\"address_range\":{\"Limited\":{\"start\":0,\"size\":2}}}) k$)j$
|
||||
1z'<O{
|
||||
sHdlNone\x20(0) kC4Z@
|
||||
sSuccess\x20(0) DSj6>
|
||||
|
|
@ -557,13 +557,13 @@ sRead\x20(0) i8%Hy
|
|||
sGeneric\x20(0) }u<b|
|
||||
b0 [i|C-
|
||||
b0 NB*xP
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8}) b|P(G
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8,\"address_range\":{\"Limited\":{\"start\":0,\"size\":2}}}) b|P(G
|
||||
0p\ULz
|
||||
sHdlSome\x20(1) $x:NB
|
||||
b0 E*{c-
|
||||
0:C'8U
|
||||
sPhantomConst(\"0..=1\") E=NM+
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8}) eQf|o
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8,\"address_range\":{\"Limited\":{\"start\":0,\"size\":2}}}) eQf|o
|
||||
1-x}z)
|
||||
0*K&(X
|
||||
1N12hA
|
||||
|
|
@ -575,7 +575,7 @@ b0 ^'LkA
|
|||
0LMy1=
|
||||
0YG=uN
|
||||
b0 ),#g]
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8}) pukV=
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8,\"address_range\":{\"Limited\":{\"start\":0,\"size\":2}}}) pukV=
|
||||
1\u*{A
|
||||
sHdlNone\x20(0) ax>!d
|
||||
sSuccess\x20(0) $TH!~
|
||||
|
|
@ -583,13 +583,13 @@ sRead\x20(0) @nru
|
|||
sGeneric\x20(0) =rNet
|
||||
b0 _aF6z
|
||||
b0 fBY~q
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8}) 3Cr%:
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8,\"address_range\":{\"Limited\":{\"start\":0,\"size\":2}}}) 3Cr%:
|
||||
0jP_rY
|
||||
sHdlSome\x20(1) fl1G|
|
||||
b0 >-gg}
|
||||
0d2Gl|
|
||||
sPhantomConst(\"0..=1\") |@PWl
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8}) 7A<7@
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8,\"address_range\":{\"Limited\":{\"start\":0,\"size\":2}}}) 7A<7@
|
||||
1?:DT^
|
||||
1*V%!4
|
||||
01-L[%
|
||||
|
|
@ -730,14 +730,14 @@ b0 &]$B;
|
|||
0N-YM;
|
||||
0R,uS'
|
||||
b0 GEq-0
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8}) ,;U@A
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8,\"address_range\":{\"Limited\":{\"start\":0,\"size\":2}}}) ,;U@A
|
||||
sHdlNone\x20(0) 0?MV,
|
||||
sSuccess\x20(0) D>VoK
|
||||
sRead\x20(0) d8ku7
|
||||
sGeneric\x20(0) Y[<1d
|
||||
b0 .^N`/
|
||||
b0 'ThQe
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8}) 8pZSz
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8,\"address_range\":{\"Limited\":{\"start\":0,\"size\":2}}}) 8pZSz
|
||||
1'LW/7
|
||||
1(+=/^
|
||||
b0 Whx|K
|
||||
|
|
@ -752,7 +752,7 @@ b0 qwy9i
|
|||
044.En
|
||||
0Pq(.9
|
||||
b0 4zG]Q
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8}) MTVBb
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8,\"address_range\":{\"Limited\":{\"start\":0,\"size\":2}}}) MTVBb
|
||||
1IifsN
|
||||
sHdlNone\x20(0) EA1Ra
|
||||
sSuccess\x20(0) [<sgF
|
||||
|
|
@ -760,13 +760,13 @@ sRead\x20(0) j.}nI
|
|||
sGeneric\x20(0) z\\(W
|
||||
b0 Z*eyX
|
||||
b0 MRBv>
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8}) {[zRy
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8,\"address_range\":{\"Limited\":{\"start\":0,\"size\":2}}}) {[zRy
|
||||
0q2OoF
|
||||
sHdlSome\x20(1) d#Of8
|
||||
b0 J4y0s
|
||||
0vC#Sj
|
||||
sPhantomConst(\"0..=1\") ye/Gl
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8}) bH=hU
|
||||
sPhantomConst({\"log2_bus_width_in_bytes\":1,\"queue_capacity\":1,\"op_id_width\":8,\"address_range\":{\"Limited\":{\"start\":0,\"size\":2}}}) bH=hU
|
||||
1"QAdC
|
||||
1K%|4s
|
||||
$end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue