Microsoft Word - 卒業論文.doc

Size: px
Start display at page:

Download "Microsoft Word - 卒業論文.doc"

Transcription

1 卒業研究論文 (2009 年 2 月 ) CPLD によるミニゲーム集の制作 ソフトウェア情報学部 ソフトウェア情報学科 和島研究室 ソ 相坂俊

2 1. 背景 開発環境 ハードウェア CPLD Terasic-Blaster フラットケーブル ソフトウェア QuartusⅡ プロジェクトの作成 回路図エディタによる回路設計 VHDL 言語による回路設計 CPLD の動作テスト テスト用回路基板の制作 EAGLE による回路の設計 ライブラリへの部品登録 CPLD segLED 回路図設計 基板設計 基板加工機による基板加工 ハンダ付け 回路図エディタによる並列 10 進カウンタ回路の作成 仕様 実装 動作結果 VHDL 言語による並列 10 進カウンタ回路の作成 仕様 プロジェクトの構成 BCDCounter.vhd Decode7segment.vhd ButtonCount.vhd ButtonCount_top.vhd 動作結果 ミニゲームの作成 CPLD 基板の製作 EAGLE による回路の設計 ライブラリへの部品登録 ピンコネクタ

3 回路図設計 基板設計 基板加工機による基板加工 ハンダ付け 表示 入力用基板の製作 EAGLE による回路の設計 回路図設計 基板設計 基板加工機による基板加工 ハンダ付け VHDL 言語による 8 パズル回路の作成 仕様 プロジェクトの構成 puzzle.vhd Decode7segment.vhd Controller.vhd check.vhd 動作結果 VHDL 言語による三目並べ回路の作成 仕様 プロジェクトの構成 CircleCross.vhd Decode7segment.vhd Controller.vhd 動作結果 問題点とその解決法 ハードウェア ソフトウェア まとめ

4 1. 背景近年家電製品や携帯電話などの組み込み系の技術の需要が高まっている 組み込み技術とは 特定のシステムの目的に特化して動作させるシステムであり 性能の限定されたハードウェアとそれに特化した専用のソフトウェアで実現されている 組み込みシステムに限らず 電子回路を動作させる基板の設計には回路 CAD(Computer Aided Design) が用いられる これは基板上に実装される部品間の論理的な接続を設計する回路設計と 実基板上の配線を干渉することなく行うよう部品サイズ 配線レイヤーなどを考慮して設計する基板設計に分かれる 一方 組み込みシステムの電子回路の内部の設計には CPLD(Complex Programmable Logic Device) や FPGA(Field Programmable Gate Array) が使われている いずれも多くのロジックエレメントの集まりで その間の接続を電気的に書き換えることのできるもので 基板を作り直すことなく素子の論理的な接続を組み替えることができるものである 一般に数百程度のロジックエレメントを持つものを CPLD 1000 以上のものを FPGA と呼ぶ 回路の設計には VHDL(Very high-speed integrated circuit Hardware Description Language) や Verilog HDL が用いられる そこで本研究では回路設計と基板設計を統合して扱うことのできる回路 CAD EAGLE を用いて CPLD 基板と 7segLED と押しボタンスイッチを搭載した基板を設計 製作し それにトランジスタ技術 2006 年 4 月号 [1] 付録の CPLD 基板を搭載して VHDL を用いて 8 パズルや三目並べなどの動作をするプログラムを組み CPLD に書き込んで動作を確認した 2. 開発環境 2.1 ハードウェア CPLD 本研究で使用した CPLD 基板の仕様を表 2-1 に記す 図 2-1 CPLD 基板 4

5 10 ピンのコネクタ CN4 はプログラムの書き込みの際の PC との通信に使用する 表 2-1 CPLD 基板の仕様 項目 仕様 基板材質 ガラス エポキシ (FR-4) 基板層数 1 電解コンデンサ (47μF) 2 層 外形寸法 70 50mm CPLD(EPM240T100C) 搭載部品 TC74VHC244FT 抵抗 コンデンサ 供給電源 3.3V(3 端子レギュレータを搭載すれば 5V 入力可能 ) この基板に搭載されている CPLD EPM240T100C の特性は以下の通りである 表 2-2 CPLD EPM240T100C の特性 動作電圧 3.3V ロジックセル数 240 入出力 76 電源入力 16 通信用入出力 4 ボタンからの信号や電源 クロック入力と外部との入出力 また回路の安定動作のために CPLD 基板に以下の部品をハンダ付けした 表 2-3 CPLD 基板に実装した部品 部品 個数 ダブルヘッダピン ( メス ) 20 ピン 2 10 ピン 1 8 ピン 1 抵抗 (220Ω) 1 電解コンデンサ (47μF) 2 IC ソケット 4ピン 1 3 端子レギュレータ (LM1117T-3.3/NOPB) 1 水晶発振器 (ACH MHZ-EK) 1 CPLD の動作電圧は 3 端子レギュレータを搭載したため 入力電圧には 5V のものを使用した 5

6 2.1.2 Terasic-Blaster プログラムの書き込みには USB Blaster 互換の Terasic Blaster(Terasic 社製 ) を使用した これは 3.3V の電源で動作し TCK TDO TMS TDI の 4 つの入出力信号を用いて PC と CPLD の通信を行うものである 図 2-2 Terasic Blaster 左側の黒い端子が CPLD 基板に接続される 10 ピンのメスのコネクタで 本体の左側の端子は A-B タイプの USB ケーブルを通じて PC の USB 端子に接続される Terasic-Blaster を使用するために USB ケーブルで PC に接続し ハードウェアの追加ウィザードでドライバを自動でインストールした 図 2-1 がデバイスマネージャでの表示である Terasic-Blaster は ALTERA 社の USB Blaster の互換品であるため USB Blaster として認識される 図 2-3 Terasic-Blaster の認識 フラットケーブル長さはそれぞれ芯数 40 本, ピッチ 1.27mm とした 図 2-4 基板の接続に使用する 2 本のフラットケーブル 6

7 2.2 ソフトウェア QuartusⅡ QuartusⅡとは CPLD の回路の情報を作成し 書き込むためのソフトウェアである CPLD への回路の入力方法にはエディタによる入力と VHDL による入力がある エディタによる入力では回路図エディタ上に Symbol( 回路記号 ) を配置し それらを配線で接続し入出力を CPLD のピンに対応させて それをコンパイルして書き込む 一方 VHDL による入力では VHDL ファイルを作成し その中で入出力の信号を定義して入力の値によって求める動作をするようなプログラムを書き下し それをコンパイルして書き込む いずれの方法でも回路を設計 入力することができるが VHDL を使った回路の設計の方が 目的とする動作のための機能に応じてロジックエレメントを効率よく使うことができる QuartusⅡは有償だが 本研究では Web Edition という無償の評価版を使用した 回路図エディタで回路を入力 プロジェクトの作成 回路の制約条件を入力 コンパイル 書き込み VHDL を使って 回路を入力 回路図上の端子と CPLD の端子の割り当てなど 図 2-5 QuartusⅡ を使ったディジタル回路開発の流れ Windows でこれを使用するために トランジスタ技術 月号の付録 CD の QuartusⅡインストールファイル quartusii_51_web_edition.exe を実行してインストールした 初回起動時に 使用にはライセンスファイルが必要である というメッセージが表示されたので ALTERA 社 [2] のサイトにアクセス ユーザ登録し ライセンスファイルを取得して QuartusⅡのメニューバーの Tools の License Setup を選択してライセンスファイルを導入した プロジェクトの作成書き込む回路の情報を作るには 回路図 VHDL いずれの方法を使う場合も以下の手順に従ってプロジェクトを作成する 1. QuartusII のメニューバーから File New Project Wizard を選択する 2. 使用法の説明が表示されるので このまま Next ボタンを押す Don t show me this introduction again にチェックを入れると 次回からこのウィンドウが表示されなくなる 3. 一番上のテキストボックスに プロジェクトを作成するフォルダのパスを 二番目のテキストボックスに作成するプロジェクト名を 三番目のテキストボックスにトップレベルデザインエンティティ名 ( 回路を階層的に設計する場合に最上位の階層に置くエンティティの名前 ) を入力し Next ボタンを押す 7

8 図 2-6 プロジェクトの情報の入力 4. 既存の設計ファイルがある場合は File name の右のテキストボックスにその名前を入力して Add を押すと プロジェクトに追加することができるが 何もせずに Next ボタンを押す 5. Family の右のコンボボックスで 使用する CPLD のファミリ ( グループ ) を Target device で自動認識するかデバイスを指定するかを選択し Available devices でデバイス名を指定する ここでは MAXⅡ Specific device selected in Available device list EPM240T100C5 を選択する 8

9 図 2-7 CPLD の種類の選択 6. QuartusII 評価版以外の外部ツールを追加できるが ここでは使用しないのでそのまま Next ボタンを押す 作成するプロジェクトの内容を確認する画面が表示されるので 内容に問題がなければ Finish ボタンを押す 回路図エディタによる回路設計回路図エディタで回路を設計する場合は以下の手順で行う 1. QuartusII のメニューバーから File New Block Diagram/Schematic を選択する 9

10 図 2-8 シンボル部品選択 2. Symbol Tool アイコンをクリックしてライブラリから回路素子をエディタに入力する 図 2-9 部品配置 3. Orthogonal Node Tool アイコンをクリックして シンボル間を配線で接続する 10

11 図 2-10 接続 4. 作成した回路を部品として使いたい場合は File Create/Update Create Symbol Files for Current File で図 2-9 を部品化する このことにより上で作成した回路と同等の動作をする部品が使えるようになる 図 2-11 部品化したエンティティ 5. 部品化したエンティティを使う場合は Symbol Tool アイコンをクリックしてライブラリから入力する さらに入力信号 出力信号のシンボルをエディタに入力し シンボル間を配線で接続する 6. 回路図の入出力を CPLD の端子に関連付ける ( 図 2-11) 11

12 図 2-12 CPLD に書き込まれる回路 7. Processing Start Compilation でコンパイルする 8. Tools programmer start で CPLD への書き込みを行う VHDL 言語による回路設計次に VHDL で回路を記述して CPLD に書き込む方法は以下の手順に従う なお デフォルトでは QuartusⅡのテキストエディタの使用フォントは英数用のものになっているので Tools Options Text Editor の中の Fonts 欄を MS ゴシックにし 日本語の表示を可能にしておく 1. File New VHDL File でソースファイルを作成する VHDL でもエディタを使った場合と同様に複数のコンポーネント ( 部品 ) を組み合わせて全体の動作を定義することができる 2. Assignments Pins で VHDL ファイルに記述された入出力と CPLD のピンを関連付ける 3. Processing Start Compilation でコンパイルする 4. Tools programmer start で CPLD への書き込みを行う VHDL の基本的な構造文と書式 VHDL で回路を記述する際は 初めに演算や CPLD を使用するために読み込むヘッダファイルを指定し その回路の入出力の信号とその型を書き下す 最後に内部的な信号を定義し イベント発生時に実行する命令を書く ( 参考 :VHDL によるハードウェア設計入門 ) 12

13 パッケージの指定演算や CPLD を使用するためのヘッダファイルを読み込む library ライブラリ名 ; use ライブラリ名, パッケージ名 ; エンティティの定義入出力の信号名とその型を定義する entity エンティティ名 is port( ポート名 : モード型データ型 ); end エンティティ名 ; アーキテクチャの記述内部的な信号を定義するイベント発生時に実行する命令を書く常に実行する命令を書く Architecture アーキテクチャ名 of エンティティ名 is ( 信号宣言文 ) begin (VHDL 本体 ) end アーキテクチャ名 ; 図 2-13 VHDL の基本構文 変数の種類通常のプログラミング言語とは異なり VHDL では変数に相当するものを実際の回路の信号と結びつけて考える必要がある このうち明確に信号として扱うものを signal 内部的に処理して見かけ上独立した変数として扱うものを variable 一定の値をとるものを constant と呼ぶ 変数の型通常の言語と同様に変数は型を持つ 使用できる型には以下のものがある 表 2-4 VHDL の変数型型名とることのできる値 std_logic 0, 1 std_logic_vector それぞれのビットについて 0, 1 boolean 論理値 true, false integer ~ の整数 13

14 natural positive real character string time severity level 0~ の整数 1~ の整数 -1.0E-38 から +1.0E+38 の実数 ASCII 文字文字列時間の物理タイプ fs, ps, ns, us, ms, sec, min, hr メッセージタイプ NOTE, WARNING, ERROR, FAILURE すべての変数は種類と型を持ち アーキテクチャの先頭で変数の種類変数名 : 変数の型の書式で宣言することで使用可能になる 特に std_logic_vector では 変数の型の後に ( 開始ビット to 終了ビット ) または ( 終了ビット downto 開始ビット ) をつけて使用するビットを明確に宣言する 型の変換 VHDL では厳密に型の一致が求められ 異なる型同士の演算や代入は出来ないので 代入を行うためには代入される側の型に変換してから行う必要がある 以下に主な型変換関数の書式を挙げる integer から std_logic_vector への変換 conv_std_logic_vector( 元の変数 ビット幅 ) std_logic_vector から integer への変換 conv_integer( 元の変数 ) 他の VHDL ファイルをコンポーネントとして使用する場合は アーキテクチャを記述する際にコンポーネントとして使用するファイルについて PORT の情報を ARCHITECTURE 文と BEGIN 文の間に書く パッケージの指定エンティティの定義アーキテクチャの記述コンポーネントのポートの記述信号の定義コンポーネントのポートとエンティティとの対応の記述 図 2-14 階層構造を持つ VHDL の構文 値を引数として受け取り処理をした後で何らかの値を返すファンクション文 値を返さないプロシー 14

