Report Template

Similar documents
Report Template

Report Template

Microsoft PowerPoint LC_15.ppt

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

Microsoft Word - 実験4_FPGA実験2_2015

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

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

スライド 1

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

スライド 1

VHDL VHDL VHDL i

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

スライド 1

スライド 1

スライド 1

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 =

TN Using User Flash Memory and Hardened Control Functions in MachXO2 Devices Reference Guide

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

フリップフロップ

スライド 1

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

オンチップ・メモリ クイック・ガイド for Cyclone III

Notes and Points for TMPR454 Flash memory

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

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

Microsoft PowerPoint - 3.3タイミング制御.pptx

任意の間隔での FTP 画像送信イベントの設定方法 はじめに 本ドキュメントでは AXIS ネットワークカメラ / ビデオエンコーダにおいて任意の間隔で画像を FTP サー バーへ送信するイベントの設定手順を説明します 設定手順手順 1:AXIS ネットワークカメラ / ビデオエンコーダの設定ページ

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

ACI のファースト LACP タイマーを設定して下さい

Unconventional HDL Programming ( version) 1

-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

Report Template

DUSx200 シリーズコントローラ I2C インターフェース仕様書

ヤマハDante機器と他社AES67機器の接続ガイド

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

Verilog HDL による回路設計記述

F コマンド

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

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

Report Template

リンク バンドル コマンド

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

BOM for Windows Ver

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

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

Report Template

CONTEC DIOプロバイダ ユーザーズガイド

形B5Z 画像型人感センサ(HVC-F) コマンド仕様書

Virtex-6 Clocking

VHDL

スライド 1

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード]

二次元連続動的計画法による知的画像処理システム ImageFileSelector RTC 機能仕様書 ImageFileSelectorRTC Ver.1.0 ( 株 ) 東日本計算センター 1 / 11

電気的特性 (Ta=25 C) 項目 記号 条件 Min. Typ. Max. 単位 読み出し周波数 * 3 fop khz ラインレート * Hz 変換ゲイン Gc ゲイン =2-5 - e-/adu トリガ出力電圧 Highレベル Vdd V -

論理設計の基礎

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

Microsoft Word - COP_MasterSim_Installation_Supplement_A00.doc

アナログ・接点変換器

Taro-82ADAカ.jtd

ディジタル電子回路 設計演習課題

Upload path ファイル送信先ディレクトリのパスを指定します ホームディレクトリに画像を送信する場合は空白のまま サブディレクトリに画像を送信する場合はディレクトリ名を指定します さらに下位のディレクトリを指定する場合は \ マークを利用します 例 ) ホームディレクトリ以下の camera

スライド 1

AN424 Modbus/TCP クイックスタートガイド CIE-H14

1. ボードの複数台制御 コンフィグ ROM から FPGA が起動できる場合を想定しています FPGA 回路には 特定のレジスタアドレスにプリセットしたデータが必要です 製品出荷時のサンプル FPGA 回路では レジスタ No.3 を 8bit 幅に設定し FPGA 外部の 4bit ディップスイ

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

CLUSTERPRO MC StorageSaver istorage M シリーズ使用時の設定手順 (HP-UX 版 Linux 版 Windows 版 ) 2013(Sep) NEC Corporation istorage M シリーズを使用する場合の StorageSaver 設定手順 (H

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

ServerView RAID Manager VMware vSphere ESXi 6 インストールガイド

改訂履歴 日付バージョン記載ページ改訂内容 V2.1 - 初版を発行しました V3.1 P5 ドキュメントラベルが新規追加された事を追記 P7 P8 新しくなったラベルのツリー表示説明を追記 新しくなったラベルの作成 削除操作を追記 P9 ラベルのグループ

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

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

1. はじめに (1) 本書の位置づけ 本書ではベジフルネット Ver4 の導入に関連した次の事項について記載する ベジフルネット Ver4 で改善された機能について 新機能の操作に関する概要説明 ベジフルネット Ver4 プログラムのインストールについて Ver4 のインストール手順についての説明

Notes and Points for TM4C123Gx Internal Flash memory

(Microsoft Word - \216\346\220\340SiTCP-VME-Master\(Rev26\).doc)

Upload path ファイル送信先ディレクトリのパスを指定します ホームディレクトリに画像を送信する場合は空白のまま サブディレクトリに画像を送信する場合はディレクトリ名を指定します さらに下位のディレクトリを指定する場合は \ マークを利用します 例 ) ホームディレクトリ以下の camera

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

