TD4をverilogで実装しMachXO2(Lattice)で動作させる
FPGAとverilogの勉強がてら『CPUの創りかた』の 4 ビット CPU TD4を動かしてみる事にした。
MachXO2のボードを使うメリットは、追加の部品0(LED等を半田付けする必要なし)でtd4の主要機能が動かせること。とても楽だし難易度が低い。
ほぼコピペ(参考:CPUの創りかた TD4 を Spartan-3A で - 言語ゲーム)ですがこんな感じ。
元コードからの変更点はMachXO2 1200ZEには、内蔵オシレータとLED(8個)が搭載されておりその辺を使うようにしたところ。
- 変更点
- デバイス変更(Spartan-3A -> MachXO2)に伴い内蔵オシレータを変更した。
- LEDの上位4個でクロックカウンターを表現し、下位4個でOUTPUTを表現するようにした。
次は、8bit化や内蔵ブロックRAMを使うようにしてみたい。
メモ:スマホからGoogleハングアウトで電話をかけるために
ハングアウトのURLが変わったためか、料金をチャージする画面にたどり着けず苦労したのでメモ((2015年11月時点の情報です)。
まずは、スマホにハングアウトアプリをインストールする。
次に、PCからハングアウトのページにアクセスし、サイドにある電話アイコンをクリック→アドレス帳画面が出たら、右上の+アイコンをクリックする。
こうすると、料金をチャージをする画面にたどり着く。
後は、クレジットカードを登録しドル建てで料金を払うだけ。
私の場合はなぜかUIが英語になっていたのでアカウントタブから、言語を日本語にすることメニューも日本語になった。
なお、一度料金を払うと次回以降は以下、URLからチャージページに飛べるみたい。
この料金チャージって、Google PlayやiOSからチャージできると便利なんだけど...。
FPGAボードの勉強
ずいぶん前に入手し放置していたFPGA評価ボード「MACHXO2−1200ZE 評価ボード」でLチカしてみた。忘れないようにメモ。
一時このボードは2000円台で秋月等で入手できたようだが、既に発売中止となっており、最近安いFPGAボードは減ってる模様。
- ボードの特徴
- 開発環境(Lattice Diamond 3.6)の入手(要アカウントの申請とライセンス申請)
- Lチカのチュートリアル
ボード自体にUSBポートとUSBシリアルが搭載されており、書き込む機材が不要なのが嬉しい。
Lattice Diamond自体は1.7GBとサイズがあるのでダウンロードに少し時間がかかる。
工作例等、他のFPGAベンダーに比べるとネット上の情報はそこまで多くないが探せば、それなりにあった。
Lチカのチュートリアル(英語):
Lattice Diamond and MachXO2 Breakout Board Tutorial (with Verilog) - Logic - eewiki
シリアル通信やLCD表示
MachXo2 BreakOutボードを使ってみる
シミュレータってあるの?
Lattice DiamondにActive-HDL(Lattice Edition) が含まれています。
LPC1114でLチカ
以前購入してそのままになっていた、LPC1114。
ふとネットを見ているとソフトでUSBを実現させ、USBブートローダーを作成した方がいたので、試してみたくなり手始めにLチカしてみた。
準備したもの(ハード)
- LPC1114FN28/102 1個
- USB Serial(秋月電子 AE-FT2232) 1個
- 3.3Vレギュレータ(秋月電子 TA48M033F(S Q)) 1セット
- 抵抗(100オーム) 1個
- LED 1個
- ブレッドボード
準備したもの(ソフト)
- LPCISPmbed LPC1114でLチカしてみた(2) - しなぷすのハード製作記
- Lチカ ファームウェアBequest333のページ(別館):LPC1114アセンブラサンプルプログラム
マイコンとUSBシリアルの結線は、ココを参考にしつつ、USBシリアルを手持ちAE-FT2232(3.3vモード)に合わせる形で接続。
AE-FT2232 ピン | 機能 |
---|---|
9 :BD4 | DTR |
11:BD2 | RTS |
12:BD1 | RXD |
12:BD0 | TXD |
LEDはLPC1114のPIO0_2(25番端子)に100オーム経由で接続。
Windows環境でLPCISPを起動させ、"LPC1114アセンブラサンプルプログラム"の"blinky.bin"を書き込み以上で完成。無事動作しました。
まずはUSB Serialを3.3Vレベルにする。
元記事はFT232RLモジュール(レベルが3.3V)を利用しているが、手持ちのUSB Serialがあるので、別件の試験を兼ねて活用することにした。
通常は5V動作だけど、ジャンパーピンで設定を変えて、外部から3.3Vを給電することで動かすことができる。
ESP-WROOM-02自体も3.3V電源が必要なため、こちらの外部電源を兼用することにした。
方式としてはUSBの5V出力を秋月電子のレギュレータキット(TA48M033F)で3.3Vにする方法です。
とりあえず、下の記事を参照にして無事動作完了。ちなみに私のモデル(このモジュール自体2チャンネルあり、今回は2番目のチャネルBを利用)ではチャネルBに関して、TXが13番ピン、RXが12番ピンでした。
参考:
PCからXBeeへ接続をXBeeエクスプローラ無しで行う
今日のところはここまで...。
ESP-WROOM-02を試してみた(1)
この記事「ESP-WROOM-02で、IFTTTをhttps(SSL/TLS)で呼び出す例 - Qiita」を読んでいて、ついつい遊んでみたくなってきた。
まずは、ハードの準備ということでこの記事「ESP-WROOM-02を動かしてみた - Qiita」を読みながら進めてみる。
準備したもの
- ESP-WROOM-02(ESP8266EX) 1個
- WiFiモジュール変換基板(A) [IFB1518-A](aitendo) 1個
- USB Serial(秋月電子 AE-FT2232) 1個
- 3.3Vレギュレータ(秋月電子 TA48M033F(S Q)) 1セット
- 抵抗(10kオーム) 2個
- ブレッドボード
途中動かなくて???が続いたけど無事に解決しWIFIの接続とIP取得まで進むことができた。
ちなみこのモジュールATコマンドでSSIDやパスワードを設定するが、不揮発領域に保存しているみたいで、電源を再投入してもこれらの情報を覚えててくれていた。この点は便利。
QEMU(windows版)でmonitorを利用する。
忘れないようにメモ。
qemuには、エミュレーションしているハードの状態を参照できるモニター機能が存在する。通常はGUIからCtrl-Alt-[1, 2, 3]で切り替えるとドキュメントにある。
当方が利用したWindows版のQEMUだと、なぜかこのモニター機能がうまく利用できない。
仕方ないので、QEMUの起動時にオプション”-monitor telnet:127.0.0.1:1234,server,nowait”をつけることでtelnet経由でモニター画面に入る。
以下は利用例、自作OSの動作中にレジスターのステータスを表示したところ。CRxを見れるのは地味に助かる。
QEMU 2.2.1 monitor - type 'help' for more information (qemu) info registers EAX=00000000 EBX=00104dd0 ECX=0010a459 EDX=00000080 ESI=00123168 EDI=00123168 EBP=00104fe8 ESP=00104dd0 EIP=0010a0c8 EFL=00000246 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=1 ES =0010 00000000 ffffffff 00cf9300 DPL=0 DS [-WA] CS =0008 00000000 ffffffff 00cf9b00 DPL=0 CS32 [-RA] SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS [-WA] DS =0010 00000000 ffffffff 00cf9300 DPL=0 DS [-WA] FS =0000 00000000 00000000 00000000 GS =0000 00000000 00000000 00000000 LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy GDT= 00105000 00000029 IDT= 0010a47c 000007ff CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
環境:
Windows7
QEMU 2.2.1 (http://lassauge.free.fr/qemu/)