15 ジャ文などのあらかじめ書き下した機能をまとめたものをパッケージという パッケージ ファンクションの構文は図 2-13, 2-14 の様になる パッケージの宣言信号宣言, 定数宣言, データタイプなどを記述する packege パッケージ名 is ( 宣言文 ) end パッケージ名 ; パッケージ文の処理の記述 packege body パッケージ名 is ( 本体 ) end パッケージ名 ; 図 2-15 パッケージの構文 ファンクションの宣言引数として受け取る信号名とそのデータ型 戻り値のデータ型を記述する function ファンクション名 ( ( 宣言文 ) return データ タイプ名 is ファンクション文の処理の記述 function ファンクション名 ( ( 本文 ) return データ タイプ名 is begin ( 順次処理文 ) return 返却データタイプ end; 図 2-16 ファンクションの構文 別ファイルに書かれたパッケージを使用する場合は パッケージの指定の際に NEWLIB; USE NEWLIB. ファンクション名.all; という記述を追加する 15

16 3. CPLDの動作テスト CPLD 基板の動作確認のために 手頃な基板を製作する必要があった そこで入力の信号 2 つ 出力の信号 14 個 (7segLED2 つ分 ) を備えた回路 基板を設計 製作し 10 進カウンタ回路を書き込んで動作を確認した 回路の設計では回路図を用いた方法と VHDL を用いた方法の 2 通り試し いずれも正しく動作することが確認できた 3.1 テスト用回路基板の制作テスト基板の製作に使用した部品を表 3-1 に示す 表 3-1 テスト基板の製作に使用した部品 部品 個数 ダブルヘッダピン ( オス ) 20 ピン 2 10 ピン 1 8 ピン 1 DIP スイッチ 1 押しボタンスイッチ 2 電解コンデンサ (47μF) 1 セラミックコンデンサ (0.1μF) 2 7 セグメントLED 2 LED 1 抵抗 (330Ω) 21 コード 2 メタルスペーサ 4 ナット 4 押しボタンスイッチは信号入力用 7segLED は出力表示用であり 抵抗は LED に大電流が流れないようにするためのものである DIP スイッチは電源の ON OFF 用 LED はその確認のため使用した コードは電源入力用の 2 ピンコネクタの代用である コンデンサは信号の変化の際に生じるノイズを打ち消すもの ( パスコン ) である メタルスペーサとナットはハンダの劣化やショートを防ぐために使用した EAGLE による回路の設計 EAGLE(Easily Applicable Graphical Layout Editor) は回路設計と基板設計を統合して扱うことのできる回路 CAD である 使用する素子をライブラリ ( 回路図上のピン数と個々のピン名 入出力の情報をもつ Symbol( 図 3-4,3-5) を組み合わせた Device の集合 ) から入力し 論理的配線を行った後 基板ファイルで物理的配線を行うことで回路基板の情報を設計することができる ここで作成した基板ファイルは CAM ツールを使ってさまざまな形式のファイルに変換し 基板加工機のコントロールアプリケーションで使用できる ライブラリへの部品登録 今回作成する基板で用いる部品のうち CPLD と 7segLED がライブラリに無かったため 新規にこ 16

17 れらの Package と Symbol Device を作成し Device 上で Package の Pad( 端子 ) と Symbol の Pin の関連付けを行った CPLD CPLD 基板は CN1~CN5 の 5 つの入出力コネクタを持つ このうち PC との通信に用いられる CN4 は通信用のコネクタであり 回路基板とは接続されないため省略した 図 3-1 CPLD の Package(51 71mm) 17

18 図 3-2 CPLD の CN1 の Symbol 図 3-3 CPLD の CN2 の Symbol 図 3-4 CPLD の CN3 の Symbol 図 3-5 CPLD の CN5 の Symbol 18

19 表 3-2~3-5 に Pad(package) と Pin(Symbol) の端子の対応を示す 表 3-2 CN1 の pin 対応 表 3-3 CN2 の pin 対応 Pad Pin Pad Pin Pad Pin Pad Pin 1 GND_1 21 USERIO83 1 VCCIO_1 21 GND_1 2 GND_2 22 USERIO84 2 VCCIO_2 22 GND_2 3 USERIO02 23 USERIO81 3 USERIO19 23 USERIO43 4 USERIO01 24 USERIO82 4 USERIO20 24 USERIO44 5 USERIO USERIO77 5 USERIO21 25 USERIO47 6 USERIO99 26 USERIO78 6 USERIO26 26 USERIO48 7 USERIO98 27 USERIO75 7 USERIO27 27 USERIO49 8 USERIO97 28 USERIO76 8 USERIO28 28 USERIO50 9 USERIO96 29 USERIO73 9 USERIO29 29 USERIO51 10 USERIO95 30 USERIO74 10 USERIO30 30 USERIO52 11 USERIO92 31 USERIO71 11 USERIO33 31 USERIO53 12 USERIO91 32 USERIO72 12 USERIO34 32 USERIO54 13 USERIO90 33 USERIO69 13 USERIO35 33 USERIO55 14 USERIO89 34 USERIO70 14 USERIO36 34 USERIO56 15 USERIO88 35 USERIO67 15 USERIO37 35 USERIO57 16 USERIO87 36 USERIO68 16 USERIO38 36 USERIO58 17 USERIO86 37 GCLK3 17 USERIO39 37 USERIO61 18 USERIO85 38 USERIO66 18 USERIO40 38 GCLK2 19 GND_3 39 VCCIO2_1 19 USERIO41 39 GND_3 20 GND_4 40 VCCIO2_2 20 USERIO42 40 GND_4 19

20 表 3-4 CN3 の pin 対応 表 3-5 CN5 の pin 対応 Pad Pin Pad Pin 1 3.3VCC 1 5V_1 2 VCCINT 2 3.3V_1 3 USERIO04 3 5V_2 4 USERIO V_2 5 USERIO06 5 DC_1 6 USERIO05 6 DC_2 7 USERIO08 7 DC_3 8 USERIO07 8 DC_4 9 GND_1 10 GND_2 11 GCLK1 12 GCLK2 13 GND_3 14 GND_4 15 USERIO16 16 USERIO15 17 USERIO18 18 USERIO17 19 GND_5 20 GND_6 20

21 7segLED EAGLE の既存のライブラリにも 7segLED はあったが ここで使用した GL9R04 の形状のものはなかったため新規に作成した 表 3-6 に Pad(package) と Pin(Symbol) の端子の対応を示す 図 3-6 7segLED の Symbol 図 3-7 7segLED の Package(17 13mm) 表 3-6 7segLED の pin 対応 Pad Pin 1 A 2 F 3 VCC_2 4 E 5 D 6 DP 7 C 8 G 9 B 10 VCC_ 回路図設計 7segLED への出力には CPLD の USERIO81 83~ ~100 にあたる CN1 の 5~ ~18 21~23 を接続し ボタンからの入力には USERIO2 89 にあたる CN1 の 3 14 を接続した 基板への入力電圧は 5V であるが CPLD 基板に搭載した三端子レギュレータで降圧された 3.3V の電源が CPLD の駆動電圧となる 21

22 図 3-8 回路設計 22

23 基板設計水色の部分が配線を表す 今回は片面基板として設計したため すべての配線はハンダ面を通る GND VCC(5V) VDD(3.3V) の電源系は多くの部品に入るため 他の信号よりも配線を先に行った 基板の 4 隅の穴は基板固定穴と呼ばれ スペーサとナットで基板を固定するのに使用される このことによってハンダ面と床の接触によるショートやハンダの劣化を防ぐことができる 図 3-9 基板設計 (98 78mm) 基板加工機による基板加工基板加工機 RS21 とそのコントロール用アプリケーション FLASH Win を使用してテスト基板を作成した 設計した基板データを元に EAGLE の CAM 機能で GERBER 形式のデータ drill( ドリルデータ : 穴の大きさや位置をまとめたファイル ), photo( 配線データ : 配線部分の座標データをまとめたファイル ), frame( 基板外形データ : 基板外形の端点の座標をまとめたファイル ) を作成した テスト基板の材料は合成樹脂板の片面に銅箔が貼り付けられたものである 初めに drill のデータを元に基板の厚さより長いドリルで基板を貫通する穴をあけた (A) 次に 銅箔の必要な部分のみを残して配線とするため FLASH Win の輪郭抽出の機能を用いて photo から輪郭データを作成し そのデータを元に銅箔をミリングカッタと呼ばれる先端が円錐状のドリルで削り取った (B) 最後に frame のデータを元にフォーミングカッタと呼ばれる 先端が円柱状のドリルで基板を切り離した 23

24 銅箔 (A) 合成樹脂板 ドリル ミリングカッタ フォーミングカッタ (B) 図 3-10 基板加工機での基板加工過程 図 3-11 ドリルの種類 図 3-12 ドリルデータ 図 3-13 配線データ 図 3-14 輪郭データ 図 3-15 基板外形データ 24

25 3.1.3 ハンダ付け出来上がった基板に抵抗など背の低いものから順にハンダ付けした セラミックコンデンサなどの背の高いものを先にハンダ付けしてしまうと 他の部品のハンダ付けが困難になってしまうからである 図 3-16 テスト基板 ( 部品面 ) 図 3-17 テスト基板 ( ハンダ面 ) LED1 LED2 ボタン 1 ボタン 2 電源用スイッチ 確認用 LED 図 3-18 テスト基板の入出力素子 電源用スイッチとして 4 素子の DIP スイッチを使用したが 実際の電源の ON OFF 用には一番右の素子を使用した 確認用 LED は電源を ON にしたときに点灯する LED1, 2 に使用した GL9R04 はアノードコモンなので それぞれのセグメントに対応するピンに GND を入力すると点灯する 25

26 3.2 回路図エディタによる並列 10 進カウンタ回路の作成 仕様電源投入時の状態は 7seg LED1, 2 ともに 0 でボタン 1, 2 を押すごとに 7segLED1, 2 の数字が 1 ずつ増えていき 9 になったとき 0 に戻るという動作をさせる 実装 10 進カウンタの動作をさせるため IC74160(4 ビット同期式カウンタ ) IC7447(7segDecoder) input( 入力 ) output( 出力 ) VCC のシンボルを回路図エディタに配置し Orthogonal Node Tool アイコンをクリックして シンボル間を配線で接続する 10 進カウンタの LDN A B C D ENT ENP CLRN を VCC に CLK を入力に接続する これで CLK の立ち上がりで 2 進数 QDQCQBQA の値が 1 増加する様になる 1 組のボタンと LED に対しての動作をこれで実現できる 図 組分の 10 進カウンタ回路 ここではこれをひとつの部品として使用するので 図 3-19 を部品化する このことにより BUTTON という 1 つの入力と LEDA~G という 7 つの出力を持ち 図 3-19 の回路と同等の動作をする部品が使えるようになる ライブラリから部品化した ButtonCount エンティティ input( 入力 ) output( 出力 ) のシンボルをエディタに入力し シンボル間を配線で接続し 回路図の input, output を CPLD の端子に関連付ける ( 図 3-20) これをコンパイルし CPLD への書き込みを行う 26

27 図 3-20 CPLD に書き込まれる回路 27

28 3.2.2 動作結果仕様で述べた通りの動作をした コンパイル時のメッセージから確認した この回路の使用ロジックエレメント数は 22 個であった ボタン 2 を押すたびに LED2 に表示される値が 1 増える 9 を超えると LED2 の値が 0 に戻る ボタン 1 を押すたびに LED1 に表示される値が 1 増える 9 を超えると LED1 の値が 0 に戻る 図 3-21 テスト基板の動作例 28

29 3.3 VHDL 言語による並列 10 進カウンタ回路の作成 仕様動作については回路図で設計した場合と同様である VHDL ではそれぞれの入出力の信号名に名前をつけるが ここではそれぞれのセグメントに対応する出力に図 3-22 のような名前をつける LED_G LED_F LED_E LED_A LED_B LED_C LED_D 図 3-22 LED のセグメント 29

30 3.3.2 プロジェクトの構成回路図を使った設計で用いた方法に倣い こちらでも階層構造を使って回路を設計する すなわち 10 進カウンタの働きをする BCDCounter 7seg デコーダの働きをする Decode7segment を作成し 両者をエンティティとして 1 つずつ含む 1 入力 7 出力を持つ ButtonCount を作成する 最後にエンティティとして 2 つの ButtonCount を含む ButtonCount_top を作成し その入出力を CPLD のピンに対応させる ButtonCount_top ボタン 1 から USERIO02 ButtonCount BCDCounter Decode7segment USERIO92 USERIO91 USERIO96 USERIO99 USERIO100 USERIO97 USERIO98 LED1 へ ボタン 2 から USERIO89 ButtonCount BCDCounter Decode7segment USERIO84 USERIO81 USERIO83 USERIO86 USERIO87 USERIO85 USERIO88 LED2 へ 図 3-23 階層構造を使った設計 30

31 BCDCounter.vhd 1 つの入力信号 BUTTON を受け取り 電源投入後の BUTTON の立ち上がりの回数の下 1 桁の数値を 2 進数に変換したものに対応する信号を出力する LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_unsigned.ALL; USE IEEE.std_logic_arith.ALL; パッケージの指定使用する CPLD 独自のヘッダの読み込み logic 変数を扱うためのヘッダの読み込み算術演算のためのヘッダの読み込み ENTITY BCDCounter IS PORT( CLK : in std_logic; QA : out std_logic; QB : out std_logic; QC : out std_logic; QD : out std_logic ); END BCDCounter; エンティティの定義 std_logic 型の入力 CLK を受け取り QA, QB, QC, QD を出力する ARCHITECTURE rtl of BCDCounter IS signal counter : std_logic_vector(3 downto 0); BEGIN PROCESS(CLK) BEGIN if(clk'event and CLK='1') then if( counter = 9 ) then counter <=CONV_STD_LOGIC_VECTOR(0,4); else counter <= counter + 1; end if; end if; END PROCESS; QA <= counter(0); QB <= counter(1); QC <= counter(2); QD <= counter(3); end rtl; アーキテクチャ 4bit の std_logic_vector 型の内部変数 counter の定義入力 CLK の立ち上がりのイベント発生時に実行する命令 counter が 9 なら counter を 0 に そうでないときは counter を 1 増加させる出力 QA, QB, QC, QD に counter のそれぞれのビットの値を書き込む 31

32 Decode7segment.vhd 4 つの入力信号 A~D を受け取り 2 進数 DCBA を 10 進数に変換した数値の形に 7segLED を点灯させるための 7 つの信号 LEDA~G を出力する 2 進数 DCBA の値が 9 以下ならそれを 10 進数に変換した数値を 10~15 なら空白を表示するための信号を出力する LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_unsigned.ALL; パッケージの指定使用する CPLD 独自のヘッダの読み込み logic 変数を扱うためのヘッダの読み込み ENTITY Decode7Segment IS PORT( A, B, C, D : in std_logic; LED_A : out std_logic; LED_B : out std_logic; LED_C : out std_logic; LED_D : out std_logic; LED_E : out std_logic; LED_F : out std_logic; LED_G : out std_logic ); END Decode7Segment; エンティティの定義 std_logic 型の入力 A, B, C, D を受け取り LED_A~LED_G を出力する ARCHITECTURE rtl of Decode7Segment IS signal number : std_logic_vector(3 downto 0); BEGIN number(0) <= A; number(1) <= B; number(2) <= C; number(3) <= D; アーキテクチャ 4bit の std_logic_vector 型の内部変数 number の定義出力 number に D, C, B, A の値を書き込む 32

33 LED_A <= '0' when number = 0 else '1' when number = 1 else '0' when number = 2 else '0' when number = 3 else '1' when number = 4 else '0' when number = 5 else '1' when number = 6 else '0' when number = 7 else '0' when number = 8 else '0' when number = 9 else '1';... end rtl; number の値によって LED_A の点灯 消灯を切り替える LED を点灯させる時は '0' を 消灯させる時は 1 を出力する LED_B~G も A と同様に記述する number の値が 10 から 15 の時はすべての LED を消灯させるため 1 を出力する ButtonCount.vhd 1 つの入力信号 BUTTON を受け取り 電源投入後の BUTTON の立ち上がりの回数の下 1 桁の数値の形に 7segLED を点灯させるための 7 つの信号を BC_LEDA~G に出力する このファイルは既出の 2 つとは異なり 他の VHDL ファイルをコンポーネントとして使用する ButtonCount BCDCounter Decode7segment counter1 decoder1 図 3-24 ButtonCount の階層構造 33

34 LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_unsigned.ALL; パッケージの指定使用する CPLD 独自のヘッダの読み込み logic 変数を扱うためのヘッダの読み込み ENTITY ButtonCount IS PORT( BUTTON : in std_logic; BC_LED_A : out std_logic; BC_LED_B : out std_logic; BC_LED_C : out std_logic; BC_LED_D : out std_logic; BC_LED_E : out std_logic; BC_LED_F : out std_logic; BC_LED_G : out std_logic ); END ButtonCount; エンティティの定義 std_logic 型の入力 BUTTON を受け取り LED_A~LED_G を出力する 34

35 ARCHITECTURE rtl of ButtonCount IS COMPONENT BCDCounter PORT( CLK : in std_logic; QA : out std_logic; QB : out std_logic; QC : out std_logic; QD : out std_logic ); END COMPONENT; コンポーネントの入出力の情報 COMPONENT Decode7Segment PORT( A, B, C, D : in std_logic; LED_A : out std_logic; LED_B : out std_logic; LED_C : out std_logic; LED_D : out std_logic; LED_E : out std_logic; LED_F : out std_logic; LED_G : out std_logic ); END COMPONENT; signal BC_A : std_logic; signal BC_B : std_logic; signal BC_C : std_logic; signal BC_D : std_logic; BEGIN counter1 : BCDCounter port map( CLK => BUTTON, QA => BC_A, QB => BC_B, QC => BC_C, QD => BC_D ); コンポーネント間を接続する為の信号の宣言 BCDCounter のエンティティ counter1 の入出力に ButtonCount の入出力を接続する 35

36 decoder1 : Decode7Segment port map( A => BC_A, B => BC_B, C => BC_C, D => BC_D, LED_A => BC_LED_A, LED_B => BC_LED_B, LED_C => BC_LED_C, LED_D => BC_LED_D, LED_E => BC_LED_E, LED_F => BC_LED_F, LED_G => BC_LED_G ); Decode7segment のエンティティ decoder1 の入出力に ButtonCount の入出力を接続する END rtl; ButtonCount_top.vhd 2 つの入力信号 BUTTON1, 2 を受け取り 2 つの 7segLED を点灯させるための信号 LED1A~G LED2A~G を出力する LED1A~G は電源投入後の BUTTON1 の立ち上がりの回数の下 1 桁の数値の形に 7segLED を点灯させるように変化し LED2A~G は BUTTON2 について同様に変化する これら 2 つの組み合わせは互いに独立に動作する ButtonCount_top ButtonCount bc1 ButtonCount bc1 図 3-25 ButtonCount_top の階層構造 36

37 LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_unsigned.ALL; パッケージの指定使用する CPLD 独自のヘッダの読み込み logic 変数を扱うためのヘッダの読み込み ENTITY ButtonCount_top IS PORT( BUTTON1 : in std_logic; LED1_A : out std_logic;... LED1_G : out std_logic; BUTTON2 : in std_logic; LED2_A : out std_logic;... LED2_G : out std_logic ); END ButtonCount_top; エンティティの定義 std_logic 型の入力 BUTTON1, 2 を受け取り LED1_A~LED1_G LED2_A~LED2_G を出力する ARCHITECTURE rtl of ButtonCount_top IS COMPONENT ButtonCount PORT( BUTTON : in std_logic; LED_A : out std_logic; LED_B : out std_logic; LED_C : out std_logic; LED_D : out std_logic; LED_E : out std_logic; LED_F : out std_logic; LED_G : out std_logic ); END COMPONENT; コンポーネント ButtonCount の入出力の情報 37

38 BEGIN bc1 : ButtonCount port map( BUTTON => BUTTON1, LED_A => LED1_A, LED_B => LED1_B, LED_C => LED1_C, LED_D => LED1_D, LED_E => LED1_E, LED_F => LED1_F, LED_G => LED1_G ); ButtonCount エンティティ bc1 の入出力に ButtonCount_top の入出力を接続する bc2 : ButtonCount port map( BUTTON => BUTTON2, LED_A => LED2_A, LED_B => LED2_B, LED_C => LED2_C, LED_D => LED2_D, LED_E => LED2_E, LED_F => LED2_F, LED_G => LED2_G ); END rtl; bc2 の入出力に ButtonCount_top の入出力を接続する 動作結果このプログラムを基板に書き込み動作を確認すると 電源投入時の状態は 7seg LED1, 2 ともに 0 でボタン 1, 2 を押すごとに 7segLED1, 2 の数字が 1 ずつ増えていき 9 になったとき 0 に戻るという動作をする この回路でも 22 個のロジックエレメントを使用したことがわかった 回路図で設計したときと使用ロジックエレメント数は同じだが これは回路図で設計したときに IC74160 に含まれている ENT, ENP, CLRN, RCO などの使用されていない機能がコンパイル時に再現されていないためだと思われる 38

39 4. ミニゲームの作成次に CPLD EPM240T100C の 76 の入出力をフルに活用するため 入力用に 5 つのボタン, 出力用に 10 個の 7segLED を搭載した基板を製作することにした 以降は図 4-1 の拡張情報表示部の 7segLED を LED0 メイン表示部のものを左上から右向きに LED1 ~ LED9 と呼ぶ また 5 つのボタンのうち中央のものを ボタン C 上下左右にあるものをそれぞれボタン U, D, L, R と呼ぶ ボタン 拡張情報表示部 メイン表示部 図 4-1 入出力インターフェイスの仕様 図 4-1 の入出力を使ってできるものを検討した結果 メイン表示部を使った 8 パズルと三目並べが候補に上がり 入力と出力の仕様と動作の具体的な手段について検討した結果 実装の見通しがついたのでこれらを製作することにした 今回設計する回路全体で (a) 入力スイッチとその周辺素子 ( 押しボタンスイッチ 抵抗 330Ω 2 セラミックコンデンサ ) が 5 セット (b) 出力用 LED とその周辺素子 (7segLED 抵抗 330Ω 7) が 10 セット (c) 電源系 ( トグルスイッチ LED 抵抗 330Ω セラミックコンデンサ) が 1 セット必要である しかし フリーウェア版の EAGLE で設計できる基板の最大サイズは mm であり その中にすべての素子を搭載することはできないので CPLD 用基板と表示 入力用の基板の 2 つに分けて設計し 予備を含めた 76 個の信号と 電源の種類をフラットケーブルで接続する方法にした そのため (a) の入力用スイッチに関わる構成部品すべてと (b) の 7segLED を表示 入力用の基板に搭載し 残りを CPLD 用基板に実装することにした 39

40 図 4-2 フラットケーブルによる 2 枚の基板の接続 4.1 CPLD 基板の製作この基板には 主に CPLD 基板との入出力 電源入力とその ON OFF の機能を持たせる また CPLD の信号と電源を 40 ピンケーブルを通じて表示 入出力用基板に渡す 表示 入力用の基板とつながる 2 つの 40 ピンコネクタには 7segLED への出力のために 70 個 ボタンからの入力のために 5 個の USREIO を接続した 7segLED に流れる電流を抑えるための抵抗はこの基板に搭載した 出力である USREIO07 は今回使用していないが 表示 入出力用基板に仕様変更があった場合を考慮して 抵抗を経由して CN3-8 に接続した 表示 入力用基板上の 7segLED は 5V スイッチは 3.3V の電圧を必要とするため 40 ピンコネクタの 1 箇所ずつに 0V 5V を 2 箇所に 3.3V を接続した 表 4-1 CPLD 用基板に使用した部品ダブルヘッダピン ( オス ) 20 ピン 2 10 ピン 1 8 ピン 1 ダブルヘッダピン ( メス ) 20 ピン 2 LED 1 セラミックコンデンサ (0.1μF) 1 抵抗 (330Ω) 72 トグルスイッチ 1 2 ピンコネクタ 1 メタルスペーサ 4 ナット EAGLE による回路の設計 ライブラリへの部品登録 40 ピンコネクタ CPLD 用基板と表示 入力用基板の接続に 40 ピンのケーブルを使用するため 40 ピンコネクタを作成した 40 ピンコネクタの 40 個の端子は 回路図上ではどれも等価であるため Symbol を 1 つだけ作成して Device 設計時にそれを 40 個入れて Package の Pad に対応させた 図 ピンコネクタの Symbol 図 ピンコネクタの Package(6 51mm) 40

41 回路図設計 図 4-5 回路設計 41

42 基板設計 GND や VCC が入る部品同士や 数が多い CPLD からの出力に当たる抵抗は配線のしやすさを考慮しながら配置した また 基板サイズの制限のため 抵抗を立てて実装することを前提として基板上の部品を選択した 図 4-6 基板設計 (98 78mm) 42

43 4.1.2 基板加工機による基板加工テスト基板の製作時と同様にして加工用のファイル drill, photo, frame を作成し基板加工機で片面基板を加工した 図 4-7 ドリルデータ 図 4-8 輪郭データ ハンダ付け抵抗と抵抗の幅が狭く 少しでもハンダを付けすぎてしまうと隣接する端子 配線がショートしてしまうため ショートがないことをテスターで確認しながら ハンダ付けを行った 図 4-9 CPLD 基板 ( 部品面 ) 図 4-10 CPLD 基板 ( ハンダ面 ) 4.2 表示 入力用基板の製作この基板にはミニゲームをする際に必要となる 10 個の LED, 5 個のボタンとその周辺素子を搭載する 入出力の信号は 40 ピンケーブルを通じて CPLD 用基板とやりとりする 7segLED の各セグメントに対して必要となる抵抗は CPLD 用基板側に置いたので 7segLED と 40 ピンコネクタは直接接続する 押しボタンスイッチの端子一つを VDD(3.3V) に接続し 押したときにその電位を信号として CPLD 基板に渡す 43

44 表 4-2 表示 入出力用基板に使用した部品 部品 個数 ダブルヘッダピン ( メス ) 20ピン 2 押しボタンスイッチ 5 7 セグメント LED 10 セラミックコンデンサ 5 抵抗 (330Ω) 10 メタルスペーサ (25mm) 4 ナット EAGLE による回路の設計 回路図設計 図 4-11 回路設計 44

45 基板設計素子が多く 配線が複雑になるため 部品面とハンダ面の両側を使って配線を行った 両面で配線を行う場合 部品面とハンダ面の配線数が同程度になるようにするのが普通であるが 後述するスルーホールの加工が人手を要すること 素子の近くの部品面のハンダ付けが難しいことから 可能な限りハンダ面で配線を行い 残りを部品面で配線した 図 4-12 の茶色が部品面 水色がハンダ面の配線である 図 4-12 基板設計 (98 78mm) 基板加工機による基板加工この基板には部品面にも配線データがあるため 加工データとして drill, photo0( ハンダ面 ), photo1( 部品面 ), frame を作成した 輪郭加工のための輪郭データは photo0, photo1 からそれぞれ抽出した 45

46 図 4-13 輪郭データ ( 部品面 ) 図 4-14 輪郭データ ( ハンダ面 ) 加工はドリルによる穿孔 部品面の輪郭加工 基板を裏返す ハンダ面の輪郭加工 基板外形加工の順で行ったが 基板を裏返す際に起こる角度や位置のずれを補正するため ドリル加工の前に基板の対角線上に基準穴を開け 裏返した後にそれらを使い位置合わせを行った この作業により 以降の加工で FLASH Win が自動的に位置 角度のずれを補正して加工を行う 基準穴 部品面の輪郭加工 ハンダ面の輪郭加工 図 4-15 位置 角度の補正 46

47 4.2.3 ハンダ付けこの基板を作るために使用した両面基板は 絶縁体である紙フェノールの表と裏の両側に銅箔が貼り付けられたものである ここで設計した両面基板には基板の両面にまたがる配線があるが 基板の部品面とハンダ面の間は紙フェノールで絶縁されているので そのままではこのような配線はスルーホールで途切れることになる そこでスルーホールに抵抗の足を切ったものを通して図 4-17 のように両面にハンダ付けをした その際 7segLED を先にハンダ付けしてしまうとスルーホールのハンダ付けができなくなるため こちらを先にハンダ付けした 銅箔 紙フェノール ハンダ 抵抗の足 図 4-16 基板の両面にまたがる配線 図 4-17 スルーホールでのハンダ付け 図 4-18 表示 入力用基板 ( 部品面 ) 図 4-19 表示 入力用基板 ( ハンダ面 ) 4.3 VHDL 言語による 8 パズル回路の作成 8 パズルとは 3 3 のマスに 1~8 の数字の書かれた駒があり 1 つの空白を利用してそれらを動かして数字が順に並ぶ状態をつくることを目的としたパズルである ここでは押しボタンと 7segLED を 47

48 入力 表示としたパズルができる回路を作成する 仕様メイン表示部で 8 パズルを行うために LED1~9 に 数字の 1~8 と空白一つを表示する ボタン U, D, L, R で空白部分がその方向に移動し その位置にあった数字が空白であった部分に移るものとする ボタン C はリセット用で これを押すと LED1~8 に数字の 1~8 が LED9 に空白が表示される状態 ( 完成状態 ) に戻る LED1~9 の数字がこの状態になったときのみ LED0 には完成を意味する 0 を表示し そうでない場合は未完成を意味する-を表示する メイン表示部に空白と 1~8 の数字を表示させるため それぞれの LED に対応する 4 ビットの std_logic_vector 型の変数 n1~n9 を定義する また LED0 には完成か否かの状態を表示させるために 2 通りの状態が必要になるので これに対応する 4 ビットの std_logic_vector 型の変数 n0 を定義し 0 か 11 を入れることで表示をコントロールする 表 パズルの LED 表示 変数の値 用途 表示 0~9 数字の表示 ~ 10 空白の表示 11 未完成を意味する記号 12~15 未使用 空白部分の移動にはボタン U, D, L, R を用いるが 状態のチェックは CLK の立ち上がりで行う ボタンが押されている状態が検出されるたびに空白の移動をするという仕様にすると クロックの立ち上がりのたびにイベントが起こってしまう そのため 1 つ前のクロックでのボタンの状態を変数に入れて記憶しておき ボタンが離された瞬間だけイベントが起こるようにした 状態を記憶するための変数はボタン一つあたり 0 か 1 の値を格納しなければならないため 5 ビットの std_logic_vector 型とした 48

49 表 4-4 入出力と変数の型 名前 型 意味 入力 btn0~btn4 std_logic ボタンの状態 CLK std_logic クロック 出力 LEDA~G std_logic_vector(3 downto 0); LED 表示用出力 変数 status std_logic_vector(4 downto 0); 一つ前のクロックでのボタンの状態 (0~4 番目のビットが btn0~btn4 に対応する ) 空白と上下左右のいずれかを交換したとき LED0 が完成の状態か否かの判定をさせるために変数 n1 ~n9 を受け取り それらが 1~8, 10 であれば 0 を返し そうでなければ 11 を返すファンクションを作 成した プロジェクトの構成クロックとボタンからの入力を受け取り ゲーム全体をコントロールする EightPuzzule 7seg デコーダの働きをする Decode7segment を作成し 前者を 1 つ, 後者を 10 個エンティティとして含む 6 入力 70 出力を持つ Controller を作成し その入出力を CPLD のピンに対応させた Controller ボタン EightPuzzle Decode7segment USERIO03 USERIO02 USERIO04 USERIO100 USERIO05 USERIO06 decoder0 USERIO98 USERIO96 LED0 へ USERIO08 USERIO97 USERIO01 puzzle USERIO99 Decode7segment USERIO51 USERIO53 decoder9 USERIO56 USERIO61 LED9 へ USERIO54 クロック USERIO52 USERIO62 USERIO55 図 4-20 階層構造を使った設計 49

50 puzzle.vhd 入力信号 btn0~4, CLK を受け取り 10 個の 4 桁の std_logic_vector 型の内部変数 n0~n9 を入力に応じて変化させ 40 個の信号 QA0~QD9 を出力する ここで QDkQCkQBkQAk は nk(k は 0~9) を 2 進数に変換したものに対応する また btn0~4 の状態のチェックは CLK の立ち上がりのタイミングでのみ行う LIBRARY IEEE, NEWLIB; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_unsigned.ALL; USE IEEE.std_logic_arith.ALL; USE NEWLIB.Check.all; パッケージの指定使用する CPLD 独自のヘッダの読み込み logic 変数を扱うためのヘッダの読み込み算術演算のためのヘッダの読み込み NEWLIB の読み込み ENTITY EightPuzzle IS PORT( CLK, btn0,btn1, btn2, btn3, btn4 : in std_logic; QA0, QB0, QC0, QD0 : out std_logic;... QA9, QB9, QC9, QD9 : out std_logic ); END EightPuzzle; ARCHITECTURE rtl of EightPuzzle IS signal n0 : std_logic_vector(3 downto 0);... signal n9 : std_logic_vector(3 downto 0); signal status : std_logic_vector(4 downto 0); BEGIN PROCESS(CLK, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9) variable v :integer ; BEGIN if rising_edge(clk) then if(n1=10)then v:=1; elsif(n2=10)then v:=2; else v:=9; end if; エンティティの定義 std_logic 型の入力 CLK, btn0~btn4 を受け取り QA0~QD9 を出力するアーキテクチャ 4bit の std_logic_vector 型の内部変数 n0~n9 と 5bit の std_logic_vector 型の内部変数 status の定義空白の位置を表す変数空白の位置を v に格納する 50

51 if(btn4 = '1' and status(4) = '0') then status(4) <= '1'; elsif (btn4 = '0' and status(4) = '1')then status(4) <= '0'; if (v = 1) then n1 <= n4; n4 <= CONV_STD_LOGIC_VECTOR(10, 4); end if;... end if; if(btn0 = '1' and status(0) = '0') then status(0) <= '1'; elsif (btn0 = '0' and status(0) = '1')then status(0) <= '0'; n1 <= CONV_STD_LOGIC_VECTOR(1, 4); n2 <= CONV_STD_LOGIC_VECTOR(2, 4); n3 <= CONV_STD_LOGIC_VECTOR(3, 4); n4 <= CONV_STD_LOGIC_VECTOR(4, 4); n5 <= CONV_STD_LOGIC_VECTOR(5, 4); n6 <= CONV_STD_LOGIC_VECTOR(6, 4); n7 <= CONV_STD_LOGIC_VECTOR(7, 4); n8 <= CONV_STD_LOGIC_VECTOR(8, 4); n9 <= CONV_STD_LOGIC_VECTOR(10, 4); end if; n0 <= check_done(n1, n2, n3, n4, n5, n6, n7, n8, n9); end if; END PROCESS; QA0 <= n0(0); QB0 <= n0(1); QC0 <= n0(2); QD0 <= n0(3);... QA9 <= n9(0); QB9 <= n9(1); QC9 <= n9(2); QD9 <= n9(3); end rtl; ボタン D を離したときの動作 v の値が 1~6 のいずれかである場合は その位置の変数と一つ下の位置の変数の値を交換する ボタン U, L, Rについても同様の処理をする ボタン C を離したときの動作 n1~n8 に 1~8, n9 に 10 の値を入れる ファンクション文 check_down の呼び出し出力 QA0~QD9 に n0~n9 のそれぞれを接続する 51

52 Decode7segment.vhd 4 つの入力信号 A~D を受け取り 2 進数 DCBA を 10 進数に変換した数値の形に 7segLED を点灯させるための 7 つの信号 LEDA~G を出力する 2 進数 DCBA の値が 9 以下ならそれを 10 進数に変換した数値を 11 なら を 10, 12~15 なら空白を表示するための信号を出力する Controller.vhd 入力信号 BUTTON0~4, CLOCK を受け取り 10 個の LED に数値や記号を表示させるための信号 LED0A~9G を出力する LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_unsigned.ALL; ENTITY Controller IS PORT( CLOCK : in std_logic; BUTTON0 : in std_logic;... BUTTON4 : in std_logic; LED_A0 : out std_logic; LED_B0 : out std_logic; LED_C0 : out std_logic; LED_D0 : out std_logic; LED_E0 : out std_logic; LED_F0 : out std_logic; LED_G0 : out std_logic;... LED_G9 : out std_logic ); END Controller; パッケージの指定使用する CPLD 独自のヘッダの読み込み logic 変数を扱うためのヘッダの読み込みエンティティの定義 std_logic 型の入力 CLOCK, BUTTON0 ~ BUTTON4 を受け取り LED_A0~LED_G9 を出力する 52

53 ARCHITECTURE rtl of Controller IS COMPONENT EightPuzzle PORT( CLK : in std_logic; btn0 : in std_logic;... btn4 : in std_logic; QA0, QB0, QC0, QD0 : out std_logic;... QA9, QB9, QC9, QD9 : out std_logic ); END COMPONENT; COMPONENT Decode7Segment PORT( A, B, C, D : in std_logic; LED_A : out std_logic;... LED_G : out std_logic ); END COMPONENT; signal A0, B0, C0, D0 : std_logic;... signal A9, B9, C9, D9 : std_logic; コンポーネント EightPuzzle の入出力の情報コンポーネント Decode7segment の入出力の情報コンポーネント間を接続する為の信号の宣言 BEGIN puzzle : EightPuzzle port map( CLK => CLOCK, btn0 => BUTTON0,... btn4 => BUTTON4, QA0 => A0, QB0 => B0, QC0 => C0, QD0 => D0,... EightPuzzle のエンティティ出力 CLK, btn0~btn4, QA0~,QD9 に CLOCK, BUTTON, A0~D9 を接続する 53

54 QA9 => A9, QB9 => B9, QC9 => C9, QD9 => D9 ); decoder0 : Decode7Segment port map( A => A0,... D => D0, LED_A => LED_A0,... LED_G => LED_G0 );... decoder9 : Decode7Segment port map( A => A9,... D => D9, LED_A => LED_A9,... LED_G => LED_G9 ); END rtl; Decode7Segment のエンティティ出力 A~D, LED_A~LED_G に A0~ D0 を接続する 54

55 check.vhd 8puzzle から n1~n9 の値を受け取り n1~n8 が 1~8, n9 が 10 なら 0 を std_logic_vector 型に変換したものを それ以外であれば 11 を変換したものを返す LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_unsigned.ALL; USE IEEE.std_logic_arith.ALL; package Check is function check_done( n1 : std_logic_vector;... n9 : std_logic_vector ) return std_logic_vector; end Check; パッケージの指定使用する CPLD 独自のヘッダの読み込み logic 変数を扱うためのヘッダの読み込み算術演算のためのヘッダの読み込みパッケージの宣言 std_logic_vector 型の引数 n1~n9 を受け取る std_logic_vector 型の戻り値を返す package body Check is function check_done( n1 : std_logic_vector;... n9 : std_logic_vector ) return std_logic_vector is begin if(n1 = 1 and n2 = 2 and n3 = 3 and n4 = 4 and n5 = 5 and n6 = 6 and n7 = 7 and n8 = 8 and n9 = 10)then return CONV_STD_LOGIC_VECTOR(0, 4); else return CONV_STD_LOGIC_VECTOR(11, 4); end if; end; end Check; 完成の判定 n1~n8 に 1~8, n9 に 10 があった場合は 0 を それ以外は 11 を返す 動作結果これらを含んだプロジェクトをコンパイルして CPLD に書き込んだ 使用したロジックエレメントは 240 個であった ボタンによる U, D, L, R による空白部分の移動 ボタン C によるリセット LED0 の完成 未完成状態表示が確認できた しかしかなり頻繁に誤動作がおこり 通常ではありえない数字の配置がおこるなどの問題が残った 55

56 未完成状態なので拡張情報表示部の LED0 に対応する変数 n0 の値は 11 である ボタン D を押すと n5 と n8 の値を交換する ボタン R を押すと n8 と n9 の値を交換する 完成したので n0 の値は 0 になる 図 パズルの動作例 56

57 4.4 VHDL 言語による三目並べ回路の作成三目並べとは 3 3 のマスに と の記号を交代で置いていき 自分の記号を縦, 横, 斜めのいずれかに先に 3 つ揃えることを目的としたゲームである ここでは押しボタンと 7segLED を入力 表示としたゲームができる回路を作成する 仕様メイン表示部で三目並べを行うためには LED1~9 で,, 空白と カーソルの有無を識別できるようにしなければならない そこで 表 4-5 の様に 6 通りの状態を作る また 拡張情報表示部には現在 どちらのターンであるかを識別するために現在のプレイヤーのターンの記号を表示する ボタン U, D, L, R を用いてカーソルを移動し ボタン C を押したときにカーソルがある位置に か の記号がまだ入力されていなければ 現在のターンのプレイヤーの記号を入力する ボタン U, D を同時に押すとすべてのマスの記号を消去し カーソルを中央に戻す メイン表示部に表 4-5 の 6 通りの状態を表示させるため それぞれの LED に対応する 3 ビットの std_logic_vector 型の変数 n1~n9 を定義する また LED0 においても 1, 2 の 2 通りの数値を使い表示をコントロールする必要があるので 対応する変数 n0 にも 3 ビットの std_logic_vector 型のものを用いる 表 4-5 三目並べの LED 表示変数の値状態表示 0 空白 カーソル + 空白 4 カーソル + 5 カーソル + 6, 7 未使用 57

58 4.4.2 プロジェクトの構成クロックとボタンからの入力を受け取り ゲーム全体をコントロールする CircleCross 7seg デコーダの働きをする Decode7segment を作成し 前者を 1 つ, 後者を 10 個エンティティとして含む 6 入力 70 出力を持つ Controller を作成し その入出力を CPLD のピンに対応させる Controller ボタン CircleCross Decode7segment USERIO03 USERIO02 USERIO04 USERIO100 USERIO05 USERIO06 decoder0 USERIO98 USERIO96 LED0 へ USERIO08 USERIO97 USERIO01 puzzle USERIO99 Decode7segment USERIO51 USERIO53 decoder9 USERIO56 USERIO61 LED9 へ USERIO54 クロック USERIO52 USERIO62 USERIO55 図 4-22 階層構造を使った設計 58

59 CircleCross.vhd 入力信号 btn0~4, CLK を受け取り 3 桁の std_logic_vector 型の 10 個の内部変数 n0~n9 を入力に応じて変化させ 40 個の信号 QA0~QC9 を出力する ここで QCkQBkQAk は nk(k は 0~9) を 2 進数に変換したものに対応する LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_unsigned.ALL; USE IEEE.std_logic_arith.ALL; パッケージの指定使用する CPLD 独自のヘッダの読み込み logic 変数を扱うためのヘッダの読み込み算術演算のためのヘッダの読み込み ENTITY CircleCross IS PORT( CLK, btn0, btn1, btn2, btn3, btn4 : in std_logic; QA0, QB0, QC0 : out std_logic;... QA9, QB9, QC9 : out std_logic ); ARCHITECTURE rtl of CircleCross IS signal n0 : std_logic_vector(2 downto 0);... signal n9 : std_logic_vector(2 downto 0); signal status : std_logic_vector(4 downto 0); signal turn : std_logic; BEGIN PROCESS(CLK, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, status, turn) BEGIN if (CLK'event and CLK='1') then if(btn4 = '1' and status(4) = '0') then status(4) <= '1'; elsif (btn4 = '0' and status(4) = '1')then status(4) <= '0'; if(n1 >= 3) then n1 <= n1-3; n4<= n4+3; end if;... end if; エンティティの定義 std_logic 型の入力 CLK, btn0~ btn4 を受け取り QA0~QC9 を 出力する アーキテクチャ 3bit の std_logic_vector 型の内部変数 n0~n9 と 5bit の std_logic_vector 型の内部変数 status の定義ボタン D を離したときの動作 n1~n6 にカーソルがあった場合 一つ下に移動する 59

60 if(btn0 = '1' and status(0) = '0') then status(0) <= '1'; elsif (btn0 = '0' and status(0) = '1')then status(0) <= '0'; if(n1 = 3) then n1<=conv_std_logic_vector(4,3) +CONV_STD_LOGIC_VECTOR(turn, 3); turn <= not (turn); end if;... end if; if(btn4 ='1' and btn3 ='0' and btn2 ='0' and btn1 ='1' and btn0 ='0') then status <= "00000"; n1 <= CONV_STD_LOGIC_VECTOR(0, 3); n2 <= CONV_STD_LOGIC_VECTOR(0, 3); n3 <= CONV_STD_LOGIC_VECTOR(0, 3); n4 <= CONV_STD_LOGIC_VECTOR(0, 3); n5 <= CONV_STD_LOGIC_VECTOR(3, 3); n6 <= CONV_STD_LOGIC_VECTOR(0, 3); n7 <= CONV_STD_LOGIC_VECTOR(0, 3); n8 <= CONV_STD_LOGIC_VECTOR(0, 3); n9 <= CONV_STD_LOGIC_VECTOR(0, 3); turn <= '0'; end if; n0<=conv_std_logic_vector(1,3)+ CONV_STD_LOGIC_VECTOR(turn, 3); end if; END PROCESS; ボタン U, L, R についても同様の処理をする ボタン C を離したときの動作カーソルが空白にある場合は現在のターンの記号をその位置に配置しターンを変更する リセット (U, D ボタン同時押し ) n1~n4, n6~n9 に 0 n5 に 3 の値を入れる n0 に turn+1 の値を入れる QA0 <= n0(0); QB0 <= n0(1); QC0 <= n0(2);... QA9 <= n9(0); QB9 <= n9(1); QC9 <= n9(2); end rtl; 出力 QA0~QC9 に n0~ n9 のそれぞれのビットの値を書き込む 60

61 Decode7segment.vhd 3 つの入力信号 A~C を受け取り 2 進数 CBA を 10 進数に変換した値に対応する表 4-5 の記号の形に 7segLED を点灯させるための 7 つの信号 LEDA~G を出力する Controller.vhd 入力信号 BUTTON0~4, CLOCK を受け取り 10 個の LED に記号を表示させるための信号 LED0A~ 9G を出力する 動作結果これらを含んだプロジェクトをコンパイルして CPLD に書き込んだ 使用したロジックエレメントは 215 個であった ボタン U, D, L, R によるカーソルの移動 ボタン C による現在のプレイヤーのターンの記号の配置 ボタン U, D 同時押しによるリセット LED0 の現在のプレイヤーのターンの表示が確認できた しかし 8 パズル同様かなり頻繁に誤動作がおこり カーソルが無くなるなどの問題が残った 61

62 のターンなので拡張情報表示部の LED0 に を表示するため対応する変数 n0 の値は 1 になる ボタン C を押すと カーソルの位置に が配置されターンが に変わる のターンなので LED0 には が表示される LED5 では とカーソルが重なっているので このような表示になる ボタン U を押すと上に ボタン R を押すと右にカーソルが移動する ボタン C を押すと カーソルの位置に が配置されターンが に変わる LED3 は とカーソルが重なっているので このような表示になる ボタン L を押すとカーソルが左に移動する 図 4-23 三目並べの動作例 62

63 5. 問題点とその解決法 5.1 ハードウェア 1. 設計段階の配線ミス図 3-17 のテスト基板 ( 裏側 ) では 回路図設計で接続すべき DIP スイッチと VCC の間の配線が抜けた状態のデータを元に基板加工機で基板を作成してしまったため 抵抗の足を利用して基板の裏側にパイパス配線を作成した 2. コネクタの不適合使用したオス メスのダブルヘッダピンはペアで購入したものではなかったため 図 5-1 の様に正しくかみ合わず接触が悪かった そこで ハンダごてでメス側のコネクタの突起を熔かし正しく接触するようにした ハンダごてで熔かした際に 熔けたプラスチックが隣の穴を塞ぐことがあったが その部分をヤスリで削り穴を露出させた フラットケーブル 40 ピンコネクタ ( オス ) ピン 40 ピンコネクタ ( メス ) 基板 図 5-1 コネクタの加工 3. ハンダ不良ハンダの不足による接触不良のため 7segLED に点灯しないセグメントがあった この問題は不足部分にハンダを追加することで一部解決した 4. 素子の不良ハンダの修正によっても正しい動作が得られない部分があったため 外部から抵抗を通して電流を流しても点灯しなかったため この不具合は素子の不良によるものであることが分かった 部品を交換することでこの問題は解決した 使用する素子に不良品が混入していないかのチェックを事前に行うべきであるとの教訓が得られた 5. 高電圧による CPLD 基板の焼損 CPLD に誤って 9V の電圧をかけてしまい QuartusⅡが CPLD を認識しなくなった そのため新たにこの付録を含むトランジスタ技術を購入しなければならなくなり 研究が遅れた 今回はそのまま CPLD 基板を入れ替えて対応したが 対策としては確実に 5V の入力が保証される AC アダプタからの入力に対応した基板を設計するという方法も考えられる 63

64 5.2 ソフトウェア 1. クロックイベントの利用 CPLD 基板に搭載した水晶発信器からの信号をもう一つの入力として使用し その立ち上がりのイベントでボタンの状態を調べ 変数にその値を格納して それらを比較することでボタンが離された瞬間に数値の交換を行う形にした これは誤動作の問題は残るものの 一応は正しく動作した 2. ロジックエレメントの不足三目並べで勝敗が決定したことが確認できるように 拡張情報表示部に勝敗が決定したときは勝者側の記号を 未定のときはと現在のターンのプレイヤーの記号を表示させるプログラムを作成した 文法的なエラーなしに目的とした出力を出すはずのものが書けたが 回路を構成するロジックエレメント数は 340 となり 使用した CPLD の使用可能なロジックエレメントの最大数である 240 を大きく超えてしまった そこで拡張情報表示部の機能を現在のターンのプレイヤーの記号の表示のみに限定したところ 使用ロジックエレメント数は 215 となり 動作が確認できた 3. 誤動作 8 パズルの動作で ボタンを押した際に値が交換されずに同じ数が現れるという現象が起きた 表 5-1 の方法に加えてさらに 2 通りの方法を試したがいずれも解決には至らなかった 4.3 で紹介したソ ースコードは方法 4 のものである 表 5-1 試した方法 A B C D 方法 1 方法 3 方法 5 E 方法 2 方法 4 方法 6 A) クロックの立ち上がりが発生したときに ボタンが押されている場合に値の交換を行う B) クロックの立ち上がりが発生したときにボタンが離されており 直前のクロックではボタンが押されていた場合に値の交換を行う C) ボタンを押したときに値の交換を行う D) LED の表示に相当する変数の値を調べ 空白にあたる数値のある位置の変数と隣接する数値を交換する E) 空白の位置にあたる変数を用いて その値の示す位置の変数と隣接する数値を交換する 方法 1 使用ロジックエレメント数は 230 個だった 1 秒間に 100 万回起こるクロックの入力があるたびに値の交換がされるので四隅にしか空白が行かない動作になった 64

