Ross Thompson
169539f773
Cleanup parameterization for verilator 5.010.
2023-05-31 10:02:34 -05:00
Ross Thompson
8e1476cb8c
Possible fix for Linux bug and bug 203. ImperasDV mismatches in linux boot around 571M instructions after the login prompt.
...
This bug occurs when there are back to back HPTW requests and the first generates an access fault during the walk. The old implementation uses a delayed version of the fault to prevent the HTPW fsm from transitioning out of the IDLE state. Because the first request generates the fault and the second request is pipelined the second request appears as if it also faults so the FSM does not perform the walk.
The new implementation adds a FAULT state. When the HPTW generates an access fault it transitions to this state removes the HPTWStall and then transitions to IDLE. There may still be a remaining bug here if the pipeline is stalled for another reason. However I don't think it is possible by construction. The only possible sources of stalls at this point would be IFU and LSU stalls and both are required to make this condition happen.
2023-05-30 15:20:24 -05:00
Ross Thompson
04d0fd94f0
Merge branch 'param-lim-merge'
2023-05-26 16:25:35 -05:00
Ross Thompson
3cc85349b5
Uncore is now parameterized.
2023-05-26 16:24:12 -05:00
Ross Thompson
1315a0bf4a
Got the branch predictor parameterized using Lim's method. Also had to add a global enum included in both cvw.sv and the configs which defines the branch predictor types. This should be synthesizable, but I'll need to double check.
2023-05-26 16:00:14 -05:00
Ross Thompson
f1b8689955
Finished fpu parameterization using Lim's method.
2023-05-26 14:40:06 -05:00
Ross Thompson
29e0357f21
fdiv is now parameterized using Lim's method.
2023-05-26 14:25:14 -05:00
Ross Thompson
81491e85e5
Parameterized fpu's unpack and fma using Lim's method.
2023-05-26 14:12:25 -05:00
Ross Thompson
c7e515634d
I think I've solved the slow down issue. Parameters can't be mixed with cvw_t and other types.
2023-05-26 13:56:51 -05:00
Ross Thompson
b517a96261
Update top level parameterized. Simulation slowed down to 4.5 minutes.
2023-05-26 12:13:11 -05:00
Ross Thompson
8cf38b28aa
The privileged unit is parameterized using Lim's method.
2023-05-26 12:03:46 -05:00
Ross Thompson
4d961bd080
Completed LSU parameterization based on Lim's changes.
2023-05-26 11:26:09 -05:00
Ross Thompson
d37e010aa4
Subwordread now parameterized.
2023-05-26 11:22:44 -05:00
Ross Thompson
02a788a083
PMA checker's address decoder is now parameterized. I did not see bit slicing in Lim's code. I'm not sure how they got around this issue.
2023-05-26 11:06:48 -05:00
Ross Thompson
0e1131d190
Progress on LSU.
2023-05-26 10:47:09 -05:00
Ross Thompson
0020d94b39
Updated mmu's tlb and hptw to use Lim's parameterization.
2023-05-24 18:02:22 -05:00
Ross Thompson
70c8828ac2
PM(P/A) checkers parameterized based on Lim's work.
2023-05-24 17:20:55 -05:00
Ross Thompson
fcb1c63f5f
Partial parameterization into mmu.
2023-05-24 16:12:41 -05:00
Ross Thompson
5f5f33787d
MDU and hazard unit now also parameterized. Based on Lim's work. Again I want to clarify this their work. Not mine. I'm just doing this because the merge had an issue.
2023-05-24 15:01:35 -05:00
Ross Thompson
1299319d0b
More parameterization. Based on Lim's work. EBU, IFU (except bpred), and IEU done.
2023-05-24 14:56:02 -05:00
Ross Thompson
052bc95966
More parameterization. Copied Lim. Still no slow down.
2023-05-24 14:49:22 -05:00
Ross Thompson
b91b54589e
Updated a large number of the source files to use parameters rather than `defines. Based on Lim's work. So far there is no simulation slow down.
2023-05-24 14:05:44 -05:00
Ross Thompson
6d2e3070a5
Merged changes.
2023-05-24 13:15:52 -05:00
Ross Thompson
80aa0888f3
Updated headers to local branch history predictors.
2023-05-24 12:52:42 -05:00
Ross Thompson
930fb67308
Trying to figure out why the parameterization slowed down modelsim so much.
2023-05-24 12:44:42 -05:00
Ross Thompson
69a9bf7055
Adds local history predictor.
...
Fixes performance counters, but not coremark.
2023-05-23 18:53:46 -05:00
Ross Thompson
664231c0da
Merge branch 'localhistory'
...
Repair to wave file.
Created implementations of local history. Part of my Ph.D. research.
2023-05-22 10:13:31 -05:00
Ross Thompson
625d365f3e
Fixes load and store stall counters.
2023-05-22 10:08:49 -05:00
Ross Thompson
8f305bf3cf
Merge branch 'main' of https://github.com/openhwgroup/cvw
2023-05-11 14:56:53 -05:00
Ross Thompson
d545a2ec74
Partially working local history repair.
2023-05-11 14:56:26 -05:00
Ross Thompson
3a98fb8680
Baseline localhistory with speculative repair built.
2023-05-05 15:23:45 -05:00
Ross Thompson
42517bae6f
Fixed bug in local history predictor.
2023-05-04 16:54:41 -05:00
Ross Thompson
ee1e380fad
Almost working ahead pipelined local history predictor.
2023-05-04 16:17:31 -05:00
Ross Thompson
8235042ba2
Maybe I finally have the ahead pipelined local history predictor working.
2023-05-04 14:11:34 -05:00
Ross Thompson
060d40853a
Ahead pipelining is not yet working. :(
2023-05-03 17:41:38 -05:00
Ross Thompson
8b0791b6b5
I think ahead pipelining is working for local history.
2023-05-03 12:52:32 -05:00
Ross Thompson
414c79b923
Updated configs for local branch history `defines.
2023-05-02 11:11:04 -05:00
Ross Thompson
08b237b878
Added comment explaining the difference between global history and local history basic implementations.
2023-05-02 11:01:46 -05:00
Ross Thompson
0904a9b97f
Swapped the m and k parameters for local history predictor.
2023-05-02 10:52:41 -05:00
Ross Thompson
4eff75449a
Maybe have the baseline local history predictor working.
2023-05-01 15:45:27 -05:00
Ross Thompson
7437cb67e5
Merge branch 'main' into localhistory
2023-05-01 10:35:50 -05:00
David Harris
d5b718be38
IMMU exclude non word-sized accesses
2023-05-01 08:14:19 -07:00
Ross Thompson
67539a4af1
Merge branch 'main' of https://github.com/openhwgroup/cvw
2023-04-30 23:30:13 -05:00
David Harris
90b2a4882f
Fixed redundant check of SupportedFmt on fmv that caused coverage problem on fctrl
2023-04-29 05:58:40 -07:00
David Harris
6253c042b2
Merged coverage exclusions for PMP
2023-04-28 08:04:25 -07:00
David Harris
194b848fbf
PMA Checker coverage
2023-04-28 07:53:59 -07:00
David Harris
af7959a3e2
Commenting
2023-04-28 07:52:08 -07:00
David Harris
9843223ddd
Removed clear from TLBLRU because there is no need to flush LRU state and it causes coverage issues
2023-04-28 07:03:46 -07:00
Ross Thompson
d44251098f
Merge branch 'main' of https://github.com/openhwgroup/cvw
2023-04-27 16:38:36 -05:00
David Harris
ca61cff33f
CSR code cleanup
2023-04-27 14:12:57 -07:00