Managed Firewall NATユースケース

Microsoft PowerPoint - RL78G1E_スタータキットデモ手順_2012_1119修正版.pptx

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

TECHNICAL BRIEF RealServer ロードバランス時の BIG-IP 設定方法 本ドキュメントは複数の RealServer をロードバランスする際の BIG-IP コントローラの設定方法を紹介するもので F5 Networks Japan K.K. と RealNetworks

データ収集用 NIM/CAMAC モジュールマニュアル 2006/5/23 目次 クレート コントローラ CC/ NIM ADC 1821 (Seiko EG&G)...3 ADC インターフェイス U デッドタイム

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

目次 はじめに... 2 本手順書について カメラ別設定一覧 MCControlTool 起動 モノクロ RAW 画像の取得 カメラパラメータの設定 Tap ModeとROI(Region of Interest)..

F コマンド

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

スライド 1

TFTP serverの実装

変更履歴 日付 バージョン 内容 2017/3/ ver.2.x.x.x を WHQL 対応版とする初版リリース ( ベースバージョン統合の為 2004 からとする ) 2017/3/ x64 とx86 の区別など誤記修正 目次修正 i

周波数特性解析

PowerPoint Presentation

目次 1 I2Cとは 13 結線写真 2 センサの多くがI2Cに対応 14 WHO_AM_I 3 マイコンでのI2C通信例 15 I2C読込みプログラム 4 とは 16 I2C読込みスクリプト概要① 5 タイミングパラメータ 17 I2C読込みスクリプト概要② 6 書込み 18 センサ読込みプログラ

スライド 1

変更履歴 Revision 日付 内容 /10/10 初版 /10/24 車載関連説明文削除 /10/06 会社所在地を本社に修正 2

スライド 1

RX210 グループ MTU2 を用いた相補 PWM モードの波形出力 要旨 本サンプルコードでは MTU2 を用いて相補 PWM モードの波形を出力する方法について説 明します 対象デバイス RX210 1 / 41

ServerView Resource Orchestrator V3.0 ネットワーク構成情報ファイルツール(Excel形式)の利用方法

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

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

TMSx70 MCU の RTI(リアルタイム割り込み)を使用してオペレーティングシステムの Tick を発生させる方法

FlashAirの本_web.indd

Transcription:

MachXO2 EFB(Embedded Function Block) 1

目次 1 このドキュメントの概要 3 2 EFB の構成 4 3 EFB とハードマクロの生成と注意事項 5 3.1 EFB Enables タブの設定... 5 3.2 I2C タブの設定... 6 3.3 SPI タブの設定... 7 3.4 Timer/Counter タブの設定... 9 4 Wishbone から I2C マクロへのアクセス 12 4.1 I2C マスターモード時の制御... 12 4.1.1 Write アクセス... 12 4.1.2 Read アクセス... 14 5 Wishbone から SPI マクロへのアクセス 16 5.1 SPI マスターモード時の制御... 16 5.1.1 Write アクセス... 16 5.1.2 Read アクセス... 19 6 EFB のシミュレーション 23 6.1 テストベンチ作成時の注意点... 23 6.2 I2C マクロの入出力信号... 24 6.3 WISHBONE バスへの入力データ... 25 7 改訂履歴 26 2

1 このドキュメントの概要このドキュメントでは MachXO2 に内蔵されている EFB(Embedded Function Block) の I2C SPI Timer/Counter 機能や使用方法について説明します 内蔵 Flash メモリへのアクセス方法については 別途リリースされているドキュメント (JUG10_001) をご覧ください 3

