Add an info view.
This commit is contained in:
parent
6a06a99529
commit
0cb9eb34d0
|
@ -4,7 +4,7 @@ import CacheSim.Model exposing (..)
|
||||||
import CacheSim.Cache exposing (..)
|
import CacheSim.Cache exposing (..)
|
||||||
import CacheSim.AccessView exposing (..)
|
import CacheSim.AccessView exposing (..)
|
||||||
import CacheSim.Hierarchy exposing (..)
|
import CacheSim.Hierarchy exposing (..)
|
||||||
import Html exposing (Html, Attribute, input, text, div, label, span, h2, h3, table, tr, td, th)
|
import Html exposing (Html, Attribute, input, text, div, label, span, h2, h3, table, tr, td, th, p, h1)
|
||||||
import Html.Attributes exposing (type_, class, value, for, classList, disabled, colspan, hidden)
|
import Html.Attributes exposing (type_, class, value, for, classList, disabled, colspan, hidden)
|
||||||
import Html.Events exposing (onInput, onClick)
|
import Html.Events exposing (onInput, onClick)
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ viewAccessLog : AccessView -> Html Msg
|
||||||
viewAccessLog (aes, ap) =
|
viewAccessLog (aes, ap) =
|
||||||
let
|
let
|
||||||
resultSpan r =
|
resultSpan r =
|
||||||
span [ classList [ ("badge", True), ("badge-danger", True), ("badge-success", r == Hit) ] ]
|
span [ classList [ ("badge", True), ("badge-success", r == Hit), ("badge-danger", r == Miss) ] ]
|
||||||
[ text <| if r == Hit then "Hit" else "Miss" ]
|
[ text <| if r == Hit then "Hit" else "Miss" ]
|
||||||
downEvent n ae = div [ class "event" ]
|
downEvent n ae = div [ class "event" ]
|
||||||
[ text <| "L" ++ String.fromInt (n + 1) ++ " "
|
[ text <| "L" ++ String.fromInt (n + 1) ++ " "
|
||||||
|
@ -213,6 +213,23 @@ viewAccessInput m =
|
||||||
, accessButton
|
, accessButton
|
||||||
]
|
]
|
||||||
|
|
||||||
|
viewDescription : Html Msg
|
||||||
|
viewDescription =
|
||||||
|
div []
|
||||||
|
[ h1 [] [ text "Cache simulator" ]
|
||||||
|
, p []
|
||||||
|
[ text <| "This is a simulator for testing various cache configurations for educational purposes. It allows for the creation of"
|
||||||
|
++ " n-way associative caches, and their special cases (direct mapped and fully associative caches)."
|
||||||
|
]
|
||||||
|
, p []
|
||||||
|
[ text <| "To use the simulator, first create a fitting cache configuration by using the \"Add level\" button,"
|
||||||
|
++ " as well as the settings provided by each individual cache level. When the cache is correctly specified, and"
|
||||||
|
++ " no warnings appear, click \"Use hierarchy\" to load the specified hierarchy and begin simulating. To simulate,"
|
||||||
|
++ " type a block address into the \"Access address\" field, and click \"Access\". This will bring forward the simulation"
|
||||||
|
++ " view, which will allow you to step through the steps of accessing a cache."
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
viewBase : Model -> Html Msg
|
viewBase : Model -> Html Msg
|
||||||
viewBase m =
|
viewBase m =
|
||||||
let
|
let
|
||||||
|
@ -230,4 +247,4 @@ viewBase m =
|
||||||
accessInputView = [ viewAccessInput m ]
|
accessInputView = [ viewAccessInput m ]
|
||||||
in
|
in
|
||||||
div [ class "container" ]
|
div [ class "container" ]
|
||||||
<| rawView ++ cacheView ++ accessView ++ accessInputView
|
<| [ viewDescription] ++ rawView ++ cacheView ++ accessView ++ accessInputView
|
||||||
|
|
Loading…
Reference in New Issue
Block a user