2018年03月29日

高速通信の検討

FPGA で、高速通信をしてみたいと書いた。それについてのメモ:

世の中のインターフェイスは、みな数Gbps になってしまった。SATA が 6Gbps, USB が 5Gbps , イーサネットは 1Gbps だが、同じ RJ45 のタイプで、2.5/5 Gbps もある。そんなものは、(安物の FPGA) では 扱えない。たとえ扱えたとしても、電子工作では電気特性的に無理だろう。

映像系の一方向通信では、HDMI 2.0 が 18Gbps ! カメラインターフェイスの CSI-2 とかも G2a - 2.5 Gbps/G2b - 2.9 Gbps 。

どれもこれも、電子工作では手も足も出ない感じ。しかも普及しているから安価に使えるのである。電子工作の出番はない。

では、電子工作で扱えるレベルは、どれぐらいなのだろうか?続きを読む
posted by すz at 21:02| Comment(0) | TrackBack(0) | MachXO2

2018年03月25日

ΣΔDAC (2) オーバーサンプリング

ΣΔDAC (1) の続き

ΣΔDAC はできたとして、普通のサウンドDAC として使うには、オーバーサンプリングが必須である。それをするためには、デジタルフィルタ(LPF) が必要だそうだ。もとのサンプリングデータに 0 のデータを挿入したものに LPF をかけると、綺麗に補間されたデータが出来るとのこと。デジタルフィルタには FIR フィルタというものを使う。この FIR フィルタを作ってみよう。

おさらい

    14.314 MHz から作った 45.8 MHz を 16 x 65 で分周して 44.056 kHz を作る。オーバーサンプリングは 65 で 16 までのタップ数の FIR フィルタを使う。

    もし NTSC 画面表示と同時に使うのであれば、44.056 kHZ の 15/16 にサンプリング周波数を下げる。
    (外部 PLL が使えれば、44.056 kHZ も可能になる。クロックが変わるだけで、コードは変えない。 )

    NTSC 画面表示は、14.314 MHz の 3倍クロックで検討する。
続きを読む
posted by すz at 16:55| Comment(0) | TrackBack(0) | MachXO2

ΣΔDAC (1)

次は、サウンド用 ΣΔDAC を設計してみよう。

ハードウェアのおさらい
icedip-dac.png

4bit DAC で スピーカ用 BTL アンプに接続。負帰還でゲイン2倍。(片側1倍)
テスト用なのに音が大きすぎるかも、そこは RI(R61) か RF(R60) で調整する。RI を N 倍にすれば、それだけ小さくなる。

とりあえずスピーカーに直結するつもりだが、LC LPF を入れたほうが良いだろう。でもそれは、音が出るというレベルをクリアした後で考える。

4 bit フルに使うつもりはない。1 bit もしくは 3 bit を予定。
続きを読む
posted by すz at 15:37| Comment(0) | TrackBack(0) | MachXO2

2018年03月22日

NTSC エンコーダー(1)

さて、NTSC エンコーダーを設計してみよう。

ハードウェアのおさらい
icedip-vdacpng.png

4bit DAC で 1Vp-p DC出力。0 = -40IRE , 4 = 0 0IRE, 14 = 100IRE (のつもり)。
輝度信号は、4 - 11 の 8 レベルしか使わない。U,V 信号は、-4 〜 +4 で 合成したときに 15 になる場合が出てくる。続きを読む
posted by すz at 22:44| Comment(0) | TrackBack(0) | MachXO2

2018年03月20日

iCEDIP 基板

iCEDIP-02ct.png
iCEDIP2-elec.jpg
 ・icedip-02-out.zip(発注ファイル)
 ・icedip-02.zip (EAGLE ファイル)
iCEDIP 基板の2つめを発注。iCEDIP24 基板の周囲に実験用回路と電源を配置した。大きさは 63mm x 37mm 。本当は、モジュールだけ作るつもりだったのだが、iCEDIP24基板 も付けて配線してしまった。電源は、MINI-360 を使う。モニタが 12V なので 12V が使えるものを選択。

これは、基本テスト用で モニタに画像が出力できて、ちょっと音を鳴らせたら良いなと考えている。その先は考えていないが、なにか入力する手段が必要だろう。一応ピンは、左上の 6 本と右中央の 2本が空いている。また、SPI 通信ができるホスト -- SBC を使って開発すれば、お手軽にテストできそう。

異種面付けのように見えるが、ばらせるようにしただけで、本来一枚の基板。寄せ集めなので、取り付け穴は付けられなかった。スリットを使って、ずれないようにしたうえで、ねじ穴を空けて固定する -- というのを考慮はした。左下、右のコーナーにある端子は、潰しても良い。また、0.1 インチにアラインしている。

    (メモ)画像は、Fusion PCB の Viewer 。 https://gerber-viewer.easyeda.com/ がオリジナル。

    elecrow で発注したが、63mm x 37mm 10 枚で、$4.9 + 送料$6.06 = $11.96 のところポイントが使えて $9 = 991 円だった。 昔は 50mm 角に収めようとがんばったものだが、気にしなくて良くなったのはありがたい。一方送料が上がった気がする。大元の中国郵便が値上げしたのかも。