2 EFB の構成 EFB は MachXO2 ファミリのデバイスに内蔵されている固有の機能を持つ複数のブロックと それらおよびデバイスのファブリックを接続するバスから構成されるハードマクロです ( 図 2-1) 図 2-1 EFB のブロックダイアグラム 固有の機能ブロックとしては 以下のものが内蔵されています I2C インターフェイス 2 SPI インターフェイス 1 タイマーカウンター 1 ユーザー Flash メモリ 1 Configuration 回路 1 パワーセーブ回路 1 PLL デバイス依存 ( 2 or 1 or 0) これらのブロック間およびユーザーロジックは Wishbone バスを介して接続されています 4

3 EFB とハードマクロの生成と注意事項 EFB および各種ペリフェラルを使用する場合 それらの HDL ソースは IPexpress で生成します 3.1 EFB Enables タブの設定 EFB タブでは 使用するマクロの選択等を行います 使用するマクロの選択 EFB を使用する場合 まず IPexpress の [EFB Enables] タブで使用するハードマクロを選択します [EFB Enables] タブには 選択可能なハードマクロのリストが表示されていますので 使用するマクロにチェックを入れます チェックを入れると該当するハードマクロの設定タブがアクティブになりパラメータ設定が可能になります 図 3-1 ハードマクロ選択タブ クロック周波数の設定 EFB を使用する場合 必ず IPexpress の [EFB Enables] で [WISHBONE Clock Frequency] 欄に実際に使用するクロックの周波数を入力してください 各種ハードマクロは このクロックで動作します I2C や SPI マクロからの出力クロックはこれを分周したものが出力されます 分周比は この周波数設定を基準に行いますので 実際に使用するクロック周波数が違うと適当な出力クロックが得られません 注意してください 5

図 3-2 WISHBONE clock 周波数の設定 3.2 I2C タブの設定 I2C タブでは I2C マクロ 2 つ (Primary/Secondary) の設定が行えます 図 3-3 I2C マクロ設定タブ General Call Enable General Call( アドレス all 0 ) のアクセスに対するレスポンス可否の設定です チェックが入っている場合は General Call に対して ACK を返します 6

Wakeup Enable パワーダウン状態でアクセスがあった場合のレスポンス可否の設定です チェックが入っているとパワーダウン状態で該当アドレスへのアクセスがあった場合にパワーダウンから自動的に復帰します I2C Bus Performance I2C バスのスループット ( クロック周波数 ) を選択します この設定から内部のクロック分周比が決まるので 必ず適当な値を選択してください I2C Addressing I2C のアドレスモード (7bit or 10bit) を選択します Slave Address 当該デバイスの I2C slave アドレスを設定します 3.3 SPI タブの設定 図 3-4 SPI マクロの設定タブ SPI mode SPI マクロの動作モードを選択します Master Clock Rate Master モードでの動作時の出力クロック周波数を設定します モードとして [Slave & Master] を選択した場合に設定可能です Wishbone クロックを分周して生成するので Wishbone クロックを分周して生成できる周波数を入力してください 7

SPI Protocol Options SPI の各種オプションの初期値設定です Wishbone バスからのレジスタアクセスで設定を変更することもできます LSB First チェックが入っていると LSB から出力 / 入力します Inverted Clock チェックが入っていると クロック極性が反転します 内部のレジスタ CPOL の初期値設定です Phase Adjust チェックが入っているとデータ出力のクロック位相 ( エッジ ) が立上がり同期になります 図 3-5 Phase Adjust チェックなし 図 3-6 Phase Adjust チェックあり Interrupts バスの割り込みを有効にするフラグを選択します Master Chip select Master モードで動作させる際に出力する Chip select の数を選択します Misc Wake up Enable パワーダウン状態でアクセスがあった場合のレスポンス可否の設定です チェックが入っているとパワーダウン状態でアクセスがあった場合に パワーダウンから自動的に復帰します 8

