Modules(MBR) - GnicoJP/KAMPPHER GitHub Wiki

Core Components

MBRProcessorモジュール

状態:完了
BitBucketリンク(Mercurial):リンク切れ
MBRからパーティション構成を読み取るモジュール.実は大したことない.
それぞれのパーティションの開始アドレス(セクタサイズ単位)を出力する.

Signals

  • input io.Buffer [7:0] : MISOのSpiBuffer.io.Buffer
  • input io.IsReading : SpiMasterReceiver.io.IsDataReading
  • input io.MasterCommandArgument : SpiSlaveReceiver.io.MasterCommandArgument
  • input io.DataBlocksCount : SpiController.DataBlockSize
  • output io.Partition1Start [31:0] : 1つめのパーティションの開始アドレス
  • output io.Partition2Start [31:0] : 2つめのパーティションの開始アドレス
  • output io.Partition3Start [31:0] : 3つめのパーティションの開始アドレス
  • output io.Partition4Start [31:0] : 4つめのパーティションの開始アドレス

AddressConverterモジュール

状態:完了
BitBucketリンク(Mercurial):リンク切れ
MBRProcessorの出力するアドレスを,SPIでやり取りするアドレス単位に変換する回路.SDv2ならば,単純な組み合わせ回路.SDHC以上ならば掛け算回路(orシフタで十分?)が必要.

Signals

  • input io.OutputPartition1Start [31:0] : 1つめのパーティションの開始アドレス(MBRProcessor.io.Partition1Start)
  • input io.OutputPartition2Start [31:0] : 2つめのパーティションの開始アドレス(MBRProcessor.io.Partition2Start)
  • input io.OutputPartition3Start [31:0] : 3つめのパーティションの開始アドレス(MBRProcessor.io.Partition3Start)
  • input io.OutputPartition4Start [31:0] : 4つめのパーティションの開始アドレス(MBRProcessor.io.Partition4Start)
  • output io.OutputPartition1Start [31:0] : 1つめのパーティションの開始アドレス
  • output io.OutputPartition2Start [31:0] : 2つめのパーティションの開始アドレス
  • output io.OutputPartition3Start [31:0] : 3つめのパーティションの開始アドレス
  • output io.OutputPartition4Start [31:0] : 4つめのパーティションの開始アドレス
  • // input io.IsBlockAddressing : ブロックアドレッシングか?(SDHC以上か?)
  • // input io.BlockSize : ブロックサイズは幾らか?(IsBlockAddressingがtrueならば使用する.)

WritingAddressVerifierモジュール

状態:完了
BitBucketリンク(Mercurial):リンク切れ
WRITEコマンドが流れてきたときに,そのコマンドを通して良いか判断するモジュール.

Signals

  • input io.MasterCommand [5:0] : SpiSlaveReceiver.io.Command
  • input io.MasterWritingAddress [31:0] : SpiSlaveReceiver.io.WritingAddress
  • input io.MasterCommandReadSuccess : SpiSlaveReceiver.io.CommandReadFinished
  • input io.PartitionWriteEnables [4:0] : パーティションが書き込み可能かどうかを入力します.[0]=MBR, [1]=Partition1, [2]=Partition2, [3]=Partition3, [4]=Partition4
  • input io.Partition1Start [31:0] : 1つめのパーティションの開始アドレス(普通はAddressConverter.io.OutputPartition1Start)
  • input io.Partition2Start [31:0] : 2つめのパーティションの開始アドレス(普通はAddressConverter.io.OutputPartition2Start)
  • input io.Partition3Start [31:0] : 3つめのパーティションの開始アドレス(普通はAddressConverter.io.OutputPartition3Start)
  • input io.Partition4Start [31:0] : 4つめのパーティションの開始アドレス(普通はAddressConverter.io.OutputPartition4Start)
  • output io.IsOk : 通して良いか?

Debugging Components

MBRProcessorAvalonDebuggerモジュール

状態:完了
MBRProcessorの出力する値を出力する.
BitBucketリンク(Mercurial):リンク切れ

  • input io.Partition1Start [31:0] : 1つめのパーティションの開始アドレス
  • input io.Partition2Start [31:0] : 2つめのパーティションの開始アドレス
  • input io.Partition3Start [31:0] : 3つめのパーティションの開始アドレス
  • input io.Partition4Start [31:0] : 4つめのパーティションの開始アドレス
  • inout io.Avalon : Avalon-MMのシグナル.

アドレス空間は1bit. <- MSB LSB ->
base[0] = {Parition2Start, Partition1Start}
base[1] = {Parition4Start, Partition3Start}

COPYRIGHT (C) Go Suzuki 2019-2020