mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Merge branch 'main' of github.com:davidharrishmc/riscv-wally into main
This commit is contained in:
commit
febd019854
2
pipelined/src/cache/cachefsm.sv
vendored
2
pipelined/src/cache/cachefsm.sv
vendored
@ -86,7 +86,7 @@ module cachefsm
|
|||||||
logic DoAMOMiss, DoReadMiss, DoWriteMiss;
|
logic DoAMOMiss, DoReadMiss, DoWriteMiss;
|
||||||
logic FlushFlag;
|
logic FlushFlag;
|
||||||
|
|
||||||
typedef enum {STATE_READY,
|
typedef enum logic [3:0] {STATE_READY,
|
||||||
|
|
||||||
STATE_MISS_FETCH_WDV,
|
STATE_MISS_FETCH_WDV,
|
||||||
STATE_MISS_FETCH_DONE,
|
STATE_MISS_FETCH_DONE,
|
||||||
|
@ -35,10 +35,6 @@
|
|||||||
|
|
||||||
`include "wally-config.vh"
|
`include "wally-config.vh"
|
||||||
|
|
||||||
package ahbliteState;
|
|
||||||
typedef enum logic [3:0] {IDLE, MEMREAD, MEMWRITE, INSTRREAD} statetype;
|
|
||||||
endpackage
|
|
||||||
|
|
||||||
module ahblite (
|
module ahblite (
|
||||||
input logic clk, reset,
|
input logic clk, reset,
|
||||||
// Load control
|
// Load control
|
||||||
@ -75,6 +71,9 @@ module ahblite (
|
|||||||
(* mark_debug = "true" *) output logic HWRITED
|
(* mark_debug = "true" *) output logic HWRITED
|
||||||
);
|
);
|
||||||
|
|
||||||
|
typedef enum logic [1:0] {IDLE, MEMREAD, MEMWRITE, INSTRREAD} statetype;
|
||||||
|
statetype BusState, NextBusState;
|
||||||
|
|
||||||
logic GrantData;
|
logic GrantData;
|
||||||
logic [31:0] AccessAddress;
|
logic [31:0] AccessAddress;
|
||||||
logic [2:0] ISize;
|
logic [2:0] ISize;
|
||||||
@ -88,8 +87,6 @@ module ahblite (
|
|||||||
// Data accesses have priority over instructions. However, if a data access comes
|
// Data accesses have priority over instructions. However, if a data access comes
|
||||||
// while an instruction read is occuring, the instruction read finishes before
|
// while an instruction read is occuring, the instruction read finishes before
|
||||||
// the data access can take place.
|
// the data access can take place.
|
||||||
import ahbliteState::*;
|
|
||||||
statetype BusState, NextBusState;
|
|
||||||
|
|
||||||
flopenl #(.TYPE(statetype)) busreg(HCLK, ~HRESETn, 1'b1, NextBusState, IDLE, BusState);
|
flopenl #(.TYPE(statetype)) busreg(HCLK, ~HRESETn, 1'b1, NextBusState, IDLE, BusState);
|
||||||
|
|
||||||
|
@ -228,5 +228,5 @@ module controller(
|
|||||||
|
|
||||||
assign CSRWritePendingDEM = CSRWriteD | CSRWriteE | CSRWriteM;
|
assign CSRWritePendingDEM = CSRWriteD | CSRWriteE | CSRWriteM;
|
||||||
|
|
||||||
assign StoreStallD = MemRWE[0] & (|MemRWD | |AtomicD);
|
assign StoreStallD = MemRWE[0] & ((|MemRWD) | (|AtomicD));
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -65,7 +65,7 @@ module spillsupport (
|
|||||||
|
|
||||||
assign SpillF = &PCF[$clog2(SPILLTHRESHOLD)+1:1];
|
assign SpillF = &PCF[$clog2(SPILLTHRESHOLD)+1:1];
|
||||||
|
|
||||||
typedef enum {STATE_SPILL_READY, STATE_SPILL_SPILL} statetype;
|
typedef enum logic [1:0] {STATE_SPILL_READY, STATE_SPILL_SPILL} statetype;
|
||||||
(* mark_debug = "true" *) statetype CurrState, NextState;
|
(* mark_debug = "true" *) statetype CurrState, NextState;
|
||||||
|
|
||||||
always_ff @(posedge clk)
|
always_ff @(posedge clk)
|
||||||
|
@ -64,7 +64,7 @@ module busfsm #(parameter integer WordCountThreshold,
|
|||||||
logic UnCachedAccess;
|
logic UnCachedAccess;
|
||||||
|
|
||||||
|
|
||||||
typedef enum {STATE_BUS_READY,
|
typedef enum logic [2:0] {STATE_BUS_READY,
|
||||||
STATE_BUS_FETCH,
|
STATE_BUS_FETCH,
|
||||||
STATE_BUS_WRITE,
|
STATE_BUS_WRITE,
|
||||||
STATE_BUS_UNCACHED_WRITE,
|
STATE_BUS_UNCACHED_WRITE,
|
||||||
|
@ -49,7 +49,7 @@ module interlockfsm
|
|||||||
output logic IgnoreRequestTrapM);
|
output logic IgnoreRequestTrapM);
|
||||||
|
|
||||||
|
|
||||||
typedef enum {STATE_T0_READY,
|
typedef enum logic[2:0] {STATE_T0_READY,
|
||||||
STATE_T0_REPLAY,
|
STATE_T0_REPLAY,
|
||||||
STATE_T3_DTLB_MISS,
|
STATE_T3_DTLB_MISS,
|
||||||
STATE_T4_ITLB_MISS,
|
STATE_T4_ITLB_MISS,
|
||||||
|
@ -46,7 +46,7 @@ module hptw
|
|||||||
output logic [2:0] HPTWSize // 32 or 64 bit access.
|
output logic [2:0] HPTWSize // 32 or 64 bit access.
|
||||||
);
|
);
|
||||||
|
|
||||||
typedef enum {L0_ADR, L0_RD,
|
typedef enum logic [3:0] {L0_ADR, L0_RD,
|
||||||
L1_ADR, L1_RD,
|
L1_ADR, L1_RD,
|
||||||
L2_ADR, L2_RD,
|
L2_ADR, L2_RD,
|
||||||
L3_ADR, L3_RD,
|
L3_ADR, L3_RD,
|
||||||
|
@ -55,7 +55,7 @@ module uartPC16550D(
|
|||||||
);
|
);
|
||||||
|
|
||||||
// transmit and receive states // *** neeed to work on synth warning -- it wants to make enums 32 bits by default
|
// transmit and receive states // *** neeed to work on synth warning -- it wants to make enums 32 bits by default
|
||||||
typedef enum {UART_IDLE, UART_ACTIVE, UART_DONE, UART_BREAK} statetype;
|
typedef enum logic [1:0] {UART_IDLE, UART_ACTIVE, UART_DONE, UART_BREAK} statetype;
|
||||||
|
|
||||||
// Registers
|
// Registers
|
||||||
logic [10:0] RBR;
|
logic [10:0] RBR;
|
||||||
|
@ -12,10 +12,10 @@ if { [info exists ::env(RISCV)] } {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if {$tech == "sky130"} {
|
if {$tech == "sky130"} {
|
||||||
set s8lib ../addins/sky130_osu_sc_t12/12T_ms/lib/
|
set s8lib $timing_lib/sky130_osu_sc_t12/12T_ms/lib
|
||||||
lappend search_path $s8lib
|
lappend search_path $s8lib
|
||||||
} elseif {$tech == "sky90"} {
|
} elseif {$tech == "sky90"} {
|
||||||
set s9lib $timing_lib/sky90/tech_files/
|
set s9lib $timing_lib/sky90/sky90_sc/V1.7.4/lib
|
||||||
lappend search_path $s9lib
|
lappend search_path $s9lib
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,21 +16,18 @@ FREQ
|
|||||||
Frequency in MHz. Default is 500
|
Frequency in MHz. Default is 500
|
||||||
|
|
||||||
CONFIG
|
CONFIG
|
||||||
The wally configuration file. Default is rv32e.
|
The Wally configuration file. The default is rv32e.
|
||||||
Examples.
|
Examples: rv32e, rv64gc, rv32gc
|
||||||
rv32e
|
|
||||||
rv64gc
|
|
||||||
rv32gc
|
|
||||||
|
|
||||||
TECH
|
TECH
|
||||||
The target standard cell library. Default is 130.
|
The target standard cell library. The default is sky130.
|
||||||
sky90: skywater 90nm TT 25C
|
sky90: skywater 90nm TT 25C
|
||||||
sky130: skywater 130nm TT 25C
|
sky130: skywater 130nm TT 25C
|
||||||
|
|
||||||
SAIFPOWER
|
SAIFPOWER
|
||||||
Controls if power analysis is driven by switching factor or RTL modelsim simulation.
|
Controls if power analysis is driven by switching factor or
|
||||||
When enabled requires a saif file named power.saif.
|
RTL modelsim simulation. When enabled requires a saif file
|
||||||
Default is 0.
|
named power.saif. The default is 0.
|
||||||
0: switching factor power analysis
|
0: switching factor power analysis
|
||||||
1: RTL simulation driven power analysis.
|
1: RTL simulation driven power analysis.
|
||||||
|
|
||||||
|
@ -3,6 +3,13 @@
|
|||||||
# james.stine@okstate.edu 27 Sep 2015
|
# james.stine@okstate.edu 27 Sep 2015
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# Ignore unnecessary warnings:
|
||||||
|
# intraassignment delays for nonblocking assignments are ignored
|
||||||
|
suppress_message {VER-130}
|
||||||
|
# statements in initial blocks are ignored
|
||||||
|
suppress_message {VER-281}
|
||||||
|
suppress_message {VER-173}
|
||||||
|
|
||||||
# get outputDir from environment (Makefile)
|
# get outputDir from environment (Makefile)
|
||||||
set outputDir $::env(OUTPUTDIR)
|
set outputDir $::env(OUTPUTDIR)
|
||||||
set cfgName $::env(CONFIG)
|
set cfgName $::env(CONFIG)
|
||||||
|
Loading…
Reference in New Issue
Block a user