65 ボタン U ボタン L 図 5-2 方法 1 の動作 方法 2 使用ロジックエレメント数が 284 個だったため CPLD に書き込むことができなかった 方法 3 使用ロジックエレメント数は 222 個だった 空白の状態が二つになる 同じ数字が現れるなどの誤動作がたびたび起こった 方法 4 使用ロジックエレメント数は 240 個だった 方法 3 と同様の誤動作は起こるが この方法の方が起こる頻度が少なかった 方法 5 使用ロジックエレメント数は 238 個だった 方向ボタンを押すと常に空白の状態が無くなり 数字が重複して現れるという動作になった 図 5-3 方法 5 の動作 方法 6 使用ロジックエレメント数が 257 個だったため CPLD に書き込むことができなかった 方法 7 クロックのカウント数にあたる変数 count を導入し ボタン入力がある度に count を 0 にし count が一定値 (2.5 秒 ) 未満の時は他の入力を受け付けないようにしたが すべてのボタンについての処理を実装した場合はロジックエレメント不足で書き込みができなかった また 一部だけの機能を実装した場合も count のループ値 (5 秒 ) を周期として 2.5 秒毎に入力を連続的に受け付ける状態とまったく受け付けない状態が繰り返された 65

66 方法 8 空白を置くべき位置に相当する変数 p を導入し クロックの立ち上がりで方向のボタンが押されていたら空白が移動するべき位置を p に格納し そこの変数を空白のある位置の変数をコピーする 立ち上がりですべてのボタンが離されていたら p の位置に相当する変数に空白の値を入れる ボタン U 押下 ボタン U 離す 図 5-4 方法 8 の動作この方法でも一通りは動作したが 数発的に誤動作が見られた 6. まとめ本研究において CPLD を使用したミニゲームのための基板を設計して製作し VHDL で制作したプログラムを書き込むことで 複数のミニゲームの動作をさせることができた しかし 今回使用した CPLD 基板の最大ロジックエレメントの数は 240 と少なく それを越えないようにするために回路を単純化しなければならなかった そのため無駄な変数を減らす 入力や出力の信号を必要最低限に抑えるなどの工夫をし 使用したロジックエレメントの数をできる限り節約した 組み込みプログラムでは限られた数で効率よく回路を使わなければならないということを学んだ VHDL 言語は今回初めて使ったため 単純なプログラムを理解するのも時間がかかった しかし使っていくうちに書式, 変数の種類や型を覚えたため今回のような動作プログラムを組むことができた CPLD 基板のロジックエレメントがもう少し多ければもっと良いものができたと思うので少し残念ではあるが VHDL 言語の知識を少しでも身につけることができたことは大きな収穫であった 参考文献 1. トランジスタ技術 2006 年 4 月号 CQ 出版社 ALTERA 社 VHDL によるハードウェア設計入門長谷川裕恭著 CQ 出版社 電気通信大学電子工学科電子工学実験 5. 電子工作の実験室 6.HDL 設計入門 66