3.4 Timer/Counter タブの設定 Timer/Counter タブでは マクロの動作モードやカウント値の初期値設定を行います これらの値は Wishbone バスから随時変更することも出来ます (EFB Enables タブで Timer/Counter の動作モードを [Dynamic ] に設定している場合 ) 図 3-7 Timer/Counter マクロの設定タブ Mode Selection [Timer/Counter Mode] 欄でマクロの動作モードを [Output Function] 欄で出力ポート [tc_oc] の振る舞いを選択します 各選択の概略は以下の様になります Timer/Counter Mode CTCM (Clear Timer on Compare Match) 内部カウンタはカウントアップしていき レジスタ [TCTOP] の値と一致すると 0 に戻ります 内部カウンタ値 TCTOP 0 Count up TCTOP 0 Count up tc_oc 図 3-8 TCTM の内部カウンタと tc_oc の振る舞い (Output Function = TOGGLE) [Output Function] で [TOGGLE] を選択すると [tc_oc] ポートからは [TCTOP] サイクル周期でトグルする波形が出力されます レジスタ [TCTOP] については こちらを参照ください 9

Fast PWM Mode 内部カウンタはカウントアップしていき レジスタ [TCTOP] の値と一致すると 0 に戻ります [Output Function] で [TOGGLE] を選択すると レジスタ [TCOCR] およびレジスタ [TCTOP] とカウント値が一致した場合に [tc_oc] がトグルします 内部カウンタ値 tc_oc TCTOP 0 Count up TCOCR Count up TCTOP 0 Count up 図 3-9 Fast PWM Mode の内部カウンタと tc_oc の振る舞い レジスタ [TCTOP] と [TCOCR] については こちらを参照ください Phase and Frequency Correct PWM mode 内部カウンタは 0 からカウントアップしていき レジスタ [TCTOP] の値と一致するとカウントダウンを始めます カウント値が 0 になると再びカウントアップを始めます [Output Function] で [TOGGLE] を選択すると レジスタ [TCOCR] とカウント値が一致した場合に [tc_oc] がトグルします 内部カウンタ値 TCTOP 0 Count up TCOCR Count up TCTOP Count down TCOCR Count down tc_oc 図 3-10 Phase and Frequency Correct PWM Mode の内部カウンタと tc_oc の振る舞い レジスタ [TCTOP] と [TCOCR] については こちらを参照ください Clock Selection 内部カウンタを動作させるクロックについての設定を行います Clock Edge Selection カウンタで使用するクロックのエッジを選択します [PCLOCK] : tc_clki の立ち上がりエッジ [NCLOCK] : tc_clki の立ち下がりエッジ Prescale Divider Value カウンタに入力する前のクロック分周比設定です Tc_clki を最大 1024 分周できます 図 3-11 カウンタと Prescale Divider 10

Counter Value 各カウンタモードで使用するレジスタ [TCTOP] と [TCOCR] の初期値を設定します Timer Counter Top レジスタ [TCTOP] の初期値設定です [TCOCR] を使用するモードでは [TCOCR] より大きな値を設定してください Output Compare Value レジスタ [TCOCR] の初期値設定です かならず [TCTOP] より小さな値を設定してください 11

4 Wishbone から I2C マクロへのアクセス 4.1 I2C マスターモード時の制御 4.1.1 Write アクセス XO2 の I2C マクロをマスタとして 接続されるスレーブデバイスに [N]byte のデータを Write するには 図 4-1 の手順に従って wishbone バスにアクセスします 1 図 4-1 Wishbone バスから IC2 マクロで [N]byte データの Write を行うためのフローの例 1 Timeout について一定時間 (I2C クロック 9 サイクル分 ) 経過しても ACK が検出さなければ 出力した slave アドレスに該当するデバイスがバス上に存在しないことを意味するのでアクセスを終了します 12

wb_clk_i wb_cyc_i wb_stb_i wb_we_i wb_adr_i[7:0] wb_dat_i wb_dat_o wb_ack_o 44 N/A 41 N/A 45 45 44 N/A 41 N/A 45 45 41 1 N/A 90 N/A 2 N/A 10 N/A 40 3 3 4 4 1 7bit アドレス + '0' 2 I2C から出力するデータ 3 RARX(wb_dat_o[5]) と TRRDY(wb_dat_o[2]) をチェック 4 TRRDY(wb_dat_o[2]) をチェック 必要な回数繰り返し 図 4-2 Wishbone バスから IC2 マクロで Write を行うためのレジスタアクセス例 13

