David Harris
1d3b41e0fb
New expression for BTB_SIZE to avoid error during sky90 synthesis
2023-02-20 04:02:00 -08:00
Ross Thompson
2d417c33a4
Simplified BTB by removing the valid bit. the instruction class provides the equivalent information.
2023-02-19 23:53:20 -06:00
Ross Thompson
0d79c0cebe
Merge branch 'main' of https://github.com/openhwgroup/cvw
2023-02-19 22:54:27 -06:00
Ross Thompson
b32093b33b
Simplified branch predictor.
2023-02-19 22:49:48 -06:00
David Harris
0ac9c9e62a
Added BTB_SIZE parameter independent of BPRED_SIIZE
2023-02-19 20:13:50 -08:00
David Harris
5b197f4f9d
Parameterized btb to depend on BPRED_SIZE
2023-02-19 19:59:07 -08:00
Kip Macsai-Goren
8d0a600b96
Merge remote-tracking branch 'upstream/main' into main
2023-02-19 16:37:18 -08:00
David Harris
06872e3822
Adjusted DTIM to always be 512B independent of XLEN
2023-02-19 16:14:38 -08:00
David Harris
5b8d1e4134
PMP checker size check to avoid spurious warnings
2023-02-19 16:08:23 -08:00
David Harris
ac21bed64d
Moved conditional instantiation outside pmpchecker
2023-02-19 15:31:00 -08:00
David Harris
7d031fcae0
Disabled W64M register for RV32
2023-02-19 07:03:31 -08:00
David Harris
6d405ad69b
Fixed RAM instantiations
2023-02-19 06:31:41 -08:00
Ross Thompson
9ee48637dc
Possibly much better branch predictor implemention.
...
The complexity is significantly reduced.
2023-02-19 00:17:37 -06:00
Kevin Kim
2069d92f9e
B DONE (for now)
...
- datapath passes along comparator flag to alu
- controllers and zbb handle min/max instructions
2023-02-18 22:12:55 -08:00
Ross Thompson
d44cb1febb
Minor fix.
2023-02-18 23:55:46 -06:00
Kevin Kim
888f4318bc
controlleres and zbb handle byte instructions
2023-02-18 21:06:55 -08:00
Kevin Kim
27581f8d28
alu and controllers handle andn, orn, xnor
2023-02-18 20:57:07 -08:00
Kevin Kim
ba968ed95e
added logic to handle sign/zero extend instructions
2023-02-18 20:32:40 -08:00
Kevin Kim
5c563bef43
fixed ctlzw bug in count unit
2023-02-18 20:12:30 -08:00
Kevin Kim
6d60268240
zbb handles count instructions
2023-02-18 20:12:17 -08:00
Kevin Kim
9760f0ccfd
fixed bmuctrl decode bug
2023-02-18 20:11:50 -08:00
Kevin Kim
84ddb6fb54
updated comments in bmuctrl
2023-02-18 19:57:10 -08:00
Kevin Kim
bec2905ee5
rotate instructions now handled in ZBB unit
2023-02-18 19:56:54 -08:00
Kevin Kim
e47cc222a6
removed redundant decode logic in bmuctrl
2023-02-18 19:50:36 -08:00
Kevin Kim
9203b0cc2f
began ZBB integration into ieu
2023-02-18 19:44:14 -08:00
Kevin Kim
7780cbd47a
bmuctrl handles roriw
2023-02-18 16:26:16 -08:00
Kip Macsai-Goren
883a6ca005
merge upstream synth changes
2023-02-18 14:35:19 -08:00
David Harris
0eda753dc4
Removed unused PredInstrClassE register from bpred
2023-02-18 05:59:25 -08:00
David Harris
0f4226a950
Removed unused weq0M register fron fdivsqrtpostproc
2023-02-18 05:57:39 -08:00
David Harris
66e5c60fb4
Fixed issue #57 of sign selection for improperly NaN-boxed number
2023-02-18 05:34:40 -08:00
David Harris
5986931fdc
Fixed unpacking of illegal NaN box. Fixed issue #56 of sign injection NaN
2023-02-18 05:25:38 -08:00
Kevin Kim
92c0d3a4ed
configured shifter in alu
2023-02-17 21:58:49 -08:00
Kevin Kim
182b27dfc8
shifter bug fix
...
- roli not passing unless I keep the MSB (instead of inverting) of truncated offset
2023-02-17 21:58:26 -08:00
Kevin Kim
c353378da8
controller supports some rotates
2023-02-17 21:57:34 -08:00
Kevin Kim
4a52b57002
bmuctrl supports some rotates
2023-02-17 21:57:19 -08:00
David Harris
dc19f8a8ec
Created PostBox signal to NaN-box malformed NaNs of excess length. Fixes Issue #55
2023-02-17 20:51:43 -08:00
Kevin Kim
50ec6baa07
added zero extend, pre-shift mux to ALU
2023-02-17 20:15:12 -08:00
Kevin Kim
e2d90a9422
more elegant ZBA logic in controller
2023-02-17 20:14:47 -08:00
Kevin Kim
cd92d6e5d1
bmuctrl handles .uw instructions
2023-02-17 20:14:13 -08:00
David Harris
a194740562
Fixed RAM bugs and refactored with read taking place after clock edge rather than before.
2023-02-17 19:14:38 -08:00
Kevin Kim
750882455f
controller supports ZBA instructions
2023-02-17 16:44:16 -08:00
Kevin Kim
fcae58fcc7
removed Funct7 in Execute Stage
2023-02-17 16:12:09 -08:00
David Harris
9275bfb839
Memory synthesis updates
2023-02-17 15:33:49 -08:00
David Harris
2060683770
Continue fixing memory macros for synthesis
2023-02-17 15:15:37 -08:00
Ross Thompson
0cacfbd322
Renamed globalhistory predictor.
2023-02-17 16:08:34 -06:00
Ross Thompson
2f1bebfd57
Fixed global history predictor.
2023-02-17 16:05:48 -06:00
Ross Thompson
a95be0b567
More updates.
2023-02-17 15:53:49 -06:00
Ross Thompson
df4a27a2e3
Updated global history predictor.
2023-02-17 15:53:15 -06:00
David Harris
3523318acb
Synthesis with memories
2023-02-17 13:51:05 -08:00
Ross Thompson
0d271130b9
Fixed a branch predictor performance issue.
2023-02-17 15:37:03 -06:00
Kevin Kim
9bf11471aa
bmuctrl checks for illegal zbs-style instructions
2023-02-17 12:54:08 -08:00
Kevin Kim
0bab3bec3d
bctrl bug fix
...
- bctrl decodes shift immediate instructions properly
2023-02-17 11:16:29 -08:00
Kevin Kim
bb79b57cc1
alu bug fix
...
- condmaskb piped in correctly instead of b
2023-02-17 11:02:07 -08:00
Kevin Kim
ee3a520a1f
alu looks at BSelect, added BSelect one hot signal
2023-02-17 09:51:49 -08:00
Ross Thompson
5d5e4580d4
Merge branch 'main' of github.com:ross144/cvw
2023-02-17 10:58:16 -06:00
Ross Thompson
a325adf1be
Fixed bug with branch predictor.
2023-02-17 10:57:50 -06:00
Kevin Kim
890c54bc0b
added alu changes to previous commit
2023-02-17 08:22:13 -08:00
Kevin Kim
ec2421ead4
added BSelect Signal
...
- BSelect [3:0] is a one hot encoding of if it's a ZBA_ZBB_ZBC_ZBS instruction
2023-02-17 08:21:55 -08:00
Kevin Kim
81cb00aaee
comments
2023-02-17 07:53:14 -08:00
Kevin Kim
505f3bf42f
comments
2023-02-17 07:52:54 -08:00
Kevin Kim
256d362e0d
comment formatting
2023-02-17 07:51:28 -08:00
Kevin Kim
9ab8183e80
alu handles ALU select instead of funct3
2023-02-17 07:51:10 -08:00
Kevin Kim
9128ac5409
added BMU controll
2023-02-17 07:50:59 -08:00
Kevin Kim
25c0811d3d
Added ALUSelect signal into datapath, ieu, controller
2023-02-17 07:50:45 -08:00
David Harris
c3cc2f98d6
Reverted lab3 changes in dev branch
2023-02-16 18:10:05 -08:00
David Harris
5fef9de80e
Merge branch 'lab3_2023' of https://github.com/openhwgroup/cvw into dev
2023-02-16 17:57:51 -08:00
David Harris
532abb5b95
Update datapath.sv
2023-02-16 17:53:31 -08:00
David Harris
6527257305
Update controller.sv
2023-02-16 17:52:44 -08:00
David Harris
685d3ff568
Update alu.sv
2023-02-16 17:52:25 -08:00
Ross Thompson
27f6552315
keep this commit off of cvw.
2023-02-16 11:05:24 -06:00
David Harris
d83c61cafc
Added SSTC support for supervisor timer compare, but presently disable support. Reenable for rv32gc and rv64gc after tests pass.
2023-02-16 07:37:12 -08:00
Kevin Kim
465aad372a
added comments to zbc units
2023-02-15 17:42:32 -08:00
Kevin Kim
aad4d13603
zbc configurability and select mux
2023-02-15 17:39:37 -08:00
Kevin Kim
068ddc3e0d
controller forwards funct7
...
- started the bmu controll register
2023-02-15 17:38:12 -08:00
Kevin Kim
6ac54a180e
zbc and carry-less multiply work properly
2023-02-15 17:37:09 -08:00
James Stine
744991bd5a
Update if-then-else for ram items
2023-02-15 18:12:12 -06:00
Kevin Kim
cf8392cbd8
continued ZBC integration into ALU
2023-02-15 09:35:07 -08:00
Ross Thompson
69472b8145
Merge branch 'main' of https://github.com/openhwgroup/cvw
2023-02-15 11:29:39 -06:00
Kevin Kim
5426dd6184
added ALUResult Signal
2023-02-15 09:13:10 -08:00
Kevin Kim
9cec59ea2c
controller passes funct7 from decode to execute
2023-02-14 16:06:10 -08:00
Kevin Kim
70f2dd701c
git
2023-02-14 16:03:26 -08:00
Kevin Kim
9728e00dfd
Merge branch 'tmp' into main
2023-02-14 13:12:57 -08:00
Kevin Kim
85c2ed8d34
removed unncessary stuff
2023-02-14 13:07:03 -08:00
Kevin Kim
8e371864e4
reverted back to I tests working
2023-02-14 13:06:31 -08:00
Kevin Kim
fd46e0080c
added ALU result select mux for B instructions
2023-02-13 17:38:00 -08:00
Kevin Kim
84ca2cab9c
controller handles bclr
2023-02-13 16:57:05 -08:00
Ross Thompson
094b307724
Merge branch 'main' of github.com:ross144/cvw
2023-02-13 18:54:07 -06:00
Ross Thompson
9c9acc0055
Updated gshare (no speculation) to have better performance.
2023-02-13 18:52:52 -06:00
Kevin Kim
29abec2409
Shadd instructions pass tests
2023-02-13 16:36:17 -08:00
Ross Thompson
33d2bf84f8
More fixeds to global history.
2023-02-13 18:08:51 -06:00
Ross Thompson
a579bbcdd1
Fixed global history predictor.
2023-02-13 18:08:13 -06:00
Ross Thompson
bbc6095260
Updated global history predictor.
2023-02-13 18:07:32 -06:00
Ross Thompson
9f25b53b36
Fixed bug in basic gshare implementation. Should be a better comparison to the speculative versions now.
2023-02-13 17:57:05 -06:00
Ross Thompson
b298a8afc5
Created copy of gshare. I think there may be a simpler implementation.
2023-02-13 17:29:51 -06:00
Ross Thompson
a80dbd3aec
Further branch predictor improvements.
2023-02-13 17:23:56 -06:00
Ross Thompson
717cba270c
Partial improvement.
2023-02-13 17:10:24 -06:00
Ross Thompson
f4af38a004
Hacked commit. Fixes the gshare bugs introduced last week.
...
Need to recover the good changes in the next commit.
2023-02-13 16:14:17 -06:00
Kevin Kim
27223a05e2
ALU lint fixes
2023-02-13 14:01:51 -08:00
Kevin Kim
29d03dbfc7
ALU configurability changes
...
-stuff that was ZBA supported was in ZBB so I changed that
2023-02-13 14:00:06 -08:00
Kevin Kim
12911440d0
edited controller so that add.uw passes tests
2023-02-13 13:49:46 -08:00
Kevin Kim
7eb41058c7
alu add.uw needs w64 to be false
2023-02-13 13:49:35 -08:00
Ross Thompson
1d74663f42
Partial fix for gshare bugs from the last two weeks.
2023-02-13 11:57:25 -06:00
Ross Thompson
58749a8c57
Removed another bit from btb class.
2023-02-12 11:33:43 -06:00
Kevin Kim
31787c456b
simulation runs-- clmul doesn't pass lint with xor tree
2023-02-11 21:22:33 -08:00
Kevin Kim
5f08322e99
lint fixes
2023-02-11 21:13:10 -08:00
Kevin Kim
6a7fe6352e
zbb, zbs, cnt lint fixes
2023-02-11 20:41:52 -08:00
Kevin Kim
61b46e0639
fixed byte unit lints
2023-02-11 20:25:34 -08:00
Kevin Kim
fb99bdab82
fixed lints in cnt
2023-02-11 20:22:42 -08:00
Kevin Kim
c59dfc1e30
fixed typo in LZC
2023-02-11 19:59:03 -08:00
Kevin Kim
38087be3b7
popcnt passes lint
2023-02-11 19:19:38 -08:00
Kevin Kim
76bc1b5999
clmul passes lint
2023-02-11 19:16:13 -08:00
Ross Thompson
1e0667db1d
More simplifications to the BP.
2023-02-10 17:09:35 -06:00
Ross Thompson
9c4da7381f
Experimental branch prediction optimization.
2023-02-10 15:45:56 -06:00
Kip Macsai-Goren
a7237baa87
fixed small errors to get regression to run with bit manip supported.
2023-02-10 10:37:06 -08:00
Kip Macsai-Goren
f91d74896a
Merge remote-tracking branch 'upstream/main' into main
2023-02-10 10:01:14 -08:00
Ross Thompson
9c2e0de672
Merge branch 'main' of https://github.com/openhwgroup/cvw
2023-02-10 10:38:39 -06:00
Ross Thompson
c229f0064e
Modified branch predictor to use InstrValidE and InstrValidD rather than the more complex InstrClassE | WrongClassE logic.
2023-02-10 10:33:10 -06:00
Ross Thompson
282ffd1313
RAS and RAS documentation now consistent.
2023-02-10 09:06:51 -06:00
Ross Thompson
faf7cd8c8a
Updated globalhistory predictor.
2023-02-09 14:48:02 -06:00
Kevin Kim
726722bec2
Include Funct7 in execute
...
- Modifed datapath to support funct7 in execute
- Modified controller to pass on Funct7
- all lints pass
2023-02-09 19:18:54 +00:00
Kevin Kim
847a4145f1
added W64 zbb input signal in alu
2023-02-09 19:07:22 +00:00
Kevin Kim
e4bfa4c548
modified zbb to account for cnt module change
2023-02-09 16:45:37 +00:00
Kevin Kim
ce9dca8aec
modified cnt for zbb to mux inputs
2023-02-09 16:45:22 +00:00
Ross Thompson
996bb289d3
Simplified branch predictor.
2023-02-08 18:24:38 -06:00
Kevin Kim
95ff9e91c5
moved files into bmu folder
2023-02-08 13:57:09 +00:00
Kip Macsai-Goren
0dad7bf114
Merge remote-tracking branch 'upstream/main' into main
2023-02-07 23:28:50 -08:00
David Harris
5bf709d7c3
Merge branch 'main' of https://github.com/openhwgroup/cvw into dev
2023-02-07 16:49:58 -08:00
Ross Thompson
7263fab4b1
Branch predictor cleanup.
2023-02-07 14:01:59 -06:00
David Harris
195e7c1a9c
Moved STATUS_FS_INT write to if statement to properly prioritize
2023-02-07 06:55:42 -08:00
David Harris
0712fa8f67
Disabled STATUS_FS at reset, fixing issue #71
2023-02-07 06:31:14 -08:00
Kip Macsai-Goren
7198592afc
fixed merge conflicts with removal of pipelined folder
2023-02-06 18:04:28 -08:00
Ross Thompson
54a128491e
Fixed Bug 66.
...
If a load missed at the same time as a spilled instruction fetch with an ITLB miss in the second cache line, the HPTW did not wait for the load miss to finish.
2023-02-06 17:32:28 -06:00
Ross Thompson
a33c579e4b
Removed unreachable if branch in hptw next state logic.
2023-02-06 16:42:07 -06:00
David Harris
103781923e
Parenthesized reduction operators to avoid DC lint
2023-02-04 18:49:47 -08:00
David Harris
1bb5599806
Developing debug test
2023-02-04 08:31:47 -08:00
David Harris
b13087e706
Fixed merge issues on synthDC PR
2023-02-04 04:13:40 -08:00
David Harris
e0915acad9
Improved illegal NaN-box detection and formatted fsgninj
2023-02-04 03:42:20 -08:00
David Harris
d7ae05ae8e
Merge branch 'main' of https://github.com/openhwgroup/cvw into dev
2023-02-03 08:36:11 -08:00
David Harris
aae035226f
Merged with memories
2023-02-02 14:50:46 -08:00
David Harris
99d179dd3e
Removed pipelined level of hierarchy
2023-02-02 14:14:11 -08:00