Microsoft Word - 実験4_FPGA実験2_2015

Microsoft Word - 実験4_FPGA実験2_2015 FPGA の実験 Ⅱ 1. 目的 (1)FPGA を用いて組合せ回路や順序回路を設計する方法を理解する (2) スイッチや表示器の動作を理解し 入出力信号を正しく扱う 2. スケジュール項目 FPGAの実験 Ⅱ( その1) FPGAの実験 Ⅱ( その2) FPGAの実験 Ⅱ( その3) FPGAの実験 Ⅱ( その4) FPGAの実験 Ⅱ( その5) FPGAの実験 Ⅱ( その6) FPGAの実験 Ⅱ(

More information

Microsoft PowerPoint LC_15.ppt

Microsoft PowerPoint LC_15.ppt ( 第 15 回 ) 鹿間信介摂南大学理工学部電気電子工学科 特別講義 : 言語を使った設計 (2) 2.1 HDL 設計入門 2.2 FPGA ボードの設計デモ配布資料 VHDL の言語構造と基本文法 2.1 HDL 設計入門 EDAツール : メンター社製品が有名 FPGAベンダーのSW 1 1 仕様設計 にも簡易機能あり 2 3 2 HDLコード記述 3 論理シミュレーション 4 4 論理合成

More information

Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用]

Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用] 2007.11.12 集積回路工学 Matsuzawa Lab 1 集積回路工学 東京工業大学 大学院理工学研究科 電子物理工学専攻 2007.11.12 集積回路工学 Matsuzawa Lab 2 1. 1. ハードウェア記述言語 (VHDL で回路を設計 ) HDL 設計の手順や基本用語を学ぶ RTL とは? Register Transfer Level レジスタ間の転送関係を表現したレベル慣例的に以下のことを行う

