Merge branch 'main' of github.com:davidharrishmc/riscv-wally into main

This commit is contained in:
Ross Thompson 2022-02-11 10:47:21 -06:00
commit febd019854
11 changed files with 25 additions and 24 deletions

View File

@ -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,

View File

@ -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);

View File

@ -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

View File

@ -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)

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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;

View File

@ -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
} }

View File

@ -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.

View File

@ -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)