VME Embedded System ユーザーズマニュアル ~ Slim VME Embedded ~ Tecstar Page: 1
Agenda 1. VME Embedded System 概要 2. VME Embedded の特徴 3. Embedded Overview 4. VMEファイルとHEXファイルについて 5. Slim VME について 6. Deployment Toolの起動方法について 7. Slim VME で用意されているファイル 8. slim_vme_8051ソースファイルについて 9. slim_vme_pcソースファイルについて 10. 8051 JTAG Slim VME ユーザーフロー 11. Diamond Ver3.1 Support Device 12. Revision Page: 2
1. VME Embedded System 概要 VME Embedded System とは? Embedded VME ( 以下 VME) とは 組み込みシステム向けの ISP プログラムで Lattice 社の ispvm System の機能を C プログラムで構成したものであり お客様が 開発される機器に組み込む ( 実機上のメモリに書き込む ) ことで PC からではなく 実機上の CPU から直接デバイスへの書き込みやリード等を行うことができます CPU GPIO GPIO GPIO GPIO TMS TDI TCK TDO Page: 3
2. VME Embedded の特徴 ispvme には以下の特徴があります C 言語にて提供されています お客様独自の ISP 書き込みエンジンに実装することができます CPU に実装することで CPU ポートから直接 JTAG を介して ISP を実行できます SVF ファイル対応により Lattice 社以外のデバイスにも ISP の実行が可能です 複数 JTAG チェイン構成の ISP にも対応しています IEEE1532 プログラミングプロトコルに対応しています IEEE1532 とは IEEE1149.1(BSCAN テストのための規格で JTAG について定義 ) に よって規定されている中で デバイスへのプログラミングを行う部分を規格化したものです IEEE1532 を使用することで デバイスプログラムの標準化が実現します ispvme ソースは ispvm System を以下 2 種類用意しております 1. JTAG Full VME Embedded JTAG portを用いたフル機能のシステムです 2. JTAG Slim VME Embedded 8051プロセッサの様にリソースの少ないマイクロコントローラ向けに機能を限定したシステムです 本資料では JTAG Slim VME Embedded についての内容となります Page: 4
3. Embedded Overview VME Embedded System には 以下 3 つの構成となっております 1. Diamond Programmerを使用してANSI C source codeを用意致します ユーザーはこのANSI C source codeを自分のシステムにコンパイルすることが可能です 2. ご使用のFPGAのプログラムアルゴリズムを含めたAlgorithm VME Fileを用意致します Deployment Toolを使用してこのVME FileまたはHex Fileは生成可能です 3. FPGAの中にプログラムされるData VME FileまたはHex Fileを用意致します Deployment Toolを使用してこのVME FileまたはHex Fileを生成可能です Page: 5
4. VME ファイルと HEX ファイルについて Diamond Programmer ではデバイスに書き込むファイルとして JEDEC ファイルや Bit Stream ファイルを用意しましたが VME Embedded では VME ファイルを生成する必要があります VMEファイルとは? VMEファイルは圧縮されたSVFファイルで バイナリで記述されています JEDECファイルやBit Streamファイルの情報 JTAGチェイン情報 オペレーション (Erase/Program/Read/Verify) の内容を全て合わせ持っています Development Tool 上で生成します HEXファイルについて VMEファイルの内容をそのまま実機上のメモリに書き込むことはできないため HEXファイルに変換する必要があります VMEファイルはバイナリデータですが HEXファイルはヘキサデータです Development Tool 上でVMEファイルから変換します Page: 6
5. Slim VME Embedded について JTAG Slim VME Embedded codeは8051の様なリソースの少ないマイクロコントローラ用のコードとなっております ソフトの動作は基本的に JTAG Full VME Embeddedと同じですが簡素化されております 違いは 8051プロセッサに適用していることです Cコードは8051プロセッサのためにメモリ領域の特殊なキーワードを追加しております Slim VME Embeddedのメリットは以下です 3KB ROM 以下 グローバルおよびローカル変数を最小化しないことおよびデータバッファによる縮小した RAM 使用法 メモリの中に保持するのに必要とします 圧縮可能なアルゴリズムおよびデータ 他の組み込みシステムに対するするデメリットもございます プログラムすることができるデバイスのサイズは 8051プロセッサの利用可能なSRAMの容量により制限されております Page: 7
6. Deployment Tool の起動方法について Deployment Tool の起動方法は以下 2 つあります 1Diamond Programmerより Design > Utilities > Deployment Tool 起動 2 Windows スタートメニュー > Lattice Diamond X.X> Accessories Deployment Tool 起動 Page: 8
7. Slim VME で用意されているファイル 例 ) C: lscc diamond 3.1 embedded_source slimembedded sourcecode Name JTAG Slim VME Embedded Folder Name SlimEmbed ded Algorithm and Data File Storage Location Files on OS ex Windows Files embedded in the C Code x (Default) Files in External Memory (Default is a EPROM) x (modify slim_vme.c Getbyte function for memory type) System Files Hardware Processor VM Engine hardware.c slim_vme.c slim_pro. c Deployme nt Tool Files *data.vm e, *algo.vme Page: 9
8. slim_vme_8051 ソースファイルについて slim_vme_8051 ファイルは 8051Base の CPU で使用する場合に使用します [ 格納場所 ] 例 : C: lscc diamond 3.1 embedded_source slimembedded sourcecode slim_vme_8051 各ソースファイルの内容は次の通りです hardware.c ハードウェア制御モジュール (PC Parallel Port address0x0378 を使用する使用となっています ) ( ユーザー側で唯一カスタマイズが必要なソースです ) 以下は カスタマイズする必要の無いソースです opcode.h VME アルゴリズムとデータファイルを使用する際の Bytecode の定義ヘッダ slim_pro.c プログラムエンジンファイル slim_vme.c VME アルゴリズムとデータファイルとの接続するべきプロセッサーの特定コマンド Page: 10
9. slim_vme_pc ソースファイルについて slim_vme_pc ファイルは PC のパラレル ポートを使用してプログラミングする様な CPU に使用します [ 格納場所 ] 例 : C: lscc diamond 3.1 embedded_source slimembedded sourcecode slim_vme_pc 各ソースファイルの内容は次の通りです hardware.c ハードウェア制御モジュール (PC Parallel Port address0x0378 を使用する使用となっています ) ( ユーザー側で唯一カスタマイズが必要なソースです ) 以下は カスタマイズする必要の無いソースです opcode.h VME アルゴリズムとデータファイルを使用する際の Bytecode の定義ヘッダ slimvme_pro.c プログラムエンジンファイル slimvme_.c VME アルゴリズムファイルとデータファイルとの接続するべきプロセッサーの特定コマンド debug.h プリプロセッサーが VME_DEBUG をプロジェクトの中で定義されている場合 デバッグ情報をプリントします windriver.c and windriver.h WindowsOS のための JTAG Slim VME Embedded です これらはプロジェクトファイル内でプリプロセッサーが VME_WINDOWS を定義されている場合にコンパイルを行います Page: 11
10. 8051 JTAG Slim VME ユーザーフロー 以下に, Slim VME Embedded (slim_vme_8051 ) ユーザーフローを示します 1 JEDEC ファイル生成 Bit Stream ファイル生成 2 JTAG チェインの作成 4 hardwear.c の編集 システムに 3 VMEファイル /HEXファイルの生成 (Development Toolで行う ) 5 ispvmソースとhex ファイルをコンパイル 組み込み! Page: 12
10. VME Embedded ユーザーフロー 12 1JEDEC ファイル Bit Stream ファイルの用意 Diamond で設計し JEDEC ファイルまたは Bit Stream ファイルを生成して おきます 他社デバイスへの書き込みの場合は SVF ファイルを用意します 2JTAG チェインの作成 Diamond Programmer にて Chain 構成を作成します チェイン情報は JEDEC ファイルや Bit Stream ファイルと共に VME ファイルに書き込まれます VME ファイルを生成するためにコンフィグレーション情報をセーブしておく必要があります データを保存して XCF ファイルを生成しておきます ( または SVF ファイルを用意します ) 下記画面にて File > Save にて XCF ファイルを生成可能です Page: 13
10. VME Embedded ユーザーフロー 3 3 データファイルとアルゴリズムファイルを生成します 1) Deployment Tool を開きます Function 及び Output File を以下選択し OK を選択します Function Type: Embedded System Output File Type: JTAG Slim VME Embedded 2) INPUT XCF ファイルにて XCF ファイルをロードし NEXT を選択します Programmer を利用して書き込んだ際に その設定を保存すると拡張子 xcf ファイルが生成されます ここでは Input XCF file にそれを選択します Page: 14
10. VME Embedded ユーザーフロー 3 3) Compress VME Data File (Optional) の選択の有無 Generate HEX(.c) Files を選択 Next を選択します Compress VME Data File VME ファイルを生成する際に圧縮します ファイルの内容によっては大幅にサイズを小さくすることができます Generate HEX (.c) Files VME ファイルを HEX ファイルに変換したものを生成します Page: 15
10. VME Embedded ユーザーフロー 3 4) 生成するファイル名を選択し Next を選択 Generate ボタンにてファイルを生成します Page: 16
10. VME Embedded ユーザーフロー 5 5 hardware.c の編集以下ご使用のシステムに合わせて hardware.c の修正が必要となります 編集が必要な関数 :writeport,readport,ispvmdelay 1) WritePort の設定をして下さい *a_ucpinsは他関数においては出力ポートレジスタのビット指定をしております 例えば 青枠例にて a_uspins=a_uspintdiの場合 0x01と定義されているので8ビットの出力ポートの最下位ビット以外全てマスクされます この例では CPUの出力ポート8へ書き込み信号を出力しています P8.DR.BYTE = g_siisppins; CPU の出力ポートへ信号を代入 Page: 17
2) Read Port の設定をして下さい 10. VME Embedded ユーザーフロー 5 編集例赤線 if (P8.DR.BIT.B6) { TDO として定義した CPU ポートのビットを記入 * 上記の編集においては CPU ポート 8 の 7 ビット目を入力ポートとして定義しております 更に このビットを TDO 入力ビットとして定義しております TDO 用入力ビットが High なのか Low なのかを判断して ucret の変数へ値を代入しております Page: 18
10. VME Embedded ユーザーフロー 5 3) デフォルトの ispvmdelay function(1ms Delay) をご使用下さい または ユーザーサイドで生成下さい 1ms 用タイマー関数を作成し usidelaytime の変数に応じてタイマー長が可変します Page: 19
10. VME Embedded ユーザーフロー 56 4) オプション機能として以下 2つを用意しております プロセス前後のハードウエアの有効 / 無効化を制御可能です Enable Hardware Disable Hardware 6 ご使用の CPU 開発環境下にて ispvm ソースと HEX ファイルをコンパイルを行い システムに組み込んで頂きます Page: 20
Page: 21 11. Diamond Ver3.1 Support Device
12. Revision リビジョンデータ作成者備考 Rev-1 2014/6/30 Takahashi Kenta 参考文献 * 詳細は以下 Lattice 資料をご参照下さい jtag_slim_vme.pdf Lattice JTAG Full VME Manual (Diamond2.2 ) Embedded_VME.pdf Porting Embedded VME into Embedded System( Diamond2.2 ) Page: 22