続きを読む
posted by すz at 19:28| Comment(0) | TrackBack(0) | MachXO2

2018年03月17日

iCE40 を使ってみる

手始めに iCE40 UP5K で 以前作った MachXO2 QFN32 用の Verilog ソースを論理合成してみようと思う。iCE40 は、iCEcube2 というツールを使う。論理合成エンジンは、Synplify Pro と Lattice LSE で Diamond と同じである。だが、iCE シリーズは、買収した SiliconBlue Technologies が開発元であり、なにかと違うものと思われる。

    iCEDIP-01t.png

    icedip.png

alu181

    // iCEDIP24 modified 74181 iCEDIP24
    // 37 B0 1 24 VCC
    // 43 A0 2 23 A1 36
    // 44 S3 3 22 B1 35
    // 45 S2 4 21 A2 34
    // 46 S1 5 20 B2 32
    // 47 S0 6 19 A3 31
    // 48 Cn 7 18 B3 26
    // 2 M 8 x 17 N.C. 25 (/P)
    // 3 F0 9 16 Cn+4 21
    // 4 F1 10 x 15 N.C. 20 (/G)
    // 9 F2 11 14 EQ 19
    // GND 12 13 F3 18

大昔の 4bit Arithmetic Logic Unit(ALU) 74181 である。本物は今や超高価で取引されている。せっかく 24 pin にしたのだから互換品を作ってみよう。ただし /P と /G は、carry-lookahead generator 74182 と共に使用するもので、パス。
ALU は、FF を持たないただの組み合わせ回路で非同期に動作する。
1) alu181,v を デザインファイルに入れて、論理合成 -- 問題ない。
2) pin Constants Editor で ピンアサインを変更。

    不思議なことに、制限がある信号が出てきた。とりあえず割り当てられたものをロックして、再度やりなおすと 制限がなくなっている。さらに不思議であるが、とりあえずロックして pcf ファイルを作成。(alu181.pcf: 以降使用可能)
続きを読む
posted by すz at 12:58| Comment(0) | TrackBack(0) | MachXO2

2018年03月13日

最近の lattice FPGA

以前 QFN32 の MachXO2 について記事を書いたが、久しぶりに製品をみたら、いろいろと興味深いものが出ている。

    ピン数が多い FPGA は、BGA が主流で もはや 電子工作で扱える感じではなくなっている。QFP はまだあるが、沢山の線を使うということは、たいへんな配線をしてなにかデバイスをつなぐということであり、予算と気合いがいる。QFN は配線が結構難しく、はんだづけも厳しいのだが、それゆえに電子工作としては楽しいと思っていて興味があるのだ。

MachXO2 1200HC 4SG32C(QFN32) - 509円(mouser)

QFN32 パッケージの MachXO2 に 1200HC が追加されていた。256 では出来ることが限られていたが、これだとマイクロコントローラが入る。しかも、256 と比べてそう高くない。

ICE40 LP384 SG32 - 195円(mouser)

もうひとつ QFN32 のチップが出ていた。384 だからたいしたことは出来ないが、お安い。ただし、多電源だったりして MachXO2 のように お手軽な感じではないようだ。

ICE40 UP5K (QFN48) - 876円(mouser)
ICE40 LP1K (QFN48) - 462円(mouser)

UP5K は、1Mbit - 128KB の RAM がある。それとは別に 120kbit の RAM(EBR) も。LUT 規模も 5K だからそこそこ。 さらに DSP ブロック(16x16乗算器 or ACC)が8つ。多電源ではあるが、規模が大きいし、これなら許容できる。
LP1K は、安い。UP5K 用の基板を作る場合 LP1K でお試ししてみるのも良いかも知れない。(LUT 1100, EBR 64kbit,DSP 2)

    DSP は、16x16乗算器 または 32bit アキュームレータの機能があるそうだ。メモリもあって演算が出来るわけだから、なにか面白いものが作れそうではある。が、私はあまり知識がない。とりあえず MIPS 32bit プロセッサを作ってみたい程度。あるいは、相互に高速通信が出来るようにして、多数つなげる。。。みたいな何か。

    LP1K も MachXO2 1200HC とあまり変わらないから、自作 AVR いけると思ったが厳しい。せっかく乗算器があるんだから、 と思ったが使いこなせてようやくシュリンクできる気もする。

また、これらを載せた小型ボード TinyFPGA というものもある。
type A は、MachXO2 で部品がほとんどない。type B は、iCE40 LP8K だが、なにやら部品が沢山。三端子レギュレータが2つに、SPI FLASH 。あと書き込むための USB とコントローラ(おそらく PIC)。
続きを読む
posted by すz at 21:24| Comment(0) | TrackBack(0) | MachXO2