2012/09/03

FPGA / Verilog-HDL入門 - スロットマシンの設計

これまで主にVHDLを使用していたのですが,所属環境が変わってVerilog-HDLを使用する機会が多くなりました. 回路設計自体も初心者から抜け出せていないのに,違う言語に手を出すのは危険な気がしますが,仕方がありません. 今回は,Verilog-HDLの練習として簡単なスロットマシンを設計・記述し,FPGAに実装してみました.200行程度のシンプルな回路ですが,スロットマシンとしての主要な機能は抑えていると思います.

スロットマシンの仕様

今回設計したスロットマシンは,下記のような簡単な仕様を基に設計しました.

  1. スライドスイッチをhigh(= 1)にするとリセット動作
  2. 3個の7セグメントLEDに"0"を表示
  3. スライドスイッチをlow(= 0)にすると7セグメントLEDの数字が回転
  4. "0"~"7"(8種類)の数字を順に表示
  5. 各タクトスイッチを押すと対応する数字の回転が停止
  6. 数字が揃えばフィーバーとし,10個のLEDが点滅
FPGAボード

今回使用したFPGAボードは,Terasic社のDE0です. 下記のソースコードは,Quartus II 12.0 Web Editionでコンパイル可能であり,DE0上で正常に動作することを確認しています. ソースコードは自己責任の上でご利用ください.

スロットマシンの回路構成

下図に今回設計したスロットマシンの回路構成を示します. 青色のブロックは順序回路を,緑色のブロックは組合せ回路を表しており,合計5種類のモジュールで構成されています. 斜体の白字はモジュール名を,黄色の字はモジュールの入出力を示していますが,clk入力は字を省略し,赤色の配線で表現しています.


スロットマシンの回路構成
スロットマシン・コントローラのステートマシン

下図にコントローラのステートマシンを示します. 黒字は各状態への遷移条件,赤字は状態遷移時の動作を示しています. 各7セグメントLEDに同時に表示される数字が異なるように,各カウンタの回転開始時期をずらしています(全タクトスイッチ同時押下によるフィーバーの防止).


スロットマシン・コントローラのステートマシン
ソースコードの解説

下にソースコードを示します.slot_machineモジュール内には,コントローラのステートマシンとフィーバー判定器が記述されています. 35行目がフィーバー判定器の記述です. ステートマシンの状態がslot_waitかつ全数字の回転が停止しているときに,3個のカウンタの数字が同一であれば,led10モジュールのen信号を"1"にします.

decoderモジュールは,カウンタが保持している数字を2進数表現から7セグメントLED用の信号パターンに変換する組合せ回路です.

led10モジュールは,フィーバーのときに10個のLEDを点滅させる回路です. slot_machineモジュール内のフィーバー判定器が出力するen信号により点滅動作が制御されます.

counterモジュールは,7セグメントLEDに表示する数字を変化させ,その数字を保持するための回路です. 数字の変化は,slot_machineモジュール内のコントローラが出力するen信号により制御されます.

clk_generatorモジュールは簡易的なクロック分周器です. クロック周波数が高いと7セグメントLEDの数字を視認できないため,クロック周波数を落としています. なお,ここでは,FPGAに外部から入力されるクロックの周波数は50MHzを想定しています.

ソースコード
製品紹介
FPGA ボードで学ぶ組込みシステム開発入門 ~Altera編~
小林 優
技術評論社
売り上げランキング: 80089
2012/07/07

TeraTerm + XmingでX Window環境を構築する

XmingはWindows上でX Window環境を利用するためのフリーウェアで,一般にX Serverと呼ばれているソフトウェアの一種です. Xmingを利用することで,Linuxサーバ上のGUIをリモートで操作することが可能になります. Xmingと組み合わせて利用するSSHターミナルソフトウェアとしてはPuTTYが紹介されていることが多いですが,私は以前からTera Termのお世話になっているので,こちらと合わせて利用しています.

ここでは,TeraTerm + XmingでX Window環境を構築する方法を掲載します.

[1] インストーラをダウンロードする

