内容紹介
IGLOO nano EvalボードでLEDの輝度とパターンスピードを制御しながら、様々なLED出力パターンを作成するために、Libero(v9.1 SP4)デザインフローを通じて、以下のトピックをカバーします。
•Liberoデザインフローツールの基本概要
• PLL、カウンタ、マルチプレクサ、デコーダ、およびFlash*Freeze入力バッファ用MicrosemiのLibero Catalogコアのインスタンス化
• カウンタコントローラ、ボタンディバウンサ、パルス幅変調信号発生器を含むカスタムVHDLコンポーネントの設計とインスタンス化
• ModelSim AEのコマンドを使用したカスタムコアのシミュレーション
• Synplify Proでタイミング制約と属性の設定
• Smart Timeでタイミング制約と解析の管理
• I/O属性エディタでピンアサインを設定
• Flash Proによるレイアウト設定、プログラムファイルの作成、およびデバイスのプログラム作成
はじめに
このチュートリアルでは、IGLOO nano FPGAの開発について、タイミング制約や属性の追加など、高度なトピックを紹介します。Liberoの設計フローに基本的に慣れていることを前提としています。Libero v9.1 IDEを使用して、Microsemiコア、カスタムHDLコアをインスタンス化し、Libero Canvas上でコアをつなぎ合わせてトップレベルファイルを作成する予定です。その結果、IGLOO nanoのFlash*Freeze機能を説明しながら、IGLOO nano評価ボード上のLEDに接続されたI/O出力パターンの制御を可能にしています。ボタンディバウンス回路のステートマシン設計とエンコード属性をカバーしており、他の2つのカスタムVHDLコンポーネントとLibero Catalogコアをインスタンス化します。
背景
MicrosemiのIGLOO nanoスタータキットは、FPGAの低消費電力プロトタイピングを迅速に行うことができます。IGLOO nanoでは、Flash* Freeze専用端子を利用して、超低消費電力のFlash* Freeze 状態を作り出すことができます。この静的状態により、nanoはシステムメモリとレジスタの内容を保持したまま、わずか5µW(標準24µW)の電力しか消費しません。
IGLOOのFPGAは再プログラム可能なフラッシュ技術を使用しており、同等のSRAMデバイスと比較して、不揮発性、高セキュリティ、および低消費電力であることが特徴です。IGLOOファミリは、クロックコンディショニング回路、統合フェーズロックループ、組み込みSRAM、組み込みNVM、およびインシステムプログラミング機能を搭載しています。
このチュートリアルに必要なハード/ソフトウェアです。
• Microsemi IGLOO nano評価キット
• USBケーブル2本(電源用とプログラミング用に1本ずつキットに含まれています)
• 低コストプログラマ(キットに含まれています)
• Synplify Pro AEおよびModelSim AEを搭載したLibero v9.1 SP4
• Flash*Freezeモード時のFPGAコア電流測定用マルチメータ(オプション).
アプリケーション
回路を組み立てる
-
開発の最初のステップは、Libero IDEを起動し、新規プロジェクトウィザードを使用して新しいプロジェクトを作成することです。 Project → New Project。プロジェクト名(project name)、場所(location)を入力し、優先するHDLタイプ(preferred HDL type)にVHDLを選択します。
-
nextをクリックすると、デバイスの選択(Select Device)ウィンドウが表示されます。
注:正しいデバイス(Die)を選択しないと、後で変更するためにはプロジェクトを最初から開始する必要があります。
-
以下を入力し、Next> ボタンをクリックしてください。
• Family:IGLOO
• Die:AGLN250V2
• Package:100 VQFP -
Select Integrated Tools MenuのSynthesisのラジオボタンでSynplify Pro AEが選択されていることを確認し、 Next> をクリックします。
-
Add files to your projectウィンドウのユーザーファイルの下にあるHDL Source Files (*.vhd; *.v; *.h) をハイライトし、Add Files… ボタンをクリックします。
-
このチュートリアルに含まれているダウンロードしたファイルの場所に移動し、PWM.vhd, Debounceを選択します。VHDとUpDownCont.vhdを選択し、addをクリックしてインポートします。.vhdファイルは、ウィンドウのHDL Source Files (*.vhd; *.v; *.h) の見出しの下に表示されます。Finishをクリックします。
-
この時点で、Libero IDEにプロジェクトフローウィンドウが表示され、Hierarchyウィンドウにインポートした.vhdファイルが表示されます。下記の図1をご覧ください。
図1.設計フロー
-
SmartDesignボタンをクリックし、Select a Typeで SmartDesign Componentがハイライトされていることを確認し、Topなどのトップレベルコンポーネントの名称を入力します。
-
Catalog のCoresタブにあるClock & Managementのタイトルを展開し、PLL - StaticコアをCanvasにドラッグします。この時点で、下記の図2のようなStatic PLL : Create Coreウィンドウが表示されます。Hardwired I/Oの入力に20MHzを入力し、マルチプレクサでPLLを選択し、出力に50MHzを入力します。Generateボタンをクリックし、コアにCLKGENという名前を付けます。PLL Coreのオプションは、Canvas内のブロックをダブルクリックすることで、いつでも変更することができます。
図2.PLL-Staticコアの構成
-
CLKGEN PLLのPOWER入力ポートを右クリックし、ポップアップウィンドウでtie highをクリックします。
-
次にCLKAポートを右クリックし、ポップアップウィンドウ内のpromote to top levelをクリックします。
-
CoresタブでActel Macrosのタイトルを開き、AND2ゲートをCanvasにドラッグ&ドロップします。
-
Bポートを右クリックし、promote to top levelをクリックします。
-
トップレベルの入力ポートBを右クリックし、ポップアップメニューからmodify portを選択します。
-
ポート名をnSysResetに変更します。
-
キーボードのcontrolキーを押しながらCLKGEN LOCK出力ポート、そして次にAND2 A入力ポートを右クリックし、ポップアップメニューからconnectを選択します。下記の図3をご参照ください。これにより、PLL Lock出力に依存したアクティブローリセットが得られます。
図3.ポートの接続
-
次に、Flash*Freezeピンの入力バッファをインスタンス化する必要があります。CoreタブのActel Macrosで、INBUF_FFまでスクロールし、それをCanvas上にドラッグします。これにより、INBUF_FFが自動的にトップレベルに接続されます。
-
トップレベルの入力ポートPADを右クリックし、 Flash_Freeze_Nに名前を変更し、出力ポートYを右クリックし、Mark Unusedを選択します。これでFlash*Freezeモードが有効になります。
-
CatalogウィンドウのCoreタブでBasic Blocksのタイトルを開き、 CounterコアをCanvasにドラッグします。
-
下記の図4のような設定でコアをセットアップし、 generateボタンをクリックし、コアの名前を counter1とします。
図4.Counter1コアの設定
- Counter1出力ポートQ0を右クリックし、Add Sliceオプションを選択します。Q21の場合には21:21と入力すると、バスからビット21が個別に実行されます。下記の図5を参照ください。ポートは「+」ボタンをクリックして開くことができます。この手順を繰り返して、Q20、Q19、およびQ0を出力します。counter1のClock入力ポートとCLKGENのGLA出力を、先ほどのポート接続と同様に、controlキーを押しながら両方のポートを右クリックし、ポップアップメニューからconnectを選択して接続します。また、Counter1のAclrをAND2ゲートのY出力に接続してください。
図5.スライスをQ0に追加
-
Counter1のポートバスQ0を右クリックして、Mark as Unusedを選択します。バスの残りのビットは、後でマルチプレクサを介して3ビットカウンタのクロック入力に接続されます。
-
ステップ19を繰り返して、別のカウンタをCanvasにドラッグして、図6のように設定します。generateボタンをクリックし、コアにCounter2という名前を付けます。このカウンタは、3ビットのUpDownカウンタになります。
図6.Counter2のコアの設定
- CoresタブのBasic BlocksにあるMultiplexorをCanvasにドラッグして、下記の図7のように設定し、generateをクリックしてコアにMux1と名前を付けます。
図7.クロックマルチプレクサの設定
-
Canvasの左端を右クリックし、Add Port… を選択します。DipSwitches0を入力し、入力ラジオボタンが選択されていることを確認し、okをクリックします。上記ステップ21と同様に8スライス追加してDipSwitchesバスの全8ラインを取り込みます。これらの入力ポートは、後にIGLOO評価ボードの8ビットバンクのディップスイッチに割り当てられます。
-
次に、下記の図8に示すように、すべてのポートを接続する必要があります。図8をよく見て、DipSwitchバスのビット 2、3とMux1のSel0、Sel1を接続してください。また、Counter1のビット21、20、および19をMux1のData0、Data1、およびData2に接続します。その結果はCounter2のClockに送られます。
図8.チュートリアルのステップ26までの接続
-
Counter2の出力Q0バスの3ビットすべてを、手順21で行ったようにスライスを追加して出力します。
-
Basic BlocksのCoresタブで、DecoderをCanvasにドラッグし、出力幅を8、デコードイネーブルをActive High、出力(Eq)を Active Lowに設定し、generateをクリックし、コアにDecoderと名前を付けます。下記の図9をご参照ください。
図9.デコーダの設定
-
入力データ線Data0、Data1および Data2をそれぞれCounter2の出力ビットQ0、Q1、およびQ2に接続します。
-
LEDを2つ目のパターンで駆動するために、もう1つのデコーダが必要です。もう1つのデコーダコアをCanvasにドラッグして、前と同じようにセットアップします。ただし、今回は4ビット出力が必要です。以下の図10をご覧ください。
図10.Dec_Mode2の設定
-
Dec_Mode2の入力ポートのData0、Data1をそれぞれ出力ポート Q1、Q2に接続します。両方のデコーダのイネーブルは、カスタムVHDL PWMジェネレータからの出力によって制御されます。これにより、LEDの輝度を変化させることができます。
-
Eq0の出力に4スライスを追加してDec_Mode2デコーダから4ビットすべてを出力し、ポートを拡張します。
-
CoresタブのBasic Blocksタイトルから2番目のMultiplexorをドラッグして、Multiplexorコアをインスタンス化します。図11に示すように、出力バス幅を8、入力バスを2としてコアを構成し、generateをクリックしてmultiplexorにMux_Modeという名前を付けます。
図11.Mux_Modeの設定
-
このマルチプレクサによって、どのデコーダ出力を評価ボードのLEDに出力するかを選択することができます。Result0出力ポートをトップレベルに格上げし、トップレベルのポート上で右クリックし、Modify Portを選択してその名前をLEDに変更します。8スライスを追加してポートを拡張することで、Data1に7つの入力ポートをすべて出力します。
-
Mux_Mode選択線Sel0をトップレベル入力ポートDipSwitches0に接続します。
-
Decoderの出力Eq0をMux_Mode入力Data0_port0に接続します。
-
Dec_Mode2の出力Eq0を入力Data1_port0に対称に接続します。Eq0は、Data1_port7とData1_port0の両方に接続します。Eq1は、Data1_port1とData1_port6の両方に接続します。Eq2は、Data1_port2とData1_port5の両方に接続します。Eq3は、Data1_port3とData1_port4の両方に接続します。下記の図12をご参照ください。
図12.Mux_Modeの接続
- イネーブルの場合、Counter2のUpDown入力を駆動する必要があります。これを行うには、先にインポートした.vhdファイルの1つをインスタンス化する必要があります。UpDownCont.vhdコンポーネントをCanvasにドラッグします。このファイルは、左のDesign ExplorerウィンドウのHierarchyタブで確認できます。このコンポーネントブロックは、ダブルクリックで.vhdファイルを開き、内容を確認することができます。UpDownCont.vhdブロックは、Conter2の動作(カウントアップまたはカウントダウン)を制御します。以下の図13にRTLダイアグラムを示しますので、参考にしてください。
図13.UpDownCont.vhdのRTLダイアグラム
- 3スライスを追加してUpDownCont入力ポートcntr_in0の3ビットをすべて出力します。図14のように、入力のcntr_in2、cntr_in1、cntr_in0を、それぞれCounter2の出力Q2、Q1、Q0の出力に接続します。
図14.UpDownCont.vhdの接続
-
次に、pwm_gen(HierarchyタブのDesign Explorerにある PWM.vhdコンポーネント)をインスタンス化する必要があります。これを行うには、前にUpDownCont.vhdコンポーネントで行ったように、PWM.vhdコンポーネントをCanvas上にドラッグします。このブロックは、VHDLを調べるために開くこともできます。
-
7スライスを追加して、pwm_gen, del_PWM0入力ポー トへの入力ビ ッ トをすべて引き出します。
-
ADD_or_Subをトップレベルに格上げします。
-
del_PWM1、del_PWM2、del_PWM3、del_PWM4をそれぞれDipSwitches4、DipSwitches5、Dipswitches6、DipSwitches7に接続します。
-
del_PWM0、del_PWM5、del_PWM6、del_PWM7を右クリックし、tie lowを選択します。
-
del_PWM1、del_PWM2、del_PWM3を右クリックし、ポップアップメニューからInvertを選択します。
-
pwm_gen出力のpwm_outをDecoderおよびDec_Mode2のイネーブル入力に接続します。
-
pwm_gen出力のpwm_outをトップレベルに格上げします。
-
インスタンス化する最後のVHDLコンポーネントは、switch_debounce(HierarchyタブのDesign ExplorerにあるDebounce.vhdコンポーネント)です。これを行うには、Debounce.vhdコンポーネントをCanvas上にドラッグします。このコンポーネントは、1つの変化が必要な場合に、ボタンのチャタリングによりデューティサイクルに複数の変化を入力することがないように使用されます。このコンポーネントには、ワンショット パルスと 39ms待機状態後にレベル変化する2つの出力があります。ASMダイアグラムを下記の図15に示します。このコンポーネントブロックを開いて、VHDLコンポーネントを調べることができます。
図15.Debounce.vhd FSMのASMダイアグラム
-
switch_debounceおよびpwm_gen_0の入力clk信号をCLKGEN出力GLAに接続します。
-
switch_debounceおよびpwm_gen_0の入力nreset信号をAND2出力のYに接続します。
-
switch_debounce出力db_levelをpwm_gen入力strDelPWMに接続します。
-
switch_debounce入力swをトップレベル入力に格上げし、ポート名をstrDelPWMに変更し 、入力を反転します。
-
db_levelとdb_pulseポートを右クリックし、トップレベルに格上げします。
-
UpDownCont_0入力enをトップレベル入力ポートDipSwitches1に接続します。
-
最後にCounter2_0のUpDown入力ポートをUpDownCont_0の出力ポートUpDownに接続します。最終的なトップレベルの回路図は、図16のようなものになります。Canvas上で右クリックし、Auto Arrange InstancesとAuto Arrange Connectionsを選択して、回路図を整頓してください。
図16.最終的なトップレベルの回路図。ハイ、ロー、およびインバートに接続されたポートに注目
-
Design ExplorerのHierarchyタブのTopを右クリックし、set as rootを選択します。
-
タスクバーでSmartDesign→Check Design Rulesをクリックします。エラーがなければステップ58のシミュレーションに進みますが、そうでなければ接続やコンフィギュレーションの設定を確認する必要があります。
ModelSim AEを用いた合成前シミュレーション
-
任意の1つのコンポーネントを分離してシミュレーションするには、Design ExplorerのHierarchyタブで見つかったコンポーネントを右クリックし、Set As Rootを選択します。UpDownCont.vhdコンポーネントをルートとして設定します。
-
同じコンポーネントを再度右クリックし、Organize Stimulusを選択します。これにより、testbench.vhdファイルの関連付けを行うためのメニューが表示されます。右側の「Associated files:」でファイルをハイライトし Remove、okの順にクリックして、testbench.vhdファイルが関連付けられていないことを確認してください。今回のシミュレーションでは、UpDownCont.vhdファイルの一番下にあるテストスクリプトを使用し、それをModelSimシミュレータに貼り付けます。
-
ファイルをダブルクリックしてUpDownCont.vhdを開き、コメントされたスクリプトをハイライトして右クリックし、ポップアップメニューからcopyを選択しコピーします。
-
Project Flowタブを開き、Simulationボタンをクリックします。「Do you want to associate stimulus now」と尋ねられたら、Noをクリックします。
-
Objectsウィンドウから3つの信号en、cntr_inおよびupdown_outをWaveウィンドウにドラッグ&ドロップします。
-
あらかじめコピーしておいたスクリプトをTranscriptウィンドウに貼り付け、Enterキーを押して波形を観察します。波形は、下記の図17のようになります。
図17.UpDownCont.vhd カウンタ制御のModelSimシミュレーション
- Debounce.vhdのFSMは、UpDownCont.vhdコンポーネントと同じ方法でシミュレーションできます。Debounce.vhd FSMのシミュレーションは、下記の図18と図19で見ることができます。図19は、パルス出力の詳細を示したものです。UpDownCont.vhdコンポーネントをシミュレートするために使用するコマンドを試しながら、Debounce.vhdコンポーネントをシミュレートするための独自のコマンドを作成してください。
図18 Debounce.vhd FSMのModelSimシミュレーション
図19 Debounce.vhd FSMのパルス出力ビューの拡大図
-
合成前のシミュレーションを行った後、TopをRootに設定するには、Design ExplorerウィンドウのHierarchyタブでTopを右クリックし、Set As Rootを選択します。
-
TopタブでSmartDesign → Generate Designをクリックし、Topレベルのデザインを生成します。
Synplify Pro AEを用いた合成
-
Project Flowタブを開き、Synthesisボタンをクリックすると、Synplify Pro AE が起動します。
-
Synplify Pro内の左パネルにあるタイミング制約(timing constraint)ブロックに20MHzと入力し、Run(実行)を押してください。エラーは出ないはずです。
-
左側のパネルで、FSM Compilerがチェックされていることを確認してください。
-
タスクバーでNew Scope Fileボタンをクリックします。ここで制約を設定することができます。デフォルトを受け入れるには、okをクリックします。
-
Clocksタブでn:CLKGEN_0.GLAのEnabledのチェックボックスをクリックし、Frequencyブロックに20MHzを入力します。下記の図20をご参照ください。
図20.Synplify Pro AEのクロック制約の入力
- 次にAttribute(属性) タブをクリックし、Attributeブロックにsyn_encodingと入力し、エンターキーを押します。object列を排除し、value列をgrayエンコーディングに設定し、Enabledのチェックボックスをクリックします。下記の図21をご参照ください。
図21.Debounce.vhd回路のFSM属性の入力
-
ローカルのTop_syn.sdcウィンドウを閉じ、ファイルを保存するよう求められたらYesをクリックします。 Save as(名前を付けて保存)ウィンドウがポップアップ表示されたら、Saveをクリックします。
-
もう一度Runをクリックし、Synplify ProをFile → Exitで終了します。Save changes to project Top_synの質問にはYesをクリックします。このプロセスは、Designerに入る前に設計に制約を与えます。これは、後でDesignerのConstraints Editorに表示されます。
Designerによる配置配線
-
LiberoのProject Flowタブを開き、Designerをクリックします。
-
Organize Constraints for Designerウィンドウで、OKをクリックしてデフォルトの制約を受け入れます。右側のConstraint files for DesignerにTop.pdcとTop_sdc.sdcが含まれることに注意してください。
-
Designerが起動しますので、Next、Next、Finishの順にクリックしてデフォルトの設定を受け入れます。
-
Compileボタンをクリックします。
-
Compile optionsウィンドウが開いたら、Globals Managementカテゴリをハイライトし、「 Promote regular nets whose fanout is greater than:」のチェックボックスにチェックを入れ、15を入力します。「But do not promote more than:」に3を入力します。OKをクリックします。下記の図22をご参照ください。
図22.ファンアウトを制御するためのコンパイルオプションの入力
-
Designer内のI/O Attribute Editorをクリックし、信号をピンに割り当てます。
-
MultiView Navigatorは、I/O Attribute Editorウィンドウを開いた状態で起動します。下記の図23を参考に、同じようにピン配列してください。Flash*Freezeピンは既に割り当てられています。
図23.I/O Attribute Editorのピン配列
-
File → CommitおよびCheckをクリックします。File → Exit をクリックします。
-
Designer内のLayoutボタンをクリックします。OKをクリックして、デフォルトの設定を受け入れます。
-
レイアウトが終了すると、タイミングが満たされたことを示すチェックマークがLayoutボタンの右上隅に表示されます。
-
この時点で、Back-Annotateボタンを使用し、LiberoのProject flowタブ内のSimulationボタンを使用して、Post-Layout Simulationを実行することができます。
-
DesignerでTiming Analyzerボタンをクリックします。左側のSummaryウィンドウで、タイミングが満たされていることを示す緑のチェックマークに注目してください。CLKGEN_0の下のRegister to Registerエレメントをクリックします。Max Delay Analysis Viewウィンドウを見て、タイミングが満たされていることを確認します。Slack(スラック)の欄にはすべて正の値が表示され、左下のウィンドウにはスラックの分布がナノ秒単位で表示されます。これらのウィンドウは、タイミングが満たされたことを一括して示しています。下記の図24をご覧ください。
図24.SmartTimeの最大遅延時間解析
-
ホールド違反は、Minimum Delay Analysis Viewで解析することもできます。Tools → Timing Analyzer → Minimum Delay Analysis View
-
パスの1つ(ソースピンからシンクピン)に負のスラックがある場合、パスの行をダブルクリックすると、タイミングをさらに解析することができます。別ウィンドウで、パスの拡大図が表示されます。このウィンドウには、Data Required timeとData Arrival time、そしてSlackが表示されます。Required timeとArrival timeの各要素は、Path detailsで確認することができます。DesignerからChipPlannerを開いた場合、論理回路を右クリックし、Cross-probe Pathを選択することで、パスのクロスプローブが可能です。これにより、FPGAファブリック上のロジックパスを解析することができます。下記の図25を参照してください。
図25.最大遅延拡張パス
-
タイミングが満たされた後、Designerでプログラミングファイルを作成することができます。
-
Smart timeを終了します。 File → Exit
-
DesignerのProgramming Fileボタンをクリックします。OKをクリックしてデフォルトを受け入れ、Generateをクリックします。
-
プログラミングデータファイル(.pdb)を作成したら、Designer を終了します。File → Exitで終了します。要求されたらDesignerに変更を保存してください。
Flash ProでFPGAをプログラミングする
-
ボードがCON2の電源用ミニUSBケーブルと、第2のミニUSBケーブルで、LCプログラマ(キットに同梱)を介してIGLOO nano EvalボードのLCPSコネクタに接続されていることを確認してください。
-
USB ドライバをインストールするよう指示があった場合、インストールします。IGLOO nano EvalキットのGetting Started Cardを参照し、ボードの接続方法を確認してください。
-
LiberoのProject Flowタブで、Programmingボタンをクリックし、FlashProを起動します。
-
FlashProが起動し、LC Programmerを検出します。FlashPro3として検出されますが、これは問題ありません。PROGRAMボタンをクリックして、チップをプログラムしてください。下記の図26を参照してください。
図26.FlashProでIGLOO nano FPGAをプログラミングする
- この時点でチップはプログラムされます。Dipスイッチは、ボード上のSW1とSW3のボタンを押すことにより、点滅速度、点滅タイプ、およびPWMのデューティサイクルが変化する速さを制御することができます。SW3を押すと、PWMのデューティサイクルが減少し、実際LEDが暗くなります。SW3を押しながらSW1を押すと、PWMのデューティサイクルが上がり、LEDは実際に明るくなります。図27をご参照ください。
図27.LEDの点滅パターンと輝度を操作するためのスイッチ類
-
オシロスコープを使ってデバウンス出力、レベル/パルス出力、PWM出力(ピン76、77、および78) を見ることができ、デコーダのイネーブル信号をストローブするために使用されます。
-
SW6をONにスライドさせることで、Flash* Freezeに入ることができます。
-
JP10の1番ピンと4番ピンにプローブを取り付け、2番ピンと3番ピンからジャンパを引き抜けば、電流計でコア電流を測定することができます。Flash* Freezeスイッチを切り替えると、コアの消費電流がどのように変化するかに注目してください。図28、29、および30でFlash* Freeze機能を説明していますので、ご参照ください。
図28.コア電流測定時の電流プローブの接続方法
図29.ノーマルモード時のコア消費電流は、3.75mA
図30.Flash*Freeze モード時のコア消費電流は、26.8uA
機能、制限、および変更点
このチュートリアルの開発には、Libero v9.1 Service Pack 4を使用し、Synopsis(Synplify Pro AE)およびMentor Graphics(ModelSim AE)のサポートソフトウェアを使用しました。Liberoは、他の合成およびシミュレーションソフトウェアと組み合わせて、スタンドアロンの開発環境として使用することができます。
まとめ
このチュートリアルでは、Liberoのデザインフローを使用して、Microsemiコア、カスタムVHDLコアのインスタンス化、大規模デザイン内の個々のコンポーネントのシミュレーション、FSM設計のタイミング制約と属性の設定、SmartTimeでのタイミング制約とデータパスのクロスプローブの管理、I/O属性エディタのピン割り当て設定、コンパイルとレイアウト設定の制御、そして最後にFlashProによるIGLOO nano FPGAのプログラミングが簡単にできることを説明しています。タイミング要求が満たされていることを確認することは、あらゆるFPGAの設計フローにおいて重要な要素ですが、SmartTimeはこのステップを容易にします。
補足情報
その他の設計サポート、製品チュートリアル、アプリケーションノート、ユーザーガイドなどの資料は、Microsemi cSOCグループのウェブサイト(FPGAs and PLDs | Microchip Technology)にてご覧いただけます。
付録:ファイルのダウンロード
Microsemi_IGLOO_LED_Patterns.doc(2.8 MB)
Led_PatternProj.zip(775.6 KB)