4.1.2 Read アクセス XO2 の I2C マクロをマスタとして 接続されるスレーブデバイスから [N]byte のデータを Read するには 図 4-3 の手順に従って wishbone バスにアクセスします 1 図 4-3 Wishbone バスから IC2 マクロで [N]byte データの Read を行うためのフローの例 1Timeout について一定時間 (I2C クロック 9 サイクル分 ) 経過しても ACK が検出さなければ 出力した slave アドレスに該当するデバイスがバス上に存在しないことを意味するので そのままアクセスを終了 14

wb_clk_i wb_cyc_i wb_stb_i wb_we_i wb_adr_i[7:0] wb_dat_i wb_dat_o wb_ack_o 44 N/A 41 N/A 45 45 41 N/A 45 45 47 1 N/A 90 N/A 20 N/A 2 2 3 3 4 1 7bit アドレス + '0' 2 RARX(wb_dat_o[5]) と TRRDY(wb_dat_o[2]) をチェック 3 TRRDY(wb_dat_o[2]) をチェック 4 I2C の Read データ ( 必要な回数 ) 繰り返し 41 68 N/A 47 4 図 4-4 Wishbone バスから IC2 マクロで Read を行うためのレジスタアクセス例 15

5 Wishbone から SPI マクロへのアクセス 5.1 SPI マスターモード時の制御 5.1.1 Write アクセス MachXO2 の SPI マクロをマスタとして 接続されるスレーブデバイスに [N]byte のデータを Write するには 図 5-1 の手順に従って wishbone バスにアクセスします 1 3 2 4 図 5-1 Wishbone バスから SPI マクロで [N]byte データの Write を行うためのフローの例 1 Write データの出力開始タイミングについて SPI マクロがアクティブでマスターモード設定されている場合 アドレス 0x59 にデータを write すると SPI のポートからクロックと Write したデータの出力が開始されます 1byte のデータ出力が終わると 次のデータがアドレス 0x59 に write されるまで SPI の出力クロックは停止します ( 図 5-2) 16

図 5-2 SPI データ出力開始タイミング 2 ダミーデータの Read について SPI マクロは回路構成上 アクセス内容にかかわらずクロックを出力すると SI ポートのデータを受信データとして取り込んでしまいます Write アクセスの際は 余分なデータが受信データ用のバッファに保存されてしまうので 以後の Read アクセスを正常に行うためにデータを出力する度に余分なデータを破棄する必要があります 3 byte データの送信完了確認について SPI マクロには アドレス 0x59 に write したデータの送信完了フラグがありません 前述のように Write アクセス時にも SI ポート上のデータがマクロ内に取り込まれ 1byte 分たまると受信データの read 可能フラグ (RRDY) が立つので それを送信完了フラグの代わりに使用します 4 繰り返し回数について α は SPI のコマンドおよびオペランドの byte 数です 17

wb_clk_i wb_cyc_i wb_stb_i wb_we_i wb_adr_i[7:0] wb_dat_i wb_dat_o wb_ack_o 56 N/A 5A 5A 59 N/A 5A 5A 59 56 C0 N/A 2 N/A 80 1 1 3 3 4 1 TRDY(wb_dat_o[4]) をチェック 2 任意の出力データ ( コマンド オペランド Write データ ) 3 RRDY(wb_dat_o[3]) をチェック 4 Read したデータは破棄 ( 必要な回数 ) 繰り返し 図 5-3 Wishbone バスから SPI マクロで Write を行うためのレジスタアクセス例 18

5.1.2 Read アクセス MachXO2 の SPI マクロをマスタとして 接続されるスレーブデバイスから [N]byte のデータを Read するには 図 5-4 の手順に従って wishbone バスにアクセスします 1 2 19

3 図 5-4 Wishbone バスから SPI マクロで [N]byte データの Read を行うためのフローの例 1 Write データの出力開始タイミングについて SPI マクロがアクティブでマスターモード設定されている場合 アドレス 0x59 にデータを write すると SPI のポートからクロックと Write したデータの出力が開始されます 1byte のデータ出力が終わると 次のデータがアドレス 0x59 に write されるまで SPI の出力クロックは停止します ( 図 5-5) 図 5-5 SPI データ出力開始タイミング 20