More information

- VHDL 演習 ( 組み合せ論理回路 ) 回路 半加算器 (half adder,fig.-) 全加算器を構成する要素である半加算器を作成する i) リスト - のコードを理解してから, コンパイル, ダウンロードする ii) 実験基板上のスイッチ W, が, の入力,LED, が, の出力とな

- VHDL 演習 ( 組み合せ論理回路 ) 回路 半加算器 (half adder,fig.-) 全加算器を構成する要素である半加算器を作成する i) リスト - のコードを理解してから, コンパイル, ダウンロードする ii) 実験基板上のスイッチ W, が, の入力,LED, が, の出力とな 第 回 VHDL 演習組み合せ論理回路 VHDL に関する演習を行う 今回は, 組み合せ論理回路の記述について学ぶ - 論理回路の VHDL 記述の基本 同時処理文を並べることで記述できる 部品の接続関係を記述 順番は関係ない process 文の内部では, 順次処理文を使う process 文 つで, つの同時処理文になる順次処理文は, 回路の動作を 逐次処理的 に ( 手続き処理型プログラム言語のように

More information

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ 第 4 回 VHDL 演習 2 プロセス文とステートマシン プロセス文を用いるステートマシンの記述について学ぶ 回路 6 バイナリカウンタ (Fig.4-1) バイナリカウンタを設計し, クロック信号に同期して動作する同期式回路の動作を学ぶ ⅰ) リスト 4-1 のコードを理解してから, コンパイル, ダウンロードする ⅱ) 実験基板上のディップスイッチを用いて, 発生するクロック周波数を 1Hz

More information

if clear = 1 then Q <= " "; elsif we = 1 then Q <= D; end rtl; regs.vhdl clk 0 1 rst clear we Write Enable we 1 we 0 if clk 1 Q if rst =

if clear = 1 then Q <=  ; elsif we = 1 then Q <= D; end rtl; regs.vhdl clk 0 1 rst clear we Write Enable we 1 we 0 if clk 1 Q if rst = VHDL 2 1 VHDL 1 VHDL FPGA VHDL 2 HDL VHDL 2.1 D 1 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; regs.vhdl entity regs is clk, rst : in std_logic; clear : in std_logic; we

More information

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ arduino プログラミング課題集 ( Ver.5.0 2017/06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイコンから伝える 外部装置の状態をマイコンで確認する 信号の授受は 入出力ポート 経由で行う (2) 入出力ポートとは?

More information

エンティティ : インタフェースを定義 entity HLFDD is port (, : in std_logic ;, : out std_logic ) ; end HLFDD ; アーキテクチャ : エンティティの実現 architecture RH1 of HLFDD is <= xor

エンティティ : インタフェースを定義 entity HLFDD is port (, : in std_logic ;, : out std_logic ) ; end HLFDD ; アーキテクチャ : エンティティの実現 architecture RH1 of HLFDD is <= xor VHDL を使った PLD 設計のすすめ PLD 利用のメリット 小型化 高集積化 回路の修正が容易 VHDL 設計のメリット 汎用の設計になる ( どこのデバイスにも搭載可能 ) 1/16 2001/7/13 大久保弘崇 http://www.aichi-pu.ac.jp/ist/~ohkubo/ 2/16 設計の再利用が促進 MIL 記号の D での設計との比較 Verilog-HDL などでも別に同じ

More information

論理設計の基礎

論理設計の基礎 . ( ) IC (Programmable Logic Device, PLD) VHDL 2. IC PLD 2.. PLD PLD PLD SIC PLD PLD CPLD(Complex PLD) FPG(Field Programmable Gate rray) 2.2. PLD PLD PLD I/O I/O : PLD D PLD Cp D / Q 3. VHDL 3.. HDL (Hardware

More information

VHDL

VHDL VHDL 1030192 15 2 10 1 1 2 2 2.1 2 2.2 5 2.3 11 2.3.1 12 2.3.2 12 2.4 12 2.4.1 12 2.4.2 13 2.5 13 2.5.1 13 2.5.2 14 2.6 15 2.6.1 15 2.6.2 16 3 IC 17 3.1 IC 17 3.2 T T L 17 3.3 C M O S 20 3.4 21 i 3.5 21

More information

TWE-Lite R 取扱説明書

TWE-Lite R 取扱説明書 USB アダプター TWE-Lite R( トワイ ライター ) TWE-Lite R( トワイ ライター ) は TWE-Lite DIP( トワイライト ディップ ) にソフトウエアを書き込むためのライターです USB 接続でパソコンから TWE-Lite DIP 内蔵のフラッシュメモリーにソフトウエアを転送することができます ソフトウエアを更新し機能追加することや 他のソフトウエアや自作ソフトウエアを書き込むことができます

More information

1 1 2 2 2-1 2 2-2 4 2-3 11 2-4 12 2-5 14 3 16 3-1 16 3-2 18 3-3 22 4 35 4-1 VHDL 35 4-2 VHDL 37 4-3 VHDL 37 4-3-1 37 4-3-2 42 i

1 1 2 2 2-1 2 2-2 4 2-3 11 2-4 12 2-5 14 3 16 3-1 16 3-2 18 3-3 22 4 35 4-1 VHDL 35 4-2 VHDL 37 4-3 VHDL 37 4-3-1 37 4-3-2 42 i 1030195 15 2 10 1 1 2 2 2-1 2 2-2 4 2-3 11 2-4 12 2-5 14 3 16 3-1 16 3-2 18 3-3 22 4 35 4-1 VHDL 35 4-2 VHDL 37 4-3 VHDL 37 4-3-1 37 4-3-2 42 i 4-3-3 47 5 52 53 54 55 ii 1 VHDL IC VHDL 5 2 3 IC 4 5 1 2

More information

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE 差し替え版 第 7 回マイクロプロセッサの VHDL 記述 マイクロプロセッサ全体および主要な内部ユニットの,VHDL 記述の例を示す. 1)MPU(Micro Processor Uit) Module 1MPU のエンティティ記述とコントローラの例以下は, 簡単な MPU の VHDL 記述の例である ただし, アーキテクチャ部分は, 命令読み込みと実行の状態遷移のみを実現したステートマシンである

More information

<91E63589F161>

<91E63589F161> ハードウェア実験 組み込みシステム入門第 5 回 2010 年 10 月 21 日 順序論理回路の実験 前回予告した今回の内容 次回も IC トレーナを使って 順序論理回路についての実験を行います 内部に 状態 を持つ場合の動作記述について 理解します 個々の IC を接続し SW 入力と LED の点灯表示とで論理回路としての動作を検証します それぞれの IC( 回路素子 ) ごとに真理値表を作成します

More information

VelilogHDL 回路を「言語」で記述する

VelilogHDL 回路を「言語」で記述する 2. ソースを書く 数値表現 数値表現形式 : ss'fnn...n ss は, 定数のビット幅を 10 進数で表します f は, 基数を表します b が 2 進,o が 8 進,d が 10 進,h が 16 進 nn...n は, 定数値を表します 各基数で許される値を書くこ Verilog ビット幅 基数 2 進表現 1'b0 1 2 進 0 4'b0100 4 2 進 0100 4'd4 4

More information

(Microsoft Word - \214\264\215e B_\217\221\202\253\215\236\202\335\225\224.docx)

(Microsoft Word - \214\264\215e B_\217\221\202\253\215\236\202\335\225\224.docx) トランジスタ技術 2009 年 3 月号特集気軽にはじめる FPGA 第 5 章マルチチャネル信号発生器信号発生器の製作 ~はんだ付け不要ロジックの自在さを生かす~ ISE WebPACK を使って FPGA にソースを書き込むまでの手順 坂本三直 プロジェクトプロジェクトの新規生成 / 読み込み : CQ 出版社の HP より本スタータキット用のプロジェクトをダウンロードしてください. パソコン上にコピーできたら,Xilinx

More information

Quartus II クイック・スタートガイド

Quartus II クイック・スタートガイド ALTIMA Corp. Quartus II クイック スタートガイド ver.3.0 2010 年 8 月 ELSENA,Inc. 目次 1. はじめに... 3 2. Quartus II の基本操作フロー... 3 3. Quartus II の基本操作... 4 ステップ 1. プロジェクトの作成... 4 ステップ 2. デザインの作成... 4 ステップ 3. ファンクション シミュレーション...

More information

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 COM ポート : 非同期シリアル通信 ) を使用して SD カードのアクセスを試験することができます

