カンザス溶岩紙からコードを入手しましたが、それは機能します。
counter :: Signal CLK Bool -> Signal CLK Bool -> Signal CLK Int
counter restart inc = loop
where
reg = register 0 loop
reg' = mux restart (0, reg)
loop = mux inc (reg' + 1, reg')
今、私は別の機能で同じことをしようとしましたが、これはうまくいきません。
shiftReg_d2f :: Signal CLK Bool -> Signal CLK Bool -> [Signal CLK Bool] -> [Signal CLK Bool] -> [Signal CLK Bool]
shiftReg_d2f load shift wordIn fieldIn = fieldOut
where
fieldOut = register 0 fieldOut''
shiftField = drop (length wordIn) fieldOut ++ wordIn
fieldOut' = muxl shift fieldOut shiftField
fieldOut'' = muxl load fieldOut' fieldIn
現在、次のエラーが発生しています。
[Signal i0 Bool]
予想されるタイプと実際のタイプを一致させることができませんでしたSignal clk0 a0
(3x)Signal i0 Bool
予想されるタイプと実際のタイプを一致させることができませんでした[Signal i0 Bool]
Signal i Bool -> Signal i Bool -> Signal i Bool
予想されるタイプと実際のタイプを一致させることができませんでしたSignal i Bool
私は何を間違っていますか?
助けてくれてありがとう