2 ダミーデータの Read について SPI マクロは回路構成上 アクセス内容にかかわらずクロックを出力すると SI ポートのデータを受信データとして取り込んでしまいます Write アクセスの際は 余分なデータが受信データ用のバッファに保存されてしまうので 以後の Read アクセスを正常に行うためにデータを出力する度に余分なデータを破棄する必要があります 3 ダミーデータの write についてマスターモードの SPI マクロから SPI クロックを出力するためにはアドレス 0x59 へのデータの write が必要になります このため Read アクセスの際でもクロックを出力させるためにアドレス 0x59 へのダミーデータの write を行います 21

wb_clk_i wb_cyc_i wb_stb_i wb_we_i wb_adr_i[7:0] wb_dat_i wb_dat_o wb_ack_o 56 N/A 5A 5A 59 N/A 5A 5A 59 59 N/A 5A 5A N/A 59 56 C0 N/A 2 N/A 0 N/A N/A 80 1 1 3 3 4 3 3 5 1 TRDY(wb_dat_o[4]) をチェック 2 任意の出力データ ( コマンド オペランド Write データ ) 3 RRDY(wb_dat_o[3]) をチェック 4 ダミーの Read データ (Read したデータは破棄 ) 5 SPI の Read データ ( 必要な回数 ) 繰り返し ( 必要な回数 ) 繰り返し 図 5-6 Wishbone バスから SPI マクロで Read を行うためのレジスタアクセス例 22

6 EFB のシミュレーション 6.1 テストベンチ作成時の注意点 EFB のシミュレーションには 最上位階層のテストベンチに以下の 2 つのモジュールのインスタンスが必要です また これらのモジュールのインスタンス名は以下のものでないと エラーになります 表 6-1 GSR/PUR のインスタンス名 モジュール名インスタンス名備考 GSR GSR_INST Global Set/Reset 出力モジュール PUR PUR_INST Power Up Set/Reset 出力モジュール エラメッセージの例 # ELAB2: Fatal Error: ELAB2_0036 Unresolved hierarchical reference to "GSR_INST.GSRNET" from module "testbench.u1_efb_i2c_ms.efbinst_0" (module not found). # ELAB2: Last instance before error: /u1_efb_i2c_ms/efbinst_0 # KERNEL: Error: E8005 : Kernel process initialization failed. # Error: Fatal error occurred during simulation initialization. 記述例 library ieee, std; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith; use ieee.std_logic_textio.all; use std.textio.all; library ovi_machxo2; use ovi_machxo2.all; entity testbench is end testbench; architecture BL of testbench is component GSR port( GSR : in std_logic ); end component; component PUR port( PUR : in std_logic ); end component; 23

Begin GSR_INST : GSR port map( GSR => wb_xrst_i ); PUR_INST : PUR port map( PUR => c_vcc ); end BL; 6.2 I2C マクロの入出力信号 I2C マクロからの出力は I2C の仕様どおり 0 または Z です I2C マクロから 1 や H は出力されません 従って外部で H レベルへのプルアップ処理が必要になります 図 6-1 I2C マクロ入出力ポートの接続と記述例 24

6.3 WISHBONE バスへの入力データ WISHBONE バスから EFB にアクセスする場合 クロックに対してデータの遅延が小さい場合は wb_ack_o 信号がテクニカルノート TN1205 のタイムチャートとは違うタイミングでアサートされます ( 図 6-2 図 6-3) ----------------------------------------------------------------------------------------------------------------------------------- ただし Read/Write アクセス自体は正しく行われます ----------------------------------------------------------------------------------------------------------------------------------- 図 6-2 WISHBONE バスのアクセス波形 (TN1205) 図 6-3 WISHBONE バスのシミュレーション波形 ( 入力データ遅延なし ) シミュレーション時の wb_ack_o のタイミングを TN1205 と同じにするためには WISHBONE バスへの入力信号に クロックに対して 20ps 以上の遅延をつけてください 図 6-4 WISHBONE バスのシミュレーション波形 ( 入力データ遅延あり ) 25

7 改訂履歴 表 7-1 改訂履歴 バージョン リリース 改訂内容 Ver1.0 June. 2011 初版リリース 26