Xming X Server for Windowsから,XmingとXming-fontsのインストーラをダウンロードします.私がダウンロードしたバージョンは以下のとおりです.

  • Xming: Xming-6-9-0-31-setup.exe
  • Xming-fonts: Xming-fonts-7-5-0-47-setup.exe
[2] Xmingをインストールする

ダウンロードしたインストーラを実行し,インストールを開始します.


Xmingのインストール [1]

Xmingのインストール [2]

コンポーネントの選択では,「Compact installation」を選択します. Tera Tarmを使用する場合,「Full installation」選択時にインストールされるXLaunch wizardなどは必要ありません.


Xmingのインストール [3]

Xmingのインストール [4]

Xmingのインストール [5]

Xmingのインストール [6]

Xmingのインストール [7]
[3] Xming-fontsをインストールする

Xmingをインストールしただけでは,下に示したEmacsのスクリーンショットのように,GUI上で文字化けが発生する場合があります. この問題は,Xming-fontsをインストールすることで解消されます.


文字化けが発生している例

Xmings-fontsもXmingと同様のインストーラです.デフォルト設定のままインストールします.


Xming-fontsのインストール
[4] Tera Termの設定を変更する

Tera Tarmの設定を変更し,Xmingとの連携を有効にします.Tera Termをインストールしていない場合は,Tera Termからダウンロードしてインストールしてください. 「設定」-「SSH転送」の順に開きます.


Tera Termの設定変更 [1]

「SSHポート転送」のウィンドウが開くので,「リモートのXアプリケーションをローカルのXサーバに表示する」にチェックを入れて,「OK」で閉じます.


Tera Termの設定変更 [2]

以下のようなウィンドウが表示されますが,「OK」で閉じてください.


Tera Termの設定変更 [3]

「設定」-「設定の保存」の順に開き,設定を上書き保存してください. その後,Tera Termを一旦終了します.


Tera Termの設定変更 [4]
[5] 導入完了

以上で導入作業は完了です.Xmingを起動し,Tera Termで任意のサーバに接続すれば,X Window環境を利用できます.


Xming起動中は,通知領域にアイコンが表示される

Xming-fontsインストール後は,文字化けもなく正常に表示される
製品紹介
独習Linux 第2版
独習Linux 第2版
posted with amazlet at 12.07.07
小林 準
翔泳社
売り上げランキング: 40577
2012/06/25

Quartus II v12.0でUSB-Blasterが認識されない場合の対処方法

久しぶりにFPGAを使うことになり,PC(Windows 7 64-bit)にQuartus II Web Edition v12.0をインストールしました. 使用したFPGAボードは,Terasic社のDE0です.


Terasic DE0

Verilogで回路を記述し,コンパイルも成功していざ書き込もうと思ったら,ProgrammerがUSB-Blasterを認識していませんでした. "Hardware setup","Add Hardware"の順にクリックすると,スクリーンショットのような,"Attempted to access JTAG server --internal error code 82 occurred"というエラーメッセージが出ます.


初期状態では,"No Hardware"となっている."Hardware setup"をクリック

"Add Hardware"をクリックすると…

エラーメッセージ

もちろん,USB-Blasterのドライバはインストール済みで,デバイス マネージャにも表示されている状態です. ちなみに,USB-Blasterのドライバは以下のディレクトリにあります(デフォルト設定でインストールした場合.)

C:\altera\12.0\quartus\drivers\usb-blaster

Google先生に聞いてみると,Alteraのサポートページが見つかりました.

さらに調べてみると,全く同様の症状で悩んでいる人がたくさんいるようでした. 解決方法は,以下のWebページで議論されていました.

Quartus II Stand-Alone Programmerは,以下のリンク先からダウンロードできます.

Programmerだけで120MBもあるんですね…. Stand-Alone Programmerのインストーラは,Quartus IIと同様のものです. インストール最終段階でフリーズしたのかと思うくらいウィンドウに動きがなくなりますが,数分間放置していたら完了していました.

インストール後,"コントロール パネル" - "管理ツール" - "サービス"でサービスの一覧を確認すると,今度は"Altera JTAG Server"が表示されていました.


サービス一覧

