会社案内 (近況 2008/02)

翌月

2008/02/28 PCIe IP コア開発 (川井)

先駆者内 藤さんの日記を参考に、CRC 生成回路を作った。いきなりやらずに、C で エミュレータ書いてから VHDL を書いた。しかも今後のことを考えて、 divisor や入力データ幅、CRC の幅は generic parameter で指定できる設計 にした。オレ超大人。

内藤さんに「レーン幅を増やすと多分タイミング的に一番キツくなるのは CRC 生成回路だろう」と助言を頂いていたので、まずここから作り始めたというわ けだ。が、16-bit 入力 (16bit@125MHz PIPE interface つまり x1) なら楽勝 だった。レーン幅を増やすとキツくなるのかも知れないが、それはあとで考え よう。

そういえば VHDL の variable 宣言というものを初めて使った。なるほど variable はこーいう目的のためにあるのか。CRC 回路を variable 使わずに 書くのはかなり厳しかろう。

2008/02/27 PCIe IP コア開発 (川井)

今さらながら、Quartus II の Signal Tap II という機能を使ってみた。こい つの機能をいい加減に説明すると、JTAG 経由で FPGA 内部の任意の信号を観 測できるロジアナのようなもの。追加機材なしに、USB Blaster 経由の接続だ けで使える。複数の信号線をグループ化して、その値に対してニーモニックを 割り振るということもできる。.stp ファイル内に

  <mnemonics>
    <table name="Kcode" width="9">
      <symbol name="COM" value="110111100"/>
      <symbol name="STP" value="111111011"/>
      <symbol name="SDP" value="101011100"/>
      <symbol name="END" value="111111101"/>
      <symbol name="EDB" value="111111110"/>
      <symbol name="PAD" value="111110111"/>
      <symbol name="SKP" value="100011100"/>
      <symbol name="FTS" value="100111100"/>
      <symbol name="IDL" value="101111100"/>
    </table>
    <table name="LTSSM" width="5">
      <symbol name="dtct.quiet"      value="00000"/>
      <symbol name="dtct.active"     value="00001"/>
      <symbol name="poll.active"     value="00010"/>
      <symbol name="poll.compliance" value="00011"/>
      <symbol name="poll.confwait"   value="00100"/>
      <symbol name="poll.confacc"    value="00101"/>
      <symbol name="poll.speed"      value="00110"/>
      <symbol name="conf.lkstart"    value="00111"/>
      <symbol name="conf.lkacc"      value="01000"/>
      <symbol name="conf.lnwait"     value="01001"/>
      <symbol name="conf.lnacc"      value="01010"/>
      <symbol name="conf.complete"   value="01011"/>
      <symbol name="conf.idle"       value="01100"/>
      <symbol name="conf.done"       value="01101"/>
      <symbol name="L0"              value="01110"/>
      <symbol name="rcvr"            value="01111"/>
      <symbol name="invalid"         value="10000"/>
    </table>
とか記述しておけば、気分はほとんど PCIe アナライザ。Altera の回し者と いうわけではないが、衝撃的に便利である。LED の明滅だけで回路の内部状態 をみてた今までの日々を返せっ!

2008/02/25 ことはじめ (川井)

つづくかなぁ。たぶん僕ばっかり書くんだろうなぁ。

なぜ今日から書きはじめるかというと、「PCI Express IP コアの自作」とい う無謀な計画の検討を本日開始したから、、、という文章を書いているのは実 はすでに自作コアが実用レベルに達した夏の陽射しがまぶしい 8 月のとある 日なので、振り返ってみると、この日は記念すべき日だったのだ。


翌月
近況トップ