More information

Microsoft Word - PIC-USBマイコンボード_v1-02@WEB公開用資料.docx

Microsoft Word - PIC-USBマイコンボード_v1-02@WEB公開用資料.docx PIC-USB マイコンボード C 言語による PIC プログラミング入門 ( 浅川毅著 ) にて使用しているマイコンボードです プログラム ファームウェア 基板単体 パーツ類 URL1 より全てダウンロード可能 URL2 より購入可能 URL2 または電子パーツ店より購入可能 URL1 ソースファイルほか http://www.tdupress.jp/download/robot-mpu/isbn978-4-501-55350-0-2.html

More information

問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN

問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN 第 8 回中間試験前の演習 問.VHDL ソースコードを読む () 次の VHDL のソースコードが記述しているゲート回路の回路図を示せ. use IEEE.STD_LOGIC_64.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Logic is port ( A : in std_logic_vector(3

More information

TULを用いたVisual ScalerとTDCの開発

TULを用いたVisual ScalerとTDCの開発 TUL を用いた Visual Scaler と TDC の開発 2009/3/23 原子核物理 4 年 永尾翔 目次 目的と内容 開発環境 J-Lab におけるハイパー核分光 Visual Scaler TDC まとめ & 今後 目的と内容 目的 TUL, QuartusⅡ を用いて実験におけるトリガーを組めるようになる Digital Logic を組んでみる 内容 特徴 TUL,QuartusⅡ

More information

Microsoft PowerPoint pptx

Microsoft PowerPoint pptx 3.2 スイッチングの方法 1 電源の回路図表記 電源ラインの記号 GND ラインの記号 シミュレーションしない場合は 省略してよい ポイント : 実際には V CC と GND 配線が必要だが 線を描かないですっきりした表記にする 複数の電源電圧を使用する回路もあるので 電源ラインには V CC などのラベルを付ける 2 LED のスイッチング回路 LED の明るさを MCU( マイコン ) で制御する回路

More information

PowerPoint Presentation

PowerPoint Presentation マイコンシステム 第 12 回 青森大学ソフトウェア情報学部 橋本恭能 haship@aomori-u.ac.jp 目次 講義 内部設計 3 Deviceタブ Actionタブの関数実装 例題 定義した機能を実現する方法を検討する 課題 動作確認 2 講義 内部設計 3 残りの関数を実装 3 組込みシステム開発 週テーマ内容 7 キッチンタイマーの組立キッチンタイマーのハードを製作 確認 8 9 10

More information

ModelSim-Altera - RTL シミュレーションの方法

ModelSim-Altera - RTL シミュレーションの方法 ALTIMA Corp. ModelSim-Altera RTL シミュレーションの方法 ver.15.1 2016 年 5 月 Rev.1 ELSENA,Inc. 目次 1. 2. 3. はじめに...3 RTL シミュレーションの手順...4 RTL シミュレーションの実施...5 3-1. 3-2. 新規プロジェクトの作成... 5 ファイルの作成と登録... 7 3-2-1. 新規ファイルの作成...

More information

AKI-PIC16F877A開発キット (Ver1

AKI-PIC16F877A開発キット (Ver1 STM32F101C8T6 STM32F103CxT6 マイコンキット仕様書 (Ver2012.05.11) この文書の情報は事前の通知なく変更されることがあります 本開発キットを使用したことによる 損害 損失については一切の責任を負いかねます 製造上の不良がございましたら 良品とお取替えいたします それ以外の責についてご容赦ください 変更履歴 Version Ver2012.05.08 新規 Ver2012.05.11

More information

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

改訂履歴 改訂日付 改訂内容 2014/11/01 初版発行 2017/01/16 Studuino web サイトリニューアルに伴う改訂 2017/04/14 Studuino web サイトリニューアルに伴うアクセス方法の説明変更 2018/01/22 Mac 版インストール手順変更に伴う改訂

改訂履歴 改訂日付 改訂内容 2014/11/01 初版発行 2017/01/16 Studuino web サイトリニューアルに伴う改訂 2017/04/14 Studuino web サイトリニューアルに伴うアクセス方法の説明変更 2018/01/22 Mac 版インストール手順変更に伴う改訂 Arduino IDE 環境 設定手順書 Windows/Mac 用 2014/11/01 作成 2018/01/22 改訂 改訂履歴 改訂日付 改訂内容 2014/11/01 初版発行 2017/01/16 Studuino web サイトリニューアルに伴う改訂 2017/04/14 Studuino web サイトリニューアルに伴うアクセス方法の説明変更 2018/01/22 Mac 版インストール手順変更に伴う改訂

More information

ReTRY HUB

ReTRY HUB USB デバイス接続制御アダプター ReTRY HUB 型番 CT USB4HUB 設定ソフト Ver1.0 版 マニュアル http://www.centech.jp 2017/04/21 製品仕様 商品名 型番 ReTRY HUB CT USB4HUB サイズ 縦 75mm x 横 120mm x 高さ15mm( 突起部含まず ) 重量 約 230g( 本体のみ ) 消費電流 12V 30mA(

More information

Microsoft Word - Ladder Tool 使çfl¨ã…žã…‰ã…¥ã‡¢ã…«ã…©ã…•ã…¼ã†ªã†Š_ docx

Microsoft Word - Ladder Tool 使çfl¨ã…žã…‰ã…¥ã‡¢ã…«ã…©ã…•ã…¼ã†ªã†Š_ docx 2018/11/05 第 1 版 Ladder Tool 使用マニュアル 1. はじめに LadderTool は ラダーからマイコンプログラムを作成する 連枝 を改良し作成された ラダープログラム作成ツールです 作成したプログラムは DIPPLC で動作するニーモニッ クで保存されます そのため 通常使用する場合は DIPPLC をご用意ください 2. 使い方 ソフトウェアのフォルダ内にある LadderTool

More information

Quartus II はじめてガイド - プロジェクトの作成方法

Quartus II はじめてガイド - プロジェクトの作成方法 - Quartus II はじめてガイド - プロジェクトの作成方法 ver. 9.0 2009 年 5 月 1. はじめに Quartus II はユーザ デザインをプロジェクトで管理します プロジェクトは デザインのコンパイルに必要なすべてのデザイン ファイル 設定ファイルおよびその他のファイルで構成されます そのため開発を始めるには まずプロジェクトを作成する必要があります この資料では Quartus

More information

C#の基本

C#の基本 C# の基本 ~ 開発環境の使い方 ~ C# とは プログラミング言語のひとつであり C C++ Java 等に並ぶ代表的な言語の一つである 容易に GUI( グラフィックやボタンとの連携ができる ) プログラミングが可能である メモリ管理等の煩雑な操作が必要なく 比較的初心者向きの言語である C# の利点 C C++ に比べて メモリ管理が必要ない GUIが作りやすい Javaに比べて コードの制限が少ない

More information

デジタル回路入門

デジタル回路入門 Open-It FPGA トレーニングコース ( 初級編 ) 第 9 版 2. 組み合わせ回路入門 2.2. 実習 Verilog-HDL 記述 2013 年 5 月 10 日修正 デジタル回路の構成要素 O=A&B; O=~I; INV O=A B; 全てのデジタル回路はこの 4 つの要素 ( 回路 ) のみで構成されている 4 要素の HDL 記述を知っていれば最低限の知識としては十分 2 HDL:

More information

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x CoIDE 用 F4D_VCP の説明 V001 2014/07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x08000000 です デバッグが可能です 目次 1. USB の VCP( 仮想 COM ポート )

More information

Quartus Prime はじめてガイド - デバイス・プログラミングの方法

Quartus Prime はじめてガイド - デバイス・プログラミングの方法 ALTIMA Corp. Quartus Prime はじめてガイドデバイス プログラミングの方法 ver.15.1 2016 年 3 月 Rev.1 ELSENA,Inc. Quartus Prime はじめてガイド デバイス プログラミングの方法 目次 1. 2. 3. 4. はじめに...3 プログラミング方法...5 Auto Detect 機能...14 ISP CLAMP 機能...17

More information

1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください 1.1. MFS

1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください 1.1. MFS スプリット演算器 MFS2 用コンフィギュレータソフトウェア MFS2CFG バージョン 0.02 取扱説明書 1/10 NM-9307 改 2 1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください

More information

HW-Slides-05.ppt

HW-Slides-05.ppt ハードウェア実験 組み込みシステム入門第 5 回 2012 年 10 月 18 日 順序論理回路の実験 このスライドの ゲートの動作記述の部分は 藤井先生のスライドから多くをいただいています 藤井先生に慎んでお礼申し上げます 2 今日の内容! 以下の論理回路を動作させる 1. D フリップフロップ回路 2. 4 進カウンタ回路 ( 同期式 ) 3. 10 進カウンタ回路! シフトレジスタを作成して

More information

計数工学実験/システム情報工学実験第一 「ディジタル回路の基礎」

計数工学実験/システム情報工学実験第一 「ディジタル回路の基礎」 計数工学実験 / システム情報工学実験第一 ディジタル回路の基礎 ( 全 3 回 ) システム 8 研 三輪忍 参考資料 五島正裕 : ディジタル回路 ( 科目コード 400060) 講義資料 ( ググれば出てくる ) 高木直史 : 論理回路, 昭晃堂 Altera: Cyclone II FPGA スターター開発ボードリファレンス マニュアル Altera: Introduction to Quartus

More information

(Microsoft PowerPoint - TINA_Creating_PCB.ppt [\214\335\212\267\203\202\201[\203h])

(Microsoft PowerPoint - TINA_Creating_PCB.ppt [\214\335\212\267\203\202\201[\203h]) TINA 操作チュートリアル プリント配線基板の (PCB) 作成 ilink アイリンク合同会社 231-0023 横浜市中区山下町 256 ヴィルヌーブ横浜関内 1F111 TEL:045-663-5940 FAX:045-663-5945 ilink_sales@ilink.co.jp http://www.ilink.co.jp 1 プリント配線基板の (PCB) 作成 フットプリントの確認と変更

More information

7-1 Digital IC のライブラリの準備について [ 目的 ] 実験では 74HC00 を使用するので SPICE モデルを入手する [ 方法 ] LTspice User site からライブラリとシンボルを Download します

7-1 Digital IC のライブラリの準備について [ 目的 ] 実験では 74HC00 を使用するので SPICE モデルを入手する [ 方法 ] LTspice User site からライブラリとシンボルを Download します 7-1 Digital IC のライブラリの準備について [ 目的 ] 実験では 74HC00 を使用するので SPICE モデルを入手する [ 方法 ] LTspice User site からライブラリとシンボルを Download します http://groups.yahoo.com/neo/groups/ltspice/files/%20lib/digital%2074hcxxx (( 注意

More information

RY_R8C38ボード RY-WRITER基板 自動書き込み・実行解説マニュアル

RY_R8C38ボード RY-WRITER基板 自動書き込み・実行解説マニュアル RY_R8C38 ボード RY-WRITER 基板自動書き込み 実行解説マニュアル 第.0 版 205.04.20 株式会社日立ドキュメントソリューションズ 注意事項 (rev.6.0h) 著作権 本マニュアルに関する著作権は株式会社日立ドキュメントソリューションズに帰属します 本マニュアルは著作権法および 国際著作権条約により保護されています 禁止事項 ユーザーは以下の内容を行うことはできません

More information

PA-S500 取扱説明書

PA-S500 取扱説明書 PA-S500 取扱説明書 Revision 1.05 改訂 2010.Dec.01 R1.00 初版 2011.Aug.02 R1.01 2 版 2012.Feb.03 R1.02 3 版 2012.Feb.16 R1.03 4 版 DIO コネクタピン番号等追加 2012.Feb.17 R1.04 5 版 DIO コネクタ型番等追加 2012.Mar.01 R1.05 6 版 ソフトウェア説明追加

More information

スライド 1

スライド 1 1 1. 2 2. 3 isplever 4 5 6 7 8 9 VHDL 10 VHDL 4 Decode cnt = "1010" High Low DOUT CLK 25MHz 50MHz clk_inst Cnt[3:0] RST 2 4 1010 11 library ieee; library xp; use xp.components.all; use ieee.std_logic_1164.all;

More information

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続 CMOS リニアイメージセンサ用駆動回路 C13015-01 CMOS リニアイメージセンサ S11639-01 等用 C13015-01は当社製 CMOSリニアイメージセンサ S11639-01 等用に開発された駆動回路です USB 2.0インターフェースを用いて C13015-01と PCを接続することにより PCからC13015-01 を制御して センサのアナログビデオ信号を 16-bitデジタル出力に変換した数値データを

More information

2. 仕様 電源 :USB バスパワー (USB 入力の 5V 電源を使用します ) 出力 : 3.5mm ステレオジャック アナログステレオ出力 最大 20mArms 対応ヘッドホンインピーダンス 1Ω~500Ω RCA ピンジャック アナログ 2ch 出力 (L R) ラインレベル ヘッドホンア

2. 仕様 電源 :USB バスパワー (USB 入力の 5V 電源を使用します ) 出力 : 3.5mm ステレオジャック アナログステレオ出力 最大 20mArms 対応ヘッドホンインピーダンス 1Ω~500Ω RCA ピンジャック アナログ 2ch 出力 (L R) ラインレベル ヘッドホンア AK4495SEQ 搭載 USB DAC (I2C 付 ) 簡易取扱説明書 ( 呼称 :AK4495HA2) 2018-01-21 rev02 1. はじめに 本品は USB 接続のハイレゾ対応 D/A コンバータです パソコンなどで再生した音楽を出力します 特徴として 旭化成エレクトロニクスのハイエンド DAC AK4495SEQ を搭載してます また 内部に USB I2S 変換ドーターカードを搭載しています

More information

Unconventional HDL Programming ( version) 1

Unconventional HDL Programming ( version) 1 Unconventional HDL Programming (20090425 version) 1 1 Introduction HDL HDL Hadware Description Language printf printf (C ) HDL 1 HDL HDL HDL HDL HDL HDL 1 2 2 2.1 VHDL 1 library ieee; 2 use ieee.std_logic_1164.all;

More information

1 1 Arduino とは Arduino アルドゥイーノ は ワンボードマイコンの一種で オープンソースハードウェアであ り 組み立て済みの基板を購入することもできるほか 誰でも自分の手で Arduino を組み立てる ことができます USBコネクタでPCと接続して利用します デジタルポートとア

1 1 Arduino とは Arduino アルドゥイーノ は ワンボードマイコンの一種で オープンソースハードウェアであ り 組み立て済みの基板を購入することもできるほか 誰でも自分の手で Arduino を組み立てる ことができます USBコネクタでPCと接続して利用します デジタルポートとア 1 1 Arduino とは Arduino アルドゥイーノ は ワンボードマイコンの一種で オープンソースハードウェアであ り 組み立て済みの基板を購入することもできるほか 誰でも自分の手で Arduino を組み立てる ことができます USBコネクタでPCと接続して利用します デジタルポートとアナログポートを利用し 様々 なセンサーを接続したり デジタルポートの出力により モーターや各種機器をコントロールする

More information

フリップフロップ

フリップフロップ 第 3 章フリップ フロップ 大阪大学大学院情報科学研究科 今井正治 imai@ist.osaka-u.ac.jp http://www-ise1.ist.osaka-u.ac.jp/~imai/ 2005/10/17 2006, Masaharu Imai 1 講義内容 フリップ フロップの基本原理 RS フリップ フロップ D ラッチ D フリップ フロップ JK フリップ フロップ T フリップ

More information

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート ) TrueSTUDIO 用 F4D_VCP の説明 V001 2014/07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです 無料の試用版開発ツール Atollic TrueSTUDIO for ARM Lite で作成したプロジェクトです ビルド可能なプログラムのコードサイズが 32Kbyte 以内の制限があります プログラムの開始番地は 0x08000000

More information

! STEP 2. Quartus Prime のダウンロード WEB ブラウザで以下の URL を開きます 2 ページ中段の Quartus Prime 開発ソフトウェア ライト エディ

! STEP 2. Quartus Prime のダウンロード WEB ブラウザで以下の URL を開きます   2 ページ中段の Quartus Prime 開発ソフトウェア ライト エディ STEP 学習内容 パソコンに FPGA の開発環境を構築します インストールは以下の手順で行います. Quartus Prime とは 2. Quartus Prime のダウンロード. Quartus Prime のインストール. USB ドライバのインストール. Quartus Prime とは Quartus Prime は Intel の FPGA 統合開発環境です Quartus Prime

More information

KEIm-08SoMハードウェアマニュアル

KEIm-08SoMハードウェアマニュアル KEIm-08SoM ハードウェアマニュアル Ver.1.1.2 はじめにこの度は KEIm 製品をお買い上げいただき誠にありがとうございます 本製品をご使用になる前に 本マニュアル及び関連資料を十分ご確認いただき 使用上の注意を守って正しくご使用ください 取扱い上の注意 本書に記載されている内容は 将来予告なく変更されることがあります 本製品のご使用にあたっては 弊社窓口又は弊社ホームページなどで最新の情報をご確認ください

More information

目次 1. ログイン ログアウト デスクトップ ( 例 :Word Excel 起動中 ) Dock( 例 :Word Excel 起動中 ) Finder ウィンドウ メニューバー ( 例 :Word 起動中 )...

目次 1. ログイン ログアウト デスクトップ ( 例 :Word Excel 起動中 ) Dock( 例 :Word Excel 起動中 ) Finder ウィンドウ メニューバー ( 例 :Word 起動中 )... 2017 年 9 月 19 日 目次 1. ログイン... 1 2. ログアウト... 3 3. デスクトップ ( 例 :Word Excel 起動中 )... 4 4. Dock( 例 :Word Excel 起動中 )... 5 5. Finder ウィンドウ... 9 6. メニューバー ( 例 :Word 起動中 )... 10 7. 文字の入力 ( 例 :Word で入力 )... 11

More information

Photo Sensor – 적외선 센서

Photo Sensor – 적외선 센서 AVR 用 USB-ISP V03.5 マニュアル (Model:AD-USBISP V03.5(-L)) 改訂日 : 2013 年 04 月 18 日 1 AVR 用 USB-ISP V03.5(Model:AD-USBISP V03.5(-L)) 紹介 AVR 用 ISP(In System Programming) 開発機器 AVR 内部のプログラムメモリーに作成したプログラムをダウンロードしてテスト可能

More information

新しくシンボルを作成することもできるが ここでは シンボル :opamp2.asy ファイル を回路と同じフォルダにコピーする コピーしたシンボルファイルをダブルクリックで 開く Fig.4 opamp2 のシンボル 変更する前に 内容を確認する メニュー中の Edit の Attributes の

新しくシンボルを作成することもできるが ここでは シンボル :opamp2.asy ファイル を回路と同じフォルダにコピーする コピーしたシンボルファイルをダブルクリックで 開く Fig.4 opamp2 のシンボル 変更する前に 内容を確認する メニュー中の Edit の Attributes の 付録 A. OP アンプ内部回路の subckt 化について [ 目的 ] 実験で使用した LM741 の内部回路を subckt 化して使用する [ 手順と結果 ] LTspice には sample として LM741 の内部回路がある この内部回路は LM741.pdf[1] を参照している 参考サイト : [1]http://www.ti.com/lit/ds/symlink/lm741.pdf

More information

Microsoft PowerPoint - diip ppt

Microsoft PowerPoint - diip ppt 2006 年度デザイン情報学科情報処理 III 第 12 回マウスによる制御 ブロック崩し の部品 ボール直径 10pixel の円ラケット横 60pixel 縦 10pixel, マウスにより左右に移動ブロック横 50pixel 縦 20pixel,28 個 (7 個 4 段 ) 壁 ( フィールド ) 横 400pixel 縦 600pixel 2006 年度デザイン情報学科情報処理 III 2

More information

Quartus II はじめてガイド - プロジェクトの作成方法

Quartus II はじめてガイド - プロジェクトの作成方法 ALTIMA Corp. Quartus II はじめてガイド プロジェクトの作成方法 ver.10.0 2010 年 7 月 ELSENA,Inc. Quartus II はじめてガイド プロジェクトの作成方法 目次 1. はじめに... 3 2. Quartus II の起動... 3 3. 操作手順... 4 4. 既存プロジェクトの起動... 10 5. プロジェクト作成後の変更...11

More information

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR 第 回マイクロプロセッサのしくみ マイクロプロセッサの基本的なしくみについて解説する. -1 マイクロプロセッサと周辺回路の接続 制御バス プロセッサ データ バス アドレス バス メモリ 周辺インタフェース バスの基本構成 Fig.-1 バスによる相互接続は, 現在のコンピュータシステムのハードウェアを特徴づけている. バス (Bus): 複数のユニットで共有される信号線システム内の データの通り道

More information

ETCB Manual

ETCB Manual ETCB Manual HARDWARE & PROGRAMMING MANUAL 目次 始めに ETCB 仕様 開発環境の構築 01 始めに 始めに 始めに 注意事項 免責事項 同梱品 02 始めに サポート 03 ETCB 仕様 ETCB 仕様 概要 仕様 項目サブ項目内容電源推奨入力電圧 6.6V~12V 最大入力電圧 16V 出力電圧内部 3.3V 外部 5.0V 最大出力電流値最大 2.2A

More information

A&D社製データロガーを初めてお使いになる方へ

A&D社製データロガーを初めてお使いになる方へ 温度データーロガー チュートリアル Ver.2.00 ( 株 ) エー アンド デイの温度データーロガーを初めてお使いになる方へ AD-5324SET/AD-5325SET に付属の Win Data Logger ( データーロガー用通信ソフトウェア ) を お使いのコンピュータにあらかじめインストールしてください このチュートリアルは 初めてデーターロガーを使うと言う方のために 実際の取り扱い方を説明いたします

More information

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y  小幡智裕 Java Script プログラミング入門 3-6~3-7 茨城大学工学部情報工学科 08T4018Y 小幡智裕 3-6 組み込み関数 組み込み関数とは JavaScript の内部にあらかじめ用意されている関数のこと ユーザ定義の関数と同様に 関数名のみで呼び出すことができる 3-6-1 文字列を式として評価する関数 eval() 関数 引数 : string 式として評価する文字列 戻り値 :

More information

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは? アルテラ FPGA 向け PLL リコンフィグの応用回路 1. PLL リコンフィグとは アルテラ FPGA は PLL 機能を内蔵しています PLL を利用して基本周波数を逓倍 分周したクロックを利用することができます 通常 FPGA 開発ツール Quartus2( 以下 Q2) の MegaWizard プラグインマネージャを利用して PLL を設定し 希望のクロック周波数を得ることができます

More information

PIC の書き込み解説 PICライターを使うときに間違った使い方を見受ける 書き込み失敗の原因は知識不足にある やってはいけないことをしている 単に失敗だけならまだしも部品を壊してしまう 正しい知識を身に着けよう 書き込みに必要なピンと意味 ICSPを意識した回路設計の必要性 ICSP:In Cir

PIC の書き込み解説 PICライターを使うときに間違った使い方を見受ける 書き込み失敗の原因は知識不足にある やってはいけないことをしている 単に失敗だけならまだしも部品を壊してしまう 正しい知識を身に着けよう 書き込みに必要なピンと意味 ICSPを意識した回路設計の必要性 ICSP:In Cir PIC の書き込み解説 PICライターを使うときに間違った使い方を見受ける 書き込み失敗の原因は知識不足にある やってはいけないことをしている 単に失敗だけならまだしも部品を壊してしまう 正しい知識を身に着けよう 書き込みに必要なピンと意味 ICSPを意識した回路設計の必要性 ICSP:In Circuit Serial Programmming 原則論を解説 PIC の種類によって多少異なる 1

More information

ReviveUSB(web)

ReviveUSB(web) リヴァイヴ USB キット作成方法 使用方法 2010/10/21 *ver1.00 (CreationDate 2010/10/21) Assembly Desk (http://a-desk.jp/) 概要 本文書は Assembly Desk で設計された REVIVE USB の使用方法 (A 項 ) とキット作成 (B 項 ) のマニュアルです 本キットに関する詳細資料は以下のサイトをご参照下さい

More information

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一 RX210 グループ IRQ 割り込みを使用したパルス出力 要旨 本サンプルコードでは IRQ 割り込みが発生すると 一定期間タイマでパルスを出力する 方法について説明します 対象デバイス RX210 1 / 25 内容 1. 仕様... 3 2. 動作確認条件... 3 3. ハードウェア説明... 3 3.1 使用端子一覧... 3 4. ソフトウェア説明... 4 4.1 動作概要... 4

More information

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受 STM32L_UART1 の説明 V004 2014/03/30 STM32L-Discovery の UART 1 の送受信を行うプログラムです 無料の開発ツール Atollic TrueSTUDIO for ARM Lite( 試用版 ) で作成したプロジェクトです プログラムの開始番地は 0x08000000 です デバッグが可能です PC アプリケーションの Access_SerialPort

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション マイコンプログラミング演習 I 第 04-05 回 LEDを用いたI/O 制御担当 : 植村 実験の目的 本実験ではマイコンシステムを用いた信号の入出力の制御方法を理解することを目的とし, マイコンのアーキテクチャを理解 実装するとともに, アセンブラによるプログラミング技術の習得を行う. 回路の構成として,PIC16F84A を用いてスイッチを入力とする LED の点灯 / 消灯の出力操作を行う回路ならびにアセンブラプログラムを実装する.

More information

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤 情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤 2017.12.7 前回の演習問題の解答例 1. 四則演算のできる計算機のプログラム ( 括弧も使える ) 2. 実数の扱える四則演算の計算機のプログラム ( 実数 も というより実数 が が正しかったです ) 3. 変数も扱える四則演算の計算機のプログラム ( 変数と実数が扱える ) 演習問題 1 で行うべきこと

More information

Microsoft Word - macマニュアル【 】.doc

Microsoft Word - macマニュアル【 】.doc 目次 1. ログイン... 1 2. ログアウト... 3 3. デスクトップ ( 例 :Word Excel 起動中 )... 4 4. Dock( 例 :Word Excel 起動中 )... 5 5. Finder ウィンドウ... 9 6. メニューバー ( 例 :Word 起動中 )... 10 7. 文字の入力 ( 例 :Word で入力 )... 11 8. データの保存 ( 例 :Word

More information

Javaプログラムの実行手順

Javaプログラムの実行手順 戻り値のあるメソッド メソッドには 処理に使用する値を引数として渡すことができました 呼び出し 側からメソッドに値を渡すだけでなく 逆にメソッドで処理を行った結果の値を 呼び出し側で受け取ることもできます メソッドから戻してもらう値のことを もどりち戻り値といいます ( 図 5-4) 図 5-4. 戻り値を返すメソッドのイメージ 戻り値を受け取ることによって ある計算を行った結果や 処理に成功したか失

More information

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A STM32L_ADC の説明 V003 2014/03/30 STM32L-Discovery の A/D 入力を行うプログラムです A/D CH0 ~ A/D CH3 の 4 本の入力が可能です 提供する PC のアプリケーション Access_SerialPort を使用して UART( 非同期シリアル通信 ) により A/D 入力の表示を行うことができます 無料の開発ツール Atollic TrueSTUDIO

More information

Microsoft Word - XPC4ソフトマニュアル.doc

Microsoft Word - XPC4ソフトマニュアル.doc < XPC-4 映像ツール 簡易マニュアル> お試し版 Ver1.0 XPC-4 に USB ケーブルを接続する際の注意事項 ファームウェア アップデートの作業 もしくは XPC-4 映像ツール を使用するときは USB2.0 に対応した USB ケーブル (Type A[ オス ]-Type B[ オス ]) が 1 本必要です USB ケーブルはパソコンの OS(Windows) が完全に起動してから

More information

SP-1221 LIN I/F 基板 ユーザーズマニュアル 作成日 :2017 年 10 月 17 日

SP-1221 LIN I/F 基板 ユーザーズマニュアル 作成日 :2017 年 10 月 17 日 SP-1221 LIN I/F 基板 ユーザーズマニュアル 作成日 :2017 年 10 月 17 日 目次 1. 配線方法... 3 2. KV-Studio 設定... 6 3. 制御方法... 7 4. 一般仕様... 9 2 1. 配線方法 A B C 3 4 2 E 1 D 購入時の内容物 番号 項目 1 2 3 SP-1221 基板 MIL34 ピンフラットケーブル 2m(KV-C16XTD)

More information

スライド 1

スライド 1 isplever CLASIC 1.2 Startup Manual for MACH4000 Rev.1.0 isplever_ CLASIC Startup_for_MACH4000_Rev01.ppt Page: 1 1. Page 3 2. Lattice isplever Design Flow Page 4 3. Page 5 3-1 Page 6 3-2 Page 7 3-3 Page

More information

論文番号 分 2-2 平成 24 年度全国情報技術教育研究会第 41 回全国大会 ( 新潟大会 ) Xbee を活用した無線通信の研究 期日平成 24 年 8 月 9 日 ( 木 )~10 日 ( 金 ) 場所長岡市シティホールプラザ アオーレ長岡 香川県立三豊工業高等学校 電子科 本行

論文番号 分 2-2 平成 24 年度全国情報技術教育研究会第 41 回全国大会 ( 新潟大会 ) Xbee を活用した無線通信の研究 期日平成 24 年 8 月 9 日 ( 木 )~10 日 ( 金 ) 場所長岡市シティホールプラザ アオーレ長岡 香川県立三豊工業高等学校 電子科 本行 論文番号 2012- 分 2-2 平成 24 年度全国情報技術教育研究会第 41 回全国大会 ( 新潟大会 ) Xbee を活用した無線通信の研究 期日平成 24 年 8 月 9 日 ( 木 )~10 日 ( 金 ) 場所長岡市シティホールプラザ アオーレ長岡 香川県立三豊工業高等学校 電子科 本行圭介 Xbee を活用した無線通信の研究 香川県立三豊工業高等学校電子科本行圭介 1 はじめに現在 様々な電子機器に無線通信機能が搭載されており

More information

TECH_I Vol.25 改訂新版PCIデバイス設計入門

TECH_I Vol.25 改訂新版PCIデバイス設計入門 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity n is port( ); end entity n; architecture RTL of nis begin when : process begin end process :process begin end process

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅰ 授業ガイダンス C 言語の概要プログラム作成 実行方法 授業内容について 授業目的 C 言語によるプログラミングの基礎を学ぶこと 学習内容 C 言語の基礎的な文法 入出力, 変数, 演算, 条件分岐, 繰り返し, 配列,( 関数 ) C 言語による簡単な計算処理プログラムの開発 到達目標 C 言語の基礎的な文法を理解する 簡単な計算処理プログラムを作成できるようにする 授業ガイダンス

More information

前回の内容 マイクロコンピュータにおけるプログラミング PC上で作成 コンパイル マイコンに転送 実行 プログラムを用いて外部の装置を動作させる LED turnonled turnoffled LCD printf プログラムを用いて外部の装置の状態を読み取る プッシュスイッチ getpushsw

前回の内容 マイクロコンピュータにおけるプログラミング PC上で作成 コンパイル マイコンに転送 実行 プログラムを用いて外部の装置を動作させる LED turnonled turnoffled LCD printf プログラムを用いて外部の装置の状態を読み取る プッシュスイッチ getpushsw ものづくり基礎工学 情報工学分野 前回の内容 マイクロコンピュータにおけるプログラミング PC上で作成 コンパイル マイコンに転送 実行 プログラムを用いて外部の装置を動作させる LED turnonled turnoffled LCD printf プログラムを用いて外部の装置の状態を読み取る プッシュスイッチ getpushsw ディップスイッチ getdipsw スイッチの状態によって関数の戻り値が変わる

More information

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

書式に示すように表示したい文字列をダブルクォーテーション () の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf( 情報処理基礎 ); printf(c 言語の練習 ); printf 情報処理基礎 C 言語についてプログラミング言語は 1950 年以前の機械語 アセンブリ言語 ( アセンブラ ) の開発を始めとして 現在までに非常に多くの言語が開発 発表された 情報処理基礎で習う C 言語は 1972 年にアメリカの AT&T ベル研究所でオペレーションシステムである UNIX を作成するために開発された C 言語は現在使われている多数のプログラミング言語に大きな影響を与えている

More information

Quartus II はじめてガイド - デバイス・プログラミング方法

Quartus II はじめてガイド - デバイス・プログラミング方法 - Quartus II はじめてガイド - デバイス プログラミング方法 ver. 9.1 2010 年 1 月 1. はじめに この資料では Quartus II の Programmer の操作方法を紹介しています Programmer を使用し デバイスにプログラミング ( デバイスへの書き込み ) を行います アルテラのデバイスへデータを書き込むときには プログラミング ハードウェアを使用します

More information

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です ACTIVE TOUCH 拡張部品取扱説明書 - 共有メモリアクセスコンポーネント - 1. はじめに 1 (1) 概要... 1 (2) INpMac のインストール... 1 2. Windows アプリケーションとの連携 2 (1) コントロール ( 部品 ) の登録... 2 (2) データの関連付け... 3 3. INtime アプリケーションとの連携 4 (1) 部品 ( コンポーネント

More information

インテル(R) Visual Fortran コンパイラ 10.0

インテル(R) Visual Fortran コンパイラ 10.0 インテル (R) Visual Fortran コンパイラー 10.0 日本語版スペシャル エディション 入門ガイド 目次 概要インテル (R) Visual Fortran コンパイラーの設定はじめに検証用ソースファイル適切なインストールの確認コンパイラーの起動 ( コマンドライン ) コンパイル ( 最適化オプションなし ) 実行 / プログラムの検証コンパイル ( 最適化オプションあり ) 実行

More information

Studuino ライブラリ環境設定Windows編

Studuino ライブラリ環境設定Windows編 Studuino ライブラリセット 環境設定手順書 Windows 編 本資料は Studuino ライブラリのセットアップ手順書になります 以下の作業の前に 本資料を参考に Arduino 言語開発環境を設定して下さい Arduino 言語で加速度センサーを制御する Studuino プログラミング環境で Arduino 言語に変換したソースを編集する もくじ 1. Arduino IDE のインストール...

More information

ydez-usb マニュアル 写真 やなごデザイン有限会社

ydez-usb マニュアル 写真 やなごデザイン有限会社 ydez-usb マニュアル 写真 やなごデザイン有限会社 http://www.yanago.co.jp 2015.5.15 1 ご使用使用になるまえに このたびは ydez-usb をお買い上げ頂きまして誠にありがとうございます 本書では 本製品を利用するにあたっての注意事項 活用法など記載していますので ご一読いただき 正しくお使いください 梱包内容 本製品には 以下の品々により構成されています

More information

プログラマブル LED 制御モジュール アプリ操作説明書 プログラマブル LED 制御モジュール設定アプリ操作説明書 適用モジュール 改訂番号 エレラボドットコム 1

プログラマブル LED 制御モジュール アプリ操作説明書 プログラマブル LED 制御モジュール設定アプリ操作説明書 適用モジュール 改訂番号 エレラボドットコム 1 設定 適用モジュール 041-1 改訂番号 20161024 エレラボドットコム 1 ( 用アプリの利用可能環境 ) Windows7 8.1 10 のいずれかが動作する PC Windows8 以降の場合は 次ページ記載の Windows8 以降の.NET Framework の有効化 (p3~7) の操作をするか 設定されていることを確認してからアプリをインストールしてください.NET Framework2.0

More information

図 1 アドインに登録する メニューバーに [BAYONET] が追加されます 登録 : Excel 2007, 2010, 2013 の場合 1 Excel ブックを開きます Excel2007 の場合 左上の Office マークをクリックします 図 2 Office マーク (Excel 20

図 1 アドインに登録する メニューバーに [BAYONET] が追加されます 登録 : Excel 2007, 2010, 2013 の場合 1 Excel ブックを開きます Excel2007 の場合 左上の Office マークをクリックします 図 2 Office マーク (Excel 20 BayoLink Excel アドイン使用方法 1. はじめに BayoLink Excel アドインは MS Office Excel のアドインツールです BayoLink Excel アドインは Excel から API を利用して BayoLink と通信し モデルのインポートや推論の実行を行います BayoLink 本体ではできない 複数のデータを一度に推論することができます なお現状ではソフトエビデンスを指定して推論を行うことはできません

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 m.imura@kwansei.ac.jp 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,

More information

スクールCOBOL2002

スクールCOBOL2002 3. 関連資料 - よく使われる機能の操作方法 - (a) ファイルの入出力処理 - 順ファイル等を使ったプログラムの実行 - - 目次 -. はじめに 2. コーディング上の指定 3. 順ファイルの使用方法 4. プリンタへの出力方法 5. 索引ファイルの使用方法 6. 終わりに 2 . はじめに 本説明書では 簡単なプログラム ( ファイル等を使わないプログラム ) の作成からコンパイル 実行までの使用方法は既に理解しているものとして

More information

CCD リニアイメージセンサ用駆動回路 C CCD リニアイメージセンサ (S11155/S ) 用 C は 当社製 CCDリニアイメージセンサ S11155/S 用に開発された駆動回路です S11155/S11156-

CCD リニアイメージセンサ用駆動回路 C CCD リニアイメージセンサ (S11155/S ) 用 C は 当社製 CCDリニアイメージセンサ S11155/S 用に開発された駆動回路です S11155/S11156- CCD リニアイメージセンサ用駆動回路 C11165-02 CCD リニアイメージセンサ (S11155/S11156-2048-02) 用 C11165-02は 当社製 CCDリニアイメージセンサ S11155/S11156-2048-02 用に開発された駆動回路です S11155/S11156-2048-02と組み合わせることにより分光器に使用できます C11165-02 は CCD 駆動回路

More information

Microsoft Word - VBA基礎(6).docx

Microsoft Word - VBA基礎(6).docx あるクラスの算数の平均点と理科の平均点を読み込み 総点を計算するプログラムを考えてみましょう 一クラスだけ読み込む場合は test50 のようなプログラムになります プログラムの流れとしては非常に簡単です Sub test50() a = InputBox(" バナナ組の算数の平均点を入力してください ") b = InputBox(" バナナ組の理科の平均点を入力してください ") MsgBox

More information

Nios II 簡易チュートリアル

Nios II 簡易チュートリアル Nios II Ver. 7.1 2007 10 1. Nios II Nios II JTAG UART LED 8 PIO LED < > Quartus II SOPC Builder Nios II Quartus II.sof Nios II IDE Stratix II 2S60 RoHS Nios II Quartus II http://www.altera.com/literature/lit-nio2.jsp

More information

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル < 概要 > WAGO-I/O-SYSTEM750 シリーズ PROFIBUS バスカプラ / コントローラと 三菱電機 製 PROFIBUS ユニット QJ71PB92D とのコンフィグレーション手順を説明しております < 使用機器接続図 > 下記機器を準備し 図の通り接続しました WAGO-I/O-SYSTEM PROFIBUS バスカプラ / コントローラ 750-xxx および I/O モジュール

More information

三菱電機マイコン機器ソフトウエア株式会社

三菱電機マイコン機器ソフトウエア株式会社 MU500-RX サンプル回路仕様書 三菱電機マイコン機器ソフトウエア株式会社 2012-5-9 1 概要 1.1 目的本仕様書は MU500-RX と MU500-RK で実現する 1 秒カウンタの仕様について記述するものである マイコンで 1 秒を生成し 表示は 7 セグメント LED を用いる また 開始 / 停止は Push-SW を使う 1.2 関連文書 MU500-RX

More information

512_横断図の編集例

512_横断図の編集例 横断図の編集例 本書は EX-TREND 武蔵の CAD の各種コマンドの機能を知ってもらうために 操作例として横断図を作成します 本書で解説している以外にもいろいろな機能を用いて図面を編集することができますが 入力例では元図面として SFC ファイルで作成された横断図を読み込み 各種編集操作をおこないます また 読み込んだ横断図の一部分を編集し Word で作成された切り土作業手順書に添付する方法も解説します

More information

Taro-82ADAカ.jtd

Taro-82ADAカ.jtd デジタル & アナログ絶縁入出力ユニット解説書製品型式 8 2 A D A - K C 製品型式 8 2 A D A - B D 製品型式 D A C S - 8 2 0 0 この解説書は 8 2 A D A または D A C S - 8 2 0 0 の動作と使用方法について簡単に説明したものです D A C S - 8 2 0 0 の場合は この解説書の 8 2 A D A という表現を 一部

More information

自作デバイスボード製作 データ作成 データ登録方法 Rev.A 2017/07/29 Mille-feuille のプロジェクトに自作のデバイスを追加して自分で販売したい方向けの情報です 誰でも参加可能なコミュニティにしていきたいと思っています 大まかな流れは以下の通りです 基本的には回路設計がわか

自作デバイスボード製作 データ作成 データ登録方法 Rev.A 2017/07/29 Mille-feuille のプロジェクトに自作のデバイスを追加して自分で販売したい方向けの情報です 誰でも参加可能なコミュニティにしていきたいと思っています 大まかな流れは以下の通りです 基本的には回路設計がわか 自作デバイスボード製作 データ作成 データ登録方法 Rev.A 2017/07/29 Mille-feuille のプロジェクトに自作のデバイスを追加して自分で販売したい方向けの情報です 誰でも参加可能なコミュニティにしていきたいと思っています 大まかな流れは以下の通りです 基本的には回路設計がわかっている方か 回路設計に十分慣れてからデバイスボードを作るようにしてください デバイスボード部分はオープンソースハードになっているので

More information

オートビュー

オートビュー IODEP マニュアル SELCO マルチプレクサ SXC-16LT rev 1.0 2013/04/18 株式会社 Javatel 2013 Javatel 1 目次 IODEP マニュアル SELCO マルチプレクサ SXC-16LT rev 1.0... 1 目次... 2 1 この文書について... 3 2 変更履歴... 4 3 ハードウェアの準備... 5 3.1 SELCO マルチプレクサ

More information

Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M

Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル 413180100 19.4 システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M21/M22/M23/M24/M25 テクニカルマニュアル 413556900 21.4 システムリセットコントローラ

More information

FPGA と LUPO その1

FPGA と LUPO その1 FPGA Lecture for LUPO and GTO Vol. 1 2010, 31 August (revised 2013, 19 November) H. Baba Contents FPGA の概要 LUPO の基本的な使い方 New Project Read and Write 基本的な Behavioral VHDL simulation Firmware のダウンロード FPGA

More information

Si 知識情報処理

Si 知識情報処理 242311 Si, 285301 MS 第 12 回 竹平真則 takemasa@auecc.aichi-edu.ac.jp 2015/12/21 1 本日の内容 1. 先週のおさらい 2. PHP のスクリプトを実際に動かしてみる 3. RDB についての説明 2015/12/21 2 資料の URL http://peacenet.info/m2is 2015/12/21 3 注意事項 ( その

More information

NJU72501 チャージポンプ内蔵 圧電用スイッチングドライバ 概要 NJU72501はチャージポンプ回路を内蔵し 最大で3V 入力から 18Vppで圧電サウンダを駆動することができます このチャージポンプ回路には1 倍 2 倍 3 倍昇圧切り替え機能を備えており 圧電サウンダの音量を変更すること

NJU72501 チャージポンプ内蔵 圧電用スイッチングドライバ 概要 NJU72501はチャージポンプ回路を内蔵し 最大で3V 入力から 18Vppで圧電サウンダを駆動することができます このチャージポンプ回路には1 倍 2 倍 3 倍昇圧切り替え機能を備えており 圧電サウンダの音量を変更すること チャージポンプ内蔵 圧電用スイッチングドライバ 概要 はチャージポンプ回路を内蔵し 最大で3 入力から 18ppで圧電サウンダを駆動することができます このチャージポンプ回路には1 倍 2 倍 3 倍昇圧切り替え機能を備えており 圧電サウンダの音量を変更することができます また シャットダウン機能を備えており 入力信号を検出し無信号入力時には内部回路を停止することでバッテリーの長寿命化に貢献します

More information

WAGO / / Modbus/RTU対応 バスカプラ クイックスタートガイド

WAGO / / Modbus/RTU対応 バスカプラ クイックスタートガイド クイックスタート WAGO-I/O-SYSTEM 750 750-315/300-000 750-316/300-000 通信設定手順書 Ver 1.0.0 136-0071 東京都江東区亀戸 1-5-7 ワゴジャパン株式会社オートメーション TEL: Web: 03-5627-2059 FAX:03-5627-2055 http://www.wago.co.jp/io WAGO Kontakttechnik

More information