Quartus IIを起動し,通常通りProgrammerを起動すると,今度はUSB-Blasterを認識してくれました. 解決です.


問題解決後のProgrammerウィンドウ
製品紹介
FPGA ボードで学ぶ組込みシステム開発入門 ~Altera編~
小林 優
技術評論社
売り上げランキング: 80089
2012/06/24

奈良県でパスポートの居所申請を行いました

所用で夏に海外に行くことになり,パスポートを取得することになりました.

私は大阪府で住民登録をしているのですが,現在,奈良県内に生活拠点を置いています. しかし,パスポートの申請は,原則として住民登録している各都道府県で行う必要があります. 隣接する府県ですから電車で1時間もかからないのですが,なかなか大阪まで出かける機会もありません. また,パスポートの取得のためには申請と受領の最低2回は旅券事務所に行く必要があり,交通費も馬鹿になりません.

そこで,奈良県旅券事務所で居所申請を行い,パスポートを取得することにしました.詳しくは,奈良県旅券事務所のWebページもご覧ください.

居所申請ができるのは,以下に該当する人のみになります.私は学生なので,1.に該当します.

  1. 学生,出張者等
  2. 一時帰国者

居所申請を行うためには,通常の新規申請で必要な書類のほかに,以下の書類が必要でした(学生の場合.)

  1. 住民票: 1通
  2. 居所申請申出書
  3. 所在地が記載された会社等の身分証明書・学生証又は在学証明書
  4. 居所に郵送された申請者宛の消印のある最新の郵便物(官公署発出のもの又は公共料金請求書等),その他居所を証明する書類(賃貸契約書等)

1.については,帰省時に取得しておきました. 奈良県旅券事務所のWebページには,住民票に姓名のヨミカタの記載がなければならないと説明されています. 私の住民票には記載がありませんでしたが,特に何も注意されることなく申請できました.

2.については,奈良県旅券事務所で尋ねるともらえました. 同時に記入例も貸し出していただけるので,申請当日に書けば問題ありません.

3.については,学生証を見せました.

4.については,私は学生寮に入居しているため,学校の事務局で入居証明書を発行してもらいました.

申請

申請は奈良ファミリー5階の奈良県旅券事務所で行いました. 初めて行ったので,本当にショッピングセンター内にあるのか不安でしたが,ちゃんとありました. 最初,どこにあるかわかりづらいかもしれません.近鉄大和西大寺駅が最寄です.

申請日は,一般旅券発給申請書と居所申請申出書に記入して,書類確認と簡単な本人確認を行うだけです. 窓口での作業は短時間で終わるので,空いていそうな時間帯に行くのが良いと思います. 私は15時頃だったでしょうか.

あと,ヘボン式ローマ字表記の選択肢がある姓名の人は,事前にローマ字表記についてよく考えておいた方が良いですね. 更新時に変更することはできないようですから….

証明写真も,旅券事務所に隣接する写真店で撮影できます. 私はここで撮影してもらいましたが,1790円もかかるので,自宅で撮影・印刷できるのであれば,その方が経済的かと思います.

書類確認が終わった際に,「一般旅券発給申請受理票」と「旅券引換券」を渡されます. 受領に必要な書類なので,紛失厳禁です.

受領

受領は申請1週間後から可能なようです. 具体的には,一般旅券発給申請受理票の交付予定日欄に記載されています.

受領も旅券事務所です. 手数料として収入印紙と奈良県証紙を事前に購入しておく必要がありますが,旅券事務所に隣接する郵便局と売店「わかくさ」で購入できるので,当日購入すれば問題ありません.

収入印紙と奈良県証紙は,申請時に渡された一般旅券発給申請受理票に貼り付けて提出します. 印紙などを購入した際に,郵便局員や売店の店員が貼り付けてくれます.

受領手続きは簡単な本人確認やパスポートの確認作業が主で,10分もかかりません. これで完了です.

旅券事務所で配布されていたパンフレット類です. 初の海外なので,いろいろと準備しなければいけません….


外務省発行の「海外安全 虎の巻」と「海外で困ったら」
製品紹介