Skip to content

Instantly share code, notes, and snippets.

@rowanG077
Last active June 24, 2019 12:10
Show Gist options
  • Save rowanG077/2ce0e0acb0badb6028651137089f01d6 to your computer and use it in GitHub Desktop.
Save rowanG077/2ce0e0acb0badb6028651137089f01d6 to your computer and use it in GitHub Desktop.
clash compiler freeze
[ { "BlackBox" :
{ "name" : "BlockRamHack.blockRam1#"
, "kind" : "Declaration"
, "type" :
"blockRam#
:: HasCallStack -- ARG[0]
=> Clock dom gated -- clk, ARG[1]
-> Vec n a -- init hack ARG[2]
-> a -- init, ARG[3]
-> Signal dom Int -- rd, ARG[4]
-> Signal dom Bool -- wren, ARG[5]
-> Signal dom Int -- wr, ARG[6]
-> Signal dom a -- din, ARG[7]
-> Signal dom a"
, "template" :
"-- blockRam begin
~GENSYM[~COMPNAME_blockRam][0] : block
signal ~GENSYM[RAM][1] : ~TYP[2] := ~TYPM[2]'(0 to ~LENGTH[~TYP[2]]-1 => ~IF ~VIVADO ~THEN ~TOBV[~TYPM[3]'(~LIT[3])][~TYP[3]] ~ELSE ~LIT[3] ~FI);
signal ~GENSYM[rd][3] : integer range 0 to ~LENGTH[~TYP[2]] - 1;
signal ~GENSYM[wr][4] : integer range 0 to ~LENGTH[~TYP[2]] - 1;~IF ~ISGATED[1] ~THEN
signal ~GENSYM[clk][5] : std_logic;
signal ~GENSYM[ce][6] : boolean;~ELSE ~FI
begin
~SYM[3] <= to_integer(~ARG[4])
-- pragma translate_off
mod ~LENGTH[~TYP[2]]
-- pragma translate_on
;
~SYM[4] <= to_integer(~ARG[6])
-- pragma translate_off
mod ~LENGTH[~TYP[2]]
-- pragma translate_on
;
~IF ~VIVADO ~THEN ~IF ~ISGATED[1] ~THEN
(~SYM[5],~SYM[6]) <= ~ARG[1];
~GENSYM[blockRam_sync][7] : process(~SYM[5])
begin
if rising_edge(~SYM[5]) then
if ~SYM[6] then
if ~ARG[5] then
~SYM[1](~SYM[4]) <= ~TOBV[~ARG[7]][~TYP[7]];
end if;
~RESULT <= fromSLV(~SYM[1](~SYM[3]))
-- pragma translate_off
after 1 ps
-- pragma translate_on
;
end if;
end if;
end process;~ELSE
~SYM[7] : process(~ARG[1])
begin
if rising_edge(~ARG[1]) then
if ~ARG[5] then
~SYM[1](~SYM[4]) <= ~TOBV[~ARG[7]][~TYP[7]];
end if;
~RESULT <= fromSLV(~SYM[1](~SYM[3]))
-- pragma translate_off
after 1 ps
-- pragma translate_on
;
end if;
end process;~FI ~ELSE ~IF ~ISGATED[1] ~THEN
(~SYM[5],~SYM[6]) <= ~ARG[1];
~SYM[7] : process(~SYM[5])
begin
if rising_edge(~SYM[5]) then
if ~ARG[5] and ~SYM[6] then
~SYM[1](~SYM[4]) <= ~ARG[7];
end if;
if ~SYM[6] then
~RESULT <= ~SYM[1](~SYM[3])
-- pragma translate_off
after 1 ps
-- pragma translate_on
;
end if;
end if;
end process;~ELSE
~SYM[7] : process(~ARG[1])
begin
if rising_edge(~ARG[1]) then
if ~ARG[5] then
~SYM[1](~SYM[4]) <= ~ARG[7];
end if;
~RESULT <= ~SYM[1](~SYM[3])
-- pragma translate_off
after 1 ps
-- pragma translate_on
;
end if;
end process;~FI ~FI
end block;
--end blockRam"
}
}
]
{-# LANGUAGE MagicHash #-}
module BlockRamHack where
import Data.Maybe (fromJust, isJust)
import Clash.Prelude
import qualified Clash.Explicit.Prelude as E
import Clash.Explicit.BlockRam (blockRam#)
import GHC.Stack (HasCallStack, withFrozenCallStack)
blockRam1#
:: HasCallStack
=> Undefined a
=> Clock dom gated
-> Vec n a
-> a
-> Signal dom Int
-> Signal dom Bool
-> Signal dom Int
-> Signal dom a
-> Signal dom a
blockRam1# clk vec a rd wren wr din =
blockRam# clk (map (const a) vec) rd wren wr din
{-# NOINLINE blockRam1# #-}
blockRam1E
:: HasCallStack
=> Undefined a
=> Enum addr
=> Clock dom gated
-> SNat n
-> a
-> Signal dom addr
-> Signal dom (Maybe (addr, a))
-> Signal dom a
blockRam1E = \clk n a rd wrM ->
let en = isJust <$> wrM
(wr,din) = unbundle (fromJust <$> wrM)
in withFrozenCallStack
(blockRam1# clk (replicate n a) a (fromEnum <$> rd) en (fromEnum <$> wr) din)
{-# INLINE blockRam1E #-}
blockRam1
:: Enum addr
=> Undefined a
=> HiddenClock domain gated
=> HasCallStack
=> SNat n
-> a
-> Signal domain addr
-> Signal domain (Maybe (addr, a))
-> Signal domain a
blockRam1 = \n a rd wrM -> withFrozenCallStack
(hideClock blockRam1E n a rd wrM)
{-# INLINE blockRam1 #-}
[nix-shell:~/engineering/lumi/sign/fpga/clash-matrix/hdl]$ clash --vhdl MinimalExample.hs -fclash-debug DebugApplied
GHC: Parsing and optimising modules took: 5.697s
GHC: Loading external modules from interface files took: 0.911s
GHC: Parsing annotations took: 0.001s
Warning: primitive Clash.Signal.Internal.register# isn't using all its arguments, some might be optimized away.
GHC+Clash: Loading modules cumulatively took 7.507s
Clash: Parsing and compiling primitives took 8.668s
Clash: Compiling MinimalExample.topEntity
Clash: Ignoring .manifest files
MinimalExample.topEntity8214565720323870636 before normalization:
λ(clk6989586621679096750 :: Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172) ->
λ(rst6989586621679096751 :: Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179) ->
λ(pop6989586621679096752 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744) ->
λ(writeRequest6989586621679096753 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744) ->
λ(writeData6989586621679096754 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)) ->
letrec
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo8214565720323870634 @128
@24
@160
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
@172800
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@Clash.Signal.Internal.Asynchronous8214565720323789179
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
128
MinimalExample.topEntity38214565720323984872
160
(GHC.Natural.plusNatural 1
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_$s$w$cnatSing18214565720323984825)
MinimalExample.topEntity28214565720323984871
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@160
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
160
160)))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800)))))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@172800
@172800
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
172800
172800)))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Bool3674937295934324744
@GHC.Types.Bool3674937295934324744
@GHC.Types.True3891110078048108589
@GHC.Types.True3891110078048108589
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Bool3674937295934324744
GHC.Types.Bool3674937295934324744
GHC.Types.True3891110078048108589
GHC.Types.True3891110078048108589)))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Bool3674937295934324744
@GHC.Types.Bool3674937295934324744
@GHC.Types.True3891110078048108589
@GHC.Types.True3891110078048108589
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Bool3674937295934324744
GHC.Types.Bool3674937295934324744
GHC.Types.True3891110078048108589
GHC.Types.True3891110078048108589)))
(MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
((λ(req6989586621679096763 :: GHC.Types.Bool3674937295934324744) ->
λ(d6989586621679096764 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128) ->
case req6989586621679096763 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
d6989586621679096764)
writeRequest6989586621679096753
writeData6989586621679096754)
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_$s$w$cnatSing28214565720323984822
100))
in Clash.Signal.Bundle.$fBundle(,,,)_$cbundle8214565720323845568
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589)
fifoOutput18286623314361920150)
((letrec
n8286623314361920149 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= Clash.Sized.Internal.BitVector.fromInteger#
@24
MinimalExample.topEntity38214565720323984872
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
n8286623314361920149
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221)
fifoOutput18286623314361920150)
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999810 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999812 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds27205759403792999811)
fifoOutput18286623314361920150)
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999814 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999815 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds37205759403792999816)
fifoOutput18286623314361920150))
MinimalExample.topEntity38214565720323984872 before normalization:
24
topLet
Changes when applying rewrite to:
24
Result:
letrec
result1 :: GHC.Natural.Natural3674937295934324782
= 24
in result1
normalization
Changes when applying rewrite to:
24
Result:
letrec
result1 :: GHC.Natural.Natural3674937295934324782
= 24
in result1
MinimalExample.topEntity38214565720323984872 after normalization:
letrec
result1 :: GHC.Natural.Natural3674937295934324782
= 24
in result1
inlineWorkFree
Changes when applying rewrite to:
MinimalExample.topEntity38214565720323984872
Result:
letrec
result1 :: GHC.Natural.Natural3674937295934324782
= 24
in result1
bindConstantVar
Changes when applying rewrite to:
letrec
result1 :: GHC.Natural.Natural3674937295934324782
= 24
in result1
Result:
24
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_$s$w$cnatSing18214565720323984825 before normalization:
letrec
z16989586621679208383 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase#
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
172800
in case z16989586621679208383 of
_ ->
letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase#
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
172799
in case z26989586621679208385 of
_ ->
case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823 before normalization:
2
topLet
Changes when applying rewrite to:
2
Result:
letrec
result2 :: GHC.Integer.Type.Integer3674937295934324780
= 2
in result2
normalization
Changes when applying rewrite to:
2
Result:
letrec
result2 :: GHC.Integer.Type.Integer3674937295934324780
= 2
in result2
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823 after normalization:
letrec
result2 :: GHC.Integer.Type.Integer3674937295934324780
= 2
in result2
inlineWorkFree
Changes when applying rewrite to:
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
Result:
letrec
result2 :: GHC.Integer.Type.Integer3674937295934324780
= 2
in result2
bindConstantVar
Changes when applying rewrite to:
letrec
result2 :: GHC.Integer.Type.Integer3674937295934324780
= 2
in result2
Result:
2
caseCon
Changes when applying rewrite to:
case z16989586621679208383 of
_ ->
letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase#
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
172799
in case z26989586621679208385 of
_ ->
case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
Result:
letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase#
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
172799
in case z26989586621679208385 of
_ ->
case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
inlineWorkFree
Changes when applying rewrite to:
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
Result:
letrec
result2 :: GHC.Integer.Type.Integer3674937295934324780
= 2
in result2
bindConstantVar
Changes when applying rewrite to:
letrec
result2 :: GHC.Integer.Type.Integer3674937295934324780
= 2
in result2
Result:
2
caseCon
Changes when applying rewrite to:
case z26989586621679208385 of
_ ->
case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
Result:
case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
bindConstantVar
Changes when applying rewrite to:
letrec
z16989586621679208383 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase# 2
172800
in letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase# 2
172799
in case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
Result:
letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase# 2
172799
in case GHC.Prim.==#
(GHC.Integer.Logarithms.integerLogBase# 2
172800)
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Integer.Logarithms.integerLogBase# 2
172800))
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
172800)
1))
bindConstantVar
Changes when applying rewrite to:
letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase# 2
172799
in case GHC.Prim.==#
(GHC.Integer.Logarithms.integerLogBase# 2
172800)
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Integer.Logarithms.integerLogBase# 2
172800))
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
172800)
1))
Result:
case GHC.Prim.==#
(GHC.Integer.Logarithms.integerLogBase# 2
172800)
(GHC.Integer.Logarithms.integerLogBase# 2
172799) of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Integer.Logarithms.integerLogBase# 2
172800))
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
172800)
1))
caseCon
Changes when applying rewrite to:
case GHC.Prim.==#
(GHC.Integer.Logarithms.integerLogBase# 2
172800)
(GHC.Integer.Logarithms.integerLogBase# 2
172799) of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Integer.Logarithms.integerLogBase# 2
172800))
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
172800)
1))
Result:
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
172800)
1))
topLet
Changes when applying rewrite to:
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
172800)
1))
Result:
letrec
result386 :: GHC.Natural.Natural3674937295934324782
= GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
172800)
1))
in result386
evalConst
Changes when applying rewrite to:
GHC.Integer.Logarithms.integerLogBase# 2 172800
Result:
17
evalConst
Changes when applying rewrite to:
GHC.Prim.+# 17 1
Result:
18
evalConst
Changes when applying rewrite to:
GHC.Prim.int2Word# 18
Result:
18
evalConst
Changes when applying rewrite to:
GHC.Natural.NatS# 18
Result:
18
normalization
Changes when applying rewrite to:
letrec
z16989586621679208383 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase#
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
172800
in case z16989586621679208383 of
_ ->
letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase#
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
172799
in case z26989586621679208385 of
_ ->
case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
Result:
letrec
result386 :: GHC.Natural.Natural3674937295934324782
= 18
in result386
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_$s$w$cnatSing18214565720323984825 after normalization:
letrec
result386 :: GHC.Natural.Natural3674937295934324782
= 18
in result386
inlineWorkFree
Changes when applying rewrite to:
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_$s$w$cnatSing18214565720323984825
Result:
letrec
result386 :: GHC.Natural.Natural3674937295934324782
= 18
in result386
bindConstantVar
Changes when applying rewrite to:
letrec
result386 :: GHC.Natural.Natural3674937295934324782
= 18
in result386
Result:
18
MinimalExample.topEntity28214565720323984871 before normalization:
172800
topLet
Changes when applying rewrite to:
172800
Result:
letrec
result1984 :: GHC.Natural.Natural3674937295934324782
= 172800
in result1984
normalization
Changes when applying rewrite to:
172800
Result:
letrec
result1984 :: GHC.Natural.Natural3674937295934324782
= 172800
in result1984
MinimalExample.topEntity28214565720323984871 after normalization:
letrec
result1984 :: GHC.Natural.Natural3674937295934324782
= 172800
in result1984
inlineWorkFree
Changes when applying rewrite to:
MinimalExample.topEntity28214565720323984871
Result:
letrec
result1984 :: GHC.Natural.Natural3674937295934324782
= 172800
in result1984
bindConstantVar
Changes when applying rewrite to:
letrec
result1984 :: GHC.Natural.Natural3674937295934324782
= 172800
in result1984
Result:
172800
applicationPropagation
Changes when applying rewrite to:
(λ(req6989586621679096763 :: GHC.Types.Bool3674937295934324744) ->
λ(d6989586621679096764 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128) ->
case req6989586621679096763 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
d6989586621679096764)
writeRequest6989586621679096753
writeData6989586621679096754
Result:
case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_$s$w$cnatSing28214565720323984822 before normalization:
letrec
z16989586621679208383 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase#
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
27648000
in case z16989586621679208383 of
_ ->
letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase#
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
27647999
in case z26989586621679208385 of
_ ->
case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
inlineWorkFree
Changes when applying rewrite to:
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
Result:
letrec
result2 :: GHC.Integer.Type.Integer3674937295934324780
= 2
in result2
bindConstantVar
Changes when applying rewrite to:
letrec
result2 :: GHC.Integer.Type.Integer3674937295934324780
= 2
in result2
Result:
2
caseCon
Changes when applying rewrite to:
case z16989586621679208383 of
_ ->
letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase#
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
27647999
in case z26989586621679208385 of
_ ->
case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
Result:
letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase#
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
27647999
in case z26989586621679208385 of
_ ->
case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
inlineWorkFree
Changes when applying rewrite to:
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
Result:
letrec
result2 :: GHC.Integer.Type.Integer3674937295934324780
= 2
in result2
bindConstantVar
Changes when applying rewrite to:
letrec
result2 :: GHC.Integer.Type.Integer3674937295934324780
= 2
in result2
Result:
2
caseCon
Changes when applying rewrite to:
case z26989586621679208385 of
_ ->
case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
Result:
case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
bindConstantVar
Changes when applying rewrite to:
letrec
z16989586621679208383 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase# 2
27648000
in letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase# 2
27647999
in case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
Result:
letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase# 2
27647999
in case GHC.Prim.==#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000)
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000))
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000)
1))
bindConstantVar
Changes when applying rewrite to:
letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase# 2
27647999
in case GHC.Prim.==#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000)
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000))
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000)
1))
Result:
case GHC.Prim.==#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000)
(GHC.Integer.Logarithms.integerLogBase# 2
27647999) of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000))
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000)
1))
caseCon
Changes when applying rewrite to:
case GHC.Prim.==#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000)
(GHC.Integer.Logarithms.integerLogBase# 2
27647999) of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000))
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000)
1))
Result:
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000)
1))
topLet
Changes when applying rewrite to:
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000)
1))
Result:
letrec
result2560 :: GHC.Natural.Natural3674937295934324782
= GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+#
(GHC.Integer.Logarithms.integerLogBase# 2
27648000)
1))
in result2560
evalConst
Changes when applying rewrite to:
GHC.Integer.Logarithms.integerLogBase# 2
27648000
Result:
24
evalConst
Changes when applying rewrite to:
GHC.Prim.+# 24 1
Result:
25
evalConst
Changes when applying rewrite to:
GHC.Prim.int2Word# 25
Result:
25
evalConst
Changes when applying rewrite to:
GHC.Natural.NatS# 25
Result:
25
normalization
Changes when applying rewrite to:
letrec
z16989586621679208383 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase#
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
27648000
in case z16989586621679208383 of
_ ->
letrec
z26989586621679208385 :: GHC.Prim.Int#3674937295934324764
= GHC.Integer.Logarithms.integerLogBase#
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_x18214565720323984823
27647999
in case z26989586621679208385 of
_ ->
case GHC.Prim.==# z16989586621679208383
z26989586621679208385 of
_ ->
GHC.Natural.NatS#
(GHC.Prim.int2Word# z16989586621679208383)
1 ->
GHC.Natural.NatS#
(GHC.Prim.int2Word#
(GHC.Prim.+# z16989586621679208383 1))
Result:
letrec
result2560 :: GHC.Natural.Natural3674937295934324782
= 25
in result2560
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_$s$w$cnatSing28214565720323984822 after normalization:
letrec
result2560 :: GHC.Natural.Natural3674937295934324782
= 25
in result2560
inlineWorkFree
Changes when applying rewrite to:
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_$s$w$cnatSing28214565720323984822
Result:
letrec
result2560 :: GHC.Natural.Natural3674937295934324782
= 25
in result2560
bindConstantVar
Changes when applying rewrite to:
letrec
result2560 :: GHC.Natural.Natural3674937295934324782
= 25
in result2560
Result:
25
inlineSmall
Changes when applying rewrite to:
Clash.Signal.Bundle.$fBundle(,,,)_$cbundle8214565720323845568
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589)
fifoOutput18286623314361920150)
((letrec
n8286623314361920149 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= Clash.Sized.Internal.BitVector.fromInteger#
@24
MinimalExample.topEntity38214565720323984872
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
n8286623314361920149
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221)
fifoOutput18286623314361920150)
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999810 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999812 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds27205759403792999811)
fifoOutput18286623314361920150)
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999814 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999815 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds37205759403792999816)
fifoOutput18286623314361920150))
Result:
(Λa8214565720323998862 ->
Λa18214565720323998863 ->
Λa28214565720323998864 ->
Λa38214565720323998865 ->
Λdomain8214565720323998866 ->
λ(ds8214565720323998867 :: Clash.Signal.Bundle.Unbundled8214565720323789164
domain8214565720323998866
(GHC.Tuple.(,,,)3746994889972252680
a8214565720323998862
a18214565720323998863
a28214565720323998864
a38214565720323998865)) ->
case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
domain8214565720323998866
a8214565720323998862)
(a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
domain8214565720323998866
a18214565720323998863)
(a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
domain8214565720323998866
a28214565720323998864)
(a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
domain8214565720323998866
a38214565720323998865) ->
GHC.Tuple.(,,,)3963167672086036492
@a8214565720323998862
@a18214565720323998863
@a28214565720323998864
@a38214565720323998865
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873)
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589)
fifoOutput18286623314361920150)
((letrec
n8286623314361920149 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= Clash.Sized.Internal.BitVector.fromInteger#
@24
MinimalExample.topEntity38214565720323984872
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
n8286623314361920149
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221)
fifoOutput18286623314361920150)
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999810 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999812 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds27205759403792999811)
fifoOutput18286623314361920150)
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999814 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999815 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds37205759403792999816)
fifoOutput18286623314361920150))
applicationPropagation
Changes when applying rewrite to:
(Λa8214565720323998862 ->
Λa18214565720323998863 ->
Λa28214565720323998864 ->
Λa38214565720323998865 ->
Λdomain8214565720323998866 ->
λ(ds8214565720323998867 :: Clash.Signal.Bundle.Unbundled8214565720323789164
domain8214565720323998866
(GHC.Tuple.(,,,)3746994889972252680
a8214565720323998862
a18214565720323998863
a28214565720323998864
a38214565720323998865)) ->
case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
domain8214565720323998866
a8214565720323998862)
(a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
domain8214565720323998866
a18214565720323998863)
(a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
domain8214565720323998866
a28214565720323998864)
(a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
domain8214565720323998866
a38214565720323998865) ->
GHC.Tuple.(,,,)3963167672086036492
@a8214565720323998862
@a18214565720323998863
@a28214565720323998864
@a38214565720323998865
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873)
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589)
fifoOutput18286623314361920150)
((letrec
n8286623314361920149 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= Clash.Sized.Internal.BitVector.fromInteger#
@24
MinimalExample.topEntity38214565720323984872
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
n8286623314361920149
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221)
fifoOutput18286623314361920150)
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999810 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999812 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds27205759403792999811)
fifoOutput18286623314361920150)
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999814 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999815 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds37205759403792999816)
fifoOutput18286623314361920150))
Result:
letrec
ds8214565720323998867 :: Clash.Signal.Bundle.Unbundled8214565720323789164
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
= GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589)
fifoOutput18286623314361920150)
((letrec
n8286623314361920149 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= Clash.Sized.Internal.BitVector.fromInteger#
@24
MinimalExample.topEntity38214565720323984872
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
n8286623314361920149
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221)
fifoOutput18286623314361920150)
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999810 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999812 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds27205759403792999811)
fifoOutput18286623314361920150)
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999814 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999815 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds37205759403792999816)
fifoOutput18286623314361920150)
in case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873
applicationPropagation
Changes when applying rewrite to:
(λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589)
fifoOutput18286623314361920150
Result:
case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
applicationPropagation
Changes when applying rewrite to:
(letrec
n8286623314361920149 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= Clash.Sized.Internal.BitVector.fromInteger#
@24
MinimalExample.topEntity38214565720323984872
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
n8286623314361920149
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221)
fifoOutput18286623314361920150
Result:
letrec
n8286623314361920149 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= Clash.Sized.Internal.BitVector.fromInteger#
@24
MinimalExample.topEntity38214565720323984872
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
n8286623314361920149
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221
inlineWorkFree
Changes when applying rewrite to:
MinimalExample.topEntity38214565720323984872
Result:
letrec
result1 :: GHC.Natural.Natural3674937295934324782
= 24
in result1
bindConstantVar
Changes when applying rewrite to:
letrec
result1 :: GHC.Natural.Natural3674937295934324782
= 24
in result1
Result:
24
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108 before normalization:
0
topLet
Changes when applying rewrite to:
0
Result:
letrec
result3840 :: GHC.Integer.Type.Integer3674937295934324780
= 0
in result3840
normalization
Changes when applying rewrite to:
0
Result:
letrec
result3840 :: GHC.Integer.Type.Integer3674937295934324780
= 0
in result3840
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108 after normalization:
letrec
result3840 :: GHC.Integer.Type.Integer3674937295934324780
= 0
in result3840
inlineWorkFree
Changes when applying rewrite to:
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
Result:
letrec
result3840 :: GHC.Integer.Type.Integer3674937295934324780
= 0
in result3840
bindConstantVar
Changes when applying rewrite to:
letrec
result3840 :: GHC.Integer.Type.Integer3674937295934324780
= 0
in result3840
Result:
0
applicationPropagation
Changes when applying rewrite to:
(λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999810 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999812 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds27205759403792999811)
fifoOutput18286623314361920150
Result:
case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999810 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999812 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds27205759403792999811
MinimalExample.topEntity18214565720323984870 before normalization:
32
topLet
Changes when applying rewrite to:
32
Result:
letrec
result3841 :: GHC.Natural.Natural3674937295934324782
= 32
in result3841
normalization
Changes when applying rewrite to:
32
Result:
letrec
result3841 :: GHC.Natural.Natural3674937295934324782
= 32
in result3841
MinimalExample.topEntity18214565720323984870 after normalization:
letrec
result3841 :: GHC.Natural.Natural3674937295934324782
= 32
in result3841
inlineWorkFree
Changes when applying rewrite to:
MinimalExample.topEntity18214565720323984870
Result:
letrec
result3841 :: GHC.Natural.Natural3674937295934324782
= 32
in result3841
bindConstantVar
Changes when applying rewrite to:
letrec
result3841 :: GHC.Natural.Natural3674937295934324782
= 32
in result3841
Result:
32
applicationPropagation
Changes when applying rewrite to:
(λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999814 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999815 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds37205759403792999816)
fifoOutput18286623314361920150
Result:
case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999814 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999815 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds37205759403792999816
inlineWorkFree
Changes when applying rewrite to:
MinimalExample.topEntity18214565720323984870
Result:
letrec
result3841 :: GHC.Natural.Natural3674937295934324782
= 32
in result3841
bindConstantVar
Changes when applying rewrite to:
letrec
result3841 :: GHC.Natural.Natural3674937295934324782
= 32
in result3841
Result:
32
bindConstantVar
Changes when applying rewrite to:
letrec
n8286623314361920149 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= Clash.Sized.Internal.BitVector.fromInteger#
@24
24
0
0
in case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
n8286623314361920149
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221
Result:
case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221
typeSpec
Changes when applying rewrite to:
MinimalExample.fifo8214565720323870634 @128
Result:
MinimalExample.fifo3969
typeSpec
Changes when applying rewrite to:
MinimalExample.fifo3969 @24
Result:
MinimalExample.fifo3970
typeSpec
Changes when applying rewrite to:
MinimalExample.fifo3970 @160
Result:
MinimalExample.fifo3971
typeSpec
Changes when applying rewrite to:
MinimalExample.fifo3971
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
Result:
MinimalExample.fifo3972
typeSpec
Changes when applying rewrite to:
MinimalExample.fifo3972 @172800
Result:
MinimalExample.fifo3973
typeSpec
Changes when applying rewrite to:
MinimalExample.fifo3973
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Result:
MinimalExample.fifo3974
typeSpec
Changes when applying rewrite to:
MinimalExample.fifo3974
@Clash.Signal.Internal.Source8214565720323789172
Result:
MinimalExample.fifo3975
typeSpec
Changes when applying rewrite to:
MinimalExample.fifo3975
@Clash.Signal.Internal.Asynchronous8214565720323789179
Result:
MinimalExample.fifo3976
constantSpec
Changes when applying rewrite to:
MinimalExample.fifo3976
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
128
Result:
MinimalExample.fifo4038
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
constantSpec
Changes when applying rewrite to:
MinimalExample.fifo4038
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
24
Result:
MinimalExample.fifo4040
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
constantSpec
Changes when applying rewrite to:
MinimalExample.fifo4040
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
160
Result:
MinimalExample.fifo4042
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
constantSpec
Changes when applying rewrite to:
MinimalExample.fifo4042
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
(GHC.Natural.plusNatural 1 18)
Result:
MinimalExample.fifo4044
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
constantSpec
Changes when applying rewrite to:
MinimalExample.fifo4044
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
172800
Result:
MinimalExample.fifo4046
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
constantSpec
Changes when applying rewrite to:
MinimalExample.fifo4046
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@160
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
160
160)))
Result:
MinimalExample.fifo4048
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
constantSpec
Changes when applying rewrite to:
MinimalExample.fifo4048
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800)))))
Result:
MinimalExample.fifo4050
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
constantSpec
Changes when applying rewrite to:
MinimalExample.fifo4050
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@172800
@172800
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
172800
172800)))
Result:
MinimalExample.fifo4052
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
constantSpec
Changes when applying rewrite to:
MinimalExample.fifo4052
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Bool3674937295934324744
@GHC.Types.Bool3674937295934324744
@GHC.Types.True3891110078048108589
@GHC.Types.True3891110078048108589
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Bool3674937295934324744
GHC.Types.Bool3674937295934324744
GHC.Types.True3891110078048108589
GHC.Types.True3891110078048108589)))
Result:
MinimalExample.fifo4054
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
constantSpec
Changes when applying rewrite to:
MinimalExample.fifo4054
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Bool3674937295934324744
@GHC.Types.Bool3674937295934324744
@GHC.Types.True3891110078048108589
@GHC.Types.True3891110078048108589
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Bool3674937295934324744
GHC.Types.Bool3674937295934324744
GHC.Types.True3891110078048108589
GHC.Types.True3891110078048108589)))
Result:
MinimalExample.fifo4056
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
ANF
Changes when applying rewrite to:
λ(clk6989586621679096750 :: Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172) ->
λ(rst6989586621679096751 :: Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179) ->
λ(pop6989586621679096752 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744) ->
λ(writeRequest6989586621679096753 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744) ->
λ(writeData6989586621679096754 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)) ->
letrec
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
(MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
(case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754)
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100))
in letrec
ds8214565720323998867 :: Clash.Signal.Bundle.Unbundled8214565720323789164
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
= GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589)
(case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221)
(case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999810 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999812 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811)
(case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999814 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999815 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816)
in case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873
Result:
λ(clk6989586621679096750 :: Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172) ->
λ(rst6989586621679096751 :: Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179) ->
λ(pop6989586621679096752 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744) ->
λ(writeRequest6989586621679096753 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744) ->
λ(writeData6989586621679096754 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)) ->
letrec
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
c$fifoOutput1_app_arg4057
c$fifoOutput1_app_arg4060
ds8214565720323998867 :: Clash.Signal.Bundle.Unbundled8214565720323789164
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
= GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
c$ds_case_alt4104
c$ds_case_alt4117
c$case_alt4138 :: GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873
a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$sel4122 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4119 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4120 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4121 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4122
a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4123 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$sel4127 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4125 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4126 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4127
a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4128 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4129 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4132 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4131 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4132
a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4133 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4134 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4135 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$sel4137 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4137
c$ds_case_alt4117 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
ds17205759403792999814 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4108 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4106 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4107 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4108
ds27205759403792999815 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4109 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4112 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4111 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4112
ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4113 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4114 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4116 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4116
c$ds_case_alt4104 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
ds17205759403792999810 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4095 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4093 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4094 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4095
ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4096 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4099 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4098 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4099
ds37205759403792999812 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4100 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4101 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4103 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4103
c$ds_case_alt4091 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$ds_case_alt4078
ds17205759403792999818 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4082 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4080 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4081 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4082
ds27205759403792999820 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4083 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4086 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4085 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4086
ds37205759403792999822 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4087 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4088 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4090 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4090
c$ds_case_alt4078 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= x16989586621679205221
x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Just3891110078048108571
(c$sel4077 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4077
c$ds_case_alt4075 :: GHC.Types.Bool3674937295934324744
= case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4066 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4064 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4065 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4066
ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4067 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4070 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4069 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4070
ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4071 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4072 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4074 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4074
ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999806 of
GHC.Maybe.Just3891110078048108571
(c$sel4062 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4062
c$fifoOutput1_app_arg4060 :: MinimalExample.FifoInput8214565720323870615
GHC.Types.Nat3674937295934325064
128
24
= MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
c$fifoOutput1_app_arg4059
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100)
c$fifoOutput1_app_arg4059 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
c$fifoOutput1_case_alt4058
c$fifoOutput1_case_alt4058 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
c$fifoOutput1_app_arg4057 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
= GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751
in c$case_alt4138
deadcode
Changes when applying rewrite to:
letrec
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
c$fifoOutput1_app_arg4057
c$fifoOutput1_app_arg4060
ds8214565720323998867 :: Clash.Signal.Bundle.Unbundled8214565720323789164
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
= GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
c$ds_case_alt4104
c$ds_case_alt4117
c$case_alt4138 :: GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873
a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$sel4122 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4119 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4120 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4121 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4122
a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4123 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$sel4127 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4125 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4126 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4127
a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4128 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4129 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4132 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4131 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4132
a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4133 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4134 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4135 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$sel4137 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4137
c$ds_case_alt4117 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
ds17205759403792999814 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4108 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4106 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4107 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4108
ds27205759403792999815 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4109 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4112 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4111 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4112
ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4113 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4114 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4116 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4116
c$ds_case_alt4104 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
ds17205759403792999810 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4095 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4093 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4094 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4095
ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4096 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4099 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4098 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4099
ds37205759403792999812 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4100 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4101 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4103 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4103
c$ds_case_alt4091 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$ds_case_alt4078
ds17205759403792999818 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4082 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4080 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4081 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4082
ds27205759403792999820 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4083 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4086 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4085 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4086
ds37205759403792999822 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4087 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4088 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4090 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4090
c$ds_case_alt4078 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= x16989586621679205221
x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Just3891110078048108571
(c$sel4077 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4077
c$ds_case_alt4075 :: GHC.Types.Bool3674937295934324744
= case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4066 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4064 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4065 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4066
ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4067 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4070 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4069 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4070
ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4071 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4072 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4074 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4074
ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999806 of
GHC.Maybe.Just3891110078048108571
(c$sel4062 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4062
c$fifoOutput1_app_arg4060 :: MinimalExample.FifoInput8214565720323870615
GHC.Types.Nat3674937295934325064
128
24
= MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
c$fifoOutput1_app_arg4059
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100)
c$fifoOutput1_app_arg4059 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
c$fifoOutput1_case_alt4058
c$fifoOutput1_case_alt4058 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
c$fifoOutput1_app_arg4057 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
= GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751
in c$case_alt4138
Result:
letrec
c$case_alt4138 :: GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873
a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$sel4122 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4119 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4120 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4121 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4122
a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4123 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$sel4127 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4125 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4126 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4127
a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4128 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4129 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4132 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4131 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4132
a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4133 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4134 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4135 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$sel4137 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4137
ds8214565720323998867 :: Clash.Signal.Bundle.Unbundled8214565720323789164
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
= GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
c$ds_case_alt4104
c$ds_case_alt4117
c$ds_case_alt4117 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
c$ds_case_alt4104 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
c$ds_case_alt4091 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$ds_case_alt4078
c$ds_case_alt4075 :: GHC.Types.Bool3674937295934324744
= case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4113 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4114 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4116 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4116
ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4096 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4099 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4098 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4099
ds17205759403792999818 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4082 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4080 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4081 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4082
c$ds_case_alt4078 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= x16989586621679205221
ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4066 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4064 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4065 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4066
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
c$fifoOutput1_app_arg4057
c$fifoOutput1_app_arg4060
x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Just3891110078048108571
(c$sel4077 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4077
c$fifoOutput1_app_arg4060 :: MinimalExample.FifoInput8214565720323870615
GHC.Types.Nat3674937295934325064
128
24
= MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
c$fifoOutput1_app_arg4059
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100)
c$fifoOutput1_app_arg4057 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
= GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751
c$fifoOutput1_app_arg4059 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
c$fifoOutput1_case_alt4058
c$fifoOutput1_case_alt4058 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
in c$case_alt4138
bindConstantVar
Changes when applying rewrite to:
letrec
c$case_alt4138 :: GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873
a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$sel4122 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4119 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4120 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4121 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4122
a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4123 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$sel4127 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4125 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4126 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4127
a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4128 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4129 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4132 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4131 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4132
a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4133 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4134 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4135 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$sel4137 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4137
ds8214565720323998867 :: Clash.Signal.Bundle.Unbundled8214565720323789164
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
= GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
c$ds_case_alt4104
c$ds_case_alt4117
c$ds_case_alt4117 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
c$ds_case_alt4104 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
c$ds_case_alt4091 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$ds_case_alt4078
c$ds_case_alt4075 :: GHC.Types.Bool3674937295934324744
= case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4113 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4114 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4116 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4116
ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4096 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4099 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4098 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4099
ds17205759403792999818 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4082 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4080 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4081 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4082
c$ds_case_alt4078 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= x16989586621679205221
ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4066 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4064 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4065 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4066
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
c$fifoOutput1_app_arg4057
c$fifoOutput1_app_arg4060
x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Just3891110078048108571
(c$sel4077 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4077
c$fifoOutput1_app_arg4060 :: MinimalExample.FifoInput8214565720323870615
GHC.Types.Nat3674937295934325064
128
24
= MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
c$fifoOutput1_app_arg4059
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100)
c$fifoOutput1_app_arg4057 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
= GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751
c$fifoOutput1_app_arg4059 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
c$fifoOutput1_case_alt4058
c$fifoOutput1_case_alt4058 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
in c$case_alt4138
Result:
letrec
c$case_alt4138 :: GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873
a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$sel4122 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4119 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4120 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4121 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4122
a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4123 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$sel4127 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4125 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4126 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4127
a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4128 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4129 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4132 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4131 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4132
a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4133 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4134 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4135 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$sel4137 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4137
ds8214565720323998867 :: Clash.Signal.Bundle.Unbundled8214565720323789164
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
= GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
c$ds_case_alt4104
c$ds_case_alt4117
c$ds_case_alt4117 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
c$ds_case_alt4104 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
c$ds_case_alt4091 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205248 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221
c$ds_case_alt4075 :: GHC.Types.Bool3674937295934324744
= case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4113 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4114 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4116 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4116
ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4096 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4099 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4098 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4099
ds17205759403792999818 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4082 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4080 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4081 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4082
ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4066 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4064 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4065 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4066
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
c$fifoOutput1_app_arg4057
c$fifoOutput1_app_arg4060
x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Just3891110078048108571
(c$sel4077 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4077
c$fifoOutput1_app_arg4060 :: MinimalExample.FifoInput8214565720323870615
GHC.Types.Nat3674937295934325064
128
24
= MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
c$fifoOutput1_app_arg4059
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100)
c$fifoOutput1_app_arg4057 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
= GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751
c$fifoOutput1_app_arg4059 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
c$fifoOutput1_case_alt4058
c$fifoOutput1_case_alt4058 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
in c$case_alt4138
CSE
Changes when applying rewrite to:
letrec
c$case_alt4138 :: GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873
a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$sel4122 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4119 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4120 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4121 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4122
a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4123 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$sel4127 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4125 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4126 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4127
a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4128 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4129 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4132 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4131 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4132
a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4133 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4134 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4135 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$sel4137 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4137
ds8214565720323998867 :: Clash.Signal.Bundle.Unbundled8214565720323789164
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
= GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
c$ds_case_alt4104
c$ds_case_alt4117
c$ds_case_alt4117 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
c$ds_case_alt4104 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
c$ds_case_alt4091 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205248 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221
c$ds_case_alt4075 :: GHC.Types.Bool3674937295934324744
= case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4113 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4114 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4116 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4116
ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4096 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4099 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4098 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4099
ds17205759403792999818 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4082 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4080 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4081 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4082
ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4066 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4064 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4065 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4066
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
c$fifoOutput1_app_arg4057
c$fifoOutput1_app_arg4060
x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Just3891110078048108571
(c$sel4077 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4077
c$fifoOutput1_app_arg4060 :: MinimalExample.FifoInput8214565720323870615
GHC.Types.Nat3674937295934325064
128
24
= MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
c$fifoOutput1_app_arg4059
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100)
c$fifoOutput1_app_arg4057 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
= GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751
c$fifoOutput1_app_arg4059 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
c$fifoOutput1_case_alt4058
c$fifoOutput1_case_alt4058 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
in c$case_alt4138
Result:
letrec
c$fifoOutput1_case_alt4058 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
c$fifoOutput1_app_arg4059 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
c$fifoOutput1_case_alt4058
c$fifoOutput1_app_arg4057 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
= GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751
c$fifoOutput1_app_arg4060 :: MinimalExample.FifoInput8214565720323870615
GHC.Types.Nat3674937295934325064
128
24
= MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
c$fifoOutput1_app_arg4059
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100)
x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Just3891110078048108571
(c$sel4077 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4077
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
c$fifoOutput1_app_arg4057
c$fifoOutput1_app_arg4060
ds17205759403792999818 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4082 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4080 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4081 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4082
ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4096 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4099 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4098 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4099
ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4113 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4114 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4116 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4116
c$ds_case_alt4075 :: GHC.Types.Bool3674937295934324744
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
c$ds_case_alt4091 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205248 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221
c$ds_case_alt4104 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
c$ds_case_alt4117 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
ds8214565720323998867 :: Clash.Signal.Bundle.Unbundled8214565720323789164
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
= GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
c$ds_case_alt4104
c$ds_case_alt4117
a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4133 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4134 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4135 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$sel4137 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4137
a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4128 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4129 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4132 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4131 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4132
a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4123 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$sel4127 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4125 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4126 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4127
a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$sel4122 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4119 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4120 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4121 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4122
c$case_alt4138 :: GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873
in c$case_alt4138
inlineCleanup
Changes when applying rewrite to:
letrec
c$fifoOutput1_case_alt4058 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
c$fifoOutput1_app_arg4059 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
c$fifoOutput1_case_alt4058
c$fifoOutput1_app_arg4057 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
= GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751
c$fifoOutput1_app_arg4060 :: MinimalExample.FifoInput8214565720323870615
GHC.Types.Nat3674937295934325064
128
24
= MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
c$fifoOutput1_app_arg4059
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100)
x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Just3891110078048108571
(c$sel4077 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4077
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
c$fifoOutput1_app_arg4057
c$fifoOutput1_app_arg4060
ds17205759403792999818 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4082 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4080 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4081 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4082
ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4096 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4099 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4098 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4099
ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4113 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4114 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4116 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4116
c$ds_case_alt4075 :: GHC.Types.Bool3674937295934324744
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
c$ds_case_alt4091 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205248 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221
c$ds_case_alt4104 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
c$ds_case_alt4117 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
ds8214565720323998867 :: Clash.Signal.Bundle.Unbundled8214565720323789164
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
= GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
c$ds_case_alt4104
c$ds_case_alt4117
a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4133 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4134 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4135 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$sel4137 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4137
a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4128 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4129 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4132 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4131 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4132
a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4123 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$sel4127 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4125 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4126 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4127
a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744
= case ds8214565720323998867 of
GHC.Tuple.(,,,)3963167672086036492
(c$sel4122 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4119 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4120 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4121 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4122
c$case_alt4138 :: GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873
in c$case_alt4138
Result:
letrec
c$fifoOutput1_app_arg4059 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Just3891110078048108571
(c$sel4077 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4077
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
(MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
c$fifoOutput1_app_arg4059
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100))
ds17205759403792999818 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4082 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4080 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4081 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4082
ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4096 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4099 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4098 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4099
ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4113 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4114 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4116 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4116
c$ds_case_alt4075 :: GHC.Types.Bool3674937295934324744
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
c$ds_case_alt4091 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205248 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221
a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811)
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816) of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4133 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4134 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4135 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$sel4137 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4137
a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= case GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811)
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816) of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4128 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4129 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4132 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4131 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4132
a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811)
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816) of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4123 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$sel4127 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4125 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4126 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4127
a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744
= case GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811)
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816) of
GHC.Tuple.(,,,)3963167672086036492
(c$sel4122 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4119 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4120 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4121 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4122
c$case_alt4138 :: GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873
in c$case_alt4138
caseCon
Changes when applying rewrite to:
case GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811)
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816) of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4133 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4134 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4135 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$sel4137 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4137
Result:
letrec
c$sel4160 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
in c$sel4160
letFlat
Changes when applying rewrite to:
letrec
c$sel4160 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
in c$sel4160
Result:
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
caseCon
Changes when applying rewrite to:
case GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811)
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816) of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4128 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4129 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4132 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4131 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4132
Result:
letrec
c$sel4155 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
in c$sel4155
letFlat
Changes when applying rewrite to:
letrec
c$sel4155 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
in c$sel4155
Result:
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
caseCon
Changes when applying rewrite to:
case GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811)
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816) of
GHC.Tuple.(,,,)3963167672086036492
(c$wild4123 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$sel4127 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4125 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4126 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4127
Result:
letrec
c$sel4150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= c$ds_case_alt4091
in c$sel4150
bindConstantVar
Changes when applying rewrite to:
letrec
c$sel4150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= c$ds_case_alt4091
in c$sel4150
Result:
c$ds_case_alt4091
caseCon
Changes when applying rewrite to:
case GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
c$ds_case_alt4075
c$ds_case_alt4091
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811)
(Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816) of
GHC.Tuple.(,,,)3963167672086036492
(c$sel4122 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
(c$wild4119 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4120 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
(c$wild4121 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)) ->
c$sel4122
Result:
letrec
c$sel4145 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744
= c$ds_case_alt4075
in c$sel4145
bindConstantVar
Changes when applying rewrite to:
letrec
c$sel4145 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744
= c$ds_case_alt4075
in c$sel4145
Result:
c$ds_case_alt4075
bindConstantVar
Changes when applying rewrite to:
letrec
c$fifoOutput1_app_arg4059 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Just3891110078048108571
(c$sel4077 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4077
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
(MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
c$fifoOutput1_app_arg4059
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100))
ds17205759403792999818 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4082 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4080 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4081 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4082
ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4096 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4099 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4098 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4099
ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4113 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4114 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4116 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4116
c$ds_case_alt4075 :: GHC.Types.Bool3674937295934324744
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
c$ds_case_alt4091 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205248 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221
a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
a58214565720323998871 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= c$ds_case_alt4091
a48214565720323998870 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744
= c$ds_case_alt4075
c$case_alt4138 :: GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
a48214565720323998870
a58214565720323998871
a68214565720323998872
a78214565720323998873
in c$case_alt4138
Result:
letrec
c$fifoOutput1_app_arg4059 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Just3891110078048108571
(c$sel4077 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4077
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
(MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
c$fifoOutput1_app_arg4059
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100))
ds17205759403792999818 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4082 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4080 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4081 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4082
ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4096 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4099 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4098 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4099
ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4113 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4114 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4116 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4116
c$ds_case_alt4075 :: GHC.Types.Bool3674937295934324744
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
c$ds_case_alt4091 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205248 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221
a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
c$case_alt4138 :: GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
c$ds_case_alt4075
c$ds_case_alt4091
a68214565720323998872
a78214565720323998873
in c$case_alt4138
normalization
Changes when applying rewrite to:
λ(clk6989586621679096750 :: Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172) ->
λ(rst6989586621679096751 :: Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179) ->
λ(pop6989586621679096752 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744) ->
λ(writeRequest6989586621679096753 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744) ->
λ(writeData6989586621679096754 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)) ->
letrec
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo8214565720323870634 @128
@24
@160
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
@172800
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@Clash.Signal.Internal.Asynchronous8214565720323789179
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
128
MinimalExample.topEntity38214565720323984872
160
(GHC.Natural.plusNatural 1
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_$s$w$cnatSing18214565720323984825)
MinimalExample.topEntity28214565720323984871
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@160
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
160
160)))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800)))))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@172800
@172800
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
172800
172800)))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Bool3674937295934324744
@GHC.Types.Bool3674937295934324744
@GHC.Types.True3891110078048108589
@GHC.Types.True3891110078048108589
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Bool3674937295934324744
GHC.Types.Bool3674937295934324744
GHC.Types.True3891110078048108589
GHC.Types.True3891110078048108589)))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Bool3674937295934324744
@GHC.Types.Bool3674937295934324744
@GHC.Types.True3891110078048108589
@GHC.Types.True3891110078048108589
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Bool3674937295934324744
GHC.Types.Bool3674937295934324744
GHC.Types.True3891110078048108589
GHC.Types.True3891110078048108589)))
(MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
((λ(req6989586621679096763 :: GHC.Types.Bool3674937295934324744) ->
λ(d6989586621679096764 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128) ->
case req6989586621679096763 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
d6989586621679096764)
writeRequest6989586621679096753
writeData6989586621679096754)
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
MinimalExample.$s$fKnownNat2"GHC.TypeLits.Extra.CLog"xy_$cnatSing2_$s$w$cnatSing28214565720323984822
100))
in Clash.Signal.Bundle.$fBundle(,,,)_$cbundle8214565720323845568
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,,,)3963167672086036492
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744)
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
@(Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32))
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589)
fifoOutput18286623314361920150)
((letrec
n8286623314361920149 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= Clash.Sized.Internal.BitVector.fromInteger#
@24
MinimalExample.topEntity38214565720323984872
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999806 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999807 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999808 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
case ds17205759403792999806 of
GHC.Maybe.Nothing3891110078048108568 ->
n8286623314361920149
GHC.Maybe.Just3891110078048108571
(x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221)
fifoOutput18286623314361920150)
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999810 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999812 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds27205759403792999811)
fifoOutput18286623314361920150)
((λ(x6989586621679205296 :: MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24) ->
case x6989586621679205296 of
MinimalExample.FifoOutput8214565720323870611
(ds17205759403792999814 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(ds27205759403792999815 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))))
(ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
MinimalExample.topEntity18214565720323984870
ds37205759403792999816)
fifoOutput18286623314361920150))
Result:
λ(clk6989586621679096750 :: Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172) ->
λ(rst6989586621679096751 :: Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179) ->
λ(pop6989586621679096752 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744) ->
λ(writeRequest6989586621679096753 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744) ->
λ(writeData6989586621679096754 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)) ->
letrec
c$fifoOutput1_app_arg4059 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Just3891110078048108571
(c$sel4077 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4077
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
(MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
c$fifoOutput1_app_arg4059
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100))
ds17205759403792999818 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4082 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4080 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4081 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4082
ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4096 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4099 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4098 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4099
ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4113 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4114 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4116 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4116
c$ds_case_alt4075 :: GHC.Types.Bool3674937295934324744
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
c$ds_case_alt4091 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205248 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221
a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
c$case_alt4138 :: GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
c$ds_case_alt4075
c$ds_case_alt4091
a68214565720323998872
a78214565720323998873
in c$case_alt4138
MinimalExample.topEntity8214565720323870636 after normalization:
λ(clk6989586621679096750 :: Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172) ->
λ(rst6989586621679096751 :: Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179) ->
λ(pop6989586621679096752 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744) ->
λ(writeRequest6989586621679096753 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
GHC.Types.Bool3674937295934324744) ->
λ(writeData6989586621679096754 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)) ->
letrec
c$fifoOutput1_app_arg4059 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
= case writeRequest6989586621679096753 of
GHC.Types.False3891110078048108556 ->
GHC.Maybe.Nothing3891110078048108568
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
GHC.Types.True3891110078048108589 ->
GHC.Maybe.Just3891110078048108571
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
128)
writeData6989586621679096754
x16989586621679205221 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Just3891110078048108571
(c$sel4077 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
c$sel4077
fifoOutput18286623314361920150 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoOutput8214565720323870610
GHC.Types.Nat3674937295934325064
128
24)
= MinimalExample.fifo4056
(GHC.Classes.C:(%,%)8214565720323853587
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
clk6989586621679096750
rst6989586621679096751)
(MinimalExample.FifoInput8214565720323870616
@GHC.Types.Nat3674937295934325064
@128
@24
pop6989586621679096752
c$fifoOutput1_app_arg4059
(Clash.Sized.Internal.Unsigned.fromInteger#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
25
100))
ds17205759403792999818 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$sel4082 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4080 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4081 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4082
ds27205759403792999811 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4096 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$sel4099 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$wild4098 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048)))) ->
c$sel4099
ds37205759403792999816 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))
= case fifoOutput18286623314361920150 of
MinimalExample.FifoOutput8214565720323870611
(c$wild4113 :: GHC.Maybe.Maybe3674937295934324788
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24))
(c$wild4114 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))))
(c$sel4116 :: Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048)))) ->
c$sel4116
c$ds_case_alt4075 :: GHC.Types.Bool3674937295934324744
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
GHC.Types.False3891110078048108556
GHC.Maybe.Just3891110078048108571
(ipv6989586621679207568 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
GHC.Types.True3891110078048108589
c$ds_case_alt4091 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24
= case ds17205759403792999818 of
GHC.Maybe.Nothing3891110078048108568 ->
Clash.Sized.Internal.BitVector.fromInteger# @24
24
0
0
GHC.Maybe.Just3891110078048108571
(x16989586621679205248 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24) ->
x16989586621679205221
a78214565720323998873 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds37205759403792999816
a68214565720323998872 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= Clash.Sized.Internal.Unsigned.resize#
@(GHC.TypeLits.Extra.CLog8214565720323785324
2
27648000)
@32
32
ds27205759403792999811
c$case_alt4138 :: GHC.Tuple.(,,,)3746994889972252680
GHC.Types.Bool3674937295934324744
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
= GHC.Tuple.(,,,)3963167672086036492
@GHC.Types.Bool3674937295934324744
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
24)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
32)
c$ds_case_alt4075
c$ds_case_alt4091
a68214565720323998872
a78214565720323998873
in c$case_alt4138
MinimalExample.fifo4056 before normalization:
λ($d(%,%)4055 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4053 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4051 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4049 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4047 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4045 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4043 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4041 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4039 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4037 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(ΛwritePortWidth6989586621679198027 ->
ΛreadPortWidth6989586621679198028 ->
ΛportWidth6989586621679198029 ->
ΛwordsAddressSize6989586621679198030 ->
ΛfifoSizeWords6989586621679198031 ->
Λdomain6989586621679198032 ->
Λgated6989586621679198033 ->
Λsynchronous6989586621679198034 ->
λ($d(%,%)6989586621679198036 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
domain6989586621679198032
gated6989586621679198033))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
domain6989586621679198032
synchronous6989586621679198034))) ->
λ($dKnownNat6989586621679198037 :: GHC.TypeNats.KnownNat3602879701896396842
writePortWidth6989586621679198027) ->
λ($dKnownNat16989586621679198038 :: GHC.TypeNats.KnownNat3602879701896396842
readPortWidth6989586621679198028) ->
λ($dKnownNat26989586621679198039 :: GHC.TypeNats.KnownNat3602879701896396842
portWidth6989586621679198029) ->
λ($dKnownNat36989586621679198040 :: GHC.TypeNats.KnownNat3602879701896396842
wordsAddressSize6989586621679198030) ->
λ($dKnownNat46989586621679198041 :: GHC.TypeNats.KnownNat3602879701896396842
fifoSizeWords6989586621679198031) ->
λ($d~6989586621679198042 :: Data.Type.Equality.~3674937295934324812
GHC.Types.Nat3674937295934325064
portWidth6989586621679198029
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5))
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5)))
0))) ->
λ($d~16989586621679198043 :: Data.Type.Equality.~3674937295934324812
GHC.Types.Nat3674937295934325064
wordsAddressSize6989586621679198030
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5))
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5)))
0)))))) ->
λ($d~26989586621679198044 :: Data.Type.Equality.~3674937295934324812
GHC.Types.Nat3674937295934325064
fifoSizeWords6989586621679198031
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5))
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5)))
0)))) ->
λ($d~36989586621679198045 :: Data.Type.Equality.~3674937295934324812
GHC.Types.Bool3674937295934324744
(GHC.TypeNats.<=?3674937295934325074
1
portWidth6989586621679198029)
GHC.Types.True3891110078048108589) ->
λ($d~46989586621679198046 :: Data.Type.Equality.~3674937295934324812
GHC.Types.Bool3674937295934324744
(GHC.TypeNats.<=?3674937295934325074
1
fifoSizeWords6989586621679198031)
GHC.Types.True3891110078048108589) ->
λ(eta14755801206503243777 :: Clash.Signal.Internal.Signal8214565720323789181
domain6989586621679198032
(MinimalExample.FifoInput8214565720323870615
GHC.Types.Nat3674937295934325064
writePortWidth6989586621679198027
readPortWidth6989586621679198028)) ->
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@fifoSizeWords6989586621679198031
@(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5)))
0)))
$d~26989586621679198044 of
_ ->
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@wordsAddressSize6989586621679198030
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5))
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5)))
0)))))
$d~16989586621679198043 of
_ ->
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@portWidth6989586621679198029
@(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5))
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5)))
0))
$d~6989586621679198042 of
_ ->
letrec
mealyOutput8286623314361920155 :: Clash.Signal.Internal.Signal8214565720323789181
domain6989586621679198032
(MinimalExample.MealyFifoOutput8214565720323870423
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
= letrec
$dIP8286623314361920156 :: GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
domain6989586621679198032
gated6989586621679198033)
= GHC.Classes.$p1(%,%)8214565720323789240
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
domain6989586621679198032
gated6989586621679198033))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
domain6989586621679198032
synchronous6989586621679198034))
$d(%,%)6989586621679198036
in Clash.Explicit.Mealy.mealy8214565720323789256
@(MinimalExample.FifoState8214565720323870620
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
@domain6989586621679198032
@gated6989586621679198033
@synchronous6989586621679198034
@(MinimalExample.MealyFifoInput8214565720323870606
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
@(MinimalExample.MealyFifoOutput8214565720323870423
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(MinimalExample.$fUndefinedFifoState8214565720323872362
@GHC.Types.Nat3674937295934325064
@writePortWidth6989586621679198027
@GHC.Types.Nat3674937295934325064
@readPortWidth6989586621679198028)
$dIP8286623314361920156
(GHC.Classes.$p2(%,%)8214565720323789242
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
domain6989586621679198032
gated6989586621679198033))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
domain6989586621679198032
synchronous6989586621679198034))
$d(%,%)6989586621679198036)
(MinimalExample.fifoTransition8214565720323870635
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028
@(MinimalExample.MealyFifoInput8214565720323870606
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028
@(MinimalExample.MealyFifoOutput8214565720323870423
writePortWidth6989586621679198027
readPortWidth6989586621679198028))
(MinimalExample.FifoStateDetermineFifoDepth8214565720323870621
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028)
(MinimalExample.MealyFifoInput8214565720323870607
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028
eta14755801206503243777
(letrec
a18286623314361920162 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029
= Clash.Sized.Internal.BitVector.fromInteger#
@portWidth6989586621679198029
$dKnownNat26989586621679198039
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in letrec
wrM8286623314361920161 :: Clash.Signal.Internal.Signal8214565720323789181
domain6989586621679198032
(GHC.Maybe.Maybe3674937295934324788
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
wordsAddressSize6989586621679198030)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029)))
= MinimalExample.fifoMemWrite8214565720323870605
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028
mealyOutput8286623314361920155
in letrec
tup8286623314361920160 :: Clash.Signal.Internal.Signal8214565720323789181
domain6989586621679198032
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
wordsAddressSize6989586621679198030)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029))
= Data.Maybe.fromJust8214565720323787504
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
wordsAddressSize6989586621679198030)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029))
wrM8286623314361920161
in BlockRamHack.blockRam1#
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029)
@domain6989586621679198032
@gated6989586621679198033
@fifoSizeWords6989586621679198031
GHC.Stack.Types.EmptyCallStack8214565720323789328
(Clash.Sized.Internal.BitVector.$fUndefinedBitVector8214565720323858512
@portWidth6989586621679198029)
$dIP8286623314361920156
(Clash.Sized.Vector.replicate
@fifoSizeWords6989586621679198031
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029)
(Clash.Promoted.Nat.SNat8214565720323789144
@fifoSizeWords6989586621679198031
$dKnownNat46989586621679198041)
a18286623314361920162)
a18286623314361920162
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@wordsAddressSize6989586621679198030
$dKnownNat36989586621679198040
(MinimalExample.fifoMemReadAddr8214565720323870604
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028
mealyOutput8286623314361920155))
(Data.Maybe.isJust8214565720323787506
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
wordsAddressSize6989586621679198030)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029))
wrM8286623314361920161)
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@wordsAddressSize6989586621679198030
$dKnownNat36989586621679198040
(Clash.Signal.Bundle.$fBundle(,)38214565720323789331
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
wordsAddressSize6989586621679198030)
tup8286623314361920160))
(Clash.Signal.Bundle.$fBundle(,)28214565720323789332
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
wordsAddressSize6989586621679198030)
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029)
tup8286623314361920160)))
in MinimalExample.fifoOutput8214565720323870603
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028
mealyOutput8286623314361920155)
@128
@24
@160
@19
@172800
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@Clash.Signal.Internal.Asynchronous8214565720323789179
$d(%,%)4037
128)
$d(%,%)4039
24)
$d(%,%)4041
160)
$d(%,%)4043
(GHC.Natural.plusNatural 1 18))
$d(%,%)4045
172800)
$d(%,%)4047
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@160
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
160
160))))
$d(%,%)4049
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))))))
$d(%,%)4051
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@172800
@172800
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
172800
172800))))
$d(%,%)4053
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Bool3674937295934324744
@GHC.Types.Bool3674937295934324744
@GHC.Types.True3891110078048108589
@GHC.Types.True3891110078048108589
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Bool3674937295934324744
GHC.Types.Bool3674937295934324744
GHC.Types.True3891110078048108589
GHC.Types.True3891110078048108589))))
$d(%,%)4055
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Bool3674937295934324744
@GHC.Types.Bool3674937295934324744
@GHC.Types.True3891110078048108589
@GHC.Types.True3891110078048108589
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Bool3674937295934324744
GHC.Types.Bool3674937295934324744
GHC.Types.True3891110078048108589
GHC.Types.True3891110078048108589)))
applicationPropagation
Changes when applying rewrite to:
(λ($d(%,%)4053 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4051 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4049 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4047 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4045 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4043 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4041 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4039 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(λ($d(%,%)4037 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))) ->
(ΛwritePortWidth6989586621679198027 ->
ΛreadPortWidth6989586621679198028 ->
ΛportWidth6989586621679198029 ->
ΛwordsAddressSize6989586621679198030 ->
ΛfifoSizeWords6989586621679198031 ->
Λdomain6989586621679198032 ->
Λgated6989586621679198033 ->
Λsynchronous6989586621679198034 ->
λ($d(%,%)6989586621679198036 :: GHC.Classes.(%,%)7710162562058289156
(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
domain6989586621679198032
gated6989586621679198033))
(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
domain6989586621679198032
synchronous6989586621679198034))) ->
λ($dKnownNat6989586621679198037 :: GHC.TypeNats.KnownNat3602879701896396842
writePortWidth6989586621679198027) ->
λ($dKnownNat16989586621679198038 :: GHC.TypeNats.KnownNat3602879701896396842
readPortWidth6989586621679198028) ->
λ($dKnownNat26989586621679198039 :: GHC.TypeNats.KnownNat3602879701896396842
portWidth6989586621679198029) ->
λ($dKnownNat36989586621679198040 :: GHC.TypeNats.KnownNat3602879701896396842
wordsAddressSize6989586621679198030) ->
λ($dKnownNat46989586621679198041 :: GHC.TypeNats.KnownNat3602879701896396842
fifoSizeWords6989586621679198031) ->
λ($d~6989586621679198042 :: Data.Type.Equality.~3674937295934324812
GHC.Types.Nat3674937295934325064
portWidth6989586621679198029
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5))
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5)))
0))) ->
λ($d~16989586621679198043 :: Data.Type.Equality.~3674937295934324812
GHC.Types.Nat3674937295934325064
wordsAddressSize6989586621679198030
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5))
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5)))
0)))))) ->
λ($d~26989586621679198044 :: Data.Type.Equality.~3674937295934324812
GHC.Types.Nat3674937295934325064
fifoSizeWords6989586621679198031
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5))
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5)))
0)))) ->
λ($d~36989586621679198045 :: Data.Type.Equality.~3674937295934324812
GHC.Types.Bool3674937295934324744
(GHC.TypeNats.<=?3674937295934325074
1
portWidth6989586621679198029)
GHC.Types.True3891110078048108589) ->
λ($d~46989586621679198046 :: Data.Type.Equality.~3674937295934324812
GHC.Types.Bool3674937295934324744
(GHC.TypeNats.<=?3674937295934325074
1
fifoSizeWords6989586621679198031)
GHC.Types.True3891110078048108589) ->
λ(eta14755801206503243777 :: Clash.Signal.Internal.Signal8214565720323789181
domain6989586621679198032
(MinimalExample.FifoInput8214565720323870615
GHC.Types.Nat3674937295934325064
writePortWidth6989586621679198027
readPortWidth6989586621679198028)) ->
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@fifoSizeWords6989586621679198031
@(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5)))
0)))
$d~26989586621679198044 of
_ ->
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@wordsAddressSize6989586621679198030
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070
5
2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5))
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5)))
0)))))
$d~16989586621679198043 of
_ ->
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@portWidth6989586621679198029
@(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5))
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070
5
2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(GHC.TypeNats.-3674937295934325076
5
1))
5)))
0))
$d~6989586621679198042 of
_ ->
letrec
mealyOutput8286623314361920155 :: Clash.Signal.Internal.Signal8214565720323789181
domain6989586621679198032
(MinimalExample.MealyFifoOutput8214565720323870423
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
= letrec
$dIP8286623314361920156 :: GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
domain6989586621679198032
gated6989586621679198033)
= GHC.Classes.$p1(%,%)8214565720323789240
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
domain6989586621679198032
gated6989586621679198033))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
domain6989586621679198032
synchronous6989586621679198034))
$d(%,%)6989586621679198036
in Clash.Explicit.Mealy.mealy8214565720323789256
@(MinimalExample.FifoState8214565720323870620
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
@domain6989586621679198032
@gated6989586621679198033
@synchronous6989586621679198034
@(MinimalExample.MealyFifoInput8214565720323870606
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
@(MinimalExample.MealyFifoOutput8214565720323870423
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
(MinimalExample.$fUndefinedFifoState8214565720323872362
@GHC.Types.Nat3674937295934325064
@writePortWidth6989586621679198027
@GHC.Types.Nat3674937295934325064
@readPortWidth6989586621679198028)
$dIP8286623314361920156
(GHC.Classes.$p2(%,%)8214565720323789242
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
domain6989586621679198032
gated6989586621679198033))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
domain6989586621679198032
synchronous6989586621679198034))
$d(%,%)6989586621679198036)
(MinimalExample.fifoTransition8214565720323870635
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028
@(MinimalExample.MealyFifoInput8214565720323870606
writePortWidth6989586621679198027
readPortWidth6989586621679198028)
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028
@(MinimalExample.MealyFifoOutput8214565720323870423
writePortWidth6989586621679198027
readPortWidth6989586621679198028))
(MinimalExample.FifoStateDetermineFifoDepth8214565720323870621
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028)
(MinimalExample.MealyFifoInput8214565720323870607
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028
eta14755801206503243777
(letrec
a18286623314361920162 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029
= Clash.Sized.Internal.BitVector.fromInteger#
@portWidth6989586621679198029
$dKnownNat26989586621679198039
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in letrec
wrM8286623314361920161 :: Clash.Signal.Internal.Signal8214565720323789181
domain6989586621679198032
(GHC.Maybe.Maybe3674937295934324788
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
wordsAddressSize6989586621679198030)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029)))
= MinimalExample.fifoMemWrite8214565720323870605
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028
mealyOutput8286623314361920155
in letrec
tup8286623314361920160 :: Clash.Signal.Internal.Signal8214565720323789181
domain6989586621679198032
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
wordsAddressSize6989586621679198030)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029))
= Data.Maybe.fromJust8214565720323787504
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
wordsAddressSize6989586621679198030)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029))
wrM8286623314361920161
in BlockRamHack.blockRam1#
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029)
@domain6989586621679198032
@gated6989586621679198033
@fifoSizeWords6989586621679198031
GHC.Stack.Types.EmptyCallStack8214565720323789328
(Clash.Sized.Internal.BitVector.$fUndefinedBitVector8214565720323858512
@portWidth6989586621679198029)
$dIP8286623314361920156
(Clash.Sized.Vector.replicate
@fifoSizeWords6989586621679198031
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029)
(Clash.Promoted.Nat.SNat8214565720323789144
@fifoSizeWords6989586621679198031
$dKnownNat46989586621679198041)
a18286623314361920162)
a18286623314361920162
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@wordsAddressSize6989586621679198030
$dKnownNat36989586621679198040
(MinimalExample.fifoMemReadAddr8214565720323870604
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028
mealyOutput8286623314361920155))
(Data.Maybe.isJust8214565720323787506
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
wordsAddressSize6989586621679198030)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029))
wrM8286623314361920161)
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@wordsAddressSize6989586621679198030
$dKnownNat36989586621679198040
(Clash.Signal.Bundle.$fBundle(,)38214565720323789331
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
wordsAddressSize6989586621679198030)
tup8286623314361920160))
(Clash.Signal.Bundle.$fBundle(,)28214565720323789332
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
wordsAddressSize6989586621679198030)
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
portWidth6989586621679198029)
tup8286623314361920160)))
in MinimalExample.fifoOutput8214565720323870603
@writePortWidth6989586621679198027
@readPortWidth6989586621679198028
mealyOutput8286623314361920155)
@128
@24
@160
@19
@172800
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@Clash.Signal.Internal.Asynchronous8214565720323789179
$d(%,%)4037
128)
$d(%,%)4039
24)
$d(%,%)4041
160)
$d(%,%)4043
(GHC.Natural.plusNatural 1 18))
$d(%,%)4045
172800)
$d(%,%)4047
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@160
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
160
160))))
$d(%,%)4049
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))))))
$d(%,%)4051
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@172800
@172800
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
172800
172800))))
$d(%,%)4053
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Bool3674937295934324744
@GHC.Types.Bool3674937295934324744
@GHC.Types.True3891110078048108589
@GHC.Types.True3891110078048108589
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Bool3674937295934324744
GHC.Types.Bool3674937295934324744
GHC.Types.True3891110078048108589
GHC.Types.True3891110078048108589))))
$d(%,%)4055
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Bool3674937295934324744
@GHC.Types.Bool3674937295934324744
@GHC.Types.True3891110078048108589
@GHC.Types.True3891110078048108589
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Bool3674937295934324744
GHC.Types.Bool3674937295934324744
GHC.Types.True3891110078048108589
GHC.Types.True3891110078048108589)))
Result:
λ(eta14755801206503243777 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.FifoInput8214565720323870615
GHC.Types.Nat3674937295934325064
128
24)) ->
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@172800
@(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5)))
0)))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@172800
@172800
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
172800
172800))) of
_ ->
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@19
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5)))
0)))))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))))) of
_ ->
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5)))
0))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@160
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
160
160))) of
_ ->
letrec
mealyOutput8286623314361920155 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
= letrec
$dIP8286623314361920156 :: GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172)
= GHC.Classes.$p1(%,%)8214565720323789240
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055
in Clash.Explicit.Mealy.mealy8214565720323789256
@(MinimalExample.FifoState8214565720323870620
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
128
24)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@Clash.Signal.Internal.Asynchronous8214565720323789179
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
(MinimalExample.$fUndefinedFifoState8214565720323872362
@GHC.Types.Nat3674937295934325064
@128
@GHC.Types.Nat3674937295934325064
@24)
$dIP8286623314361920156
(GHC.Classes.$p2(%,%)8214565720323789242
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055)
(MinimalExample.fifoTransition8214565720323870635
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@128
@24
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24))
(MinimalExample.FifoStateDetermineFifoDepth8214565720323870621
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24)
(MinimalExample.MealyFifoInput8214565720323870607
@128
@24
eta14755801206503243777
(letrec
a18286623314361920162 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160
= Clash.Sized.Internal.BitVector.fromInteger#
@160
160
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in letrec
wrM8286623314361920161 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Maybe.Maybe3674937295934324788
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)))
= MinimalExample.fifoMemWrite8214565720323870605
@128
@24
mealyOutput8286623314361920155
in letrec
tup8286623314361920160 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
= Data.Maybe.fromJust8214565720323787504
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161
in BlockRamHack.blockRam1#
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@172800
GHC.Stack.Types.EmptyCallStack8214565720323789328
(Clash.Sized.Internal.BitVector.$fUndefinedBitVector8214565720323858512
@160)
$dIP8286623314361920156
(Clash.Sized.Vector.replicate @172800
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
(Clash.Promoted.Nat.SNat8214565720323789144
@172800
172800)
a18286623314361920162)
a18286623314361920162
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(MinimalExample.fifoMemReadAddr8214565720323870604
@128
@24
mealyOutput8286623314361920155))
(Data.Maybe.isJust8214565720323787506
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161)
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(Clash.Signal.Bundle.$fBundle(,)38214565720323789331
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
tup8286623314361920160))
(Clash.Signal.Bundle.$fBundle(,)28214565720323789332
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
tup8286623314361920160)))
in MinimalExample.fifoOutput8214565720323870603
@128
@24
mealyOutput8286623314361920155
caseCon
Changes when applying rewrite to:
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@172800
@(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5)))
0)))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@172800
@172800
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
172800
172800))) of
_ ->
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@19
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5)))
0)))))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))))) of
_ ->
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5)))
0))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@160
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
160
160))) of
_ ->
letrec
mealyOutput8286623314361920155 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
= letrec
$dIP8286623314361920156 :: GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172)
= GHC.Classes.$p1(%,%)8214565720323789240
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055
in Clash.Explicit.Mealy.mealy8214565720323789256
@(MinimalExample.FifoState8214565720323870620
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
128
24)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@Clash.Signal.Internal.Asynchronous8214565720323789179
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
(MinimalExample.$fUndefinedFifoState8214565720323872362
@GHC.Types.Nat3674937295934325064
@128
@GHC.Types.Nat3674937295934325064
@24)
$dIP8286623314361920156
(GHC.Classes.$p2(%,%)8214565720323789242
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055)
(MinimalExample.fifoTransition8214565720323870635
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@128
@24
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24))
(MinimalExample.FifoStateDetermineFifoDepth8214565720323870621
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24)
(MinimalExample.MealyFifoInput8214565720323870607
@128
@24
eta14755801206503243777
(letrec
a18286623314361920162 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160
= Clash.Sized.Internal.BitVector.fromInteger#
@160
160
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in letrec
wrM8286623314361920161 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Maybe.Maybe3674937295934324788
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)))
= MinimalExample.fifoMemWrite8214565720323870605
@128
@24
mealyOutput8286623314361920155
in letrec
tup8286623314361920160 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
= Data.Maybe.fromJust8214565720323787504
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161
in BlockRamHack.blockRam1#
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@172800
GHC.Stack.Types.EmptyCallStack8214565720323789328
(Clash.Sized.Internal.BitVector.$fUndefinedBitVector8214565720323858512
@160)
$dIP8286623314361920156
(Clash.Sized.Vector.replicate @172800
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
(Clash.Promoted.Nat.SNat8214565720323789144
@172800
172800)
a18286623314361920162)
a18286623314361920162
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(MinimalExample.fifoMemReadAddr8214565720323870604
@128
@24
mealyOutput8286623314361920155))
(Data.Maybe.isJust8214565720323787506
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161)
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(Clash.Signal.Bundle.$fBundle(,)38214565720323789331
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
tup8286623314361920160))
(Clash.Signal.Bundle.$fBundle(,)28214565720323789332
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
tup8286623314361920160)))
in MinimalExample.fifoOutput8214565720323870603
@128
@24
mealyOutput8286623314361920155
Result:
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@19
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5)))
0)))))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))))) of
_ ->
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5)))
0))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@160
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
160
160))) of
_ ->
letrec
mealyOutput8286623314361920155 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
= letrec
$dIP8286623314361920156 :: GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172)
= GHC.Classes.$p1(%,%)8214565720323789240
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055
in Clash.Explicit.Mealy.mealy8214565720323789256
@(MinimalExample.FifoState8214565720323870620
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
128
24)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@Clash.Signal.Internal.Asynchronous8214565720323789179
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
(MinimalExample.$fUndefinedFifoState8214565720323872362
@GHC.Types.Nat3674937295934325064
@128
@GHC.Types.Nat3674937295934325064
@24)
$dIP8286623314361920156
(GHC.Classes.$p2(%,%)8214565720323789242
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055)
(MinimalExample.fifoTransition8214565720323870635
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@128
@24
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24))
(MinimalExample.FifoStateDetermineFifoDepth8214565720323870621
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24)
(MinimalExample.MealyFifoInput8214565720323870607
@128
@24
eta14755801206503243777
(letrec
a18286623314361920162 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160
= Clash.Sized.Internal.BitVector.fromInteger#
@160
160
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in letrec
wrM8286623314361920161 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Maybe.Maybe3674937295934324788
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)))
= MinimalExample.fifoMemWrite8214565720323870605
@128
@24
mealyOutput8286623314361920155
in letrec
tup8286623314361920160 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
= Data.Maybe.fromJust8214565720323787504
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161
in BlockRamHack.blockRam1#
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@172800
GHC.Stack.Types.EmptyCallStack8214565720323789328
(Clash.Sized.Internal.BitVector.$fUndefinedBitVector8214565720323858512
@160)
$dIP8286623314361920156
(Clash.Sized.Vector.replicate @172800
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
(Clash.Promoted.Nat.SNat8214565720323789144
@172800
172800)
a18286623314361920162)
a18286623314361920162
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(MinimalExample.fifoMemReadAddr8214565720323870604
@128
@24
mealyOutput8286623314361920155))
(Data.Maybe.isJust8214565720323787506
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161)
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(Clash.Signal.Bundle.$fBundle(,)38214565720323789331
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
tup8286623314361920160))
(Clash.Signal.Bundle.$fBundle(,)28214565720323789332
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
tup8286623314361920160)))
in MinimalExample.fifoOutput8214565720323870603
@128
@24
mealyOutput8286623314361920155
elemExistentials
Changes when applying rewrite to:
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@19
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.*3674937295934325070
2700
(GHC.TypeNats.*3674937295934325070 5 2048))
(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5)))
0)))))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
@(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))
(GHC.TypeNats.+3674937295934325068
1
(GHC.TypeLits.Extra.CLog8214565720323785324
2
172800))))) of
_ ->
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5)))
0))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@160
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
160
160))) of
_ ->
letrec
mealyOutput8286623314361920155 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
= letrec
$dIP8286623314361920156 :: GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172)
= GHC.Classes.$p1(%,%)8214565720323789240
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055
in Clash.Explicit.Mealy.mealy8214565720323789256
@(MinimalExample.FifoState8214565720323870620
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
128
24)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@Clash.Signal.Internal.Asynchronous8214565720323789179
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
(MinimalExample.$fUndefinedFifoState8214565720323872362
@GHC.Types.Nat3674937295934325064
@128
@GHC.Types.Nat3674937295934325064
@24)
$dIP8286623314361920156
(GHC.Classes.$p2(%,%)8214565720323789242
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055)
(MinimalExample.fifoTransition8214565720323870635
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@128
@24
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24))
(MinimalExample.FifoStateDetermineFifoDepth8214565720323870621
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24)
(MinimalExample.MealyFifoInput8214565720323870607
@128
@24
eta14755801206503243777
(letrec
a18286623314361920162 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160
= Clash.Sized.Internal.BitVector.fromInteger#
@160
160
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in letrec
wrM8286623314361920161 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Maybe.Maybe3674937295934324788
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)))
= MinimalExample.fifoMemWrite8214565720323870605
@128
@24
mealyOutput8286623314361920155
in letrec
tup8286623314361920160 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
= Data.Maybe.fromJust8214565720323787504
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161
in BlockRamHack.blockRam1#
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@172800
GHC.Stack.Types.EmptyCallStack8214565720323789328
(Clash.Sized.Internal.BitVector.$fUndefinedBitVector8214565720323858512
@160)
$dIP8286623314361920156
(Clash.Sized.Vector.replicate @172800
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
(Clash.Promoted.Nat.SNat8214565720323789144
@172800
172800)
a18286623314361920162)
a18286623314361920162
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(MinimalExample.fifoMemReadAddr8214565720323870604
@128
@24
mealyOutput8286623314361920155))
(Data.Maybe.isJust8214565720323787506
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161)
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(Clash.Signal.Bundle.$fBundle(,)38214565720323789331
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
tup8286623314361920160))
(Clash.Signal.Bundle.$fBundle(,)28214565720323789332
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
tup8286623314361920160)))
in MinimalExample.fifoOutput8214565720323870603
@128
@24
mealyOutput8286623314361920155
Result:
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5)))
0))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@160
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
160
160))) of
_ ->
letrec
mealyOutput8286623314361920155 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
= letrec
$dIP8286623314361920156 :: GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172)
= GHC.Classes.$p1(%,%)8214565720323789240
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055
in Clash.Explicit.Mealy.mealy8214565720323789256
@(MinimalExample.FifoState8214565720323870620
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
128
24)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@Clash.Signal.Internal.Asynchronous8214565720323789179
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
(MinimalExample.$fUndefinedFifoState8214565720323872362
@GHC.Types.Nat3674937295934325064
@128
@GHC.Types.Nat3674937295934325064
@24)
$dIP8286623314361920156
(GHC.Classes.$p2(%,%)8214565720323789242
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055)
(MinimalExample.fifoTransition8214565720323870635
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@128
@24
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24))
(MinimalExample.FifoStateDetermineFifoDepth8214565720323870621
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24)
(MinimalExample.MealyFifoInput8214565720323870607
@128
@24
eta14755801206503243777
(letrec
a18286623314361920162 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160
= Clash.Sized.Internal.BitVector.fromInteger#
@160
160
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in letrec
wrM8286623314361920161 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Maybe.Maybe3674937295934324788
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)))
= MinimalExample.fifoMemWrite8214565720323870605
@128
@24
mealyOutput8286623314361920155
in letrec
tup8286623314361920160 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
= Data.Maybe.fromJust8214565720323787504
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161
in BlockRamHack.blockRam1#
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@172800
GHC.Stack.Types.EmptyCallStack8214565720323789328
(Clash.Sized.Internal.BitVector.$fUndefinedBitVector8214565720323858512
@160)
$dIP8286623314361920156
(Clash.Sized.Vector.replicate @172800
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
(Clash.Promoted.Nat.SNat8214565720323789144
@172800
172800)
a18286623314361920162)
a18286623314361920162
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(MinimalExample.fifoMemReadAddr8214565720323870604
@128
@24
mealyOutput8286623314361920155))
(Data.Maybe.isJust8214565720323787506
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161)
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(Clash.Signal.Bundle.$fBundle(,)38214565720323789331
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
tup8286623314361920160))
(Clash.Signal.Bundle.$fBundle(,)28214565720323789332
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
tup8286623314361920160)))
in MinimalExample.fifoOutput8214565720323870603
@128
@24
mealyOutput8286623314361920155
caseCon
Changes when applying rewrite to:
case GHC.Types.heq_sel3458764513820541480
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@(MinimalExample.FactorGTRaw8214565720323870632
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5))
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.CmpNat3674937295934325080
(GHC.TypeNats.Mod3674937295934325084
(GHC.TypeNats.*3674937295934325070 5 2048)
(GHC.TypeNats.*3674937295934325070
5
(GHC.TypeNats.Div3674937295934325082
(GHC.TypeNats.+3674937295934325068
(GHC.TypeLits.Extra.Max8214565720323785295
128
24)
(GHC.TypeNats.-3674937295934325076 5 1))
5)))
0))
(GHC.Types.Eq#3891110078048108601
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@160
@160
(_CO_
@(GHC.Prim.~#3674937295934324842
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
160
160))) of
_ ->
letrec
mealyOutput8286623314361920155 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
= letrec
$dIP8286623314361920156 :: GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172)
= GHC.Classes.$p1(%,%)8214565720323789240
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055
in Clash.Explicit.Mealy.mealy8214565720323789256
@(MinimalExample.FifoState8214565720323870620
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
128
24)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@Clash.Signal.Internal.Asynchronous8214565720323789179
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
(MinimalExample.$fUndefinedFifoState8214565720323872362
@GHC.Types.Nat3674937295934325064
@128
@GHC.Types.Nat3674937295934325064
@24)
$dIP8286623314361920156
(GHC.Classes.$p2(%,%)8214565720323789242
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055)
(MinimalExample.fifoTransition8214565720323870635
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@128
@24
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24))
(MinimalExample.FifoStateDetermineFifoDepth8214565720323870621
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24)
(MinimalExample.MealyFifoInput8214565720323870607
@128
@24
eta14755801206503243777
(letrec
a18286623314361920162 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160
= Clash.Sized.Internal.BitVector.fromInteger#
@160
160
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in letrec
wrM8286623314361920161 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Maybe.Maybe3674937295934324788
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)))
= MinimalExample.fifoMemWrite8214565720323870605
@128
@24
mealyOutput8286623314361920155
in letrec
tup8286623314361920160 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
= Data.Maybe.fromJust8214565720323787504
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161
in BlockRamHack.blockRam1#
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@172800
GHC.Stack.Types.EmptyCallStack8214565720323789328
(Clash.Sized.Internal.BitVector.$fUndefinedBitVector8214565720323858512
@160)
$dIP8286623314361920156
(Clash.Sized.Vector.replicate @172800
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
(Clash.Promoted.Nat.SNat8214565720323789144
@172800
172800)
a18286623314361920162)
a18286623314361920162
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(MinimalExample.fifoMemReadAddr8214565720323870604
@128
@24
mealyOutput8286623314361920155))
(Data.Maybe.isJust8214565720323787506
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161)
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(Clash.Signal.Bundle.$fBundle(,)38214565720323789331
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
tup8286623314361920160))
(Clash.Signal.Bundle.$fBundle(,)28214565720323789332
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
tup8286623314361920160)))
in MinimalExample.fifoOutput8214565720323870603
@128
@24
mealyOutput8286623314361920155
Result:
letrec
mealyOutput8286623314361920155 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
= letrec
$dIP8286623314361920156 :: GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172)
= GHC.Classes.$p1(%,%)8214565720323789240
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055
in Clash.Explicit.Mealy.mealy8214565720323789256
@(MinimalExample.FifoState8214565720323870620
GHC.Types.Nat3674937295934325064
GHC.Types.Nat3674937295934325064
128
24)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@Clash.Signal.Internal.Asynchronous8214565720323789179
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24)
(MinimalExample.$fUndefinedFifoState8214565720323872362
@GHC.Types.Nat3674937295934325064
@128
@GHC.Types.Nat3674937295934325064
@24)
$dIP8286623314361920156
(GHC.Classes.$p2(%,%)8214565720323789242
@(GHC.Classes.IP3602879701896396848
"clk"
(Clash.Signal.Internal.Clock8214565720323789169
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Source8214565720323789172))
@(GHC.Classes.IP3602879701896396848
"rst"
(Clash.Signal.Internal.Reset8214565720323789177
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
Clash.Signal.Internal.Asynchronous8214565720323789179))
$d(%,%)4055)
(MinimalExample.fifoTransition8214565720323870635
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24
@(MinimalExample.MealyFifoInput8214565720323870606
128
24)
@128
@24
@(MinimalExample.MealyFifoOutput8214565720323870423
128
24))
(MinimalExample.FifoStateDetermineFifoDepth8214565720323870621
@GHC.Types.Nat3674937295934325064
@GHC.Types.Nat3674937295934325064
@128
@24)
(MinimalExample.MealyFifoInput8214565720323870607
@128
@24
eta14755801206503243777
(letrec
a18286623314361920162 :: Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160
= Clash.Sized.Internal.BitVector.fromInteger#
@160
160
Clash.Sized.Internal.BitVector.toInteger#228214565720323845108
0
in letrec
wrM8286623314361920161 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Maybe.Maybe3674937295934324788
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)))
= MinimalExample.fifoMemWrite8214565720323870605
@128
@24
mealyOutput8286623314361920155
in letrec
tup8286623314361920160 :: Clash.Signal.Internal.Signal8214565720323789181
(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
= Data.Maybe.fromJust8214565720323787504
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161
in BlockRamHack.blockRam1#
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Signal.Internal.Dom8214565720323789174
"system"
10000)
@Clash.Signal.Internal.Source8214565720323789172
@172800
GHC.Stack.Types.EmptyCallStack8214565720323789328
(Clash.Sized.Internal.BitVector.$fUndefinedBitVector8214565720323858512
@160)
$dIP8286623314361920156
(Clash.Sized.Vector.replicate @172800
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
(Clash.Promoted.Nat.SNat8214565720323789144
@172800
172800)
a18286623314361920162)
a18286623314361920162
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(MinimalExample.fifoMemReadAddr8214565720323870604
@128
@24
mealyOutput8286623314361920155))
(Data.Maybe.isJust8214565720323787506
@(GHC.Tuple.(,)3746994889972252676
(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160))
wrM8286623314361920161)
(Clash.Sized.Internal.Unsigned.$fEnumUnsigned_$cfromEnum8214565720323789375
@19
(GHC.Natural.plusNatural 1 18)
(Clash.Signal.Bundle.$fBundle(,)38214565720323789331
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
tup8286623314361920160))
(Clash.Signal.Bundle.$fBundle(,)28214565720323789332
@(Clash.Sized.Internal.Unsigned.Unsigned8214565720323789206
19)
@(Clash.Sized.Internal.BitVector.BitVector8214565720323789203
160)
tup8286623314361920160)))
in MinimalExample.fifoOutput8214565720323870603
@128
@24
mealyOutput8286623314361920155
<no location info>: error:
Other error:
user interrupt
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE StandaloneDeriving #-}
-- Debug
-- clash --vhdl MinimalExample.hs -fclash-debug DebugName -fconstraint-solver-iterations=100
module MinimalExample where
import Clash.Prelude
import BlockRamHack
import Data.Maybe
import GHC.Generics (Generic)
import Control.DeepSeq
type FactorGT a b = FactorGTRaw a b (CmpNat (Mod b a) 0)
type family FactorGTRaw a b v where
FactorGTRaw a b 'EQ = a
FactorGTRaw a b _ = FactorGT (a+1) b
-- Calculate efficient blockram usage
type FPGABlockRams = 2700
type FPGABlockRamBasePortWidth = 5
type FPGABlockRamBaseMultiplier = 2048
type FPGABlockRamSingleElement = FPGABlockRamBasePortWidth * FPGABlockRamBaseMultiplier
type FPGABlockRamBits = FPGABlockRams * FPGABlockRamSingleElement
type FifoBitsAddressSize = CLog 2 FPGABlockRamBits
type FifoBlockRamPortWidth writePortWidth readPortWidth
= FactorGT
( FPGABlockRamBasePortWidth
* DivRU (Max writePortWidth readPortWidth)
FPGABlockRamBasePortWidth
)
FPGABlockRamSingleElement
type FifoBlockRamPortWidthAddressSize writePortWidth readPortWidth
= 1 + CLog 2 (FifoBlockRamPortWidth writePortWidth readPortWidth)
type FifoBlockRamWords writePortWidth readPortWidth
= Div
FPGABlockRamBits
(FifoBlockRamPortWidth writePortWidth readPortWidth)
type FifoWordsAddressSize writePortWidth readPortWidth
= 1 + CLog 2 (FifoBlockRamWords writePortWidth readPortWidth)
data FifoState writePortWidth readPortWidth
= FifoStateDetermineFifoDepth
deriving (Undefined, Show, Generic, NFData)
data FifoInput writePortWidth readPortWidth
= FifoInput
{ fifoPop :: Bool
, fifoWriteRequest :: Maybe (BitVector writePortWidth)
, requiredFifoSize :: Unsigned FifoBitsAddressSize
} deriving (Undefined, Show, Generic, NFData)
data FifoOutput writePortWidth readPortWidth
= FifoOutput
{ fifoData :: Maybe (BitVector readPortWidth)
, fifoReadCapacity :: Unsigned FifoBitsAddressSize
, fifoWriteCapacity :: Unsigned FifoBitsAddressSize
} deriving (Undefined, Show, Generic, NFData)
data MealyFifoInput writePortWidth readPortWidth
= MealyFifoInput
{ fifoInput :: FifoInput writePortWidth readPortWidth
, memData :: BitVector (FifoBlockRamPortWidth writePortWidth readPortWidth)
} deriving (Undefined, Generic, NFData)
deriving instance
( KnownNat writePortWidth
, KnownNat (FifoBlockRamPortWidth writePortWidth readPortWidth)
) => Show (MealyFifoInput writePortWidth readPortWidth)
data MealyFifoOutput writePortWidth readPortWidth
= MealyFifoOutput
{ fifoOutput :: FifoOutput writePortWidth readPortWidth
, fifoMemReadAddr :: Unsigned (FifoWordsAddressSize writePortWidth readPortWidth)
, fifoMemWrite :: Maybe
( Unsigned (FifoWordsAddressSize writePortWidth readPortWidth)
, BitVector (FifoBlockRamPortWidth writePortWidth readPortWidth)
)
} deriving (Undefined, Generic, NFData)
deriving instance
( KnownNat readPortWidth
, KnownNat (FifoBlockRamPortWidth writePortWidth readPortWidth)
) => Show (MealyFifoOutput writePortWidth readPortWidth)
fifo
:: forall (writePortWidth :: Nat)
(readPortWidth :: Nat)
(portWidth :: Nat)
(wordsAddressSize :: Nat)
(fifoSizeWords :: Nat)
(domain :: Domain)
(gated :: ClockKind)
(synchronous :: ResetKind)
. ( HiddenClockReset domain gated synchronous
, KnownNat writePortWidth
, KnownNat readPortWidth
, KnownNat portWidth
, KnownNat wordsAddressSize
, KnownNat fifoSizeWords
, portWidth ~ FifoBlockRamPortWidth writePortWidth readPortWidth
, wordsAddressSize ~ FifoWordsAddressSize writePortWidth readPortWidth
, fifoSizeWords ~ FifoBlockRamWords writePortWidth readPortWidth
, 1 <= portWidth
, 1 <= fifoSizeWords
)
=> Signal domain (FifoInput writePortWidth readPortWidth)
-> Signal domain (FifoOutput writePortWidth readPortWidth)
fifo input = fifoOutput <$> mealyOutput
where
mem :: HiddenClock domain gated
=> Signal domain (Unsigned wordsAddressSize)
-> Signal domain (Maybe (Unsigned wordsAddressSize, BitVector portWidth))
-> Signal domain (BitVector portWidth)
mem = blockRam1 (SNat :: SNat fifoSizeWords) 0
initialState :: FifoState writePortWidth readPortWidth
initialState = FifoStateDetermineFifoDepth
mealyInput = MealyFifoInput <$> input <*> memData
mealyOutput = mealy fifoTransition initialState mealyInput
memReadAddr = fifoMemReadAddr <$> mealyOutput
memWrite = fifoMemWrite <$> mealyOutput
memData = mem memReadAddr memWrite
fifoTransition FifoStateDetermineFifoDepth input = (FifoStateDetermineFifoDepth, output)
where
output = MealyFifoOutput (FifoOutput Nothing 0 0) 0 Nothing
{-# NOINLINE topEntity #-}
{-# ANN topEntity
(Synthesize
{ t_name = "MinimalExample"
, t_inputs = [ PortName "clk"
, PortName "rst"
, PortProduct ""
[ PortName "pop"
, PortName "writeRequest"
, PortName "writeData" ] ]
, t_output = PortProduct ""
[ PortName "dataAvailable"
, PortName "data"
, PortName "readCapacity"
, PortName "writeCapacity" ]
}) #-}
topEntity
:: Clock System 'Source
-> Reset System 'Asynchronous
-> Signal System Bool
-> Signal System Bool
-> Signal System (BitVector 128)
-> Signal System (Bool, BitVector 24, Unsigned 32, Unsigned 32)
topEntity clk rst pop writeRequest writeData = bundle (dataValid, readData, readCapacity, writeCapacity)
where
writeDataToMaybe req d = if req then Just d else Nothing
writeDataM = writeDataToMaybe <$> writeRequest <*> writeData
fifoInput :: Signal System (FifoInput 128 24)
fifoInput = FifoInput <$> pop <*> writeDataM <*> pure 100
fifoOutput = exposeClockReset fifo clk rst fifoInput
dataValid = isJust <$> fifoData <$> fifoOutput
readData = maybe 0 id <$> fifoData <$> fifoOutput
readCapacity = resize <$> fifoReadCapacity <$> fifoOutput
writeCapacity = resize <$> fifoWriteCapacity <$> fifoOutput
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment