AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307:...

127
この翻訳版ドキュメントのメンテナンスは終了しております。 この文書には、古いコンテンツや商標が含まれている場合があります。 最新情報につきましては、次のリンクから英語版の最新資料をご確認ください。 https://www.intel.com/content/www/us/en/programmable/documentation/lit-index.html Please take note that this document is no longer being maintained. It may contain legacy content and trademarks which may be outdated. Please refer to English version for latest update at https://www.intel.com/content/www/us/en/programmable/documentation/lit-index.html

Transcript of AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307:...

Page 1: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

この翻訳版ドキュメントのメンテナンスは終了しております。

この文書には、古いコンテンツや商標が含まれている場合があります。

最新情報につきましては、次のリンクから英語版の最新資料をご確認ください。

https://www.intel.com/content/www/us/en/programmable/documentation/lit-index.html

Please take note that this document is no longer being maintained. It may contain legacy content and trademarks which may be outdated.

Please refer to English version for latest update at https://www.intel.com/content/www/us/en/programmable/documentation/lit-index.html

Page 2: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

Altera Corporation2009 年 11 月

2009 年 11 月

この資料は英語版を翻訳したもので、内容に相違には、最新の英語版で内容をご確認ください。

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー

AN-307-6.3

が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用ください。設計の際

概要アルテラのプログラマブル・ロジック・デバイス(PLD)による設計は、概念および実行

の点から見れば、Xilinx 社の PLD 製品による設計に似ています。 ほとんどの場合には、レ

ジスタ転送レベル(RTL)をアルテラの Quartus® II ソフトウェアにインポートするだけで、

デザインのターゲット・デバイスへのコンパイルを開始することができます。

このドキュメントは、Xilinx の ISE ソフトウェアに精通する、そして既存の ISE デザイン

をアルテラの Quartus II ソフトウェア環境に転換したいユーザーを対象としています。

このアプリケーション・ノートの最初のセクション、 「Quartus II による FPGA デザイン

手法」では、アルテラの Quartus II ソフトウェアおよび Xilinx の ISE ソフトウェア間の等

価のフローを示しています。また、Xilinx の ISE ソフトウェアおよびアルテラの Quartus IIソフトウェア間での比較も可能な限り作られています。

このアプリケーション・ノートの第 2 セクション、 「Xilinx からアルテラへのデザイン変

換」では、アルテラの Quartus II ソフトウェアに変換するための ISE デザイン・ガイドラ

インを提供します。 また、ISE ソフトウェアおよび Quartus II ソフトウェア間の類似点およ

び対等な機能(Xilinx CORE Generator モジュールおよびインスタンス化されたプリミティ

ブを含む)についても説明されています。 加えて、このアプリケーション・ノートでは、

Xilinxの ISEソフトウェアからアルテラのQuartus IIソフトウェアへのデバイス上および設計

上の制約の変換方法を示します。

このアプリケーション・ノートには、付録 A: デザイン例の項も含まれています。 このデ

ザイン例は、Quartus II ソフトウェアのデザイン・フローを介してステップバイステップ・

ガイドを提供します。

このアプリケーションノートは、Quartus II ソフトウェア v9.0 および Xilinx の ISE ソフト

ウェア v10.1 に関する最新情報に基づいています。

1 Quartus II ソフトウェアによるデザインの設定について詳しくは、「Quick Start

Guide For Quartus II Software」を参照してください。

Quartus IIによる FPGAデザイン手法Quartus II ソフトウェアは、Xilinx ISE ソフトウェアに似ているツールを提供します。

Quartus II ソフトウェアでは、コマンドライン実行コマンドとスクリプトを使用するか、あ

るいは Quartus II GUI を使用することによってデザインの実装を実行することができます。

コマンドライン・スクリプトによる FPGAデザイン・フローFPGA 設計プロセスの自動化によって、時間の節約および生産性の向上が実現できます。 ISE ソフトウェアおよび Quartus II ソフトウェアは、FPGA デザイン・フローを自動化するの

に必要なツールを提供します。 図 1 に、Xilinx の ISE ソフトウェアまたはアルテラの

Quartus II ソフトウェアによるコマンドライン実装の典型的な流れの類似点を示します。

Page 3: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

Quartus II コマンドライン実行コマンドのフローについて詳しくは、「Quartus II

ハンドブック Volume 2」の「Command-Line Scripting」の章を参照して下さい。

デザインをコンパイルし、FPGA デザイン・ファイルにプログラミング・ファイル

を生成するコマンドラインによるインプリメンテーション・フローに精通する ISEソフトウェアのユーザーにとって、Quartus II ソフトウェアでは、コンパイル・

フローと呼ばれる類似のフローが存在しています。 コンパイル・フローとは、

Quartus II ソフトウェアがデザイン・ファイルを変換し、変換されたデザインをデバ

イス固有のエレメントにマッピングし、デザインをデバイスに配置配線し、そして

プログラミング・ファイルを生成するシーケンスおよび方法です。 これらの機能は、

Quartus II Integrated Synthesis(QIS)、フィッタ、アセンブラ、および TimeQuestタイミング・アナライザによって実行されます。 次のセクションでは、コマンドラ

イン実行コマンドを用いて、2 つのソフトウェアのフローについて説明し、比較し

ます。

図 1. 基本デザイン・フロー

Project CreationAltera

Quartus IISoftware

XilinxISE

Software

quartus_map

quartus_fit

quartus_sta

quartus_asm

XST

NGDBuild

MAP

PAR

TRCE

BitGen

PROMGen

Synthesize andTranslate Design Files

Map Design Elementsto Device Resources

Place and RouteDesign Resources

Perform TimingAnalysis

Generate Programming File

2 Altera Corporation2009 年 11 月

Page 4: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

等価のコマンドライン実行コマンド表 1 に、ISE ソフトウェアおよび Quartus II ソフトウェアの間で最も一般的な等価

の実行コマンドをまとめます。

1 Quartus II 実行コマンドに関するコマンドラインのヘルプについては、コマンド・プ

ロンプトで < 実行コマンド > --help を入力してください。 すべての Quartus II 実行コマンドの情報を含む GUI ベースのヘルプ・ブラウザも提供されています。 この

ブラウザを起動するには、コマンド・プロンプトで quartus_sh --qhelp を入力

して実行してください。

XST/ NGDBuild /MAP

Quartus II コマンドラインのフローでは、合成(XST)、デザインの変換

(NGDBuild)、およびデザイン・エレメントをデバイス・リソースにマッピングする

作業(MAP)を実行するためには、1 つの実行コマンド(すなわち、quartus_map)のみが必要です。

次の例では、Stratix® II デバイス・ファミリを対象として、デザイン(filtref.bdf)の

論理合成およびテクノロジのマッピングを実行します。

quartus_map filtref --rev=<revision name> --source=filtref.bdf --family=stratixii

1 コマンドラインのヘルプを使用するには、コマンド・プロンプトで quartus_map --helpを入力してください。

PAR

ISE が提供する PAR 実行コマンドの代わりに、Quartus II ソフトウェアは

quartus_fit実行コマンドを提供して、すべてのデバイス・リソースを選択された

FPGA デバイスに配置配線します。

次の例では、Quartus II プロジェクトのロジック(filtref)をターゲットの Stratix II EP2S15F484C3 デバイスにフィットすることによって配置配線を実行します。

quartus_fit filtref --part=EP2S15F484C3

表 1. 等価のコマンドライン実行コマンド

Xilinx ISEの実行コマンド

アルテラ Quartus IIの実行コマンド 説明

XSTNGDBuildMAP

quartus_mapプロジェクト・デザイン・ファイル(例えば、RTL または EDAネットリスト)を変換し、デザイン・エレメントをデバイス・リソースにマッピングする。

PAR quartus_fit デバイス・リソースを FPGA に配置配線する。

TRCE quartus_sta デザインにスタティック・タイミング解析を実行する。

BitGenPROMGen

quartus_asm 配置配線後のデザインからプログラミング・ファイルを生成する。

NetGen quartus_eda 他の EDA ツール用のネットリスト・ファイルを生成する。

XPWR quartus_pow デザインの消費電力見積もりを実行する

XFLOWquartus_sh –flowquartus_cdb

合成、実装、およびシミュレーションのフローを自動化する。 加えて、quartus_cdb実行コマンドでは、バージョン互換のデータベースのインポートとエクスポート、およびパーティションのマージが可能です。

Altera Corporation2009 年 11 月 3

Page 5: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

1 コマンドラインのヘルプを使用するには、コマンド・プロンプトで quartus_fit --helpを入力してください。

TRCE ISE が提供する TRCE 実行コマンドの代わりに、Quartus II ソフトウェアは

quartus_sta実行コマンドを提供して、デザインにスタティック・タイミング解析

を実行します。

次の例では、SDC タイミング制約ファイル(filtref.sdc)を使用して filtref プロジェ

クトにタイミング解析を実行して、デザインがタイミング要件を満たしているのか

を確認します。

quartus_sta filtref --sdc=filtref.sdc

1 コマンドラインのヘルプを使用するには、コマンド・プロンプトで

quartus_sta --helpを入力してください。

BitGen/PROMGen

ISE ソフトウェアは、FPGA のプログラミング・ファイルを生成するために BitGenと PROMGenの実行コマンドを提供します。 Quartus II ソフトウェアは、FPGA のコ

ンフィギュレーション用のプログラミング・ファイルを生成する quartus_asm 実

行コマンドを提供します。

次の例では、filtref プロジェクトに対してプログラミング・ファイル(例えば、

filtref.sof または filter.pof)を作成します。

quartus_asm filtref

プログラミング・ファイルは、FPGA のプログラミングおよびコンフィギュレー

ションに使用されます。

1 コマンドラインのヘルプを使用するには、コマンド・プロンプトで

quartus_asm --helpを入力してください。

NetGen

NetGen実行コマンドは、Xilinx デザイン・ファイルを入力として読み出し、それら

のデザイン・ファイルからデータを抽出し、そしてサポート対象のサードパーティ

製のツール(例えば、シミュレーションおよびスタティック・タイミング解析)に

使用されるネットリストを生成します。 同様に、Quartus II ソフトウェアは、サード

パーティの EDA ツール用のネットリストおよびほかの出力ファイルを生成する

quartus_eda実行コマンドを提供します。

次の例では、ModelSim® で実行する filtref プロジェクトに対してシミュレーション

用 Verilog HDL ネットリスト・ファイル (filtref.vo および filtref.sdo) を作成しま

す。

quartus_eda filtref --simulation=on --format=verilog --tool=modelsim

1 コマンドラインのヘルプを使用するには、コマンド・プロンプトで

quartus_eda --help を入力してください。

4 Altera Corporation2009 年 11 月

Page 6: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

XPWR XPWR実行コマンドは、PARの実行後に電力および温度の見積もりを提供してデザイ

ンの消費電力を見積もります。 同様に、quartus_powは、デザインのダイナミック

熱消費電力とスタティック熱消費電力の見積もりを提供します。

次の例では、filtref.vcd を入力にして電力解析を実行し、その VCD ファイルに対し

てグリッチ・フィルタリングを実行します。

quartus_pow filtref --input_vcd=filtref.vcd --vcd_filter_glitches=on

1 コマンドラインのヘルプを使用するには、コマンド・プロンプトで

quartus_pow --helpを入力してください。

XFLOW ISE ソフトウェアの XFLOW実装コマンドと同様に、Quartus II シェル

(quartus_sh)では、デザイン・プロジェクトに完全なコンパイルを実行するため

の --flow オプションが提供されています。

次の例では、コンパイル、タイミング解析およびプログラミング・ファイルの生成

を 1 行のコマンドで実行します。

quartus_sh --flow compile <project name>

1 コマンドラインのヘルプを使用するには、コマンド・プロンプトで

quartus_sh --help=flow を入力してください。

さらに、quartus_cdb実行コマンドでは、バージョン互換のあるデータベースの

インポートおよびエクスポートも可能です。 これは、既存のデザインを Quartus IIソフトウェアの異なるバージョン間に移行する場合に便利です。 これを行うには、

Quartus IIソフトウェアの1つのバージョンからのデータベースをエクスポートして、

ソフトウェアの別のバージョンに直接にインポートします。 これで、 不必要なコン

パイル時間を排除し、更新されたタイミング・モデルによってタイミング解析また

はシミュレーションを再実行するだけですみます。 フル・コンパイルの必要はあり

ません。

加えて、quartus_cdb実行コマンドは、インクリメンタル・コンパイル用のパー

ティションをマージすることができます。

1 インクリメンタル・コンパイルについて詳しくは、25 ページの

「Quartus II のインクリメンタル・コンパイル」の項を参照してください。

Altera Corporation2009 年 11 月 5

Page 7: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

GUIベースのツールによる FPGAデザイン・フローQuartus IIソフトウェアおよび ISEソフトウェアのGUIは、図 2に示す主要なFPGAデ

ザインの手順を異なる方法で表示します。 以下のサブセクションでは、アルテラの

Quartus IIソフトウェアと Xilinx ISEソフトウェアの GUI機能の比較を示しています。

図 2. ティピカルな FPGAデザイン・フロー

Project Creation

Translate Design Files(Design Entry)

Synthesize and MapDesign Elements

to Device Resources

Place and RouteDesign Resources

Perform TimingAnalysis

Generate Programming File

6 Altera Corporation2009 年 11 月

Page 8: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

等価の GUI機能表 2 に、 ISE ソフトウェアと Quartus II ソフトウェアの間で最も一般的な GUI 機能

の比較をまとめます。

表 2. GUI機能の比較 (1/2)

GUI機能 Xilinxの ISEソフトウェア アルテラの Quartus II ソフトウェア

プロジェクトの作成 New Project New Project Wizard

デザイン入力

HDL Editor HDL Editor

EDA Netlist EDA ネットリスト・デザイン入力

Schematic Editor (2) Schematic Editor

State Diagram Editor (StateCAD) (3) State Machine Editor

CoreGen & Architecture Wizard MegaWizard™ Plug-In Manager

Xilinx Platform Studio and Embedded Development Kit (3)

SOPC Builder

デザイン制約

Xilinx Constraints EditorAssignment Editor、Quartus II TimeQuest タイミング・アナライザSDC Editor

Floorplan I/O Editor, PinAhead Technology

Pin Planner

合成Xilinx Synthesis Technology (XST) Quartus II Integrated Synthesis (QIS)

サードパーティの EDA 合成 サードパーティの EDA 合成

デザインのインプリメンテーション

Translate, Map, Place & RouteQuartus II Integrated Synthesis (QIS)、Fitter

スタティック・タイミング解析 Xilinx Timing Analyzer TimeQuest タイミング・アナライザ

デバイス・プログラミング・ファイルの生成

BitGen Assembler

消費電力の解析 XPower PowerPlay Power Analyzer

シミュレーション

ModelSim Xilinx Edition (1) ModelSim-Altera Starter Edition(6)

サードパーティのシミュレーション・ツール

サードパーティのシミュレーション・ツール

ISE Simulator (1) Quartus II Simulator (5)

ハードウェア検証 ChipScope Pro (1) SignalTap II Logic Analyzer

デザイン配置の表示および変更FloorPlan Area/Logic Editor, FPGA Editor

Chip Planner

Altera Corporation2009 年 11 月 7

Page 9: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

f Quartus II ソフトウェアについて詳しくは、 「Introduction to the Quartus II Software」 マニュアルを参照してください。

プロジェクトの作成ISE ソフトウェアや Quartus II ソフトウェアのいずれかでデザインを開始するには、

まず、プロジェクトを作成する必要があります。 プロジェクトには、合成および

フィッティング中にデザインのコンパイルと最適化を制御するためのコンパイラ設

定およびすべてのデザイン・ファイルが含まれています。 ISE ソフトウェアの Fileメニューの New Project コマンドと同様に、Quartus II ソフトウェアの New Project Wizard は、プロジェクト名とディレクトリ、トップレベルのデザイン・エンティ

ティ、使用される EDA ツール、およびターゲット・デバイスを指定する手順をガイ

ドするために使用されます。 New Project Wizard を実行するには、File メニューの

New Project Wizard を選択します。図 3 に、Quartus II New Project Wizard の 1 ペー

ジを示します。

生産性の改善およびデザインの最適化のためのテクニック

SmartCompileQuartus II インクリメンタル・コンパイル

PlanAhead (1) Physical synthesis optimization

SmartXplorer (4)デザイン・スペース・エクスプローラ (DSE)

表 2の注:(1) 追加の費用を要する機能。ただし、Quartus II ソフトウェアには含まれています。

(2) MS Windows のみでサポートされます。ただし、Quartus II ソフトウェアではすべてのプラットフォームをサポートします。

(3) MS Windows および Linux のみでサポートされます。ただし、Quartus II ソフトウェアではすべてのプラットフォームをサポートします。

(4) Linux のみでサポートされます。ただし、Quartus II ソフトウェアではすべてのプラットフォームをサポートします。

(5) Quartus II Simulator は、Stratix III 以降のデバイスをサポートしません。

(6) この機能は、Quartus II ソフトウェアを購入すると無償で提供されます。

表 2. GUI機能の比較 (2/2)

GUI機能 Xilinxの ISEソフトウェア アルテラの Quartus II ソフトウェア

8 Altera Corporation2009 年 11 月

Page 10: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

1 New Project Wizard を用いてプロジェクトを作成する時のすべての設定は、デザイ

ン・プロセスでも修正できます。

デザイン入力ISE ソフトウェアおよび Quartus II ソフトウェアは、ハードウェア記述言語(HDL)、EDA ネットリスト、および回路図デザイン・ファイルのデザイン入力方法をサポー

トします。

Quartus II ソフトウェアで、既存のデザイン・ファイルをプロジェクトから削除する

には、次の手順を実行します。

1. Assignments メニューから、Settings をクリックします。Settings ダイアログ・

ボックスが表示されます。

2. Category リストの Files を選択します。 ファイルの追加 / 削除のための Filesページが表示されます ( 図 4)。

Xilinx ISE ソフトウェアでは、既存のデザイン・ファイルの追加または削除は Add Source ダイアログ・ボックスで行われます。

図 3. New Project Wizardの 1ページ

Altera Corporation2009 年 11 月 9

Page 11: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

HDL Editor

ISE ソフトウェアの Project メニューの New Source Wizard と同様に、Quartus IIソフトウェアで新しい HDL デザイン・ファイルを作成には、File メニューの

New をクリックし、作成したいファイルのタイプを選択します。 HDL デザインの

作成を支援するためには、Quartus II ソフトウェアは、設計言語の構文の例を含

くめて AHDL、VHDL、および Verilog HDL に対してデザイン例のテンプレート

を提供して、デザインを始めるのに役立ちます。 また、Quartus II Text Editor は、

HDL の予約語やコメントをハイライトするために、構文の色付けも提供します。

f Quartus II ソフトウェアのデザインガイドラインの詳細については、

「QuartusII ハンドブック Volume 1」の「Design Recommendations for Altera Devices and the Quartus II Design Assistant」および

「Recommended HDL Coding Styles」の章を参照してください。

EDAネットリストのデザイン入力ISE ソフトウェアおよび Quartus II ソフトウェアの両方でも、Synopsys や

Precision RTL などのサードパーティ EDA ツールで生成されたネットリストに

よってデザインをコンパイルすることが可能です。 サードパーティ合成ツールを

指定するには、Quartus II ソフトウェアで次の手順を実行します。

1. Assignments メニューから、Settings をクリックします。 Settings ダイ

アログ・ボックスが表示されます。

2. Category リストでは、EDA Tool Settings の隣にある「+」アイコンを展

開し、Design Entry/Synthesis を選択します。 Design Entry/Synthesisページが表示されます。 また、New Project Wizard でもサードパーティの合

成ツールを指定できます。

図 4. Settingsダイアログ・ボックスの Filesページ

10 Altera Corporation2009 年 11 月

Page 12: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

図 5に、Design Entry/Synthesis ページを示します。

f サードパーティの合成ツールの使用方法について詳しくは、「Quartus II ハンド

ブック Volume 1」の「Section III. Synthesis」の章を参照してください。

Schematic Editor

Quartus II ソフトウェアでは、アルテラが提供するブール・ゲート (Boolean Gates) とレジスタなどのデザイン・エレメントを使用したり、または HDL あるい

は EDA ネットリストのデザイン・エンティティから自分のシンボルを作成する

ことができます。 VHDL デザイン・ファイル、Verilog HDL デザイン・ファイル、

または EDA ネットリストからブロック・デザイン・ファイルを作成するには、

File メニューで、Create/Update をポイントして Create Symbol Files for Current File をクリックします。

ISE ソフトウェアの Project メニューの New Source Wizard と同様に、Quartus IIソフトウェアで新しい回路図ファイル (*.bdf) を作成するには、File メニューで

New をクリックして、Block Diagram/Schematic File を選択します。 回路図に

ブロック・シンボル図を挿入するには、回路図ファイルをダブルクリックして適

切なブロック・シンボルを選択します。 図 6に、回路図ファイルの例を示しま

す。

図 5. Design Entry/Synthesisページ

Altera Corporation2009 年 11 月 11

Page 13: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

ステート・マシン・エディタ(State Machine Editor)ISEソフトウェアのState Diagram Editor(StateCAD)の代わりに、Quartus IIソフト

ウェアの State Machine Editor では、デザイン用のステート・マシンのグラ

フィック表現を作成することができます。 Generate HDL File コマンドで、State Machine Editorから直接にVerilogデザイン・ファイル(.v)またはVHDLデザイン・

ファイル(.vhd) を生成することができます。

ISEソフトウェアのProjectメニューのNew Source Wizardと同様に、Quartus IIソフトウェアで新しい .bdf ファイルを作成するには、 File メニューで New をク

リックし、State Machine file を選択します。

f State Machine Editor について詳しくは、「Quartus II Help」を参照してく

ださい。

MegaWizard Plug-In Manager

ISEソフトウェアで利用できるCore GeneratorおよびArchitecture Wizard の代わ

りに、アルテラ MegaWizard Plug-In Manager では、デザインのターゲット・デ

バイスに対して最適化された高度にカスタマイズされたメガファンクションを作

成することができます。 これらのカスタマイズはアルテラが提供するメガファン

クションを活用しているものであり、LPM (Library of Parameterized Modules)ファンクションを含めて、単純なブール・ゲートから複雑なメモリ構造に及びま

す。 MegaWizard Plug-In Manager で、すべてのサポートされるモジュールは

Arithmetic、Gates、 I/O、 Memory Compiler や Storage などのフォルダに分類され

ています(図 7 を参照)。

図 6. 回路図ファイル

12 Altera Corporation2009 年 11 月

Page 14: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

MegaWizard Plug-In Manager はスタンドアロンのツールまたは Quartus II ソフト

ウェアに統合されたツールとして動作できます。 MegaWizard Plug-In Managerを使用して、Xilinx のプリミティブおよび CoreGen と Architecture Wizard のモ

ジュールに対等なものを生成することができます。 図 7 に、MegaWizard Plug-In Manager のページ 2a を示します。

f メガファンクションの使用について詳しくは、アルテラ・ウェブサイト

の資料ページのユーザーガイドのセクション

(www.altera.com/literature/lit-ug.jsp)を参照してください。

SOPC BuilderXilinx ISEソフトウェアでのXilinx Platform StudioおよびEmbedded Development Kit (EDK) の代わり、Quartus II ソフトウェアの SOPC Builder の機能では、プロ

セッサ(アルテラの Nios® および Nios II エンベデッド・プロセッサ)、オフ

チップ・プロセッサへのインタフェース、 標準ペリフェラル、IP コア、オンチッ

プ・メモリ、オフチップ・メモリ、およびユーザー定義ロジックが 1 つのカスタ

ム・システム・モジュールで利用できます。

SOPC Builder は、これらのコンポーネントをインスタンス化する単一のシステ

ム・モジュールを生成し、これらのコンポーネントを結合するのに必要なインタ

コネクト・ロジックを自動的に生成します。

f SOPC Builder によるシステム・デザインについて詳しくは、「QuartusII

ハンドブック」の「Volume 4: SOPC Builder」を参照してください。

図 7. MegaWizard Plug-In Managerのページ 2a

Altera Corporation2009 年 11 月 13

Page 15: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

デザインの制約デバイスとのタイミング制約を指定することで、デザインがターゲット・デバイス

のアーキテクチャの特定の機能を活用し、パフォーマンス目標を満たしていること g

が保証されます。 ISE ソフトウェアは、制約の作成と編集のために、Constraints Editor、 Floorplan I/O Editor、 および PinAhead Technology を提供します。

Quartus II ソフトウェアでは、デザイン作成後に、Quartus II Assignment Editor およ

び TimeQuest タイミング・アナライザの SDC Editor を使用して、ピン・アサイン

メントやデバイス・オプション、ロジック・オプション、タイミング制約などの制

約の作成および表示が便利にできます。 Floorplan I/O Editor および PinAhead Technology の代わりに、Quartus II Pin Planner では、グラフィカル・インタフェー

スでピン・アサインメントの表示、作成および編集ができます。

表 3 に、Quartus II ソフトウェアのツールによって設定されるファイル・フォー

マットおよびアサインメントのタイプをまとめます。

Assignment Editor

Assignments メニューでの Quartus II Assignment Editor では、デザインのタイミ

ングおよびデザイン配置の制約を割り当てることができます。 Quartus II ソフト

ウェアは、Assignment Editor によって変更を行った時に動的にアサインメント

を検証し、そして無効のアサインメントに対してエラーまたは警告を発行しま

す。 アサインメントの追加または変更は、Quartus II メッセージ・ユーティリ

ティ・ウィンドウの System タブで表示されるメッセージで確認できます。 図 8

に、Assignments メニューから直接に起動される Quartus II Assignment Editor を示します。

表 3. Quartus II アサイメント・ツール

アサインメントのタイプ ファイル・フォーマット アサインメントのツール

タイミング SDC TimeQuest タイミング・アナライザ

I/O 関係QSF

Pin Planner、 Assignment Editor

その他 Assignment Editor

14 Altera Corporation2009 年 11 月

Page 16: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

f Quartus II Assignment Editor の詳細については、「Quartus II ハンドブッ

ク Volume 2」の「Assignment Editor」の章を参照して下さい。

TimeQuest タイミング・アナライザ SDC Editor

SDC ファイルは、デザインにおいてタイミングを制約するための業界標準

Synopsys Design Constraint(SDC) 手法です。 Quartus II TimeQuest タイミング・

アナライザでは、GUI インタフェースを介して、タイミング制約の変更および作

成を便利に操作できます。

TimeQuest タイミング・アナライザを使用する前に、Quartus II プロジェクトを

開く必要があります。プロジェクトを開いた後に、TimeQuest タイミング・アナ

ライザの GUI または SDC Editor を用いてデザインの SDC ファイルを作成し、

あるいは既存の SDC ファイルを現在のプロジェクトに追加します。

新規の SDC ファイルを作成するには、File メニューの New SDC File を選択し

ます。 TimeQuest の SDC Editor では、SDC の予約語やコメントをハイライトす

るための構文の色付けが提供されています。 また、制約または例外のオプション

および制約を示すツールチップも表示されます。 図 9 に、TimeQuest タイミン

グ・アナライザの SDC Editor の例を示します。

図 8. Quartus II Assignment Editor

Altera Corporation2009 年 11 月 15

Page 17: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

TimeQuest タイミング・アナライザの GUI を用いてタイミング制約を作成するに

は、まずタイミング・ネットリストを作成しなければなりません。 Netlist メニューから、Create Timing Netlist をクリックします。 タイミング・ネットリ

ストを作成した後、TimeQuest タイミング・アナライザ GUI での Constraints メ

ニューを使用してデザインの制約を作成します。

次の設定は、Constraints メニューで使用できます。

■ Create Clock(クロックの作成)

■ Create Generated Clock(生成されたクロックの作成)

■ Set Clock Latency(クロック・レイテンシの設定)

■ Set Clock Uncertainty(クロック不確実性の設定)

■ Set Input Delay(入力遅延の設定)

■ Set Output Delay(出力遅延の設定)

■ Set False Path(フォルス・パスの設定)

■ Set Multicycle Path(マルチサイクル・パスの設定)

■ Set Maximum Delay(最大遅延の設定)

■ Set Minimum Delay(最小遅延の設定)

例えば、Create Clock をクリックすると、Create Clock ダイアログ・ボックス

(図 10)が表示され、デザインのクロック制約を設定することができます。

図 9. TimeQuest タイミング・アナライザの SDC Editor

16 Altera Corporation2009 年 11 月

Page 18: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

すべての制約が正しく入力された後、Write SDC File コマンドを使用して SDCファイルを作成します。

f TimeQuest タイミング・アナライザにおける SDC ファイルの使用につい

て詳しくはは、「Quartus II ハンドブックの Volume 3」の 「Quartus II TimeQuest Timing Analyzer」の章を参照して下さい。

f サポートされるすべての SDC コマンドおよびその使用方法のリストにつ

いては、「SDC and TimeQuest API Reference Manual」を参照してくださ

い。

Pin Planner

ISE ソフトウェアの Floorplan I/O Editor と同様に、Quartus II Pin Planner はパッ

ケージのグラフィック表示を提供し、デザインの I/O ピンおよび周囲のロジック

に適用性チェックを実行して I/O アサインメントを検証することができます。

Pin Planner を使用すると、I/O プランニング・プロセスを通じて、I/O バンク、

VREF グループ、および差動ピンの組み合わせを識別できます。 Pin Planner を使

用するには、Assignments メニューから Pin Planner をクリックします。 図 11

に、Pin Planner を示します。

図 10. TimeQuestタイミング・アナライザ GUIの Constraintメニューを介してクロック制約を作成

Altera Corporation2009 年 11 月 17

Page 19: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

f Quartus II Pin Planner の使用方法の詳細については、「Quartus II ハンドブック

Volume 2」の「I/O Management」の章を参照して下さい。

論理合成ISE ソフトウェアの Xilinx Synthesis Technology (XST) と同様に、Quartus II ソフト

ウェアには Quartus II Integrated Synthesis(QIS) が含まれ、AHDL、VHDL、Verilog HDLおよびSystem Verilogの合成を完全にサポートします。 統合された合成エンジン

は、デフォルトのエンジンとなります。

Analysis & Synthesis Settings ダイアログ・ボックス(図 12) では、コンパイル・

フローの解析および合成のステージに影響を与えるオプションを設定できます。 こ

れらのオプションには Optimization Technique、 State Machine Processing、 Restructure Multiplexers などが含まれます。

図 11. Quartus II Pin Planner

18 Altera Corporation2009 年 11 月

Page 20: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

f Quartus II integrated synthesis の使用方法の詳細については、「Quartus II ハンド

ブック Volume 1」の「Quartus II Integrated Synthesis」の章を参照して下さい。

また、Quartus II ソフトウェアは EDIF(.edf) や Verilog Quartus Mapping (.vqm) ネッ

トリスト・ファイルなどのサードパーティ合成ツールからの合成されたデザイン・

ファイルもサポートしています。 使用するサードパーティ EDA 合成を指定するに

は、10 ページの「EDA ネットリストのデザイン入力」の項を参照してください。

f サードパーティ合成ツールの使用について詳しくは、「QuartusII ハンドブック

Volume 1」の「Section III. Synthesis」を参照してください。

デザインのインプリメンテーションISE ソフトウェアでは、デザインをコンパイルして、そして FPGA デザイン・ファイ

ルにプログラミング・ファイルを生成する、というインプリメンテーション・フ

ローに従います。 類似の流れは、Quartus II ソフトウェアにも存在し、コンパイル・

フローとして知られています。

コンパイル・フローとは、Quartus II ソフトウェアがデザイン・ファイルを翻訳し、

翻訳されたデザインをデバイス固有のエレメントにマッピングし、デザインをデバ

イスに配置配線し、そしてプログラミング・ファイルを生成するシーケンスおよび

方法です。 これらの機能は QIS、Fitter および Assembler によって実行されます。

プロジェクトの設定および制約が完了したかどうかにかかわらず、デザイン・プロ

セスの任意の時点でコンパイル・フローを開始することができます。

図 12. Analysis & Synthesis Settingsダイアログ・ボックス

Altera Corporation2009 年 11 月 19

Page 21: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

コンパイル・プロセスを開始するには、Quartus II ソフトウェアで、Processing メ

ニューの Start Compilation をクリックします。最初のコンパイル・フェーズでは、

QIS はデザイン・ファイルから必要なすべてのデザイン情報を含むデータベースを作

成します。

デザイン・ルールチェックは、プロジェクト内のすべてのデザイン・ファイルに実

行され、境界の接続エラーまたは構文エラーがないことを確保します。 このデータ

ベースは、コンパイル・フロー内のすべての後続の手順に利用可能です。

QIS は、ターゲットとするアルテラ FPGA に対してデザインを最適化し、そしてデサ

インをデバイスにマッピングします。QIS ターゲットとアルテラの FPGA および

マッピングは、デバイスへのデザインに合わせてデザインを最適化します。

マッピング作業は、デザイン・ファイルをターゲット・デバイスがリソースにする

(ロジック・エレメント(LE)や RAM ブロックなどの)アーキテクチャ固有のアト

ムに変換します。

Fitter は、QIS に作成されたアトムを選択されたデバイスに配置配線します。 Fitter はタイミング制約に基づいて、デザインのタイミングおよびリソースの使用効率を改

善するための追加の最適化を実行します。

最適なフィットが達成したら、Assembler はデザインのプログラミング・ファイル

を生成します。 プログラミング・ファイルは、デザインのすべての配置配線情報を

含んで、ターゲットのアルテラ・デバイスにプログラムすることができます。

Tasks ウィンドウでは、現在のコンパイルの進行状況を示します( 図 13 )。 コンパ

イルの結果は、Compilation Report ウィンドウに表示されます。 コンパイルを実行す

ると、ウィンドウが自動的に開かれ、デザイン階層、コンパイルの要約、デザイン

のパフォーマンスに関する統計情報が表示されます。

図 13. Tasksウィンドウ

20 Altera Corporation2009 年 11 月

Page 22: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

ISE ソフトウェアのタスク・フローのウィンドウと同様に、コンパイル・フローの各

フェーズも独立して起動することができます。 Quartus II ソフトウェアでの Tasksウィンドウでは、ソフトウェアのツールおよび機能が使用でき、そして各フローの

進行状況をモニタすることもできます。

スタティック・タイミング解析Xilinx TRACE タイミング・アナライザに生成される Post-Place and Route Static Timing Report と同様に、TimeQuest タイミング・アナライザはデザイン内のすべて

のロジックのパフォーマンスを解析してレポートし、デザインのパフォーマンスを

制限するクリティカル・パスを確認することができます。

TimeQuest タイミング・アナライザは、多くの ASIC 開発ツールで採用されている業

界標準の SDC(Synopsys Design Constraints) フォーマットをサポートする使いやす

い次世代のスタティック・タイミング・アナライザです。 図 14 に、View ペイン、

Tasksペイン、ConsoleペインおよびReportペインで構成されるTimeQuestタイミン

グ・アナライザの GUI を示します。

f TimeQuest タイミング・アナライザについて詳しくは、「QuartusII ハンドブック

Volume 3」の「Quartus II TimeQuest Timing Analyzer」の章を参照してください。

デフォルトで、Quartus II タイミング・アナライザは通常、最悪のケースを想定して

あらゆるレジスタや複雑なクロック構造に対して計算をします。 これに対して、

Xilinx の TRACE タイミング・アナライザでは、これらの複雑な構造の多くは分析され

ません。 表 4に、 Xilinx TRACE タイミング・アナライザおよびアルテラ TimeQuestタイミング・アナライザの間の主な違いをまとめます。

図 14. TimeQuest タイミング・アナライザ GUI

Altera Corporation2009 年 11 月 21

Page 23: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

f Xilinx TRACE タイミング・アナライザおよび TimeQuest タイミング・アナライザの

間の相違点について詳しくは、「 Performing Equivalent Timing Analysis Between TimeQuest and Xilinx Trace」ホワイト・ペーパーを参照してください。

デバイス・プログラミング・ファイルの生成Xilinx ISE ソフトウェアの BitGen および PROMGen と同様に、Quartus II Assemblerは、Quartus II Programmer がアルテラ・プログラミング・ハードウェアでデバイス

をプログラムまたはコンフィギュレーションするのに使用できるプログラミング・

ファイルを生成します。

Assembler は Fitter のデバイス、ロジック・セル、およびピン・アサインメントを

ターゲット・デバイスに対して 1 つまたは複数の .pof(Programmer Object Files)ファイルまたは .sof(SRAM Object Files)ファイルの形式としてデバイスのプログ

ラミング・イメージに変換します。 .sof ファイルはすべてのアルテラの FPGA デバ

イスをコンフィギュレーションするために使用され、そして .pof ファイルはすべて

のアルテラ CPLD デバイスをプログラムするために使用されます。

Quartus II ソフトウェアでは、Assembler モジュールを含めてフル・コンパイルを実

行することができます。また、Assembler を個別に実行することも可能です。

Assembler を個別に実行するには、Processing メニューで Start をポイントして、

Start Assembler をクリックします。

f Programmer の使用について詳しくは、「Quartus II ハンドブック Volume 3」の

「Quartus II Programmer」の章を参照してください。

表 4. Xilinx TRACEタイミング・アナライザと TimeQuestタイミング・アナライザの違い

タイミング解析Xilinx TRACEタイミング・アナライザ (2)

TimeQuestタイミング・アナライザ (1)

クロス・ドメインのクロック解析

すべてのクロックはデフォルトで解析されない

すべてのクロックはデフォルトで関連付けられる

組み合わせループの構造 解析されない デフォルトで解析される

リカバリーおよびリムーバル解析

デフォルトでディセーブルされる

デフォルトでイネーブルされる

マルチコーナー・タイミング解析

低速および高速コーナーのみイネーブルされると、すべてのデバイスの動作条件をサポートします。

立ち上りおよび立ち下りの解析

サポートされない サポートされる

表 4の注:(1) TimeQuest タイミング・アナライザでは、マルチコーナー・タイミング解析をサポートし、デザイ

ンに対して指定されるタイミング制約がデバイスの動作条件(例えば、プロセス、電圧や温度)を満たすことを確認できます。

(2) Xilinx TRACE タイミング・アナライザは低速および高速コーナーをサポートします。異なる動作条件のタイミング・コーナーはサポートされていません。

22 Altera Corporation2009 年 11 月

Page 24: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

消費電力の解析Xilinx ISE ソフトウェアの XPower Analyzer と同様に、Quartus II PowerPlay 電力解析

ツールにより、デザイン・サイクル全体のスタティックおよびダイナミックな消費

電力の見積りが可能です。

PowerPlay パワー・アナライザはフィッティング後の電力解析を実行し、ブロック・

タイプおよびエンティティによって消費電力をハイライトする消費電力レポートを

生成します。 図 15 に PowerPlay Power Analyzer Summary レポートを示します。

f Quartus II PowerPlay Power Analysis の使用について詳しくは、「Quartus

II ハンドブック Volume 3」の「PowerPlay Power Analysis」の章を参照

してください。

f パワー・ドリブン・シンセシスおよびほかの消費電力節約の最適化手法

について詳しくは、「Quartus II ハンドブック Volume 2」の

「Power Optimization」の章を参照してください。

シミュレーションXilinx ISE ソフトウェアと同様に、Quartus II ソフトウェアは Mentor Graphics® ModelSim、Cadence NC-Sim や Synopsys VCS など多くのサードパーティ EDA シ

ミュレーション・ツールとのインテグレーションをサポートします。 加えて、

Quartus IIソフトウェアは、Aldec社のActive-HDLとRiviera - PROシミュレーション・

ツールをサポートします。

Quartus II ソフトウェアでは、サードパーティのシミュレーション・ツールを指定す

ることができます。これを行うには、以下のステップを実行します。

1. Assignments メニューから、Settings をクリックします。 Settings ダイアログ・

ボックスが表示されます。

2. Category リストでは、EDA Tool Settings の隣にある「+」アイコンを展開し

て Simulation を選択します。 図 16に 、EDA Tool Settings Simulation ページ

を示します。 また、New Project Wizard の該当ページでこれを指定することもで

きます。

図 15. PowerPlay Power Analyzer Summaryレポート

Altera Corporation2009 年 11 月 23

Page 25: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

LPM または MegaWizard が生成したファンクションを含むデザインに機能 / 動作シ

ミュレーションを実行する場合には、Quartus II ソフトウェアに同梱されているアル

テラ機能シミュレーション・モデルを使用します。

LPM シミュレーション・モデルは次の通りです。

■ Verilog HDL の場合は 220model.v

■ VHDL の場合は 220pack.vhd および 220model.vhd

アルテラ・メガファンクション・シミュレーション・モデルは次の通りです。

■ Verilog HDL の場合は altera_mf.v

■ VHDL の場合は altera_mf.vhd および altera_mf_components.vhd

デザインにゲート・レベル・シミュレーションを実行するために、Quartus II ソフト

ウェアは、デザインがどのようにデバイス固有のアーキテクチャ・ブロックに配置

するかに関する情報を含む出力ネットリスト・ファイルを生成します。

次は生成された出力ファイルの例です。

■ Verilog HDL 出力ファイル (.vo)

■ VHDL 出力ファイル (.vho)

■ 標準遅延フォーマット出力ファイル (.sdo)

図 16. EDA Tool Settings Simulationページ

24 Altera Corporation2009 年 11 月

Page 26: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

f シミュレーション・ツールの使用について詳しくは、「Quartus II ハンドブック

Volume 3」の「Section I. Simulation」の章を参照してください。

ハードウェア検証Xilinx ISE ソフトウェアの ChipScope Pro Tool と同様に、SignalTap® II Logic Analyzerは、任意の内部デバイスのノードからの信号アクティビティをキャプチャおよび格

納する多重入力のデジタル取得装置です。 このロジック・アナライザは、外部装置

を使用せずにデザインの内部信号の状態を精査することによって、FPGA デザイン

のデバッグを支援します。

f SignalTap II Logic Analysis について詳しくは、「Quartus II ハンドブック Volume 3」

の「Design Debugging Using the SignalTap II Embedded Logic Analyzer」の章を

参照して下さい。

デザイン配置の表示と編集Xilinx ISE ソフトウェアの FloorPlanner および FPGA Editor と同様に、Quartus II 開発ソフトウェアでは、フル・コンパイルの後にデザインに対して ECO (Engineering Change Order:設計変更管理 ) と呼ばれる小規模な変更を行うことができます。

ECO は、ソース・コードまたは Quartus II の設定ファイル (.qsf) に対してではなく、

デザイン・データベースに対して直接行われます。 これらの ECO 変更を直接にデザ

イン・データベースにかけることで、変更を実装するためにはフル・コンパイルを

実行する必要はありません。

Chip Planner を開くには、Tools メニューで Chip Planner (Floorplan and Chip Editor)をクリックします。また、Quartus II ソフトウェアの多くのエディタおよび

ウィンドウの Shortcut メニューにある Locate in Chip Planner (Floorplan and Chip Editor) コマンドを用いて Chip Planner 内のリソースを見つけることができま

す。

f Chip Planner の使用について詳しくは、「Quartus II ハンドブック Volume 2」の

「Engineering Change Management with the Chip Planner」の章を参照してくださ

い。

生産性の向上およびデザインの最適化のテクニック生産性を向上させるために、Quartus II インクリメンタル・コンパイル機能は、変更

されたデザイン・パーティションのみを再コンパイルすることによって、コンパイ

ル時間および実行メモリの消耗を低減します。

デザインを最適化するために、フィジカル・シンセシス機能およびデザイン・ス

ペース・エクスプローラ(DSE)ツールを使用してデザインの性能を最適化できま

す。 これらの機能ついては、以下の項で説明しています。

Quartus II のインクリメンタル・コンパイルISE ソフトウェアの SmartCompile 機能の代わりに、Quartus II インクリメンタル・

コンパイルでは、大規模なデザインをより小さなパーティションに分割すること

で、チーム・メンバーはパーティションを別々に取り込むことができます。 これ

で、デザイン・プロセスが簡素化され、コンパイル時間が短縮されます。 また、

インクリメンタル・コンパイル機能では、デザインのほかの部分のロジックを変

Altera Corporation2009 年 11 月 25

Page 27: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

更するとき、変更されないロジックの結果と性能が維持されます。 これによって

1 日あたりのデザイン改良の回数を増やし、タイミング・クロージャをより効率

的に達成できます。 Quartus II インクリメンタル・コンパイルでのコンパイル時

間の節約と性能の維持を活用するには、デザイン・サイクルの初期段階からイン

クリメンタル・コンパイル・フローをプランしてください。

加えて、Quartus II ソフトウェアのデザイン・パーティション・プランナは、ど

のようにデザイン・パーティションを分割するかに対して詳細な情報に基づいて

決定するのに役立ちます。 デザイン・パーティション・プランナでは、デザイン

の構造を視覚化にして、インクリメンタル・コンパイル用の効果的なデザイン・

パーティションを作成することができます。

インクリメンタル・コンパイルは、トップダウンとボトムアップの両方のデザイ

ン・フローをサポートしています。 トップダウンのデザイン・フローでは、一人

のデザイナがトップレベルのデザインを全体としてコンパイルおよび最適化しま

す。 ボトムアップ・デザインでは、任意の数の下位レベル・プロジェクトをデザ

イン・パーティションとしてインスタンス化するトップレベル・デザインを作成

することができます。 各パーティションは独立した Quartus II プロジェクトとし

てデザインおよび最適化できます。そして、Quartus II ソフトウェアのエクス

ポートおよびインポート機能を使用して、各パーティションをトップレベルのデ

ザインに統合し、チームベースの開発を実現します。 図 17に、トップダウン・

インクリメンタル・コンパイルによるデザイン・フローを示します。

図 17. トップダウン・インクリメンタル・コンパイルによるデザイン・フロー

Perform Analysis and Elaboration

Create Design Partitions

Create Floorplan LocationAssignments using LogicLock Regions

Perform Complete Compilation(All Partitions are Compiled)

Repeat as NeededDuring Design, Verification,and Debugging Stages

Set Netlist Type for Each Partition

Perform Incremental Compilation(Partitions are Compiled if Required)

Make Changes to Design

26 Altera Corporation2009 年 11 月

Page 28: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

ボトムアップ・デザイン・フローにおいて、各パーティションを上位レベルのデ

ザインに統合する際、パーティションの散乱または重複配置を避けるために、上

位レベルの各パーティションに固定およびロックされた LogicLock™ 領域を割り

当てる必要があります。 図 18 に、ボトムアップ・インクリメンタル・コンパイ

ルによるデザイン・フローをを示します。

f デザイン・プランニングおよびさまざまなデザイン・アプローチについ

て詳しくは、「QuartusII ハンドブック Volume 1」の「Design Planning with the Quartus II Software」および「Quartus II Incremental Compilation for Hierarchical and Team Based Design」の章を参照して

ください。

図 18. ボトムアップ・インクリメンタル・コンパイルによるデザイン・フロー

図 18の注:(1) オプションのステップ。

(2) オプションで、以前に生成されたボトムアップ・デザイン・パーティションのスクリプトを使用することができます。

Perform Analysis and Elaboration

Top-Level Design

Lower-Level Design

Create Design Partitions

Create LogicLock Regions

Add Project-Wide Timing Assignments

Compile Design

Generate Bottom-Up Design Partition Script (1)

Create or Update Lower-Level Project (2)

Compile Lower-Level Project

Export Lower-Level Project as Design Partition

Altera Corporation2009 年 11 月 27

Page 29: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

フィジカル・シンセシス最適化Xilinx の PlanAhead 機能の代わりに、Quartus II ソフトウェアはフィジカル・シン

セシスなどの高度なネットリスト最適化オプションを提供し、標準の Quartus IIコンパイル・フローのコースで実行された最適化を超えてデザインを最適化しま

す。

合成ネットリスト最適化は、Quartus II コンパイル・フローの合成および Fitterのステージで行われます。 合成段階では、合成ネットリスト最適化は、サード

パーティの合成ツールからの合成ネットリストを変更する、または Quartus II 統合された合成の中間段階として変更を加えます。 Fitter のステージでは、最適化

によって、ネットリストに対して配置固有の変更が行われ、ターゲットのアルテ

ラ・デバイスの性能結果が改善されます。

合成ネットリスト最適化オプションを表示または変更するには、次のステップを

実行します。

1. Assignments メニューから、Settings をクリックします。 Settings ダイア

ログ・ボックスが表示されます。

2. Category リストで、 Analysis & Synthesis Settings の隣にある「+」アイ

コンを展開し、 Synthesis Netlist Optimizations を選択します。

3. Synthesis Netlist Optimizations ページ(図 19)で、 合成中にネットリ

ストの最適化を実行するためのオプションを指定します。

f ネットリストの最適化およびフィジカル・シンセシスについて詳しくは、

「Quartus II ハンドブック Volume 2」の「Netlist Optimizations and Physical Synthesis」の章を参照してください。

図 19. Synthesis Netlist Optimizationsページ

28 Altera Corporation2009 年 11 月

Page 30: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

デザイン・スペース・エクスプローラ(DSE)SmartXplorer の代わりに、デザイン・スペース・エクスプローラ (DSE) は、

Tcl/TK で書かれて、デザインの実装に最適な Quartus II オプションを自動的に検

出するユーティティです。 DSE は、さまざまな最適化手法を適用し、その結果

を分析することによって、デザインのデザイン・スペースを探索します。

デザイン・プロセスのどの段階でも DSE を実行することができますが、

Quartus II ソフトウェアの設定の最適化によって得られた利点は、デザインが大

きな変更を加えられた場合に持続されていないことがあるので、アルテラでは

DSE をデザイン・サイクルの後半で実行することを推奨しています。 アルテラで

は、DSE の実行前にデザインにタイミング制約を指定することを推奨していま

す。

詳細については、「Quartus II ハンドブック Volume 3」の「Design Space Explorer」の章を参照して下さい。

追加の Quartus II機能任意の FPGA デザイン・フローに必要な標準のツールを提供するに加えて、

Quartus II ソフトウェアにはご希望のデザイン要件を達成するための追加機能やツー

ルが含まれています。

Quartus II ソフトウェアにおける Tcl スクリプトの使用Quartus II GUI により、ソフトウェアによって提供されるすべての機能やコマンドに

簡単にアクセスできます。 ただし、デザインのリソース使用率と複雑さの増加に

伴って、一般的なタスクの自動化および FPGA デザイン・フロー全体の合理化は必

要になってきます。

Quartus II ソフトウェアは Tcl に対してサポートを提供して、プロジェクト・アサイン

メント、コンパイルおよび制約を容易にします。

Quartus II ソフトウェアは、アサインメントの作成、デザインのコンパイル、タイミ

ングの解析やシミュレーションのコントロールなどさまざまな一般的なタスクを自

動化するのに使用できる Tcl API(Application Programming Interface)機能を備えま

す。 以下のいずれかの方法で Tcl スクリプトを実行することができます。

■ Tcl インタラクティブ・シェルから入力する

■ Tcl インタラクティブ・シェルからバッチ・スクリプトを使用する

■ DOS プロンプトまたは UNIX プロンプトからのバッチ・ファイルとして実行する

■ 直接コマンドラインから入力する

f 詳細については、「Quartus II ハンドブック Volume 2」の「Tcl Scripting」の章お

よびアルテラ・ウェブサイトの「Quartus II Scripting Support」のページを参照

してください。

Altera Corporation2009 年 11 月 29

Page 31: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

シェルから Tclスクリプトを対話的に実行次の例に示すとおり、-s または --shellのスイッチ・オプションを用いてイン

タラクティブ Tcl シェルを起動して、通常のコマンドライン・プロンプトを tcl> に置き換えます。

C:\>quartus_sh -s

Info: *******************************************************************

Info: The Quartus II Shell supports all TCL commands in addition

Info: to Quartus II Tcl commands. All unrecognized commands are

Info: assumed to be external and are run using Tcl's "exec"

Info: command.

Info: - Type "exit" to exit.

Info: - Type "help" to view a list of Quartus II Tcl packages.

Info: - Type "help <package name>" to view a list of Tcl commands

Info: available for the specified Quartus II Tcl package.

Info: - Type "help -tcl" to get an overview on Quartus II Tcl usages.

Info: *******************************************************************

tcl>

Tcl シェルに入力した内容はすべて、Quartus II Tcl インタプリタによって直接に解

釈されます。

f Tcl シェルには、前のコマンド入力の履歴リストが含まれますが、コマン

ドが 1 行以上にわたることができません。

シェルからバッチ・スクリプトを使用Tcl スクリプト・ファイル (.tcl) を作成した後、Tcl シェルで次のコマンドを入力し

て、その .tcl ファイルを実行することができます。

source <script_name>.tcl

DOSプロンプトまたは UNIXプロンプトからスクリプトを実行次のコマンドは、Quartus II Tcl シェルを実行し、-tオプションによって指定さ

れた Tcl ファイルを入力 Tcl スクリプトとして使用します。

quartus_sh -t <script_name>.tcl

Quartus II Tcl インタープリタは Tcl スクリプト・ファイル内の Tcl コマンドを読み

込んで実行して、そして再びコマンドライン・プロンプトに戻ります。

30 Altera Corporation2009 年 11 月

Page 32: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

直接コマンドラインからスクリプトを実行Tcl にアクセスするもう 1 つの方法は、--tcl_evalオプションを使用することで

す。 これにより、コマンドライン引数の残りの部分は Tcl コマンドとして評価さ

れます。 2 つ以上の Tcl コマンドを実行する場合、それらのコマンドをセミコロ

ン(;)で区切ります。

例えば、次のコマンドを入力します。

quartus_sh --tcl_eval puts Hello; puts World

以下の出力が得られます。

Hello

World

Tcl 評価オプションにより、(make、perlや sh などの)外部スクリプト・プログ

ラムが Quartus II ソフトウェアからの情報にアクセスすることが可能になりま

す。 これらのプログラムは、ターゲットされた部分のデバイス・ファミリの情報

を取得するために使用されます。 また、--tcl_eval オプションは直接にコマン

ド・プロンプトから Tcl に関するヘルプ情報を提供します。

Quartus II GUIにおける Tcl Consoleの使用Tcl コマンドは、Quartus II Tcl Console ウィンドウで直接実行することができま

す。 Tcl Console ウィンドウを開くには、View メニューで、Utility Windows を

ポイントして Tcl Console をクリックします。 Tcl Console は通常、Quartus II GUI の右下にあります。

例 1の Tcl スクリプトは次のタスクを実行します。

■ fir_filter プロジェクトが存在する場合は、このプロジェクトを開きます。 この

プロジェクトが存在しない場合、スクリプトはこのプロジェクトを作成しま

す。

■ プロジェクトを Stratix II EP2S15F672C3 デバイスにターゲットするように設

定します。

■ clkピンを物理ピン F18 に割り当てます。

■ コンパイルを実行します。

Altera Corporation2009 年 11 月 31

Page 33: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローQuartus IIによる FPGAデザイン手法

Quartus IIソフトウェアにおけるクロス・プロービングクロス・プロービングとは、1 つのツールからデザインの要素を選択し、別のツー

ルでそれらを探し出す機能です。 Quartus II ソフトウェアでのすべての機能とツール

は高度に統合されて、シームレスなクロス・プロービング機能を提供するデザイン

環境が得られます。

例えば、Quartus II ソフトウェアのクロス・プロービング機能により、Assignment Editor で、RTL Viewer からのデザイン・エレメントを見つけることができます。 その

ため、Assignment Editor でデザイン制約を適用する時に、ノード名およびピン名の

検索時間が不要になります。 デザイン・エレメントを検索するためには、マウスの

右クリック・ボタンを使用します。

f Quartus II ソフトウェアの機能およびツールについて詳しくは、Quartus II ハンドブックを参照してください。

例 1. Tclスクリプトの例# This Tcl file works with quartus_sh.exe

# This Tcl file will compile the Quartus II tutorial

# fir_filter design

# set the project_name to fir_filter

# set compiler setting to filtref

set project_name fir_filter

set csf_name filtref

# Create a new project and open it

# Project_name is project name

# Require package ::quartus::project

if {![project_exists $project_name]} {

project_new -cmp $csf_name $project_name;

} else {

project_open -cmp $csf_name $project_name;

}

#------ Make device assignments ------#

set_global_assignment -name FAMILY "Stratix II"

set_global_assignment -name DEVICE EP2S15F672C3

#------ Make instance assignments ------#

# assign pin clk to pin location F18

set_location_assignment -to clk Pin_F18

#------ project compilation ------#

# The project is compiled here

package require ::quartus::flow

execute_flow -compile

project_close

32 Altera Corporation2009 年 11 月

Page 34: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

Xilinxからアルテラへのデザイン変換Xilinx をターゲットにするデザインを正常にアルテラ・デバイスに使用できるように

変換するには、3 つのプロセスがあります。

1. Xilinx プリミティブをアルテラのプリミティブ、メガファンクション、または制

約に置き換えます。

2. Xilinx Core Generator モジュールを Quartus II MegaWizard Plug-In Manager によって生成されるアルテラのメガファンクションに置き換えます。

3. Quartus II ソフトウェアで、変換しようとする Xilinx デザインのタイミング制約

およびデバイス制約に対応するものを設定します。

これらのステップについては、以下の項で説明しています。

Xilinxプリミティブの置き換えプリミティブは、Xilinx デザインにおける基本的なビルディング・ブロックです。 こ

れらのプリミティブは、レジスタのシフトや Xilinx デバイスの I/O ピンに特定の I/O規格を実装するなど、デバイスでのさまざまな専用機能を実行します。 名称が標準

化されているため、プリミティブは簡単に識別されます。

このセクションでは、シングル・エンド I/O バッファおよびシフト・レジスタなど

一般的な Xilinx プリミティブをアルテラの対応するものに変換する方法について説

明します。 表 5 に、一般的に使用される Xilinx プリミティブをリストし、そしてそ

れぞれに対応するアルテラのデザイン・エレメントを説明します。

表 5. 一般的に使用される Xilinxプリミティブおよびそれらに対応するアルテラのデザイン・エレメント (1/2)

Xilinxプリミティブ 説明アルテラの対応する

もの 変換方法

BUF、 4、 8、 16 汎用バッファ

WIREアサインメント

HDLIBUF、 4、8、 16単一および複数の入力バッファ

OBUF、 4、 8、 16単一および複数の出力バッファ

Altera Corporation2009 年 11 月 33

Page 35: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

I/Oバッファの変換入力、出力、または双方向バッファは自動的に Quartus II コンパイラによって挿入

されます。 したがって、Quartus II ソフトウェアでデザインを変換するときには、こ

れらのバッファは不要です。 アルテラでは、HDL コードで、Xilinx デザインからの

すべてのバッファ・プリミティブを削除して、簡単な wire アサインメントに置き換

えることを推奨しています。

選択可能な I/O 規格を持つバッファの場合、アルテラでは、HDL コードでこれらの

バッファを wire アサインメントに置き換え、そして Assignment Editor 内の I/O

Standardアサインメントを使用してご希望の I/O規格を割り当てることを推奨してい

ます。

グローバル・バッファの場合、アルテラでは、HDL コードでグローバル・バッファ

を wire アサインメントに置き換え、そして Assignment Editor 内の Global Signal アサインメントを使用してグローバル信号を割り当てることを推奨しています。 グ

ローバル・バッファが選択可能な I/O 規格を有する場合には、Assignment Editor のI/O Standard アサインメントを使用してご希望の I/O 規格を選択します。

BUFG グローバル・クロック・バッファ

WIRE およびグローバル信号アサインメント

HDL およびアサインメント・エディタ

IBUFG_<選択可能なI/O 規格 > (1)

選択可能なインタフェースを持つ入力グローバル・バッファ

WIRE、I /O 規格、およびグローバル信号アサインメント

OBUFG_<選択可能なI/O 規格 > (1)

選択可能なインタフェースを持つ出力グローバル・バッファ

IBUF_< 選択可能なI/O 規格 > (1)

選択可能なインタフェースを持つ入力バッファ

WIREおよびI/O規格アサインメント (2)

IOBUF_<選択可能なI/O 規格 > (1)

選択可能なインタフェースを持つ双方向バッファ

WIREおよびI/O規格アサインメント (2)

OBUF_< 選択可能なI/O 規格 > (1)

選択可能なインタフェースを持つ出力バッファ

WIREおよびI/O規格アサインメント (2)

IBUFDS、OBUFDS 差動 I/O バッファWIREおよびI/O規格アサインメント

HDL およびアサインメント・エディタ

SRL16HDL エディタおよびアサインメント・エディタ

16:1 MUX を持つLPM_SHIFTREG

HDL およびMegaWizard Plug-In Manager

表 5の注:(1) < 選択可能な I/O 規格 > 属性はデバイス固有のものです。 デバイス固有の I/O 規格については、Xilinx

デバイスのデータシートを参照してください。

(2) 差動 I/O バッファの場合は、ご希望の差動 I/O 信号に差動 I/O 規格を割り当てることができます。 Quartus II ソフトウェアは、ご希望の信号と逆の位相を持つ新しい信号、signal_name(n)を自動的に作成します。

表 5. 一般的に使用される Xilinxプリミティブおよびそれらに対応するアルテラのデザイン・エレメント (2/2)

Xilinxプリミティブ 説明アルテラの対応する

もの 変換方法

34 Altera Corporation2009 年 11 月

Page 36: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

次は、Verilog HDL で BUFG、 IBUFG_SSTL2_II/I、 および OBUF を変換する例で

す。

例 2 に、ISE ソフトウェアにおける元の Verilog HDL コードを示しています。

例 3 に、Quartus II ソフトウェアにおける変換された Verilog HDL コードを示しま

す。

例 2. I/O バッファの変換 ̶ ISEソフトウェアにおける元の Verilog HDLコードmodule Top (a, b, c, clk);

input a, b, clk;output c;

reg c_buf;wire a_buf, b_buf, clk_buf;

BUFG inst1 (.O (clk_buf), .I (clk));IBUFG_SSTL2_II inst2 (.O (a_buf), .I (a));IBUFG_SSTL2_I inst3 (.O (b_buf), .I (b));OBUF inst4 (.O (c), .I (c_buf));

always @ (posedge clk_buf)c_buf <= a_buf & b_buf;

endmodule

例 3. I/O バッファの変換 ̶ Quartus IIソフトウェアにおける変換された Verilog HDLコードmodule Top (a, b, c, clk);

input a, b, clk;output c;

reg c_buf;wire a_buf, b_buf, clk_buf;

assign clk_buf = clk;assign a_buf = a;assign b_buf = b;assign c = c_buf;

always @ (posedge clk_buf)c_buf <= a_buf & b_buf;

endmodule

Altera Corporation2009 年 11 月 35

Page 37: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

次は、VHDL で BUFG、IBUFG_SSTL2_II/I、および OBUFを変換する例です。

例 4 に、ISE ソフトウェアにおける元の VHDL コードを示します。

例 4. I/Oバッファの変換 ̶ ISEソフトウェアにおける元の VHDLコードLIBRARY ieee;USE ieee.std_logic_1164.all;

ENTITY Top ISPORT(a, b : IN STD_ULOGIC;clk : IN STD_ULOGIC;c : OUT STD_ULOGIC);

END Top;

ARCHITECTURE Behave OF Top IS

SIGNAL a_buf, b_buf, c_buf, clk_buf : STD_ULOGIC;

COMPONENT BUFGPORT (O : OUT STD_ULOGIC; I : IN STD_ULOGIC);

END COMPONENT;

COMPONENT IBUFG_SSTL2_IIPORT (O : OUT STD_ULOGIC; I : IN STD_ULOGIC);

END COMPONENT;

COMPONENT IBUFG_SSTL2_IPORT (O : OUT STD_ULOGIC; I : IN STD_ULOGIC);

END COMPONENT;

COMPONENT OBUFPORT (O : OUT STD_ULOGIC; I : IN STD_ULOGIC);

END COMPONENT;

BEGINinst1 : BUFG

PORT MAP (O => clk_buf, I => clk);inst2 : IBUFG_SSTL2_II

PORT MAP (O => a_buf, I => a);inst3 : IBUFG_SSTL2_I

PORT MAP (O => b_buf, I => b);inst4 : OBUF

PORT MAP (O => c, I => c_buf);

PROCESS(clk_buf)BEGINIF (clk_buf'event and clk_buf = '1') THEN

c_buf <= a_buf AND b_buf;END IF;

END PROCESS;END Behave;

36 Altera Corporation2009 年 11 月

Page 38: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

例 5 に、Quartus II ソフトウェアにおける変換された VHDL コードを示します。

Verilog HDL または VHDL の例で示したとおり、clk、aおよび b入力はグローバル信

号であり、また、a と b入力には IBUFG_SSTL2_II および IBUFG_SSTL2_I のI/O 規格が割り当てられます。 Quartus II ソフトウェアで特定のアサインメントに

よってポートを設定するには、Assignment Editor を使用します。

図 20 に、Quartus II Assignment Editor による Global Signal および I/O Standard ア

サインメントの設定方法を示します。 入力 a、b、および clkはグローバル信号とし

て割り当てられます。clkはグローバル・クロックです。 入力ポート a および bは

特定の I/O 規格によって割り当てられ、ほかのポートは自動的にデフォルトのデバ

イス固有の I/O 規格によって割り当てられます。

例 5. I/Oバッファの変換 ̶ Quartus IIソフトウェアにおける変換された VHDLコードLIBRARY ieee;USE ieee.std_logic_1164.all;

ENTITY Top ISPORT(a, b : IN STD_ULOGIC;clk : IN STD_ULOGIC;c : OUT STD_ULOGIC);

END Top;ARCHITECTURE Behave OF Top IS

SIGNAL a_buf, b_buf, c_buf, clk_buf : STD_ULOGIC;BEGINPROCESS (a, b, c_buf, clk)

BEGINclk_buf <= clk;a_buf <= a;b_buf <= b;c <= c_buf;

END PROCESS;

PROCESS(clk_buf)BEGINIF (clk_buf'event and clk_buf = '1') THEN

c_buf <= a_buf AND b_buf;END IF;

END PROCESS;END Behave;

図 20. Assignment Editorによる Global Signalアサインメントおよび I/O Standardアサインメント

Altera Corporation2009 年 11 月 37

Page 39: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

Quartus II ソフトウェアでは、ターゲット・デバイス上のピンのデフォルトの I/O 規格

はデバイス固有のものです 。 デフォルトの I/O 規格を変更するには、以下の手順を

実行します。

1. Assignments メニューから、Settings をクリックします。 Settings ダイアログ・

ボックスが表示されます。

2. Category リストの Device を選択します。 Device ページが表示されます。

3. Device ページで、Device and Pin Options をクリックして、Voltage タブでご

希望の I/O 規格を選択します。

SRL16の変換SRL16 プリミティブと同じ機能を得るために、16:1 マルチプレクサに接続された

LPM_SHIFTREG メガファンクションを使用します。 LPM_SHIFTREG メガファンク

ションは、Quartus II ソフトウェアにおけるパラメータ化されたシフト・レジスタ・

モジュールです。このメガサンクションは MegaWizard Plug-In Manager の Storageフォルダにあります。

図 21 は 16:1 マルチプレクサに接続された LPM_SHIFTREG メガファンクションの

上位レベルのブロック図です。

図 21 で、LPM_SHIFTREG メガファンクションは、16 ビットのパラレル・データ

出力バス、クロック信号、および 1 ビットのシリアル・シフト・データ入力を有す

る左シフト・レジスタとしてコンフィギュレーションされます。 クロックの立ち上

がりエッジごとに、シリアル・シフト・データ入力はメガファンクションのカス

ケード・レジスタに介してシフトされます。 シフト・レジスタの同期 16 ビット・パ

ラレル・データ出力は、4 ビット・セレクタを有する 16:1 マルチプレクサに接続さ

れます。 マルチプレクサでは、セレクタの値を変更することで、LPM_SHIFTREGメガファンクションの任意の選択されたレジスタの結果を出力することができます。

その結果、マルチプレクサの出力は、選択されたレジスタの 1 ビット・シリアル・

シフト出力です。

1 また、LPM_MUX ファンクションによって 16:1 マルチプレクサを実装することもでき

ます。 LPM_MUX メガファンクションについて詳しくは、「Quartus II Help」を参照

してください。

図 21. 16ビット・マルチプレクサに接続された LPM_SHIFTREGメガファンクション

38 Altera Corporation2009 年 11 月

Page 40: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

LPM_SHIFTREG メガファンクションが図 21 のブロック図を実装するには、次の設

定が必要です。

■ 出力バスのサイズ、q、を 16 に設定

■ シフトの方向を left に設定

■ 出力に対して Data output を選択

■ 入力に対して Serial shift data input を選択

表 6 に、16:1 マルチプレクサを持つ LPM_SHIFTREG メガファンクションを使用

して Xilinx SRL16 およびアルテラの対応するものの間のポート・マッピングをまと

めます。

f LPM_SHIFTREG メガファンクションの使用について詳しくは、「LPM_SHIFTREG Megafunction User Guide」を参照してください。

次は、Verilog HDL で SRL16 プリミティブを LPM_SHIFTREG および LPM_MUX に

変換する例です。

表 6. ポート・マッピングの比較

Xilinxポート アルテラ・ポート 説明Q result 1 ビット・データ出力ポート

A0 sel[0]

4 ビット・データ・セレクタA1 sel[1]

A2 sel[2]

A3 sel[3]

CLK clock シフト・レジスタのクロック信号

D shiftin 1 ビット・データ出力ポート

N/A data[15..0](1)シフト・レジスタの 16 ビット初期値

(オプション)

N/A load (1)アサートされる時、シフト・レジスタはデータ [15..0] ポートの値に初期化する

表 6の注:(1) SRL16 プリミティブは HDL コードでの INITパラメータを使用してシフト・レジスタを初期化し

ます。 ただし、LPM_HIFTREG メガファンクションを初期化するには、アルテラでは、16 ビットのパラレル・データ入力およびロード・ポートを追加することを推奨しています。 ロード信号がアサートされる時、 LPM_SHIFTREG メガファンクションは data[15..0] 信号の値によって初期化されます。 これらのポートはオプションであり、含まれていない場合には、LPM_SHIFTREG はデフォルトでゼロに初期化されます。

Altera Corporation2009 年 11 月 39

Page 41: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

例 6 に、ISE ソフトウェアにおける元の Verilog HDL コードを示します。

例 6. SRL16の変換 ̶ ISEソフトウェアにおける元の Verilog HDLコードmodule top (

A,CLK,D,Q

);

input[3:0] A;input CLK;input D;output Q;

SRL16 i1 (.Q (Q), .A0 (A[0]), .A1 (A[1]), .A2 (A[2]), .A3 (A[3]), .CLK (CLK), .D (D));endmodule

40 Altera Corporation2009 年 11 月

Page 42: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

例 7 に、Quartus II ソフトウェアにおける変換された Verilog HDL コードを示しま

す。

例 7. SRL16の変換 ̶ Quartus IIソフトウェアにおける変換された Verilog HDLコードmodule x2a_SRL16(

A,CLK,D,Q

);

input[3:0] A;input CLK;input D;output Q;

wire [15:0] shift_out;

lpm_shiftreg16i1(.clock(CLK),.shiftin(D),.q(shift_out));

lpm_mux16to1 i2(.data15(shift_out[15]),.data14(shift_out[14]),.data13(shift_out[13]),.data12(shift_out[12]),.data11(shift_out[11]),.data10(shift_out[10]),.data9(shift_out[9]),.data8(shift_out[8]),.data7(shift_out[7]),.data6(shift_out[6]),.data5(shift_out[5]),.data4(shift_out[4]),.data3(shift_out[3]),.data2(shift_out[2]),.data1(shift_out[1]),.data0(shift_out[0]),.sel(A),.result(Q));

endmodule

Altera Corporation2009 年 11 月 41

Page 43: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

次は、VHDL で SRL16 プリミティブを LPM_SHIFTREG および LPM_MUX に変換

する例です。

例 8 に、ISE ソフトウェアにおける元の VHDL コードを示します。

例 8. SRL16の変換 ̶ ISEソフトウェアにおける元の VHDLコードLIBRARY ieee;USE ieee.std_logic_1164.all;

LIBRARY work;

ENTITY x2a_SRL16 IS port(

A : IN STD_LOGIC_VECTOR(3 downto 0);CLK : IN STD_LOGIC;D : IN STD_LOGIC;Q : OUT STD_LOGIC

);END x2a_SRL16;

ARCHITECTURE arch OF x2a_SRL16 IS

component SRL16PORT(

A0 : IN STD_LOGIC;A1 : IN STD_LOGIC;A2 : IN STD_LOGIC;A3 : IN STD_LOGIC;CLK : IN STD_LOGIC;D : IN STD_LOGIC;Q : OUT STD_LOGIC

);end component;

BEGIN

i1 : SRL16PORT MAP(A0 => A(0),

A1 => A(1),A2 => A(2),A3 => A(3),CLK => CLK,D => D,Q => Q);

END;

42 Altera Corporation2009 年 11 月

Page 44: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

例 9 に、Quartus II ソフトウェアにおける変換された VHDL コードを示します。

例 9. SRL16の変換 ̶ Quartus IIソフトウェアにおける変換された VHDLコードLIBRARY ieee;USE ieee.std_logic_1164.all;

LIBRARY work;

ENTITY x2a_SRL16 IS port(

A : IN STD_LOGIC_VECTOR(3 downto 0);CLK : IN STD_LOGIC;D : IN STD_LOGIC;Q : OUT STD_LOGIC

);END x2a_SRL16;

ARCHITECTURE arch OF x2a_SRL16 IS

component lpm_shiftreg16PORT(

clock : IN STD_LOGIC;shiftin : IN STD_LOGIC;q : OUT STD_LOGIC_VECTOR(15 downto 0)

);end component;

component lpm_mux16to1PORT(

data15 : IN STD_LOGIC;data14 : IN STD_LOGIC;data13 : IN STD_LOGIC;data12 : IN STD_LOGIC;data11 : IN STD_LOGIC;data10 : IN STD_LOGIC;data9 : IN STD_LOGIC;data8 : IN STD_LOGIC;data7 : IN STD_LOGIC;data6 : IN STD_LOGIC;

data5 : IN STD_LOGIC;data4 : IN STD_LOGIC;data3 : IN STD_LOGIC;data2 : IN STD_LOGIC;data1 : IN STD_LOGIC;data0 : IN STD_LOGIC;sel : IN STD_LOGIC_VECTOR(3 downto 0);result : OUT STD_LOGIC

);end component;

signal shift_out : STD_LOGIC_VECTOR(15 downto 0);

Altera Corporation2009 年 11 月 43

Page 45: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

Xilinx Core Generator モジュールの置き換え次の項では、Xilinx Core Generator モジュールから Quartus II MegaWizard Plug-In Manager によって生成されたアルテラ・メガファンクションへの変換について説明

します。

■ 「メモリの変換」

■ 63 ページの「DCM および PLL の変換」

■ 70 ページの「乗算器の変換」

メモリの変換この項では、Xilinx のメモリ・ブロックからアルテラのメモリ・ブロックへの変換に

ついて説明します。ターゲットとされた Xilinx メモリ・ブロックは、下記の Xilinx Block Memory Generator によって生成されるもののみです。

■ シングル・ポート RAM

■ シンプル・デュアル・ポート RAM

■ トゥルー・デュアル・ポート RAM

■ シングル・ポート ROM

■ デュアル・ポート ROM

アルテラのメモリ・ブロックは、Quartus II MegaWizard Plug-In Manager での

Memory Compiler フォルダに分類されます。 RAM および ROM ブロックは、

RAM:1-PORT、 RAM:2-PORT、 RAM:3-PORT、 ROM:1-PORTおよび ROM:2-PORT の

MegaWizard プラグインで構成されます。

BEGIN

i1 : lpm_shiftreg16PORT MAP(clock => CLK,

shiftin => D, q => shift_out);

i2 : lpm_mux16to1PORT MAP(data15 => shift_out(15),

data14 => shift_out(14), data13 => shift_out(13), data12 => shift_out(12), data11 => shift_out(11), data10 => shift_out(10), data9 => shift_out(9), data8 => shift_out(8), data7 => shift_out(7), data6 => shift_out(6), data5 => shift_out(5), data4 => shift_out(4), data3 => shift_out(3), data2 => shift_out(2), data1 => shift_out(1), data0 => shift_out(0), sel => A, result => Q);

END;

44 Altera Corporation2009 年 11 月

Page 46: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

RAM または ROM メガファンクションについて詳しくは、「Random Access Memory Megafunction User Guide (RAM)」または「Read Only Memory Megafunction User Guide (ROM)」を参照してください。

次のトピックは、Xilinx メモリ・ブロックを正常にアルテラのメモリ・ブロックに変

換する場合に役立ちます。

■ ターゲット・デバイス内の TriMatrix エンベデッド・メモリ・ブロックを理解する

■ アルテラ・デバイスおよび Xilinx デバイスの間のメモリ機能の相違点を理解する

■ アルテラ・メモリの作成および Xilinx からアルテラへのポート・マッピング

TriMatrixエンベデッド・メモリ・ブロックの機能アルテラのエンベデッド・メモリでは、3 種類の異なるサイズのエンベデッド

SRAMを提供するTriMatrixメモリ構造を備えています。サポートされるTriMatrixエン

ベデッド・メモリ・ブロックのサイズはデバイスによって異なります。 表 7 に、異

なるアルテラ・デバイス内の TriMatrix エンベデッド・メモリ・ブロックを示しま

す。

TriMatrix エンベデッド・メモリ・ブロックのサポートされる機能および動作はデバ

イスによってわずかに異なります。 表 8 に、Stratix III デバイスでの TriMatrix メモ

リ機能をまとめます。 テーブルから、サポートされる機能およびご希望の動作に基

づいて、デザインに最適なメモリ・ブロックを確認することができます。

表 7. アルテラ・デバイス内の TriMatrixエンベデッド・メモリ・ブロック

デバイス TriMatrix メモリ・ブロックの種類

Stratix、Stratix II、Cyclone、Cyclone II、Arria® GX、および Arria II GX(1)

M512 ブロック (512 ビット )

M4K ブロック(4K ビット)

M-RAM ブロック(512K ビット)

Stratix III、Stratix IV、および Cyclone III (2)

MLAB ブロック(640 ビット)(3)

M9K ブロック(9K ビット)

M144K ブロック(144K ビット)

表 7の注:(1) Cyclone および Cyclone II デバイスは、M4K メモリ・ブロックのみ備えています。

(2) Cyclone III デバイスは M9K RAM ブロックのみ備えています。

(3) Stratix III デバイスの場合、MLAB ブロックは、ROM モードでは 640 ビット、ほかのモードでは320 ビットです。

表 8. TriMatrixメモリの特長の要約 (1/3)

特長 MLAB M9K ブロック M144K ブロック

最大性能 600 MHz 580 MHz 600 MHz

トータル・メモリ・ビット数(パリティ・ビットを含む)

640(ROM モード) または 320(ほかの

モード)

9,216 147,456

Altera Corporation2009 年 11 月 45

Page 47: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

コンフィギュレーション(深さ x 幅) (1)

16 x 816 x 9

16 x 1016 x 1616 x 1816 x 20

8 K x 14 K x 22 K x 41 K x 81 K x 9

512 x 16512 x 18256 x 32256 x 36

16 K x 816 K x 98 K x 168 K x 184 K x 324 K x 362 K x 642 K x 72

パリティ・ビット v v v

バイト・イネーブル v (2) v v

パック・モード — v v

アドレス・クロック・イネーブル

v v v

シングル・ポート・メモリ

v v v

シンプル・デュアル・ポート・メモリ

v v v

トゥルー・デュアル・ポート・メモリ

— v v

エンベデッド・シフト・レジスタ

v v v

ROM v v v

FIFO バッファ v v v

シンプル・デュアル・ポートの異なるデータ幅のサポート

— v v

トゥルー・デュアル・ポートの異なるデータ幅のサポート

— v v

メモリ初期化ファイル(.mif)

v v v

混合クロック・モード v v v

パワーアップ条件

ラッチされる場合は出力がクリアされ、ラッチされない場合はメモリ内容が読み出されます。

出力はクリア 出力はクリア

レジスタ・クリア 出力レジスタ 出力レジスタ 出力レジスタ

ライト / リード動作のトリガ

Write(ライト): 立ち下がりクロック・エッジRead(リード): 立ち上がりクロック・エッジ

ライトおよびリード: 立ち上がりクロック・エッジ

ライトおよびリード: 立ち上がりクロック・エッジ

表 8. TriMatrixメモリの特長の要約 (2/3)

特長 MLAB M9K ブロック M144K ブロック

46 Altera Corporation2009 年 11 月

Page 48: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

1 Xilinx からアルテラへのメモリ変換に対して、アルテラのメモリの仕様を理解するこ

とは非常に重要です。 次の項では両社のメモリ・ブロックの相違点について説明し

ていますが、ご希望のアルテラ・メモリの機能および動作を理解することを最優先

にしてください。

シンプル・デュアル・ポート RAM の変換の例については、56 ページの「シンプル・

デュアル・ポート RAM の変換」を参照してください。

f メモリ機能およびメモリ仕様については、ターゲット・デバイスのハンドブックの

TriMatrix エンベデッド・メモリ・ブロックに関する章を参照してください。

Quartus II ソフトウェアでは、テスト・フェーズに FPGA にあるメモリの内容を検証

する機能が提供されています。

f メモリ内容検証機能について詳しくは、「Quartus II ハンドブック Volume 3」の

「In-System Updating of Memory and Constants」の章を参照してください。

同一ポートに対するRead-During-Write

出力は古いデータまたはドントケアに設定される

出力は古いまたは新しいデータに設定される

出力は古いまたは新しいデータに設定される

混在ポートに対するRead-During-Write

出力はドントケアに設定される

出力は古いデータに設定される

出力は古いデータに設定される

ECC サポートQuartus II ソフトウェアによるソフトIP のサポート

Quartus II ソフトウェアによるソフトIP のサポート

64 幅 SDP モードでのビルトイン・サポートまたはQuartus II ソフトウェアによるソフトIP サポート

表 8の注:(1) ROM モードでは、MLAB は 64x8、64x9、64x10、32x16、32x18、または 32x20 の(深さ x 幅)コ

ンフィギュレーションをサポート。

(2) MLAB はエミュレーションによってバイト・イネーブルをサポートします。

表 8. TriMatrixメモリの特長の要約 (3/3)

特長 MLAB M9K ブロック M144K ブロック

Altera Corporation2009 年 11 月 47

Page 49: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

Xilinxのメモリとアルテラのメモリの違いXilinx のメモリおよびアルテラのメモリの機能および動作には、メモリの変換時に考

慮しなければならないいくつかの相違点があります。 これらの相違点には、次のも

のがあります。

■ メモリ・モード

■ クロック・モード

■ ライト動作のトリガ

■ 同一アドレスに対する Read-During-Write

■ 誤り訂正コード(ECC)

■ バイト・イネーブル

■ アドレス・クロック・イネーブル

■ パリティ・ビットのサポート

■ メモリ初期化

■ 出力同期セット / リセット

これらの相違点については、以下の項で説明しています。

メモリ・モードXilinx のメモリおよびアルテラのメモリはシングル・ポート RAM、シンプル・

デュアル・ポート RAM、トゥルー・デュアル・ポート RAM、シングル・ポート

ROM およびデュアル・ポート ROM をサポートします。 また、アルテラのメモリ

は 3 ポート RAM もサポートします(1 つのライト・ポートおよび 2 つのリー

ド・ポートを有するトライアドレス RAM)。

f 3 ポート RAM について詳しくは、「Random Access Memory Megafunction User Guide (RAM)」を参照してください。

クロック・モードどの TriMatrix エンベデッド・メモリ・ブロックを選択するかによって、以下の

クロック・モードを使用できます。

■ シングル・クロック

■ 独立クロック

■ 入力 / 出力クロック

■ リード / ライト・クロック

シングル・クロック・モードでは、すべてのポートが同じクロックを共用しま

す。 独立クロック・モードでは、各ポート(ポート A および B)で個別のクロッ

クを使用できます。 これは、各ポート(A と B)に独立したクロックを持つ

Xilinx のメモリ・クロック・モードと同じです。 また、アルテラでは、入力ポー

トおよび出力ポートに独立したクロックが利用可能な入力 / 出力モードがサポー

トされます。

48 Altera Corporation2009 年 11 月

Page 50: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

リード / ライト・クロック・モードでは、リード・ポートおよびライト・ポート

で個別のクロックを使用できます。 Xilinx のメモリは、リード / ライト動作に基

づくクロック・モードをサポートしていません。 ただし、A ポートおよび B ポー

トがそれぞれライト・ポートおよびリード・ポートとして使用されると(シンプ

ル・デュアル RAM の場合)、このクロック・モードはアルテラのリード / ライ

ト・クロック・モードに似ています。

ライト動作のトリガ潜在的なライト競合は RAM の外部で解決する必要があります。両方のポートが

同じアドレスにライトすると、そのアドレスはデータストレージに不定の位置に

書き込まれることになります。したがって、書き込み動作がいつトリガされるか

を知ることが重要です。

アルテラのメモリでの書き込み動作は、使用される TriMatrix エンベデッド・メ

モリ・ブロックに応じて、立ち下がりクロック・エッジまたは立ち上がりクロッ

ク・エッジでも発生可能です。

表 9 に、異なる種類の TriMatrix エンベデッド・メモリ・ブロックの書込み動作

のトリガを示します。

同一アドレスに対する Read-During-Write

同一ポートと混合ポートの 2 種類の Read-During-Write 動作が用意されていま

す。 図 22 に、これらの動作の違いを示します。

同じポートの Read-During-Write モードは、シングル・ポート RAM またはトゥ

ルー・デュアル・ポート RAM の同一ポートに適用されます。 混合ポートの

Read-During-Write モードは、シンプルまたはトゥルー・デュアル・ポート・

モードの RAM に適用されます。トゥルー・デュアル・ポート・モードでは、同

一クロックで同じアドレス位置に対して 1 つのポートはリード動作、別のポート

はライト動作を実行します。

表 9. TriMatrixエンベデッド・メモリ・ブロックの書き込み動作のトリガ

M512 M4K M-RAM MLAB M9K M144K

立ち下がりエッジで書き込み

立ち下がりエッジで書き込み

立ち上がりエッジで書き込み

立ち下がりエッジで書き込み

立ち上がりエッジで書き込み

立ち上がりエッジで書き込み

図 22. Read-During-Writeデータ・フロー

Port Adata in

Port Adata out

Port Bdata in

Mixed-portdata flow

Same-portdata flow

Port Bdata out

Altera Corporation2009 年 11 月 49

Page 51: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

アルテラの RAM と Xilinx の RAM は両方のモードをサポートします。 ただし、

両方には異なる出力オプションがあります。 出力オプションは、動作モードおよ

び選択された TriMatrix エンベデッド・メモリ・ブロックまたはデバイスの種類

に応じて異なります。

アルテラの RAM は NEW_DATA (flow-through)、OLD_DATA、または

DONT_CARE の出力オプションによってコンフィギュレーションされます。

XilinxのRAMはREAD_FIRST、 WRITE_FIRST、またはNO_CHANGEの出力オプ

ションによってコンフィギュレーションされます。

表 10に、Xilinx の RAM およびアルテラの RAM における Read-During-Write 動

作の出力オプションをリストします。

f アルテラ RAM の場合、選択可能な出力は、動作モードおよび選択された

TriMatrix エンベデッド・メモリ・ブロックの種類によって異なります。

同じポートの Read-During-Write モードおよび混合ポートの

Read-During-Write モードについて詳しくは、ターゲット・デバイスのハ

ンドブックの TriMatrix エンベデッド・メモリ・ブロックに関する章を参

照してください。

表 10. Xilinxの RAMおよびアルテラの RAMにおける Read-During-Write動作の出力オプション

説明

出力の選択

Xilinxの RAM アルテラの RAM

新しいデータがメモリに書き込まれ、同時に出力で表示されます。

WRITE_FIRST NEW_DATA

新しいデータがメモリに書き込まれる前に、出力はそのアドレス位置にある古いデータを反映します。

READ_FIRST OLD_DATA

出力は、書き込み動作に影響せず、前の読み出しデータを反映します。

NO_CHANGE サポートされていません (1)

新しいデータがメモリに書き込まれ、出力が未知の値を表示します

サポートされていません

DONT_CARE(2)

表 10の注:(1) この動作を実装するには、追加のロジックを追加して、同一アドレスに対する Read-During-Write

が発生する時に前の読み出しデータを保持します。ライト・イネーブル信号、およびライト・アドレスとリード・アドレス間の比較を使用して、同一アドレスに対する Read-During-Write が発生する時の動作を追跡します。

(2) その出力がデザインに重要ではない場合は、Read-During-Write 動作に対して DONT_CARE を選択してもかまいません。

50 Altera Corporation2009 年 11 月

Page 52: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

誤り訂正コード(ECC)アルテラの RAM は、M144K タイプの TriMatrix メモリ・ブロックがシンプル・

デュアル・ポート・モードで選択された場合のみ EEC をサポートします。 Xilinxの RAM は、シングル・ポート RAM またはシンプル・デュアル・ポート RAM を

使用する Virtex-5 デバイスに対してのみ ECC をサポートします。一般に、Xilinxの RAM およびアルテラの RAM は、メモリ・アレイでのエラーを検出して出力

に修正されたシングル・ビット・エラー・データを表示するためのものです。 た

だし、Xilinx の RAM とアルテラの RAM で使用されるステータス信号は異なって

います。 Xilinx の RAM は、2 つのステータス出力(SBITERRおよび DBITERR)を使用してデータの読み出しのステータスを示します。 アルテラの M144K のス

テータスは、3 ビット・ステータス・フラグ eccstatus[2..0] を介して通信さ

れます。

1 ECC をバイト・イネーブル機能と共に使用することはできません。 加え

て、ECC が選択されたとき、Read-During-Write: Old Data モードはサ

ポートされません。

f EEC 機能は、シンプル・デュアル・ポート・モードにおける M144K ブ

ロックに対してビルトイン・サポートを備えています。

f また、アルテラは、使用のメモリ・ブロックの種類に制限されることな

く、デザインに柔軟に実装される専用ソフト IP ECC メガファンクショ

ンを提供します。 EEC メガファンクションについて詳しくは、「Error Correction Code (ALTECC_ENCODER and ALTECC_DECODER) Megafunctions User Guide」を参照してください。

表 11に、ECC ステータス・フラグの真理値表を示します。

Xilinx の RAM は、2 つのステータス出力(SBITERR および DBITERR)を使用して

データの読み出しのステータスを示し、そして、アルテラの M144K のステータ

スは、3 ビット・ステータス・フラグ eccstatus[2..0] を介して通信されま

す。そのため、sbiterr および dbiterrポートにポート・マッピングする前

に、eccstatus[2..0]ポートには追加のロジックが必要です。

表 11. ECC ステータス・フラグの真理値表

Status eccstatus[2] eccstatus[1] eccstatus[0]

エラーなし 0 0 0

シングル・エラーで修正済み

0 1 1

ダブル・エラーで未修正

1 0 1

違法 0 0 1

違法 0 1 0

違法 1 0 0

違法 1 1 X

Altera Corporation2009 年 11 月 51

Page 53: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

図 23 に、eccstatus[2..0]から現在の sbiterrおよび dbiterrポートへの

ポート・マッピングを完成するための推奨される追加ロジックを示します。 eccstatus [2..0]の違法ステータスが発生すると、sbiterrおよび dbiterr信

号がデアサートされます。

f ECC について詳しくは、ターゲット・デバイスのハンドブックの TriMatrixエンベデッド・メモリ・ブロックに関する章を参照してください。

バイト・イネーブルすべての TriMatrix エンベデッド・メモリ・ブロックは、入力データをマスクして

データの特定のバイトだけが書き込まれるようにするバイト・イネーブルをサポー

トしています。

書き込まれなかったバイトまたはビットは、前に書き込まれた値を保持します。

Xilinx の RAM は、Virtex-5 および Virtext-4 でのみバイト・イネーブルをサポートしま

す。 Xilinx の RAM およびアルテラの RAM でサポートされるバイト・イネーブルに

はいくつかの相違点があります。

表 12 に、Xilinx の RAM およびアルテラの RAM でサポートされるバイト・イネー

ブルの一般的な相違点を示します。

図 23. 推奨される Xilinxからアルテラへの EECステータス信号のポート・マッピング

表 12. Xilinxの RAMおよびアルテラの RAMでのバイト・イネーブル機能 (1/2)

相違点 Xilinxの RAM アルテラの RAM

制御信号

WEA[n:0]信号によってコントロールされます。 WEA[n:0]内の各ビットは対応する入力データ・バイトのライト・イネーブルとして働きます。

ライト・イネーブル信号およびバイト・イネーブル信号によってコントロールされます。(1)

サポートされる入力データ幅

8ビットまたは9ビットの倍数をサポート

5 ビット、8 ビット及び 9ビットの倍数をサポートしますが、5 ビットは MLABの TriMatrix だけでサポートしています。2 バイト幅以下のコンフィギュレーションの場合は、ライトイネーブルまたはクロックイネーブル信号がライト動作を制御します。 (2)

sbiterr

dbiterr

AND3

AND3

eccstatus[2]

eccstatus[1]

eccstatus[0]

AlteraRAMBlock

NOT

NOT

52 Altera Corporation2009 年 11 月

Page 54: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

アドレス・クロック・イネーブルM512 ブロック以外のアルテラのメモリは、アドレス・クロック・イネーブル機

能をサポートします。 アドレス・クロック・イネーブルは addressstall がイ

ネーブルされている間、前のアドレス値を保持します。

f アドレス・クロック・イネーブル機能について詳しくは、ターゲット・

デバイスのハンドブックの TriMatrix エンベデッド・メモリ・ブロックに

関する章を参照してください。

パリティ・ビットのサポートすべての TriMatrix エンベデッド・メモリ・ブロックは、各バイトにビルトイン

のパリティ・ビット・サポートを備えています。 パリティ・ビットは、各 RAMブロックのメモリ量に加算されます。 例えば、M512 ブロックは 576 ビットです

が、そのうち 64 ビットはオプションによりパリティ・ビット・ストレージに使

用されます。 また、エラーを検出してデータの正確性を保証するために、パリ

ティ・ビットは、ユーザーが指定したコントロール・ビットを格納するなど、他

の用途にも使用できます。

f パリティ・ビットでパリティ機能が実際に実行されるわけではありませ

ん。 パリティ・ビットによるメモリ・エラーの検出方法について詳しく

は、「Using Parity to Detect Errors White Paper」を参照してくださ

い。

メモリ初期化M-RAM ブロック以外のすべての TriMatrix エンベデッド・メモリ・ブロックはメ

モリ初期化をサポートします。 メモリの内容は、Quartus II ソフトウェアで生成

されるメモリ初期化ファイル (.mif) または 16 進(Intel フォーマット)ファイル

(.hex)によって初期化されます。 MegaWizard Plug-In Manager を介してメモ

リ・メガファンクションをコンフィギュレーションするときに、ファイル名を指

定してください。 Xilinx のメモリの内容は、係数ファイル(COE)またはデフォ

ルトのデータ・オプションによって初期化されます。

同じ位置にread-during-write がアクセスする時に、入力マスクのバイトに応じる出力バイトの値は制御可能。

サポートされていません。

特定の入力バイトがマスクされると、対応するデータ・バイト出力は、その位置にある未知値(DONT_CARE)または現在のデータ(OLD_DATA)のいずれかとして表示されます。(3)

表 12の注:(1) どのバイトが書き込まれるのを制御するために、ライト・イネーブル信号およびバイト・イネーブ

ル信号の特定のビットをアサートします。 例えば、 x18 モードで RAM ブロックを使用して、ライト・イネーブルがアサートされ、バイト・イネーブル信号= 01 の場合、data[8..0] がイネーブルされ、data[17..9]がディセーブルされます。

(2) 5 ビットの倍数の入力データ幅のバイト・イネーブルは、MLAB TriMatrix メモリ・ブロック・タイプが選択される場合にのみサポートされます。

(3) マスク・バイトの出力値は MegaWizard Plug-In Manager を介して制御できて、選択されたメモリ・ブロックの種類に依存します。

表 12. Xilinxの RAMおよびアルテラの RAMでのバイト・イネーブル機能 (2/2)

相違点 Xilinxの RAM アルテラの RAM

Altera Corporation2009 年 11 月 53

Page 55: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

出力同期セット /リセットXilinx のメモリは、出力ステージにおける最後のレジスタのリセット動作を制御

するオプションの同期セット / リセットをサポートします。 これで、SSR 信号

がアサートされると、メモリの出力がユーザ定義の値に初期化されます。 アルテ

ラのメモリにはこの機能はありません。 ただし、SSR 信号の機能を模倣する対

応措置としては、2 対 1 マルチプレクサなどの追加ロジックを追加して、そして

SSR 信号をマルチプレクサの選択制御信号に接続することで、メモリのラッチな

しの出力またはユーザー定義の値を選択することができます。 あるいは、イネー

ブル信号(REGCEA、 REGCEB、 または EN)に追加ロジックを使用することが

できます。 また、Xilinx の RAM で相当するクロック・レイテンシを提供するに

は、出力をラッチする必要があります。

メモリの作成およびポート・マッピングターゲット・デバイスでの TriMatrix エンベデッド・メモリ・ブロックのメモリ機能

を理解することは、Xilinx からアルテラへのメモリ変換にとって非常に重要です。 こ

れは、現在の Xilinx のメモリ・ブロックに取って代わるためのメモリ・ブロックの

種類を識別するのに役立ちます。

1 選択するメモリ・ブロックが分からない場合、または特定のメモリ・ブロック・タ

イプを要求しない場合には、MegaWizard Plug-In Manager で AUTO を選択すること

ができます。 このオプションでは、メモリ・ブロックの種類は、コンパイル時に

Quartus II ソフトウェアのシンセサイザまたはフィッタによって決定されます。 デザ

インに割り当てられたメモリ・ブロックの種類を確認するには、Quartus II Fitter Report を参照します。

表 13 に示すように、Quartus II ソフトウェアの MegaWizard Plug-In Manager での

適切な MegaWizard Plug-In を使用してメモリ・ブロックを構築することができま

す。

f メモリ・オプションおよび MegaWizard Plug-In Manager によるメモリ・ファンク

ションの構築方法について詳しくは、「Random Access Memory (RAM) Megafunction User Guide」および「Read Only Memory (ROM) Megafunction User Guide」を参照し

てください。

メモリ・ファンクションを作成後に、それぞれの Xilinx と Altera のメモリ・ポート

のポート・マッピングを識別します。

表 13. それぞれのメモリ・モード / ファンクションに使用される MegaWizardプラグイン

メモリ・モード / ファンクション 使用される MegaWizard Plug-In

シングル・ポート RAM RAM:1-PORT

シンプル・デュアル・ポート RAM RAM:2-PORT

トゥルー・デュアル・ポート RAM RAM:2-PORT

3 ポート RAM RAM:3-PORT

シングル・ポート ROM ROM:1-PORT

デュアル・ポート ROM ROM:2-PORT

54 Altera Corporation2009 年 11 月

Page 56: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

表 14 に、Block Memory Generator によって生成されたメモリ・ポート、および異

なるメモリ・モードでのアルテラのメモリ・ポートへの対応するマッピングをリス

トします。

表 14. Block Memory Generator のメモリ・ポートからアルテラのメモリ・ポートへのポート・マッピング (1) (1/2)

ポートの説明

Xilinxのポート

異なるメモリ・モードでのアルテラのポートへのポート・マッピング

シングル・ポート RAM

シンプル・デュアル・ポート RAM

トゥルー・デュアル・ポート RAM

シングル・ポート ROM

デュアル・ポート ROM

ポート A: アドレス

addra address wraddress address_a address address_a

ポート A:データ入力

dina data data data_a NA(2) NA

ポート A:クロック・イネーブル

ena clken wrclocken enable_a clken enable_a

ポート A:最後の出力レジスタのためのクロック・イネーブル

regcea(1) — NA — — —

ポート A:ライト・イネーブル

wea (3)wren および

/または byteena

wren および/または

byteena_a

wren_a および /または byteena_a

NA NA

ポート A:同期セット /リセット

ssra — NA — — —

ポート A:クロック

clka clock wrclock clock_a clock clock_a

ポート A:データ出力

douta q NA q_a q q_a

ポート B:アドレス

addrb NA rdaddress address_b NA address_b

ポート B:データ入力

dinb NA NA data_b NA NA

ポート B:クロック・イネーブル

enb NA rdclocken enable_b NA enable_b

ポート B:最後の出力レジスタのためのクロック・イネーブル

regceb (1)NA — — NA —

ポート B:ライト・イネーブル

web (3) NA NAwren_b および /または byteena_b

NA NA

Altera Corporation2009 年 11 月 55

Page 57: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

シンプル・デュアル・ポート RAMの変換次の例では、Block Memory Generator によって生成される Xilinx のシンプル・デュ

アル・ポート RAM(sdp_ram)をインスタンス化するトップ・レベル(test)が

含まれています。 この例では、Xilinx のシンプル・デュアル・ポート RAM をインス

タンス化するトップ・レベルの Verilog HDL および VHDL コードが含まれています。

ポート B:同期セット /リセット

ssrb NA — — NA —

ポート B :クロック

clkb NA rdclock clock_b NA clock_b

ポート B:デーダ出力

doutb NA q q_b NA q_b

シングル・ビット・エラー

sbiterr —

eccstatus[2:0] (4)

NA NA NA

ダブル・ビット・エラー

dbiterr — NA NA NA

*「NA」で表されるポート・マッピングは、そのメモリ・モードに適用されません。「—」で表されるポート・マッピングはアルテラのメモリにサポートされません。

表 14の注:(1) アルテラのメモリは出力ポートでの追加のパイプラインをサポートしていないため、最後の出力レジスタにはクロック・イ

ネーブルがありません。 しかし、アルテラのメモリは 1 本のクロック・イネーブル・ピンを使用してポート A およびポートBのレジスタを柔軟に制御できます。 特定のコンフィギュレーションでは、どのポートAおよびポートBにおける入力/出力レジスタがクロック・イネーブル信号に反応するかを選択することができます。 MegaWizard Plug-In Manager を通して RAMまたは ROM をコンフィギュレーションするときに、使用可能なオプションが表示されます。

(2)「NA」で表されるポート・マッピングは、そのメモリ・モードに適用されません。「—」で表されるポート・マッピングはアルテラのメモリにサポートされません。

(3) 2 バイト幅未満のコンフィギュレーションの場合、使用されるメモリ・モードに応じて、Xilinx のライト・イネーブル信号(weaおよび web)はアルテラのライト・イネーブル信号(wren、wren_a、または wren_b)に相当します。 2 バイト以上のコンフィギュレーションの場合、使用されるメモリ・モードに応じて、Xilinx のライト・イネーブル信号(wea[]およびweb[])はアルテラのライト・イネーブル信号(byteena[]、byteena_a[]、または byteena_b[])に相当します。 また、書き込み動作を実行するために、アルテラのライト・イネーブル信号はアサートされる必要があります。

(4) アルテラのエンベデッド・メモリ内のステータスは、3 ビット・ステータス・フラグ eccstatus[2..0]を介して通信されます。 ECC 機能を備えた Xilinx の RAM を含むデザインでは、アルテラの 3 ビット ECC ステータス信号に対して変更する必要があります。 詳細については、51 ページの「誤り訂正コード(ECC)」の項を参照してください。

表 14. Block Memory Generator のメモリ・ポートからアルテラのメモリ・ポートへのポート・マッピング (1) (2/2)

ポートの説明

Xilinxのポート

異なるメモリ・モードでのアルテラのポートへのポート・マッピング

シングル・ポート RAM

シンプル・デュアル・ポート RAM

トゥルー・デュアル・ポート RAM

シングル・ポート ROM

デュアル・ポート ROM

56 Altera Corporation2009 年 11 月

Page 58: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

sdp_ram シンプル・デュアル・ポート RAM は、Block Memory Generator を通して

次のプロパティでコンフィギュレーションされます。

■ シンプル・デュアル・ポート RAM

■ 入力データ幅= 16 ビット

■ メモリの深さ= 8

■ ECC 機能を使用

■ 出力がラッチされた(1 ステージ・パイプライン)

■ Read-During-Write= read first(old data)

例 10 に、 ISE ソフトウェアにおける元の Verilog HDL コードを示します。

例 10. シンプル・デュアル・ポート RAMの変換 ̶ ISEソフトウェアにおける元のVerilog HDLコードmodule test(clka,

dina,addra,ena,wea,clkb,addrb,enb,doutb,dbiterr,sbiterr);

input clka;input [15 : 0] dina;input [2 : 0] addra;input ena;input [0 : 0] wea;input clkb;input [2 : 0] addrb;input enb;output [15 : 0] doutb;output dbiterr;output sbiterr;

sdp_ram i1(.clka(clka),.dina(dina),.addra(addra),.ena(ena),.wea(wea),.clkb(clkb),.addrb(addrb),.enb(enb),.doutb(doutb),.dbiterr(dbiterr),.sbiterr(sbiterr));

endmodule

Altera Corporation2009 年 11 月 57

Page 59: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

例 11 に、 ISE ソフトウェアにおける元の VHDL コードを示します。

例 11. シンプル・デュアル・ポート RAMの変換 ̶ ISEソフトウェアにおける元のVHDLコードLIBRARY ieee;USE ieee.std_logic_1164.all;

LIBRARY work;

ENTITY test ISport (clka: IN std_logic;dina: IN std_logic_VECTOR(15 downto 0);addra: IN std_logic_VECTOR(2 downto 0);ena: IN std_logic;wea: IN std_logic_VECTOR(0 downto 0);clkb: IN std_logic;addrb: IN std_logic_VECTOR(2 downto 0);enb: IN std_logic;doutb: OUT std_logic_VECTOR(15 downto 0);dbiterr: OUT std_logic;sbiterr: OUT std_logic);

END test;

ARCHITECTURE arch OF test IS

component sdp_ramPORT(

clka: IN std_logic;dina: IN std_logic_VECTOR(15 downto 0);addra: IN std_logic_VECTOR(2 downto 0);ena: IN std_logic;wea: IN std_logic;clkb: IN std_logic;addrb: IN std_logic_VECTOR(2 downto 0);enb: IN std_logic;doutb: OUT std_logic_VECTOR(15 downto 0);dbiterr: OUT std_logic;sbiterr: OUT std_logic

);end component;

BEGIN i1 : sdp_ramPORT MAP(clka => clka,

dina => dina,addra => addra,ena => ena,wea => wea,clkb => clkb,addrb => addrb,enb => enb,doutb => doutb,dbiterr => dbiterr,sbiterr => sbiterr);

END;

58 Altera Corporation2009 年 11 月

Page 60: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

Xilinx のシンプル・デュアル・ポート RAM をアルテラのシンプル・デュアル・ポート

RAM に変換するには、Quartus II ソフトウェアの Quartus II software MegaWizard Plug-In Manager を通してアルテラのシンプル・デュアル・ポート RAM を作成する必

要があります。 以下のオプションでウィザードから RAM をコンフィギュレーション

します。

■ 1 つのリード・ポートおよび 1 つのライト・ポートを持つ

■ 出力バスの幅= 16 ビット

■ 16 ビット・ワードの数= 8

■ メモリ・ブロックの種類= 144K

■ クロッキング方式=デュアル・クロック:個別のリード・クロックおよびライ

ト・クロックを使用する

■ ECC 機能をイネーブルする

■ 出力レジスタ

■ クロックごとに 1 つのクロック・イネーブル信号を作成する

1 アルテラのRAMでは、 Read-During-Write ‘old data’モードは、ECC機能が使用される

場合にサポートされません。 したがって、Xilinx の RAM をアルテラの RAM に変換

するとき、同一アドレスに対する Read-During-Write が発生すると、「don't care」値

が予期できます。 Read-During-Write ‘old data’ モードの動作が必要とされる場合、対

応措置としては、同一アドレスに対する Read-During-Write が発生するときに追加

ロジックを追加して前のリード・データを保持します。

シンプル・デュアル・ポート RAM の作成後、次の例に示すように、Xilinx の RAMを新たに作成されたアルテラの RAM に置き換えることができます。

Xilinx の RAM は、2 つのステータス出力(SBITERRおよび DBITERR)を使用してデー

タの読み出しのステータスを示し、そして、アルテラの M144K のステータスは、3ビット・ステータス・フラグ eccstatus[2..0]を介して通信されます。そのため、

アルテラの RAM およびトップ・レベル間のインタフェースとして働く追加のロジッ

クが必要です。

次の例では、Verilog HDL および VHDL コードの例を示します。

Altera Corporation2009 年 11 月 59

Page 61: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

例 12 に、Quartus II ソフトウェアにおける変換された Verilog HDL コードを示しま

す。

例 12. シンプル・デュアル・ポート RAMの変換 ̶ Quartus IIソフトウェアにおける変換された Verilog HDLコードmodule test(clka,

dina,addra,ena,wea,clkb,addrb,enb,doutb,dbiterr,sbiterr);

input clka;input [15 : 0] dina;input [2 : 0] addra;input ena;input [0 : 0] wea;input clkb;

60 Altera Corporation2009 年 11 月

Page 62: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

output [15 : 0] doutb;output reg dbiterr;output reg sbiterr;

wire [2:0] wire_eccstatus;

always@(wire_eccstatus)begin

if (wire_eccstatus==3'b000)begin

dbiterr = 1'b0;sbiterr = 1'b0;

endelse if (wire_eccstatus==3'b011)begin

dbiterr = 1'b0;sbiterr = 1'b1;

endelse if (wire_eccstatus==3'b101)begin

dbiterr = 1'b1;sbiterr = 1'b0;

endelsebegin

dbiterr = 1'b0;sbiterr = 1'b0;

endend

sdp_ram i1(.wrclock(clka),.data(dina),.wraddress(addra),.wrclocken(ena),.wren(wea), .rdclock(clkb), .rdaddress(addrb),.rdclocken(enb),.q(doutb),

//replace sbiterr and dbiterr by eccstatus and //connect it to wire_eccstatus

.eccstatus(wire_eccstatus));

endmodule

Altera Corporation2009 年 11 月 61

Page 63: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

例 13 に、 Quartus II ソフトウェアにおける変換された VHDL コードを示します。

例 13. シンプル・デュアル・ポート RAMの変換 ̶ Quartus IIソフトウェアにおける変換された VHDLコードLIBRARY ieee;USE ieee.std_logic_1164.all;

LIBRARY work;

ENTITY test ISport (clka: IN std_logic;dina: IN std_logic_VECTOR(15 downto 0);addra: IN std_logic_VECTOR(2 downto 0);ena: IN std_logic;wea: IN std_logic;clkb: IN std_logic;addrb: IN std_logic_VECTOR(2 downto 0);enb: IN std_logic;doutb: OUT std_logic_VECTOR(15 downto 0);dbiterr: OUT std_logic;sbiterr: OUT std_logic);

END test;

ARCHITECTURE arch OF test IS

component sdp_ramPORT(

data : IN STD_LOGIC_VECTOR (15 DOWNTO 0);rdaddress: IN STD_LOGIC_VECTOR (2 DOWNTO 0);rdclock: IN STD_LOGIC ;rdclocken: IN STD_LOGIC := '1';wraddress: IN STD_LOGIC_VECTOR (2 DOWNTO 0);wrclock: IN STD_LOGIC ;wrclocken: IN STD_LOGIC := '1';wren : IN STD_LOGIC := '1';

eccstatus: OUT STD_LOGIC_VECTOR (2 DOWNTO 0);q : OUT STD_LOGIC_VECTOR (15 DOWNTO 0)

);end component;

signal eccstatus_signal : STD_LOGIC_VECTOR(2 DOWNTO 0);

BEGIN

i1 : sdp_ramPORT MAP(wrclock => clka,

data => dina,wraddress => addra,wrclocken => ena,wren => wea,rdclock => clkb,rdaddress => addrb,

62 Altera Corporation2009 年 11 月

Page 64: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

DCMおよび PLLの変換デバイスおよびボードレベルの性能を向上させるために、一部のアルテラ・デバイ

ス・ファミリでは、クロック・スキューとクロック遅延を最小限に押さえ、クロッ

ク合成をサポートする PLL が提供されます。 一部の Xilinx デバイス内の DCM(Digital Clock Manager) と同様に、アルテラ・デバイスで DCM を PLL に容易に変換すること

ができます。

表 15 に、Virtex-5 の DCM 機能と Stratix III デバイスの PLL 機能との比較を示しま

す。

rdclocken => enb,q => doutb,eccstatus => eccstatus_signal);

process(eccstatus_signal)begin

if(eccstatus_signal = "000") thendbiterr <= '0';sbiterr <= '0';

elsif(eccstatus_signal = "011") thendbiterr <= '0';sbiterr <= '1';

elsif(eccstatus_signal = "101") thendbiterr <= '1';sbiterr <= '0';

elsedbiterr <= '0';sbiterr <= '0';

end if;end process;

END;

表 15. Virtex-5の DCM機能対 Stratix IIIデバイスの PLL機能の一覧 (1/2)

機能Xilinx DCM(Virtex-5)

アルテラ PLL(Stratix III)

周波数合成

クロックの逓倍と分周 v(1) v

位相および遅延シフト v (1) v

クロック・デューティ・サイクル

v v

DCM デスキュー調整

システム同期

ノーマル・モードv (2) v

ソース同期 v (2) v

ゼロ遅延バッファ — v

非補償 — v

外部フィードバック v v

Altera Corporation2009 年 11 月 63

Page 65: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

Xilinx デバイス内の DCM に加えて、Virtex-5 では、可変周波数合成、ゼロ・バッファ

遅延、およびジッタ・フィルタリングをサポートする PLL コンポーネントも備えて

います。 これらの機能はアルテラ・デバイスの PLL でもサポートされており、変換

が簡単に行われます。

f アルテラ・デバイスでの特定の PLL 機能について詳しくは、該当するデバイス・ハン

ドブックの章を参照してください。

Xilinx DCMからアルテラ PLLへのポート・マッピングMegaWizard Plug-In Manager を使用して、Xilinx デバイスをターゲットにする DCMを容易にアルテラ・デバイスの PLL に変換できます。 DCM のソース・クロック・

ポートに供給する特定の入力バッファ(例えば、IBUF、 IBUFG、 または BUFGMUX)を必要とする Xilinx DCM とは異なり、アルテラ・デバイスの PLL は MegaWizard Plug-In Manager を使用するときに入力バッファを必要としません。

DCM を変換するとき、ALTPLL メガファンクションを使用できます。 このメガファン

クションで、アルテラ・デバイスに対して PLL を作成またはカスタマイズすること

ができます。

その他

入力クロック・スイッチオーバ

— (3) v

ダイナミック・リコンフィギュレーション

v v

シングルまたは差動クロック入力

v v

デューティ・サイクル補正

v — (4)

表 15の注:(1) Xilinx DCM のほとんどの出力が固定した設定を有するため、ALTPLL を簡単にそれらに合わせてコ

ンフィギュレーションできます。

(2) DCM デスキュー機能に対する直接マッピングは ALTPLL メガファンクションの補償モードに似ています。 DCM でのシステム同期モードは ALTPLL メガファンクションでのノーマル・モードに相当します。

(3) DCM では、手動で外部マルチプレクサを用いて実装する必要があります。 ALTPLL に変換すると、ALTPLL メガファンクションが入力クロック・スイッチオーバをサポートするため、外部マルチプレクサは不要になります。

(4) アルテラ・デバイスが専用 PLL を使用するため、デューティ・サイクル補正は ALTPLL にとって不必要です。

表 15. Virtex-5の DCM機能対 Stratix IIIデバイスの PLL機能の一覧 (2/2)

機能Xilinx DCM(Virtex-5)

アルテラ PLL(Stratix III)

64 Altera Corporation2009 年 11 月

Page 66: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

表 16 に、Virtex-5 の DCM および Stratix III デバイスの PLL 間のポート・マッピン

グを示します。 Xilinx のポートは Xilinx Core Generator によって生成されて、アルテ

ラのポートは MegaWizard Plug-In Manager によって生成されます。

表 16. ポート・マッピング ̶ Virtex-5の DCM対 Stratix IIIの PLL (1/2)

Xilinx DCMのコア・ポート

アルテラ ALTPLL メガファンクション・

ポート 説明

CLKIN_IN inclk0DCM へのクロック入力。 これは、Stratix IIIデバイスの PLL への最初のクロック入力に相当します。

N/A inclk1Stratix IIIデバイスの PLLへの第二のクロック入力。 これは、Virtex-5 の DCM では使用できません。

CLKFB_IN fbin 外部クロック・フィードバック

N/A clkswitch 入力クロック・ポートに切り換えます。

RST_IN areset 非同期リセット・ポート

N/A pfdena 位相周波数検出器(PFD)をイネーブルします。

CLK0_OUT、 CLK90_OUT、 CLK180_OUT、 CLK270_OUT、 CLKDV_OUT、 CLK2X_OUT、 CLK2X180_OUT、 CLKFX_OUT、 CLKFX180_OUT

clk[n..0]

クロック周波数の出力ポート。 Xilinx DCMのほとんどの出力が固定した設定を有するため、ALTPLL を簡単にそれらに合わせてコンフィギュレーションできます。

N/A clkbad[1..0] トグルされていないクロック入力を指定する

LOCKED_OUT locked PLL がロックされているときに PLL のステータスを提供する

N/A activeclock クロック・スイッチオーバ回路を開始するタイミングを指定します。

CLK0_OUT fbout 模倣回路への出力を指定して、フィードバック・ポートに供給します。

N/Aphasecounterselect[3..0] カウンタ選択を指定します。

PSINCDEC_IN phaseupdown 位相シフトの増分および減分

PSCLK_IN phasestep ダイナミック位相シフトを指定します。

PSEN_IN N/A 位相シフト・イネーブル。

PSDONE_OUT phasedone 位相シフトの完了を示す。

Altera Corporation2009 年 11 月 65

Page 67: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

表 16 に示すとおり、ALTPLL メガファンクションのすべての出力は DCM の任意の

クロック合成ポートをサポートするようにコンフィギュレーションされます。 これ

により、複数の DCM を ALTPLL メガファンクションの 1 つのインスタンスに結合

することができます。 例えば、 2/3 および 6/5 の逓倍係数を実装するために、Xilinxデバイスでは 2 つの CLKFX ポートを必要とします。 ただし、 2/3 の逓倍係数をク

ロック c0 に適用し、そして 6/5 の逓倍係数をクロック c1に適用すること(または

その逆)で、1 つの ALTPLL インスタンスで同じ機能を実現できます。

Virtex-5 では、PLL コンポーネントも可変クロック合成に使用できます。 DCM の変換

と同様に、ALTPLL メガファンクションは Virtex-5 の PLL を簡単に変換できます。

アルテラのデザインでは、これは単一の PLL でカスケードせずに実現できます。

f ALTPLL メガファンクションについて詳しくは、「Phase-Locked Loops Megafunction User Guide (ALTPLL)」を参照してください。

DCLK_IN、 DI_IN[15:0]、 DEN_IN、DWE_IN、 DO_OUT[15:0]、 DRDY_OUT、 DADDR_IN[6:0]

Scanclk、 scandata、 scanclkena、 configupdate、 scandataout、 scandone

イナミック・リコンフィギュレーション・ポート (1)。

表 16の注:(1) これらのポートは、ダイナミック PLL リコンフィギュレーションに使用されます。 アルテラ・デバ

イスでダイナミック PLL リコンフィギュレーションを実行するには、ALTPLL_RECONFIG メガファンクションを使用します。 アルテラ・デバイスでのダイナミック PLL リコンフィギュレーションの使用について詳しくは、「Phase-Locked Loops Reconfiguration Megafunction User Guide (ALTPLL_RECONFIG)」を参照してください。

表 16. ポート・マッピング ̶ Virtex-5の DCM対 Stratix IIIの PLL (2/2)

Xilinx DCMのコア・ポート

アルテラ ALTPLL メガファンクション・

ポート 説明

66 Altera Corporation2009 年 11 月

Page 68: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

Xilinx DCMからアルテラ PLLへの変換以下は、ISE ソフトウェアにおける元の Verilog HDL および VHDL コードを示しま

す。 mydcmモジュールは Xilinx Core Generator によって生成されたモジュールです。

topモジュールはi1でmydcmモジュールをインスタンス化します。 入力クロック周波

数は 100MHz です。 CLKDV は 2 分周されるようにコンフィギュレーションされ、

CLKFXは 4 逓倍されるようにコンフィギュレーションされます。

例 14 に、ISE ソフトウェアにおける元の Verilog コードを示します。

例 14. Xilinx DCMからアルテラ PLLへの変換 ̶ ISEソフトウェアにおける元のVerilogコードmodule top( CLKIN_IN, RST_IN, CLK0_OUT, CLKDV_OUT, CLKFX_OUT, CLK2X_OUT, CLK90_OUT, LOCKED_OUT);

input CLKIN_IN; input RST_IN; output CLK0_OUT; output CLKDV_OUT; output CLKFX_OUT; output CLK2X_OUT; output CLK90_OUT; output LOCKED_OUT;

mydcm i1 ( .CLKIN_IN(CLKIN_IN), .RST_IN(RST_IN), .CLK0_OUT(CLK0_OUT), .CLKDV_OUT(CLKDV_OUT), .CLKFX_OUT(CLKFX_OUT), .CLK2X_OUT(CLK2X_OUT), .CLK90_OUT(CLK90_OUT), .LOCKED_OUT(LOCKED_OUT) ); endmodule

Altera Corporation2009 年 11 月 67

Page 69: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

例 15 に、ISE ソフトウェアにおける元の VHDL コードを示します。

同様の動作は、MegaWizard Plug-In Manager によって ALTPLL メガファンクション

でも生成できます。 次の例では、Quartus II ソフトウェアにおける Verilog HDL およ

び VHDL コードを示します。 mypllモジュールは MegaWizard Plug-In Manager から生成されたものです。 top モジュールは i1で mypllモジュールをインスタンス化

します。 クロック周波数入力は 100MHz で、クロック出力周波数合成は

MegaWizard Plug-In Manager での C0、 C1、 C2、 C3、 および C4を介してコンフィ

ギュレーションされます。

例 15. Xilinx DCMからアルテラ PLLへの変換 ̶ ISEソフトウェアにおける元の VHDLコードLIBRARY ieee;USE ieee.std_logic_1164.all;

LIBRARY work;

ENTITY top IS port(

CLKIN_IN : IN STD_LOGIC; RST_IN : IN STD_LOGIC; CLKDV_OUT : OUT STD_LOGIC;

CLKFX_OUT : OUT STD_LOGIC; CLK0_OUT : OUT STD_LOGIC; CLK2X_OUT : OUT STD_LOGIC; CLK90_OUT : OUT STD_LOGIC; LOCKED_OUT : OUT STD_LOGIC

);END top;

ARCHITECTURE arch OF top IS

component mydcmport(

CLKIN_IN : IN STD_LOGIC; RST_IN : IN STD_LOGIC; CLKDV_OUT : OUT STD_LOGIC;

CLKFX_OUT : OUT STD_LOGIC; CLK0_OUT : OUT STD_LOGIC; CLK2X_OUT : OUT STD_LOGIC; CLK90_OUT : OUT STD_LOGIC; LOCKED_OUT : OUT STD_LOGIC

);end component;

BEGIN i1 : mydcmPORT MAP( CLKIN_IN => CLKIN_IN,

RST_IN => RST_IN,CLKDV_OUT => CLKDV_OUT,CLKFX_OUT => CLKFX_OUT,CLK0_OUT => CLK0_OUT,CLK2X_OUT => CLK2X_OUT,CLK90_OUT => CLK90_OUT, LOCKED_OUT => LOCKED_OUT);

END;

68 Altera Corporation2009 年 11 月

Page 70: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

例 16 に、Quartus II ソフトウェアにおける変換された Verilog HDL コードを示しま

す。

例 16. Xilinx DCMからアルテラ PLLへの変換 ̶ Quartus IIソフトウェアにおける変換された Verilog HDLコードmodule top( CLKIN_IN, RST_IN, CLK0_OUT, CLKDV_OUT, CLKFX_OUT, CLK2X_OUT, CLK90_OUT, LOCKED_OUT);

input CLKIN_IN; input RST_IN; output CLK0_OUT; output CLKDV_OUT; output CLKFX_OUT; output CLK2X_OUT; output CLK90_OUT; output LOCKED_OUT;

mypll i1 ( .inclk0(CLKIN_IN), .areset(RST_IN), .c0(CLK0_OUT), .c1(CLKDV_OUT), .c2(CLKFX_OUT),

.c3(CLK2X_OUT), .c4(CLK90_OUT), .locked(LOCKED_OUT) ); endmodule

Altera Corporation2009 年 11 月 69

Page 71: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

例 17 に、Quartus II ソフトウェアにおける変換された VHDL コードを示します。

乗算器の変換すべての DSP アプリケーションの基本的なビルディング・ブロックは、高性能の乗

算加算器と乗算アキュムレータです。 この FPGA における要件を対処するため、ア

ルテラのデバイスは、専用の DSP ブロックを備えて、5 つの算術演算(乗算、加

算、減算、累算および総和)を 1 つのブロックに組み合わせます。

例 17. Xilinx DCMからアルテラ PLLへの変換 ̶ Quartus IIソフトウェアにおける変換された VHDLコードLIBRARY ieee;USE ieee.std_logic_1164.all;

LIBRARY work;

ENTITY top IS port(

CLKIN_IN : IN STD_LOGIC;RST_IN : IN STD_LOGIC; CLKDV_OUT : OUT STD_LOGIC; CLKFX_OUT : OUT STD_LOGIC; CLK0_OUT : OUT STD_LOGIC; CLK2X_OUT : OUT STD_LOGIC; CLK90_OUT : OUT STD_LOGIC; LOCKED_OUT : OUT STD_LOGIC

);END top;

ARCHITECTURE arch OF top IS

component mypllport(

inclk0 : IN STD_LOGIC;areset : IN STD_LOGIC; c0 : OUT STD_LOGIC; c1 : OUT STD_LOGIC; c2 : OUT STD_LOGIC; c3 : OUT STD_LOGIC; c4 : OUT STD_LOGIC; locked : OUT STD_LOGIC

);end component;

BEGIN i1 : mypllPORT MAP( inclk0 => CLKIN_IN,

areset => RST_IN,c0 => CLKDV_OUT,c1 => CLKFX_OUT,c2 => CLK0_OUT,c3 => CLK2X_OUT,c4 => CLK90_OUT, locked => LOCKED_OUT);

END;

70 Altera Corporation2009 年 11 月

Page 72: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

アルテラは、3 つの Quartus II メガファンクションを提供して、DSP ブロックまた

はロジック・リソースによってさまざまな乗算、乗算累算、および乗算加算機能を

実装します。

■ LPM_MULT メガファンクションは、乗算機能だけを実行します。

■ ALTMULT_ADD メガファンクションは、乗算機能または乗算加算機能を実行しま

す。

■ ALTMULT_ACCUM メガファンクションは乗算累算機能を実行する。

次の項では、Xilinx Multiplier Core からアルテラの LPM_MULT メガファンクション

への変換について説明します。

f 特定の DSP 機能について詳しくは、該当するハンドブックの章を参照してください。

Xilinx Multiplier Core対アルテラ LPM_MULTメガファンクションQuartus II MegaWizard Plug-In Manager によって、Xilinx デバイスをターゲットにす

る Xilinx Multiplier Core をアルテラ・デバイス用の乗算器に簡単に変換できます。

Xilinx Multiplier Core Generator と同様に、Quartus II MegaWizard Plug-In Manager の乗算器ではロジック・エレメントまたは専用乗算器ブロックのいずれかを使用する

ことができます。

Xilinx Multiplier Core を変換する場合には、LPM_MULT メガファンクションを使用す

ることができます。 このメガファンクションで、アルテラ・デバイスを使用して、

ロジック・エレメントを使用する乗算器または専用の乗算器を作成することができ

ます。表 17 に、Xilinx Multiplier Core とアルテラの LPM_MULT メガファンクショ

ン間の比較を示します。

表 17. Xilinx Multiplier Core対アルテラ LPM_MULTメガファンクション

機能Xilinx Multiplier Core Generatorモジュール

アルテラ LPM_MULTメガファンクション

定数係数 v v

符号ありおよび符号なしのデータ

v v

コンフィギュレーション可能なパイプライン・レイテンシ

v v

エリアと速度のトレードオフ

v v

非同期クリア — (1) v

同期クリア v — (1)

ポート A とポート B の符号が異なる場合に対するサポート

v —(2)

表 17の注:(1) Xilinx Multiplier Core は同期クリアのみサポートします。アルテラの LPM_MULT メガサンクショ

ンは非同期クリアのみサポートします。 同期クリアが必要な場合には、信号を LPM_MULT の非同期クリア・ポートに接続する前に非同期クリア信号をラッチすることができます。

(2) LPM_MULT メガファンクション内の dataa ポートと datab ポートは、同じ記号でなければなりません。 デザインがこの要件を満たしていない場合には、ALTMULT_ADD メガファンクションを使用して Xilinx Multiplier Core を置き換えることを考慮してください。

Altera Corporation2009 年 11 月 71

Page 73: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

実装およびポート・マッピング入力ポートが同じ符号を有する場合にのみ、Xilinx Multiplier Core を LPM_MULT メ

ガファンクションに置き換えることができます。表 18に、Xilinx Multiplier Core お

よびアルテラ LPM_MULT メガファンクション間のポート・マッピングを示します。

f LPM_MULT の使用について詳しくは、「LPM_MULT Megafunction User Guide」を参照

してください。

Xilinx Multiplier Coreから ALTMULTメガファンクションへの変換以下は、ISE ソフトウェアにおける元の Verilog HDL コードおよび VHDL コードで

す。 mymult モジュールは Xilinx Core Generator によって生成されたものです。

testモジュールは i1で mymult モジュールをインスタンス化します。

例 18 に、ISE ソフトウェアにおける元の Verilog HDL コードを示します。

表 18. Xilinx Multiplier Coreおよびアルテラ LPM_MULTメガファンクション間のポート・マッピング

Xilinx Multiplier Coreのポート

アルテラ LPM_MULTメガファンクションの

ポート 説明A [] dataa [] データ入力ポート A

B [] datab [] データ入力ポート B

CLK [] clock クロック・ポート

CE clken クロック・イネーブル・ポート

SCLR N/A 同期クリアポート

N/A aclr 非同期クリアポート

P [] result [] 乗算結果ポート

例 18. Xilinx Multiplier Coreから ALTMULTメガファンクションへの変換 ̶ ISEソフトウェアにおける元の Verilog HDLコードmodule test(

input clk,input [17:0] a,input [17:0] b,input ce,input sclr,output [35:0] p);

mymult i1 (.clk(clk),.a(a), // Bus [17 : 0] .b(b), // Bus [17 : 0] .ce(ce),.sclr(sclr),.p(p)); // Bus [35 : 0]

endmodule

72 Altera Corporation2009 年 11 月

Page 74: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

例 19 に、ISE ソフトウェアにおける元の VHDL コードを示します。

Verilog HDLコードまたはVHDLコードをQuartus IIソフトウェアに使用できるように変

換するには、アルテラの LPM_MULT メガファクションを使用して等価の mymult モ

ジュールを作成する必要があります。次の例では、Quartus II ソフトウェアでコンパ

イルされる変換後の Verilog HDL コードおよび VHDL コードを示します。

例 19. Xilinx Multiplier Coreから ALTMULTメガファンクションへの変換 ̶ ISEソフトウェアにおける元の VHDLコードLIBRARY ieee;USE ieee.std_logic_1164.all;

LIBRARY work;

ENTITY test IS port(

clk : IN STD_LOGIC;a : IN STD_LOGIC_VECTOR(17 downto 0);b : IN STD_LOGIC_VECTOR(17 downto 0);ce : IN STD_LOGIC;sclr: IN STD_LOGIC;p : OUT STD_LOGIC_VECTOR(35 downto 0)

);END test;

ARCHITECTURE arch OF test IS

component mymultPORT(clk: IN STD_LOGIC;

a : IN STD_LOGIC_VECTOR(17 downto 0); b : IN STD_LOGIC_VECTOR(17 downto 0); ce : IN STD_LOGIC; sclr : IN STD_LOGIC; p : OUT STD_LOGIC_VECTOR(35 downto 0)

);end component;

BEGIN i1 : mymultPORT MAP(clk => clk,

a => a, b => b, ce => ce, sclr => sclr, p => p);

END;

Altera Corporation2009 年 11 月 73

Page 75: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

例 20 に、Quartus II ソフトウェアにおける変換された Verilog HDL コードを示しま

す(ALTMULT)。

例 21 に、Quartus II ソフトウェアにおける変換された VHDL コードを示します

(ALTMULT)。

例 20. Xilinx Multiplier Coreから ALTMULTメガファンクションへの変換 ̶ Quartus IIソフトウェアにおける変換された Verilog HDLコードmodule test(

input clk,input [17:0] a,input [17:0] b,input ce,input sclr,output [35:0] p);

mymult i1 (.clock(clk),.dataa(a), // Bus [17 : 0] .datab(b), // Bus [17 : 0] .clken(ce),.aclr(sclr),.result(p)); // Bus [35 : 0]

endmodule

例 21. Xilinx Multiplier Coreから ALTMULTメガファンクションへの変換 ̶ Quartus IIソフトウェアにおける変換された VHDLコードLIBRARY ieee;USE ieee.std_logic_1164.all;

LIBRARY work;

ENTITY test IS port(

clk : IN STD_LOGIC;a : IN STD_LOGIC_VECTOR(17 downto 0);b : IN STD_LOGIC_VECTOR(17 downto 0);ce : IN STD_LOGIC;sclr : IN STD_LOGIC;p : OUT STD_LOGIC_VECTOR(35 downto 0)

);END test;

ARCHITECTURE arch OF test IS

component mymultPORT(clock : IN STD_LOGIC;

dataa : IN STD_LOGIC_VECTOR(17 downto 0); datab : IN STD_LOGIC_VECTOR(17 downto 0); clken : IN STD_LOGIC; aclr : IN STD_LOGIC; result : OUT STD_LOGIC_VECTOR(35 downto 0)

);end component;

74 Altera Corporation2009 年 11 月

Page 76: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

1 変換後に、sclr 信号は非同期クリア信号に変換されました。 同期クリアの動作を維

持しなければならない場合には、sclr信号が aclrポートに直接接続される前に、

この信号をラッチします。

前項で説明したとおり、入力の符号が異なる場合に、LPM_MULT メガファンクショ

ンの代わりに、ALTMULT_ADD メガファンクションを使用することができます。 次

の例では、Quartus II ソフトウェアでコンパイルされる変換後の Verilog HDL コード

および VHDL コードを示します。 mymult_addモジュールは ALTMULT_ADD メガ

ファンクションを実装するために MegaWizard Plug-In Manager によって作成された

ものです。

例 22 に、Quartus II ソフトウェアにおける変換された VHDL コードを示します

(ALTMULT_ADD)。

BEGIN i1 : mymultPORT MAP(clock => clk,

dataa => a, datab => b, clken => ce, aclr => sclr, result => p);

END;

例 22. Xilinx Multiplier Coreから ALTMULTメガファンクションへの変換 ̶ Quartus IIソフトウェアにおける変換された VHDLコードmodule test(

input clk,input [17:0] a,input [17:0] b,input ce,input sclr,output [35:0] p);

Mymult_add i1 (.clock0(clk),.dataa_0(a), // Bus [17 : 0] .datab_0(b), // Bus [17 : 0] .ena0(ce),.aclr0(sclr),.result(p)); // Bus [35 : 0]

endmodule

LIBRARY ieee;USE ieee.std_logic_1164.all;

LIBRARY work;

ENTITY test IS port(

Altera Corporation2009 年 11 月 75

Page 77: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

1 ALTMULT メガファンクションの場合と同様、変換後に、sclr信号は非同期クリア

信号に変換されました。 同期クリアの動作を維持しなければならない場合には、

sclr信号が aclr0ポートに直接接続される前に、この信号をラッチします。

対等する Xilinxのデザイン制約を設定Xilinx デバイスに対してデザインするとき、ユーザー制約ファイル(.ucf)がデザイ

ンの制約と属性を含んでいます。.ucf ファイルには、タイミング制約とデバイス制

約を含むすべてのデザイン制約および属性が含まれています。 このファイルは、す

べてのデバイス制約とタイミング制約が格納される Quartus II 設定ファイル(.qsf)および Synopsys Design Constraint(.sdc)ファイルに似ています。 デザイン制約を

入力するさまざまな方法については、14 ページの「デザインの制約」を参照してく

ださい。

アルテラでは、デザインを正常に動作させるのに必要な要件を指定することが推奨

されています。 ただし、Xilinx ベースの配置制約は、アルテラの配置制約に繰り越す

ことができません。 Quartus II ソフトウェアに関わる変換が完了するまでに、デザイ

ンに配置制約をしてはなりません。

clk : IN STD_LOGIC;a : IN STD_LOGIC_VECTOR(17 downto 0);b : IN STD_LOGIC_VECTOR(17 downto 0);ce : IN STD_LOGIC;sclr : IN STD_LOGIC;p : OUT STD_LOGIC_VECTOR(35 downto 0)

);END test;

ARCHITECTURE arch OF test IS

component mymultPORT(clock0 : IN STD_LOGIC;

dataa_0 : IN STD_LOGIC_VECTOR(17 downto 0); datab_0 : IN STD_LOGIC_VECTOR(17 downto 0); ena0 : IN STD_LOGIC; aclr0 : IN STD_LOGIC; result : OUT STD_LOGIC_VECTOR(35 downto 0)

);end component;BEGIN i1 : mymultPORT MAP(clock0 => clk,

dataa_0 => a, datab_0 => b, ena0 => ce, aclr0 => sclr, result => p);

END;

76 Altera Corporation2009 年 11 月

Page 78: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

次の Xilinx ベースの配置制約は、アルテラの Quartus II ソフトウェアに繰り越すこと

ができません。

■ LOC

■ RLOC

■ RLOC_ORIGIN

■ RLOC_RANGE

■ MAP

デバイス制約表 19 に、最も一般的な Xilinx デバイス制約およびそのアルテラの等価のデバイス制

約をアサインメント名と QSF 変数として示します。 制約を設定するには、直接に

.qsf ファイルを変更するか、または Quartus II Assignment Editor を使用して設定でき

ます。

表 19. アルテラの等価のデバイス制約

Xilinxの制約アルテラの制約

(アサインメント名) アルテラの制約(QSF変数) 説明DRIVE Current Strength CURRENT_STRENGTH_NEW 出力ピンの電流値を制御する

FAST Slew Rate SLEW_RATE (1)高速スルーレート・コントロールをオンにする

IOB

Fast Input Register

Fast Output Register

FAST_INPUT_REGISTER

FAST_OUTPUT_REGISTERジスタがデバイスの IOB に配置する必要があるかどうかを指定する

IOSTANDARD IO Standard IO_STANDARD I/O ピンの I/O 規格を指定

KEEPImplement as Output of Logic Cell

"attribute keep" (VHDL)

"synthesis Keep" (Verilog)

ネットがブロックに吸収されるかまたは合成されたことを防ぐ

表 19の注:(1) SLEW_RATE は Cyclone III、 Stratix III、および Stratix IV デバイス・ファミリに使用されています。

Altera Corporation2009 年 11 月 77

Page 79: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

DRIVE Xilinx ISE ソフトウェアにおける DRIVE 制約と同様に、CURRENT_STRENGTH_NEWは

ピンのドライブ強度を設定するロジック・オプションです。 このオプションは出力

または双方向ピンに割り当てなければなりません。そうしないと、このオプション

は無視されます。

以下の例では、出力「q1」に 12 mA の DRIVE 制約と対等なものを設定する方法を

示しています。

UCF のコマンドの例:

# Set drive strength 12 mA to q1INST "q1" DRIVE=12;

等価の QSF コマンド:

# Set drive strength 12 mA to q1set_instance_assignment -name CURRENT_STRENGTH_NEW 12MA -to q1

f デバイスにおける電流強度機能について詳しくは、特定のデバイス・ハンドブック

および「Quartus II Help」を参照してください。

FAST Xilinx ISE ソフトウェアにおける FAST制約と同様に、SLEW_RATE は、出力ピンで

Low から High への遷移、または High から Low への遷移を制御し、スイッチング・ノイ

ズを低減するのに役立つロジック・オプションです。 数多くの出力ピンが同時にス

イッチングする場合、より低い SLEW_RATE オプションを使用するピンはスイッチ

ング・ノイズの減少に役立ちます。 このオプションは、出力ピンと双方向ピンにの

み使用できます。

以下の例では、出力「q1」に FAST 制約と対等なものを設定する方法を示します。

UCF のコマンドの例:

# set fast slew rate to q1NET "q1" FAST;

等価の QSF コマンド:

# set programmable slew rate to q1set_instance_assignment -name SLEW_RATE 2 -to q1

デバイスにおけるスルーレート機能ついて詳しくは、 該当するデバイス・ハンド

ブックを参照してください。

78 Altera Corporation2009 年 11 月

Page 80: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

IOB

Xilinx の IOB制約と同様に、FAST_INPUT_REGISTER および

FAST_OUTPUT_REGISTERロジック・オプションは、I/O セルからの高速かつ直接な

接続を有する入力レジスタおよび出力レジスタを実装します。

以下の例では、入力「d1」または出力「q1」に IOB制約と対等なものを設定する方

法を示します。

UCF のコマンドの例:

# Set IOB to input d1INST "d1" IOB=TRUE;

# Set IOB to output q1INST "q1" IOB=TRUE;

等価の QSF コマンド:

# Set FAST_INPUT_REGSITER to input d1set_instance_assignment -name FAST_INPUT_REGISTER ON -to d1

# Set FAST_OUTPUT_REGSITER to output q1set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to q1

スルー・ファースト入力レジスタおよびスルーファースト出力レジスタ機能につい

て詳しくは、該当するデバイス・ハンドブックおよび「Quartus II Help」を参照して

ください。

IOSTANDARDXilinx の IOSTANDARD制約と同様に、IO_STANDARD ロジック・オプションは、入力

と出力の電圧 VCCIO、リファレンス電圧 VREF(該当する場合)、および I/O ピンに

使用される入力バッファおよび出力バッファの種類を個々に定義します。

以下の例では、出力「q2」に IOSTANDARD 制約(差動 SSTL-2 Class I)と対等なも

のを設定する方法を示します。

UCF のコマンドの例:

# Set Differential SSTL-2 Class 1 I/O Standard to q2

NET "q2" IOSTANDARD = SSTL2_I;

等価の QSF コマンド:

# Set Differential SSTL-2 Class 1 I/O Standard to q2

set_instance_assignment -name IO_STANDARD "SSTL-2 CLASS I" -to q2

Altera Corporation2009 年 11 月 79

Page 81: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

KEEP

KEEP制約と同様に、Quartus II ソフトウェアの Attribute Keep (VHDL) または

Synthesis Keep (Verilog) は、ロジック合成の最小化とネットリストの最適化を通じ

て、ワイヤまたは組み合わせノードを維持するようにコンパイラに指示するロジッ

ク・オプションです。 同様に、Quartus II Assignment Editor で Implement as Output of Logic Cell ロジック・オプションを設定することもできます。

以下の例では、my_wire信号に KEEP 制約(差動 SSTL-2 Class I)と対等なものを

設定する VHDL および Verilog HDL 両方を示します。

ISE ソフトウェアにおける Verilog HDL の例 :

(* KEEP = "TRUE" *) wire my_wire

Quartus II ソフトウェアにおける等価の Verilog HDL の例:

( * keep = 1 *) wire my_wire;

ISE ソフトウェアにおける VHDL の例:

signal my_wire: bit;

attribute keep : string;

attribute keep of my_wire: signal is "TRUE";

Quartus II ソフトウェアにおける等価の VHDL の例 :

signal my_wire: bit;

attribute syn_keep: boolean;

attribute syn_keep of my_wire: signal is true;

f attribute keep/synthesis keep アサインメントの使用方法について詳しくは、

「Quartus II ハンドブック Volume 1」の「Quartus II Integrated Synthesis」の章

を参照して下さい。

80 Altera Corporation2009 年 11 月

Page 82: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

タイミング制約Xilinx TRACE タイミング・アナライザはで、UCF に定義されたグローバルまたは特

定のタイミング制約は、Quartus II TimeQuest タイミング・アナライザで使用するよ

うに SDC コマンドに変換されます。

表 20 に、最も一般的な Xilinx の TRACE タイミング制約とその等価のアルテラの

TimeQuest タイミング・アナライザ SDC タイミング制約をまとめます。 .sdc ファイ

ルの変更または TimeQuest タイミング・アナライザ GUI によって制約を設定するこ

とができます。

表 20. Xilinx TRACE対 Quartus II TimeQuest SDCのタイミング制約

Xilinx TRACEのタイミング制約 TimeQuest SDC コマンド 説明

TIMESPEC PERIOD

create_clock

create_generated_clock

derived_pll_clocks

すべてのクロックおよびそれらのデザインにおける関係を定義します。

OFFSET IN BEFORE set_max_delay

デザインにおける pad-to-setupのタイミング要件を定義するために使用される入力タイミング制約。

OFFSET OUT AFTER set_max_delay (1)

デザインにおけるグローバルClock から Pad へのタイミング要件を定義するために使用される出力タイミング制約。

FROM PADS TO PADS set_max_delay (1)すべての組み合わせピンをピン・パスに固定する組み合わせパス。

TIG set_false_path配置配線およびタイミング解析のときにパスをタイミング考慮から除外します。

表 20の注:(1) set_max_delay 値を設定する際、入力遅延および出力遅延を考慮する必要があります。詳細は、

83 ページの「FROM PADS TO PADS」を参照してください。

Altera Corporation2009 年 11 月 81

Page 83: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

TIMESPEC PERIOD

TIMESPEC PERIODはデザインにおける各クロックおよびクロック間の関係を定義

します。TIMESPEC PERIODコマンドと同様に、SDC コマンドの create_clockおよび create_generated_clock は、TimeQuest タイミング・アナライザがク

ロックおよびクロック間の関係を定義するのに使用されます。

以下の例では、SDC ファイルに TIMESPEC PERIOD 制約と対等なものを設定する方

法を示します。

UCF のコマンドの例:

# Define clk1NET "clk1" TNM_NET = clk1;TIMESPEC TS_clk1 = PERIOD "clk1" 100 ns;

# Define clk2 and its relationship to clk1NET "clk2" TNM_NET = clk2;TIMESPEC TS_clk2 = PERIOD "clk2" "TS_clk1" * 2 PHASE + 2.5ns;

等価の SDC コマンド :

# Define clk1create_clock -name {TS_clk1} -period 100 [get_ports {clk1}]

# Define clk2 and its relationship to clk1create_generated_clock -name {TS_clk2} -source [get_ports {clk1}] -divide_by 2 -offset 2.500 -master_clock {TS_clk1} [get_ports

{clk2}]

clk2は 2.5ns の位相シフトを持っており、clk1 より二倍も遅いです。 SDC では、

-multiply_by および -divide_byスイッチは、周期ではなく、周波数に参照さ

れます。 したがって、SDC コマンドに変換するとき、-multiply_by スイッチの代

わりに、-divide_byスイッチが使用されます。

1 DLL、DCM または PLL クロック用のクロック定義がある場合、SDC コマンドの

derive_pll_clocksに置き換えることができます。

次では、derive_pll_clocks SDC コマンドによる DCM クロックの出力と対等な

ものを設定する方法を示します。 このコマンドは、TimeQuest タイミング・アナラ

イザに固有のものです。

UCF(DCM)コマンドの例:

# Generated clock definitions for DCM:

NET "clock0" TNM_NET = "clock0";

TIMESPEC "TS_clock0" = PERIOD "TS_clock_in" * 1;

NET "clock2x180" TNM_NET = "clock2x180";

TIMESPEC "TS_clock2x180" = PERIOD "TS_clock_in" / 2 PHASE + 7.50 ns;

等価の SDC(PLL)コマンド:

# Create the generated clocks for the PLL.

derive_pll_clocks

82 Altera Corporation2009 年 11 月

Page 84: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

OFFSET IN BEFORE

OFFSET IN BEFORE は pad-to-setup のタイミング要件を定義します。 OFFSET IN BEFOREと同様に、SDC コマンドの set_max_delayは、TimeQuest タイミング・ア

ナライザで pad-to-setup のタイミング制約を定義するのに使用されます。

次の例では、SDC ファイルに、OFFSET IN BEFORE 制約と対等なものを設定する

方法を示します。

UCF のコマンドの例:

#Set Pad to Setup Timing RequirementOFFSET = IN 2.5 ns BEFORE "clock_in";

等価の SDC コマンド:

#Set Pad to Setup Timing Requirementset_max_delay -from [get_clocks clock_in] -to [all_inputs] 2.5

この例では、デバイスのあらゆる外部入力ピンに対して、clock_in 信号にクロッ

クされるレジスタに 2.5ns の pad-to-setup タイミング制約が設定されます。

OFFSET OUTPUT AFTEROFFSET OUTPUT AFTERは clock-to-pad タイミング要件を定義します。 OFFSET OUTPUT AFTERと同様に、SDC コマンドの set_max_delay は、TimeQuest タイミ

ング・アナライザで clock-to-pad タイミング制約を定義するのに使用されます。

次の例では、SDC ファイルに、OFFSET OUTPUT AFTER制約と対等なものを設定

する方法を示します。

UCF のコマンドの例:

#Set Clock to Pad Timing Requirement

OFFSET = OUT 10 ns AFTER "clock_in";

等価の SDC コマンド:

#Set Clock to Pad Timing Requirementset_max_delay -from [get_clocks clock_in] -to [all_outputs] 10

この例では、デバイスのあらゆる出力ピンの clock_in 信号に 10ns の clock-to-padタイミング制約が設定されます。

FROM PADS TO PADS

FROM PADS TO PADSは、すべてのピン間のパスを全体的に制約しています。 FROM PADS TO PADS制約と同様に、SDC コマンドの set_max_delayは TimeQuest タイ

ミング・アナライザでピン間のタイミング制約を定義するのに使用されます。

次の例では、SDC ファイルに、FROM PADS TO PADS制約と対等なものを設定する

方法を示します。

UCF のコマンドの例:

#Set Pad to Pad Timing ConstraintTIMESPEC "TS_P2P" = FROM "PADS" TO "PADS" 10 ns;

等価の SDC コマンド:

# Set Pad to Pad Timing Constraintset_max_delay -from [all_inputs] -to [all_outputs] 10

Altera Corporation2009 年 11 月 83

Page 85: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フローXilinxからアルテラへのデザイン変換

この例では、デバイスにおけるすべての入力ピンから出力ピンまでには、10ns のタ

イミング制約が設定されます。

入力遅延および出力遅延を考慮に入れる場合には、TimeQuest タイミング・アナラ

イザの set_max_delay コマンドを等価の制約として使用することができます。

FROM PADS TO PADS制約では入力遅延および出力遅延が考慮に入れられませんが、

set_max_delay例外では入られます。したがって、入力遅延と出力遅延を考慮に入

れるように set_max_delay の値を変更する必要があります。

例えば、図 24では、a_in から comb_out へのパスは、clkに相対した入力最大遅

延および comb_outでの clk に相対した出力最大遅延によって影響されます。

スラックは以下の式で算出できます。

<a_inからcomb_outまでのset_max_delayの値> – <入力遅延> – <出力遅延> – <a_inから comb_out までのパス遅延 >

f 入力遅延および出力遅延について詳しくは、「Quartus II ハンドブック Volume 3」

の「Quartus II TimeQuest Timing Analyzer」の章を参照して下さい。

図 24. ピン間のタイミング制約

a_in

comb_out

reg_out

b_in

clk

84 Altera Corporation2009 年 11 月

Page 86: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー結論

TIG

TIG制約は、配置配線およびタイミング解析のときにパスをタイミング考慮から除外

します。 TIG制約と同様に、SDC コマンドの set_false_path は、TimeQuest タイミング・アナライザで false-path(フォールス・パス;誤ったパス)の例外を指定

するまたはタイミング解析からパスを削除(または切断)するのに使用されます。

ネット、インスタンスまたはピンによってフォールス・パスを設定することができ

ます。 次の例では、SDC ファイルに、TIG 制約と対等なものを設定する方法を示し

ます。

UCF のコマンドの例:

# Define false paths for all paths that pass through a particular netNET "net_name" TIG;

# Define false paths for all paths that pass through a particular pinPIN "ff_inst.RST" TIG=TS_1;

# Define false paths for all paths that pass through a particular # instance

INST "instance_name" TIG=TS_2;

等価の SDC コマンド:

# Define false paths for all paths that pass through a particular netset_false_path -through [get_nets {net_name}]

# Define false paths for all paths that pass through a particular pinset_false_path -through [get_pins {ff_inst|RST}]

# Define false paths for all paths that pass through a particular instance

set_false_path -through [get_pins {instance_name|*}]

-throughスイッチでは、インスタンス名を直接に指定することができません。した

がって、インスタンス名のすべての入力パスおよび出力パスを指定するために、ワ

イルドカードが使用されます。

SDC コマンドおよびそれらの使用方法について詳しくは、「SDC and TimeQuest API Reference Manual」を参照してください。

結論Quartus II デザイン・ソフトウェアは、デザインをアルテラの FPGA、CPLD、および

HardCopy ASIC デバイスに容易に対応する、開発完全なデザイン環境を提供してい

ます。

アルテラの Quartus II ソフトウェアおよび Xilinx ISE ソフトウェア間のロジック・デ

ザインおよびコンパイル・フローはよく似ています。ほとんどの場合、ISE デザイ

ンは簡単に Quartus II ソフトウェアのデザイン環境にインポートされます。 このア

プリケーション・ノートで説明されたデザイン変換ガイドラインおよび考慮事項に

従うことで、デザインの変換を向上させることができます。もちろん、Xilinx デバイ

スにターゲットされるデザインを、アルテラ・デバイスに対応するデザインに移行

する場合にも役立ちます。

Altera Corporation2009 年 11 月 85

Page 87: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

付録 A: デザイン例この項では、Quartus II ソフトウェア v9.0 および ModelSim-Altera Starter Edition ソ

フトウェア v6.4a を使用するパイプライン化された乗算器のデザイン・フローにつ

いて説明します。

この練習をしたら、以下のことができます。

■ Quartus II ソフトウェアのデザイン・ツールおよび機能を理解する

■ Quartus II デザイン・ツールの利点を理解する

■ デザイン・ツールの使用方法について説明される(説明図付き)

■ Quartus II ソフトウェアの新規ユーザー向けの既存のドキュメントを参照する

このパイプライン化された乗算器は Cyclone II デバイスを使用します。 このデザイ

ン例は、外部で制御される乗算器および RAM ブロックで構成されます。 そして、

データは独立したアドレス制御によって RAM から読み出されます。 図 26 に、パイ

プライン化された乗算器の回路図を示します。

図 25. Quartus II ソフトウェアのデザイン・フロー

図 26. パイプライン化された乗算器の回路図

Design Entry

Synthesis

Place and Route

Timing Analysis

Simulation

Power Analysis

Debugging

86 Altera Corporation2009 年 11 月

Page 88: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

デザイン・ファイルデザイン例のファイルは、資料:アプリケーション・ノートのウェブサイトで、こ

のアプリケーション・ノートの下にあります。

デザイン例のファイルを実装およびシミュレートするには、以下のステップに従い

ます。

■ an307_DesignExample.zip をダウンロードします。 pipemult.v ファイルおよび

pipemult.vt ファイルを作業ディレクトリに解凍します。 例えば、

C:\DesignExample。

■ アルテラ・ウェブサイトから ModelSim-Altera Starter Edition ソフトウェア v6.4a をダウンロードします。

デザイン入力

New Project Wizard

Quartus II ソフトウェアの New Project Wizard ツールは、新規プロジェクトの作成お

よび定義に使用されます。 このウィザートでは、使用されるデバイスを選択するか、

またはデバイスを AUTO に設定することができます。 これは ISE ソフトウェアの

New Project 機能に似ています。

Cyclone II デバイス・ファミリをターゲットにする新規の Quartus II プロジェクトを

作成するには、以下のステップを実行します。

1. ファイルメニューで、New Project Wizard を選択します。 紹介ページでは、

New Project Wizard ツールの使用方法が説明されます。 Next をクリックして、次

に進みます。

2. 新規プロジェクト位置(ディレクトリ・パス)を an307_DesignExample.zipファイルが解凍された作業ディレクトリに指定または参照します。

3. プロジェクト名およびトップレベル・デザイン・エンティティを pipemult に指

定します。Next をクリックします。

1 既存のプロジェクトからプロジェクトの初期設定を新規プロジェクトにコ

ピーするには、New Project Wizard での Use Existing Project Settings を

クリックします。

4. pipemult.v および pipemult.vt ファイルを参照し、プロジェクトに追加します。

Next をクリックします。

Altera Corporation2009 年 11 月 87

Page 89: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

5. 表 21 での情報を使用して、Family & Device Settings(ファミリおよびデバイ

スの設定)を完了します。

6. EDA Tools Settings ページでの Next をクリックして、デフォルトの< none >

を使用します。

7. 図 27 に作成されたプロジェクトの概要を示します。

MegaWizard Plug-In Manager

LPM_MULTメガファンクションおよびRAMブロックはMegaWizard Plug-In Managerツールによって作成されます。 MegaWizard では、デザイン・ファイルでインスタ

ンス化することができるカスタム・メガファンクション・バリエーションを収めた

デザイン・ファイルを作成または変更することができます。 このソフトウェアは、

ISEソフトウェアの IP (CORE Generator & Architecture)機能に似ています。 以下の項

では、MegaWizard Plug-In Manager ツールの使用方法について説明します。

表 21. ファミリおよびデバイスの設定

利用可能なオプションコンフィギュレーション

された設定ファミリ Cyclone II

パッケージ FBGA

ピン 256

スピード・グレード Fastest

デバイス名 EP2C5F256C6

図 27. Summary ページ

88 Altera Corporation2009 年 11 月

Page 90: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

乗算器メガファンクションの作成乗算器メガファンクションを作成するには、次のステップを実行します。

1. Tools メニューの MegaWizard Plug-In Manager を選択します。 MegaWizard Plug-In Manager のページ 1 が表示されます。

2. Create a new custom megafunction variation を選択します。

1 カスタム・メガファンクション・バリエーションを変更またはコピーする

ことも可能です。

3. Next をクリックします。 MegaWizard Plug-In Manager のページ 2a が表示され

ます。

4. Arithmetic フォルダを展開して、 LPM_MULT を選択します。

5. ページ 2a で、表 22 に示されるコンフィギュレーション設定を選択または指定

します。

6. Next をクリックします。

7. MegaWizard Plug-In Manager で、表 23 に示されるコンフィギュレーション設定

を使用してパラメータを設定します。

表 22. 乗算器メガファンクションのコンフィギュレーション設定

コンフィギュレーション設定 値

デバイス・ファミリ Cyclone II

出力ファイルの種類 Verilog HDL

出力ファイル名 mult

表 23. パラメータの設定

タブ コンフィギュレーション設定

Parameter Settings

General

1.Multiplier configuration に、 Multiply ‘dataa’ input by ‘datab’ input を選択します。

2.How wide should the‘dataa’input bus be? および How wide should the ‘datab’ input bus be 両方に 8 bit を選択します。

3.How should the width of the 'result' output be determined? に、Automatically calculate the width を選択します。

General 2

4.Does the 'datab' input bus have a constant value? に、No を選択します。

5.Which type of mutiplcation do you want? に、Unsigned を選択します。

6.Which multiplier implementation should be used? に、Use the default implementation を選択します。

Pipelining1.Yes, I want an output latency of 2 clock cycles を選択します。

2.Which type of optimization do you want? に、Default を選択します。

Altera Corporation2009 年 11 月 89

Page 91: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

8. また、EDA の設定ページでのデフォルト設定を使用することもできます。

1 EDA の設定ページで、Generate netlist のオプションを選択して、タイミン

グおよびリソース使用率見積もりネットリスト (design_syn.v) を生成す

ることができます。

9. Summary ページで、生成するカスタム・メガファンクションの出力ファイルを

指定します。 この例では、デフォルトの設定が使用されます。

10.Quartus II IP(.qip)ファイルをプロジェクトに追加したい場合は、Yes をク

リックします。

11.MegaWizard PlugIn Manager で選択した言語に応じて、MegaWizard は正しいパ

ラメータ値でメガファンクションをインスタンス化し、各種の出力ファイルを生

成します(表 24 を参照)。

1 ISE ソフトウェアでは、CORE Generator は .vho、 .veo、 .vhd、 .v、 .edn、

.xco や .mif などのファイルを生成します。

1 特定のメガファンクションについて詳しくは、MegaWizard Plug-In Manager ウィン

ドウの右上隅にある About および Documentation ボタンをクリックします。 また、

アルテラ・ウェブサイトの資料ページにあるメガファンクション・ユーザーガイド

を参照することもできます。 これらのユーザーガイドは、以下のセクションの下に

あります。

■ Quartus II 資料ページで、Using Megafunctions セクションを展開し、該当す

るカテゴリーを展開します。

■ ユーザーガイドのセクション

32x16 RAM メガファンクションの作成1. Tools メニューの MegaWizard Plug-In Manager を選択します。 MegaWizard

Plug-In Manager のページ 1 が表示されます。

2. Create a new custom megafunction variation を選択します。

3. Next をクリックします。 MegaWizard Plug-In Manager のページ 2a が表示され

ます。

4. Memory Compiler フォルダを展開して RAM: 2-PORT を選択します。

表 24. パラメータの設定

デザイン入力 バリエーション・ファイル

VHDL mult.vhd、 mult.cmp および mult_inst.vhd

Verilog mult.v および mult_inst.v

Schematic mult(.vhd または .v) および mult.bsg

90 Altera Corporation2009 年 11 月

Page 92: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

5. ページ 2a で、表 25 に示されるコンフィギュレーション設定を選択または指定

します。

6. Next をクリックします。

7. MegaWizard Plug-In Manager で、表 26 に示されるコンフィギュレーション設定

を使用してパラメータを設定します。

8. EDA の設定ページでは、デフォルトの設定を使用する必要があります。

1 EDA の設定ページで、Generate netlist のオプションを選択して、タイミ

ングおよびリソース使用率見積もりネットリスト (design_syn.v) を生成

することができます。

9. Summary ページで、生成するカスタム・メガファンクションの出力ファイルを

指定します。この例では、デフォルトの設定が使用されます。

10.Quartus II IP(.qip)ファイルをプロジェクトに追加したい場合は、Yes をク

リックします。

1 32 x 16 RAM を初期化するためには、メモリ・ファイルを作成する必要が

あります。 メモリ・ファイルの作成については、次の項を参照してくださ

い。

表 25. RAMメガファンクションのコンフィギュレーション設定

コンフィギュレーション設定 値

デバイス・ファミリ Cyclone II

出力ファイルの種類 Verilog HDL

出力ファイル名 ram

表 26. パラメータの設定

タブ コンフィギュレーション設定

General1.With one read port and one write port を選択します。

2.As a number of words を設定します。

Widths/Blk Type

1.How many 8-bit words of memory? を 32 に設定します

2. ‘data_a’ input bus be を 16 に設定します。

3.memory block type be に対して Auto を選択します。

Clks/Rd、 Byte En clocking method に Single clock を選択します。

Regs/Clkens/Aclrs Read output port(s) ‘q’ をディセーブルします。

Output1 I don’t care を選択します。

Mem InitYes, use this file for memory content data を選択します。

ファイル名を ram.hex に指定します。

Altera Corporation2009 年 11 月 91

Page 93: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

メモリ・ファイルISE ソフトウェアの CORE Generator 機能にアクセスするには、Tools メニューでの

Memory Editor を選択します。 すべての設定がスクリーンで表示されたダイアログ・

ボックスで行われます。

Quartus II Memory Editor でメモリ初期化ファイルまたは 16 進(Intel フォーマット)

ファイルを作成するには、以下のステップを実行します。

1. File メニューの New、またはツールバーでの を選択しします。

2. New ダイアログ・ボックスで、Memory Files の隣にある「+」アイコンをク

リックして項目を展開します。

3. Memory Files の下で、Hexadecimal (Intel-Format) File を選択して OK をク

リックします。

1 ISE ソフトウェアは、Quartus II ソフトウェアの .hex ファイルに似ている

.coe の拡張子を持つファイルを使用します。

4. Memory Size ダイアログ・ボックスで、下記の設定を入力します。OK をクリッ

クします。

Number of words(ワード数): 32Word size(ワード・サイズ): 16

5. メモリ・ファイル・ウィンドウをデタッチするには、Quartus II ソフトウェアで

File タブを右クリックし、Detach Window を選択します(図 28 を参照)。

6. メモリが 16 で、基数が 16 進数であることを確認します。 View メニューの Cell Per Row および Memory Radix で、1 行当たりのセル数およびメモリ基数をそれ

ぞれ確認します。

7. メモリ・スペース全体をハイライトし、右クリックし、Custom Fill Cells を選

択します。 次の手法のいずれかを選択してメモリを初期化するための値を入力し

ます。

a. Repeating Sequence(繰り返し配列)

繰り返し配列の数値は、スペースまたはコンマで区切られます。例えば:

3,7,5 を入力します。 入力されたシーケンスは選択されたセルにわたって繰り

返されます。 図 28 を参照してください。

b. Strating value を 1 設定し、そしてご希望のインクリメント値またはデクリメ

ント値を入力します。 例:10 のインクリメント

8. ファイルを ram.hex として保存します。

9. ram.hex ファイルを閉じます。

図 28. メモリ・ファイル

92 Altera Corporation2009 年 11 月

Page 94: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

2 つのメガファンクション、mult と ram が作成されました。 乗算器のインスタンス

化が欠けている不完全なファイル、pipemult.v ファイルがあります。

ram および mult メガファンクション両方をインスタンス化および接続するには、以下

のステップを実行します。

1. File メニューの Open をクリックします。 pipemult.v を選択するか、または

Project Navigator ウィンドウでの pipemult.v エンティティをダブルクリックしま

す。

2. File メニューの Open をクリックします。 mult_inst.v ファイルを選択します。

3. mult_inst.v ファイルの内容をコピーして、pipemult.v ファイル内の

「//Insert multiplier instantiation here?」コメントの下に貼り付け

ます。図 29 を参照してください。

4. インスタンスで、次の信号名を変更します。

■ clock_sig を clk1 に

■ dataa_sig を dataa に

■ datab_sig を datab に

■ result_sig を mult_to_ram に

5. mult_inst.v ファイルを閉じます。

6. pipemult.v ファイルを保存します。

7. Processing メニューで、Start をクリックし、Start Analysis & Elaboration を

選択します。

1 この機能は、デザインの構文エラーおよび回路エラーを検出し、エラボ

レーションを実行してデザイン階層を識別します。

8. 解析およびエラボレーションが完了したら、OK をクリックします。 何らかのエ

ラーがある場合、接続をチェックするか、またはいずれかのメガファンクション

の MegaWizard Plug-In Manager に戻って問題を解決します。

図 29. pipemult.vでの一部のコード

Altera Corporation2009 年 11 月 93

Page 95: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

デザインのコンパイルおよび合成このセクションでは、デザインのコンパイルおよび合成の手順について解説します。

Quartus II 統合合成ISE ソフトウェアでは、Xilinx Synthesis Technology (XST) 機能はデザインのコンパイ

ルおよび合成に使用されます。

以下のオプションおよび機能を使用して、Quartus II 統合合成を制御することがで

きます。

■ コンパイラ・ディレクティブおよびコンパイラ属性

translate_off や translate_on などのコンパイラ・ディレクティブを Verilog HDL コードまたは VHDL コード内のコメントとして含むことができます。

■ Quartus II ロジック・オプション

Quartus II ロジック・オプションでは、ソース・コードを編集しなくても属性を

設定できます。 Assignment Editor で個別の Quartus II ロジック・オプションを割

り当てるか、または Settings ダイアログ・ボックスの Analysis & Synthesis Settings ページで、プロジェクトに対してグローバル統合合成オプションを指定

することもできます。 図 30 を参照してください。

■ Quartus II 合成ネットリスト最適化オプション

Quartus II 合成最適化オプションを使用すると、ほとんどのアルテラのデバイ

ス・ファミリの合成段階でネットリストを最適化することができます。

Quartus II ソフトウェアで、次の手順を実行して、Quartus II 統合合成機能によってデ

ザインをコンパイルおよび合成します。

1. Processes ウィンドウをダブルクリックします。

2. Processing メニューで、Start をクリックして、Start Compilation を選択しま

す。これは完全なコンパイル・フローです。

f Quartus II 統合合成について詳しくは、「QuartusII ハンドブック Volume 1」の

「Quartus II Integrated Synthesis」の章および 19 ページの「デザインのインプリ

メンテーション」を参照してください。

フル・コンパイルが完了したら、デザイン・プロセスの情報を提供するコンパイル・

レポートが生成されます。 このレポートは、コンパイラがどのようにデザインを解

釈するかの理解および結果の検証に役立ちます。 処理の開始時に、コンパイル・レ

ポートはデフォルトで表示されます。 処理の完了時に、Flow Summary セクション

が表示されます。

以下のステップを実行し、付録 B での表を埋めます。

1. コンパイル・レポートの Flow Summary セクションで、ロジック・エレメントの

総数、メモリ・ビットの総数、エンベデッド乗算器の 9 ビット・エレメントの総

数、およびピンの総数を記録します。

2. コンパイル・レポートで、「+」アイコンをクリックして Fitter フォルダを展開し

ます。そして、その下にある Resource Section フォルダを展開します。

Resource Utilization by Entityから、付録Bで提供されるmultおよびramのサブデザ

インのリソース・カウントを記録します。

3. Control Signals 表では、使用されたコントロール信号およびそれらのファンアウ

ト値が記録されます。

94 Altera Corporation2009 年 11 月

Page 96: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

1 付録 B では、2 セットのデータが示されます。1 セットのデータは Quartus II 統合合成

から得られ、もう 1 セットのデータは 114 ページの「Assignment Editor」から得ら

れます。 付録 B の表により、両方のデータの結果を比較します。

インクリメンタル・コンパイルQuartus II インクリメンタル・コンパイルは、以前のコンパイルで得られた満足な結

果を再利用し、コンパイル時間を短縮することで、標準の Quartus II デザイン・フ

ローを向上させます。 インクリメンタル・フローを使用することによって、デザイ

ンに変更を加えても、変更されないロジックの結果と性能が維持されます。

インクリメンタル・コンパイルを使用すると、以下の利点があります。

■ デザインのイタレーション時間を最大 70% 短縮する

■ 複数のプロセッサをサポートして、より高速なコンパイルを実現する

■ 真のチーム・ベース・デザインを実現する

■ 変更されていないデザイン・ブロックの性能を保持する

1 デザイン例にインクリメント・コンパイルを実行する必要はありません。 98 ページ

の「デバッグ」に進んでもかまいません。

インクリメント・コンパイルを実行するには、次のステップを実行します。

1. デザインを詳細設定します。 Processing メニューで、 Start をクリックし、Start Analysis& Synthesis を選択します。

2. Design Partition Planner を使用して、特定のインスタンスをデザイン・パーティ

ションとして指定することにより、デザインにパーティションを作成します。

Tools メニューで、Design Partition Planner をクリックします。

3. デザインでは、各パーティションにロケーション・アサインメントを作成し、デ

ザイン・フロアプランを作成する必要がある場合は、LogicLock 領域が使用され

ます。

4. 完全なコンパイルでデザインをコンパイルします。

以下の手順を実行して、変更されていないパーティションの結果を保持しながらデ

ザインの変更された部分を再コンパイルします。これにより、以降のコンパイルで

時間の節約ができます。

1. パーティションで以前に行った配置結果を維持するには、そのパーティションの

Netlist Type アサインメントを Post-Fit に設定します。

Assignments メニューで、Design Partitions Window を選択します。 入力を追加

するには、Netlist Type をダブルクリックします。

2. 配線情報も維持するには、Fitter Preservation Level を Placement and Routingに設定します。

3. プログラマブル・パワー・テクノロジを持つデバイスの場合は、Fitter Preservation Level を Placement, Routing and High-Speed Tiles に設定しま

す。 これは、高速タイルの設定を保持するためです。

4. 合成結果のみ保存する場合は、Netlist Type アサインメントを Post-Synthesis に

設定します。

Altera Corporation2009 年 11 月 95

Page 97: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

f 詳細については、「QuartusII ハンドブック Volume 1」の「Quartus II Incremental Compilation for Hierarchical and Team-Based Design」の章およびアルテラ・ウェ

ブサイトの Incremental Compilation Resource Center ページを参照してください。

1 デザイン例にデザイン・パーティションを実行する必要はありません。 98 ページの

「デバッグ」に進んでもかまいません。

デザイン・パーティションDesign Partition Planner を使用すれば、ユーザーはデザインの接続性および階層を表

示でき、効果的なデザイン・パーティションを作成することができます。

デザイン・パーティションを常時および作成するには、以下のステップを実行しま

す。

1. Processing メニューで、Start をクリックし、Start Analysis& Synthesis を選

択します。

2. Tools メニューで、Design Partition Planner をクリックします。

3. ブロック間の接続性を表示するには、トップレベル・デザイン・ブロックからの

インスタンスを抽出します。 デザイン・ブロックをクリックし、それを周囲の白

いスペース内にドラッグするか、またはエンティティを右クリックし、Extract from Parent をクリックします。

4. デザイン・パーティションとして設定したいデザイン・ブロックをすでに抽出し

ているときは、そのデザイン・ブロックを右クリックして、Create Design Partition を選択します。

f 詳細は、「QuartusII ハンドブック Volume 1」の「Quartus II Incremental Compilation for Hierarchical and Team-Based Design」の章を参照してください。

96 Altera Corporation2009 年 11 月

Page 98: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

Settingsダイアログ・ボックスAssignments メニューで、Settings を選択します。 図 30 に示すとおり、Settings ダイアログ・ボックスが表示されます。

Settings ダイアログ・ボックスでは、数多くのカテゴリがあります(図 30 を参照)。

それらの中に、Analysis & Synthesis Settings(解析および合成の設定)、

Compilation Process Settings(コンパイル・プロセスの設定)、EDA Tools Settings(EDA ツールの設定)、および Timing Analysis Settings(タイミング解析の設定)など

があります。

コンパイル・プロセスの設定では、3 つのサブカテゴリがあります。

■ Early Timing Estimate – タイミング解析見積もりのモードを設定する

■ Incremental Compilation – デフォルトの設定

■ Physical Synthesis Optimizations – 性能、エフォート・レベル、フィッタ・

ネットリストに対して最適化する、フィッティングに対して最適化する

Analysis & Synthesis Settings ページでは、グローバル合成オプションを設定するこ

とができます。

図 30. Settingsダイアログ・ボックス

Altera Corporation2009 年 11 月 97

Page 99: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

デバッグ

1 物理的なボードを持っていない限り、このデザイン例に SignalTap II Logic Analyzerを実行する必要はありません。 99 ページの「Chip Planner」に進んでもかまいませ

ん。

SignalTap II Logic Analyzer

SignalTap II Logic Analyzer Editor はデザインのデバッグ作業に役立ちます。アルテ

ラは FPGA でデザインをフル・スピードで進めながら、外部ロジック・アナライザ

と最小数の FPGA I/O ピンを使用して内部信号の動作を調査可能なソリューション

を提供しています。

ハードウェアおよびソフトウェア要件SignalTap II Logic Analyzer によるロジック解析には、以下のコンポーネントが必要

です。

■ Quartus II デザイン・ソフトウェア

または

Quartus II Web Edition(TalkBack 機能がイネーブルされた状態)

または

SignalTap II エンベデッド・ロジック・アナライザのスタンドアロン・ソフトウェ

■ ダウンロード / アップロード・ケーブル

■ テスト対象のデバイスへの JTAG 接続を備えたアルテラの開発キットまたはユー

ザー・デザイン・ボード

1 TalkBack 機能をオンにするには、Tools メニューで、Internet Connectivity をポイン

トして Talkback Options を選択します。 そして、Turn on the Quartus II software Talkback feature オプションをオンにします。

SignalTap II Logic Analyzer をセットアップするには、以下のステップを実行します。

1. デザインへの SignalTap II Logic Analyzer の追加

2. SignalTap II Logic Analyzer のコンフィギュレーション

3. トリガ条件の定義

4. デザインをコンパイルします。

5. ターゲット・デバイスのプログラミング

6. SignalTap II Logic Analyzer の実行

7. キャプチャしたデータの表示、解析、および使用

f 詳細については、「Quartus II ハンドブック Volume 3」の「Design Debugging Using the SignalTap II Embedded Logic Analyzer」の章を参照してください。

98 Altera Corporation2009 年 11 月

Page 100: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

Chip PlannerISE ソフトウェアの Floorplan Design 機能は Chip Planner 機能に似ています。 Chip Planner はデザイン内のロジックの配置を示します。 これは、デザイン性能を理解す

るのに役立ちます。

1. Project Navigator ウィンドウで、ram:ram_inst エンティティを右クリックしま

す。 Locate を選択し、Locate in Chip Planner をクリックします。

1 Cyclone II デバイス内の ram サブデザインの配置位置を確認できます。

図 31 を参照してください。

2. メモリ・ブロックがハイライトされるままで、Generate Fan-In Connection

をクリックしてファンイン値を表示します。

3. ステップ 2 を繰り返して、Generate Fan-Out Connect をクリックしてファ

ンアウト値を表示します。

4. ファンインまたはファンアウトの表示をクリアするには、Clear Unselected Connection/Paths をクリックします。

図 31. Chip Planner

ram sub-design

Altera Corporation2009 年 11 月 99

Page 101: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

Resource Property Editor

1 デザイン例に Resource Property Editor を実行する必要はありません。Netlist Viewerの項に進んでもかまいません。

Resource Property Editor を使用してコンパイルされたデザインの配置配線の詳細を

確認し、そして再コンパイルすることなく、デザインにマイナーな変更を加えるこ

とができます。 これらの機能により、合成または配置配線作業を再実行することな

く、機能の欠陥を修正するか、またはフィッティング後のネットリストに最終段階

での ECO (Engineering Change Order:設計変更管理 ) を実装することが可能です。

Resource Property Editor では、選択されたノードの名前、変更中のリソースの回路

図ビューが表示されます。また、リソースのプロパティとパラメータ、入力ポート

と出力ポート、式およびセル遅延をまとめる表もオプションで表示されます。

Resource Property Editor をアクセスするには、Project メニューを右クリックし、

Locate in Resource Property Editor をクリックします。

Resource Property Editor を使用して、以下のものを編集することができます。

■ ロジック・エレメント (LE)アルテラの LE には、4 入力 LUT、つまり 4 変数からなる任意の機能を実装でき

るファンクション・ジェネレータが搭載されています。 Resource Property Editorは、FPGA 内の任意の LE を表示および編集するのに使用されます。

■ アダプティブ・ロジック・モジュール(ALM)

各 ALM には、2 つのアダプティブ・ルック・アップ・テーブル(ALUT)間で分

割される LUT ベースのリソースが含まれています。 各 ALM には 2 個のプログラ

マブル・レジスタ、2 個の専用の全加算器、1 本のキャリー・チェイン、1 本の

共有演算チェイン、および 1 本のレジスタ・チェインも含まれています。

■ FPGA IOEアルテラの FPGA は、最大 6 個のレジスタを含む高性能 IOE(I/O エレメント)

を備えており、最大速度でのデザインの実行が可能な多数の I/O 規格をサポート

します。 Resource Property Editor を使用して、IOE のプロパティの表示、接続

の変更および編集を行うことができます。

■ PLL プロパティ

■ FPGA の RAM ブロックおよび FPGA の DSP ブロック

デバイスの異なる RAM ブロックおよび DSP ブロックのアーキテクチャを表示

し、RAM ブロックからの入力レジスタおよび出力レジスタを変更し、入力およ

び出力ポートの接続を変更することができます。

Change Manager は、Resource Property Editor で実行するすべての変更の記録を維

持します。 Change Manager の各ロウはっ実行された 1 つの ECO を表します。 変更

には順番に番号が付けられ、大きい番号ほど新しい変更です。

f 詳細は、「QuartusII ハンドブック Volume 2」の「Engineering Change Management with the Chip Planner」の章を参照してください。

100 Altera Corporation2009 年 11 月

Page 102: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

Netlist ViewerNetlist Viewer を使用してデザインを解析し、Quartus II ソフトウェアによるデザイン

の解釈方法を確認することができます。 この項では、RTL Viewer および Technology Map Viewer を使用して、デザインを解析する方法を示す簡単な例を提供します。

RTL Viewer

RTL Viewer は、デザインのゲート・レベルの回路図ビュー、およびインスタンス、

プリミティブ、ピン、およびデザイン・ネットリスト全体のネットを表示する階層

リストを提供します。 RTL Viewer は、読みやすさを向上させるようにネットリスト

を最適化します。 例えば、デフォルトの接続およびファンイン / ファンアウトのな

いロジックは表示されていません。

以下のステップを実行し、デザインの回路図ビューを表示します。

1. Tools メニューで、Netlist Viewers を選択し、RTL Viewer をクリックします。

RTL Viewer が表示されます(図 32 を参照)。

1 Quartus II ソフトウェアでは、この機能は、選択されたノードをグループ

またはアングループするのに使用されます。 ISE ソフトウェアでは、この

機能がありません。

2. ram を選択して、ram サブデザインを右クリックします。

3. ノードをアングループするには、Ungroup Selected Nodes を選択します。

または

ノードをグループするには、Group Selected Nodes を選択します。

4. ram サブデザインを右クリックして、その ram サブデザインの階層を最も低いレ

ベルにします(図 33 を参照)。

1 Quartus II ソフトウェアでは、RAM ブロックをダブル・クリックすること

でその RAM ブロックの階層を最も低いレベルにします。 ISE ソフトウェ

アでは、この機能が提供されていません。 ram サブデザインは、

altsyncram と呼ばれる 1 つのメガファクション・ブロックから構成されま

す。 ブロックをクリックし続けて、階層を最も低いレベルにします。

図 32. RTL Viewer

Altera Corporation2009 年 11 月 101

Page 103: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

5. 任意の空きスペースをダブルクリックして、図 32 に示す回路図に戻ります。

6. ram サブデザインをもう一度選択します。 右クリックして Display Content を選

択し、現在階層のロジックと共に最も低いレベルの階層を表示します。 図 34 を

参照してください。

1 altsyncram サブデザインの周囲の緑色のボックス(赤でハイライトされ

る)は、階層境界を示します。 図 34 を参照してください。 ISE ソフト

ウェアでは、最初のレベルの回路図のみが表示されます。

図 33. RTL Viewer – altsyncram

102 Altera Corporation2009 年 11 月

Page 104: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

7. altsyncram モジュールを選択し、右クリックし、Display Content を選択しま

す。

8. altsyncram_coq1 モジュールを選択し、右クリックし、Display Content を選

択します。 ビューアでは、モジュールは 16 個のより小さい RAM ファンクション

および各入力 / 出力データビットのファンクションで表されます。図 35を参照

してください。

1 図 35 に示す機能は、ISE ソフトウェアでは使用できません。

図 34. RAMの内容

Altera Corporation2009 年 11 月 103

Page 105: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

Technology Map Viewer

Technology Map Viewer は、デザイン内のデバイス・ロジック・セルや I/O ポートを

表示します。 サポートされているファミリでは、ロジック・セル(LCELL)内にあ

る内部レジスタおよびルック・アップ・テーブル(LUT)も表示できます。 これで、

リソース使用率の変更を確認でき、制約およびデバッグ作業の場合には有用です。

1. RTL Viewer で、RAM ファンクション (altsyncram_coq1) の最も内側の階層

リングを見つけてハイライトします。 右クリックして Locate を選択し、そして

Locate in Technology Map Viewer をクリックします。 図 36 を参照してくださ

い。

1 Quartus II ソフトウェアはクロス・プロービング機能を提供し、ファンク

ションを右クリックすることだけで Quartus II ソフトウェア内のさまざま

なツールへ移動することができます。 図 36 を参照してください。ISE ソ

フトウェアには、この機能がありません。

図 35. 16個のより小さい RAMファンクションで表されるモジュール

104 Altera Corporation2009 年 11 月

Page 106: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

2. altsyncram_coq1 モジュールをダブル・クリックします(図 37 を参照) )。

3. ram_block1a0 をもう一度ダブル・クリックします。

図 36. Technology Map Viewerでの配置

図 37. Technology Map Viewer

Altera Corporation2009 年 11 月 105

Page 107: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

Quartus II ソフトウェアはより低いレベルの回路図を表示します。これに対して、

ISE ソフトウェアでは、トランスクリプト上でポートの名前をクリックするときに、

入力 / 出力の位置が表示されます。

図 38 に示すように、RTL Viewer では、出力レジスタがメモリ・ブロックの外にあ

りますが、Technology Map Viewer では、出力レジスタがメモリ・ブロック内にあり

ます。 これは、フィッタがメモリ・ブロックの性能およびデザインの集積度を向上

させるために、それらのレジスタをメモリ・ブロック内に移動させたからです。 こ

の動作はレジスタ・パッキングと呼ばれます。

制約の入力

リビジョンの作成および削除アルテラでは、制約を作成する前にリビジョンを作成することを推奨しています。

これにより、制約の結果を比較することができます。 これは、プロジェクトの新し

いリビジョンが作成されるたびに、Quartus II ソフトウェアは新しい .qsf ファイル

を作成し、新しいリビジョンの名前を .qsf ファイル内のリビジョンのリストに追加

するからです。 .qsf ファイルは、Quartus II ソフトウェアのアサインメントおよび設

定が格納されるファイルです。

以下のステップに従って、リビジョンを作成します。

1. Project メニューの Revisions を選択します。

2. Revisions ダイアログ・ボックスで、Create ボタンをクリックし、名前

Pipemult_timequest を入力します。

3. OK を 2 回クリックします。 リビジョンが作成されました。

図 38. RTL Viewer および Technology Map Viewer間の違い

106 Altera Corporation2009 年 11 月

Page 108: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

タイミング解析TimeQuest タイミング・アナライザは、ASIC スタイルの強力なタイミング解析ツー

ルで、業界標準の制約、解析、およびレポート手法により、デザイン内のすべての

ロジックのタイミング性能を検証します。 TimeQuest タイミング・アナライザを実

行する前に、クロック特性、タイミング例外、外部信号の到達および所要時間を規

定する初期タイミング制約を指定しなければなりません。 すべてびタイミング制約

は、GUI(Graphical User Interface)、Quartus II Text Editor またはコマンドライン・

インタフェースによって Synopsys Design Constraints(SDC)ファイル・フォー

マットで指定されます。

TimeQuest タイミング・アナライザをデフォルトのタイミング・アナライザに設定

するには、次のステップを実行します。

1. Assignments メニューで、Settings をクリックします。

2. Timing Analysis Setting ウィンドウで、User TimeQuest Timing Analyzer during compilation を選択します。

3. OK をクリックします。

下記の手順に従い、TimeQuest タイミング・アナライザでタイミングでタイミング

を検証します。

ステップ 1: デザインを合成します。デザインが Analysis & Synthesis コンパイルを完了したことを確認します。

ステップ 2: TimeQuestを起動して、解析用のタイミング・ネットリストをセットアップします。

1. Tools メニューの TimeQuest Timing Analyzer を選択します。

2. Quartus II ソフトウェアが Quartus 設定ファイルから SDC ファイルを生成す

るように促すメッセージが表示されたら、No をクリックします。 GUI から

SDC コマンドを直接入力します。

3.タイミング・ネットリストを作成します。 Netlist メニューで、Create Timing Netlist を選択します。 ダイアログ・ボックスが表示されます。 Input netlist を Post-map に変更します。

1 ダイアログ・ボックスに、Tcl コマンドがあります。 Task ペインでの

Create Timing Netlist の隣に緑色のチェックマークが表示され、コマン

ドが成功することを示します。

4. SDC ファイルを読み出します。 Task ペインでの Read SDC File の隣に緑色

のチェックマークが表示され、コマンドが成功することを示します。

1 SDC ファイルが最初に生成されていない場合には、重要な警告の記号が

生成されます。 これを解決するためには、GUI を介して SDC コマンド

を入力します。

Altera Corporation2009 年 11 月 107

Page 109: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

ステップ 3: 手動でクロック制約を追加します。1. Constraints メニューで、Create Clock をクリックします。 この機能により、

7.5ns のクロック制約を clk1 入力に追加することができます。

2. Create Clock ダイアログ・ボックスで、以下の設定を指定します。

Clock name: clk1Period: 6

3. Targets フィールド内で、ブラウズ・ボタンをクリックします。

4. Name Finder ダイアログ・ボックスが表示されます。 Name Finder ダイアロ

グ・ボックスで、Collection ドロップダウン・メニューから get_ports を選

択します。 Matches セクションの List をクリックします。

5. Matches のリストでの clk1をダブルクリックします。 OK をクリックしま

す。

6. Run をクリックします。

7.これで、クロック制約が追加されました。

ステップ 4: I/O制約を手動で追加します。

入力遅延(最大)の設定 - dataaと datab

1. Set Input Delay コマンドを使用し、clk1 に対して、8 ビット入力バス

dataaおよび datab に 3.25ns の最大入力遅延を設定します。

2. Constraints メニューから、Set Input Delay を選択します。

3. Name Finder ダイアログ・ボックスが表示されます。 Name Finder ダイアロ

グ・ボックスで、Collection ドロップダウン・メニューから get_ports を選

択します。 Matches セクションの List をクリックします。

4.すべての dataa を選択し、 ボタンをクリックします。 また、SDC コマン

ドの入力ボックスで [get_ports {dataa*}] を入力することもできます。

図 39. Create Clockダイアログ・ボックス

108 Altera Corporation2009 年 11 月

Page 110: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

5. Set Input Delay ダイアログ・ボックスで、以下の設定を指定します。

6.入力遅延(最大)の設定 - dataa と datab のステップ 2 ~ステップ 5 を繰り

返します。SDC コマンドの入力ボックスでのコマンドを [get_ports {datab*}] に置き換えます。

入力遅延(最小)の設定 - dataaと datab

1. Set Input Delay コマンドを使用し、clk1 に対して、8 ビット入力バス

dataaおよび datab に 1.75ns の最小入力遅延を設定します。

2. Constraints メニューから、Set Input Delay を選択します。

3. Name Finder ダイアログ・ボックスが表示されます。 Name Finder ダイアロ

グ・ボックスで、Collection ドロップダウン・メニューから get_ports を選

択します。 Matches セクションの List をクリックします。

4.すべての dataa を選択し、 ボタンをクリックします。 また、SDC コマン

ドの入力ボックスで [get_ports {dataa*}] を入力することもできます。

5. Set Input Delay ダイアログ・ボックスで、以下の設定を指定します。

6.入力遅延(最小)の設定 - dataa と datab のステップ 2 ~ステップ 5 を繰り

返します。SDC コマンドの入力ボックスでのコマンドを [get_ports {datab*}] に置き換えます。

表 27. 入力遅延(最大)の設定のための I/O制約設定 ‒ dataaと datab

制約設定 値Clock name clk1

Input Delay Options Maximum、 Both

Delay Value 3.25 ns

Targets [get_ports {dataa*}]

表 28. 入力遅延(最小)の設定のための I/O制約設定 ‒ dataaと datab

制約設定 値Clock name clk1

Input Delay Options Maximum、Both

Delay Value 1.75 ns

Targets [get_ports {dataa*}]

Altera Corporation2009 年 11 月 109

Page 111: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

最大出力遅延の設定 ‒ q1. Set output Delay コマンドを使用し、clk1 に対して、16 ビット q 出力に

0.7ns の最大入力遅延を設定します。

2. Constraints メニューから、Set Output Delay を選択します。

3. Name Finder ダイアログ・ボックスが表示されます。 Name Finder ダイアロ

グ・ボックスで、Collection ドロップダウン・メニューから get_ports を選

択します。 Matches セクションの List をクリックします。

4.すべての qを選択し、 ボタンをクリックします。 また、SDC コマンドの

入力ボックスで [get_ports {q*}] を入力することもできます。

5. Set Output Delay ダイアログ・ボックスで、以下の設定を指定します。

最小出力遅延の設定 – q

1. Set output Delay コマンドを使用し、clk1 に対して、16 ビット q 出力に

0.0ns の最小入力遅延を設定します。

2. Constraints メニューから、Set Output Delay を選択します。

3. Name Finder ダイアログ・ボックスが表示されます。 Name Finder ダイアロ

グ・ボックスで、Collection ドロップダウン・メニューから get_ports を選

択します。 Matches セクションの List をクリックします。

4.すべての qを選択し、 ボタンをクリックします。 また、SDC コマンドの

入力ボックスで [get_ports {q*}] を入力することもできます。

5. Set Output Delay ダイアログ・ボックスで、以下の設定を指定します。

表 29. 最大出力遅延の設定のための I/O制約 – q

制約設定 値Clock name clk1

Input Delay Options Maximum? Both

Delay Value 0.7 ns

Targets [get_ports {q*}]

表 30. 最小出力遅延の設定のための I/O制約 – q

制約設定制約設定 値Clock name clk1

Input Delay Options Minimum、 Both

Delay Value 0.0 ns

Targets [get_ports {q*}]

110 Altera Corporation2009 年 11 月

Page 112: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

入力遅延(最大)の設定 - rdaddressと wraddress

1. Set Input Delay コマンドを使用し、clk1 に対して、rdaddress に 2.5ns の

最大入力遅延を設定します。

2. Constraints メニューから、Set Input Delay を選択します。

3. Name Finder ダイアログ・ボックスが表示されます。 Name Finder ダイアロ

グ・ボックスで、Collection ドロップダウン・メニューから get_ports を選

択します。 Matches セクションの List をクリックします。

4.すべての rdaddressを選択し、 ボタンをクリックします。また、SDCコマンドの入力ボックス [get_ports {rdaddress*}] を入力することもできま

す。

5. Set Input Delay ダイアログ・ボックスで、以下の設定を指定します。

6.入力遅延(最大)の設定 - rdaddress と wraddress のステップ 2 ~ステップ

5 を繰り返します。SDC コマンドの入力ボックスでの [get_ports {rdaddress*}] コマンドを [get_ports {wraddress*}] に置き換えます。

入力遅延(最小)の設定 - rdaddress と wraddress1. Set Input Delay コマンドを使用し、clk1 に対して、rdaddress に 1.0ns の

最小入力遅延を設定します。

2. Constraints メニューから、Set Input Delay を選択します。

3. Name Finder ダイアログ・ボックスが表示されます。 Name Finder ダイアロ

グ・ボックスで、Collection ドロップダウン・メニューから get_ports を選

択します。 Matches セクションの List をクリックします。

4.すべての rdaddressを選択し、 ボタンをクリックします。また、SDCコマンドの入力ボックス [get_ports {rdaddress*}] を入力することもできま

す。

5. Set Input Delay ダイアログ・ボックスで、以下の設定を指定します。

表 31. 最大入力遅延の設定のための I/O制約 - rdaddressと wraddress

制約設定 値Clock name clk1

Input Delay Options Maximum、 Both

Delay Value 2.5 ns

Targets [get_ports {rdaddress*}]

表 32. 最小入力遅延の設定のための I/O制約 - rdaddressと wraddress

制約設定 値Clock name clk1

Input Delay Options Minimum、 Both

Delay Value 1.0 ns

Targets [get_ports {rdaddress*}]

Altera Corporation2009 年 11 月 111

Page 113: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

6. 入力遅延(最小)の設定 - rdaddress と wraddress のステップ 2 ~ステップ

5 を繰り返します。SDC コマンドの入力ボックスでの [get_ports {rdaddress*}] コマンドを [get_ports {wraddress*}] に置き換えます。

入力遅延(最大)の設定 - wren

1. Set Input Delay コマンドを使用し、clk1 に対して、rdaddress に 2.5ns の

最大入力遅延を設定します。

2. Constraints メニューから、Set Input Delay を選択します。

3. Name Finder ダイアログ・ボックスが表示されます。 Name Finder ダイアロ

グ・ボックスで、Collection ドロップダウン・メニューから get_ports を選

択します。 Matches セクションの List をクリックします。

4.すべての wrenを選択し、 ボタンをクリックします。また、SDC コマン

ドの入力ボックス [get_ports {wren*}] を入力することもできます。

5. Set Input Delay ダイアログ・ボックスで、以下の設定を指定します。

入力遅延(最小)の設定 - wren

1. Set Input Delay コマンドを使用し、clk1 に対して、wrenに 1.0ns の最小入

力遅延を設定します。

2. Constraints メニューから、Set Input Delay を選択します。

3. Name Finder ダイアログ・ボックスが表示されます。 Name Finder ダイアロ

グ・ボックスで、Collection ドロップダウン・メニューから get_ports を選

択します。 Matches セクションの List をクリックします。

4.すべての wrenを選択し、 ボタンをクリックします。 また、SDC コマン

ドの入力ボックス [get_ports {wren*}] を入力することもできます。

5. Set Input Delay ダイアログ・ボックスで、以下の設定を指定します。

表 33. 最大入力遅延の設定のための I/O制約 - wren

制約設定 値Clock name clk1

Input Delay Options Maximum、 Both

Delay Value 2.5 ns

Targets [get_ports {wren*}]

表 34. 最小入力遅延の設定のための I/O制約 - wren

制約設定 値Clock name clk1

Input Delay Options Minimum、 Both

Delay Value 1.0 ns

Targets [get_ports {wren*}]

112 Altera Corporation2009 年 11 月

Page 114: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

ステップ 5: タイミング・ネットリストを更新します。TimeQuest GUI の Tasks ペインで、Update Timing Netlist をダブル・クリックし

ます。

ステップ 6: TimeQuestのレポートTimeQuest のレポートは、すべての制約が正しく入力されたことを確認するため

に使用されます。 これらのレポートは、Report ペインおよび Task ペインにあり

ます。

ステップ 7: SDCファイルを書き込みます。すべての制約が設定されたら、コンパイル時にフィッタをガイドするのに使用で

きるようにするために、制約は SDC ファイルに保存する必要があります。

TimeQuest GUI の Tasks ペインで、Write SDC File をダブル・クリックして、

ファイル名を pipemult.sdc にします。

f 詳細については、 TimeQuest タイミング・アナライザ・リソース・セン

タを参照してください。

図 40. Reportペインおよび Taskペイン

表 35. TimeQuestのレポートの定義

レポートの種類 定義Report SDC 入力された制約を示します

Report Clocks クロックの値を示します。

Report Ignored Constraints

TimeQuest機能に無視されているすべての制約を表示します。 例えば、正しくないポート名が原因で、SDC コマンドが無視されます。

Report Unconstraints Paths Summary

制約されていないポートの一覧を表示します。 レポートの名前の色は赤となります。

Consist of Report SDC, Report Clocks, Report Ignored Constraints, and Report Unconstraints Paths

Altera Corporation2009 年 11 月 113

Page 115: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

Assignment EditorTimeQuest タイミング・アナライザをタイミング制約ツールとして使用するほかに、

Assignment Editorも使用可能な制約ツールの 1つとなります。 Assignment Editorは、

Quartus II ソフトウェアでノードおよびエンティティ固有のアサインメントを作成ま

たは変更するためのインタフェースです(図 41を参照)。 アサインメントとは、デ

バイスの物理リソースに割り当てるロジック・ファンクション、またはロジック・

ファンクションに割り当てるコンパイル・リソースです。

この項では、乗算器をエンベデッド乗算器の代わりに、ロジック・エレメントに実

装する方法を示します。 エンベデッド乗算器の数が制限されているため、小さい乗

算器や速度が重要でない乗算器をロジック・エレメントに実装するのは利点があり

ます。 これは、 Assignment Editor のロジック・オプションによって行われます。

以下のステップを実行し、乗算器をロジック・エレメントに実装します。

1. プロジェクトのリビジョンが pipemult であることを確認します。 メニュー・

バーで、ドロップダウン・リストにアクセスして pipemult を選択します。

2. Analysis and Synthesis Settings をクリックしてデザインを合成します。

3. Project Navigator ウィンドウで、mult エンティティを右クリックして、Locateをクリックして Locate in Assignment Editor をクリックします。

4. mult:mult_inst (1 行目 ) での Assignment Name カラムのセルをダブルクリッ

クして、ドラップダウン・リストから DSP Block Balancing を選択します。

5. Value カラムのセルをダブルクリックすると、DSP Block Balancing のオプショ

ンが表示され、そしてドラップダウン・リストから logic element を選択しま

す。

6. mult:mult_inst (2 行目 ) での Assignment Name カラムのセルをダブルクリッ

クして、ドラップダウン・リストから Optimization Technique を選択します。

7. Value カラムのセルをダブルクリックすると、Optimization Technique のオプ

ションが表示され、そしてドラップダウン・リストから Speed を選択します。

8. Assignment Editor のファイルを保存します。

9. をクリックして、デザインをコンパイルします。

図 41. Assignment Editor

114 Altera Corporation2009 年 11 月

Page 116: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

10.レポートからの情報を集めて、付録 B で提供される Quartus II 統合合成ページ用

の表 40 に記録します。

11.Compilation Report 機能の Flow Summary セクションでは、ロジック・エレメン

トの総数、メモリ・ビットの総数、エンベデッド乗算器 9 ビット・エレメントの

総数、およびピンの総数が記録されています。

12.Compilation Report 機能での Fitter フォルダを展開します。 Resource Sectionフォルダを選択します。 Resource Utilization by Entity 表を参考して、付録 Bで提供される表 40 に mult および ram サブデザインのリソース数を記録します。

13.Control Signals 表では、発見された(使用された)コントロール信号およびそれ

らのファンアウト値が記録されます。

結果から、このリビジョンでは、乗算器の実装がエンベデッド乗算器からロジック・

アレイに移動されたことがわかります。

f 詳細については、「QuartusII ハンドブック Volume 2」の「Assignment Editor」の

章を参照してください。

Pin Planner

Pin Planner 機能は、デザインでシステム・インタフェース、ロジックおよびタイミ

ング要求を満たすようにピン・アサインメントを実行するために使用されます。 ま

た、Pin Planner はデザイン・プロセスの初期段階で PCB レイアウトを開始するこ

とができます。

以下のステップを実行して、Pin Planner 機能を使用してピン・アサインメントを実

行します。

1. Assignments メニューで、Pin Planner をクリックします。図 42 が表示されま

す。

2. デバイスの上面図が表示されることを確認します。 上面図が表示されていない場

合には、View メニューで Package Top を選択します。

3. Show I/O Banks ツールバーのボタンをイネーブルにする必要があります。

4. dataa 入力を割り当てるには、dataa バスを Groups ウィンドウから Package View での IOBANK_2 のボックスにドラッグ・アンド・ドロップします。 あるい

は、Pin Planner ウィンドウの下部にある All Pin リストで、ピンの Location のカ

ラムをクリックします。 ドロップダウン・リストから、IOBANK_2 を選択しま

す。

1 dataa バスをクリックして、Node Properties を選択することで、配置す

るバンクを設定することもできます。 そして、ピンの位置を選択します。

ドロップダウン・リストから、IOBANK_2 を選択します。

1 ISE ソフトウェアでは、Package View 機能でノードをまとめてドラッグ・

アンド・ドロップすることができません。 ただし、Quartus II ソフトウェ

アには、ドラッグ・アンド・ドロップ機能があります。

5. I/O 規格を変更するには、dataaバスを右クリックして Node Properties を選択

します。 ドロップダウン・リストから 2.5V を選択します。あるいは、All Pin リ

ストで、ピンの I/O Standard のカラムをクリックして、2.5V を選択します。

Altera Corporation2009 年 11 月 115

Page 117: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

6. 表 36 に示す情報を使用して、datab、q、wraddressおよび rdaddress に対

してステップ 5 およびステップ 6 を繰り返します。

7. clk1 および wren の場合は、Pin Planner ウィンドウの下部にある All Pin リスト

で、Location カラムおよび I/O Standard カラムをクリックして配置するバンクお

よび I/O 規格を選択します。 表 37 を参照してください。

8. Processing メニューで、Start をクリックし、Start Analysis & Synthesis を選

択するかまたは Quartus II ソフトウェアのツールバーでの ボタンをクリッ

クします。完了したら、OK をクリックします。

9. Processing メニューで、Start をクリックし、Start I/O Assignment Analysis を

選択するかまたは Quartus II ソフトウェアのツールバーでの ボタンをクリッ

クします。完了したら、OK をクリックします。

表 36. dataa、datab、q、wraddressおよび rdaddressのパラメータ設定

名前 位置バンク I/O 規格dataa IOBANK_2 2.5 V

datab IOBANK_2 1.8 V

q IOBANK_2 1.8 V

wraddress IOBANK_2 1.8 V

rdaddress IOBANK_2 1.8 V

表 37. clk1およびwrenのパラメータ設定

名前 位置バンク I/O 規格

clk1 Pin_H16 1.8 V

wren IOBANK_3 1.8 V

116 Altera Corporation2009 年 11 月

Page 118: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

1 Quartus II ソフトウェアでは、実行したい機能を選択することで、デザインを別々に

合成することができます。 図 43 を参照してください。 これらの機能を実行するに

は、Processing メニューで、Start をクリックします。 ISE ソフトウェアでは、

Implement Design を実行する必要があります。

図 42. Pin Plannerの最終画面

Altera Corporation2009 年 11 月 117

Page 119: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

I/O バンク 2 への dataaおよび datab 入力バスが異なるため(それぞれ 2.5V および

1.8V)、I/O アサインメントの解析が成功しません。 両方の電圧レベルが異なってい

ます。 Cyclone II FPGA およびアルテラのすべての FPGA デバイスでは、I/O バンク

ごとに 1 つの VCCIO のみが使用できます。

10.スクリーン下部にある Group リスト機能を使用して、databグループの I/O 規

格を 2.5V に変更します。

11.I/O Assignment Analysis を再実行します。 完了したら、OK をクリックします。

f 詳細については、「QuartusII ハンドブック Volume 2」の「I/O Management」の章を

参照してください。

配置をロックするためのバック・アノテーション・ピン・アサインメントバック・アノテーション機能では、コンパイル時に行ったデバイスおよびリソース

のアサインメントを Quartus II 設定ファイル (.qsf) にコピーすることができます。

デザインおよびリソースのアサインメントをコピーするには、次のステップを実行

します。

1. Assignments メニューで、Back-Annotate Assignments を選択します。 ダイア

ログ・ボックスが表示されます。

2. Pin & Device アサインメントを選択します。 OK をクリックします。 図 44 を参

照してください。

図 43. Processingメニュー

118 Altera Corporation2009 年 11 月

Page 120: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

1 現在のデザイン・リビジョンからのピン・アサインメントは、元のリビジョンに持

ち越す必要があります。 これらのピン・アサインメントは .csv ファイルとしてエク

スポートされ、そして pipemult の元のリビジョンにインポートされます。

3. File メニューの Export を選択します。 Export ダイアログで、

io_assignment.csv を入力して Export をクリックします。

Import Assignment(アサインメントのインポート)この機能は、ピン・アサインメントの設定を現在のリビジョンから元のリビジョン

にインポートします。

1. Assignments メニューで、Import Assignments をクリックします。

2. Import Assignment ダイアログ・ボックスで、Back-Annotate Assignments 機能

で保存したファイルを参照します。 OK をクリックします。

Simultaneous Switching Noise Analysis(同時スイッチング・ノイズの解析)ほかのツールに比べて、Quartus II SSN Analyzer はボードのスイッチング・ノイズ

を確認するための最も精確なツールです。 このツールは、デバイス内のほかの I/O ピ

ンのスイッチング動作によって誘発される特定の I/O でのノイズを定義します。 この

ツールは、PCB 基板にシステム障害を起こす恐れのある SSN の影響を防ぎます。

f 詳細については、「Quartus II ハンドブック Volume 2」の「Simultaneous Switching Noise (SSN) Analysis and Optimization」の項を参照してください。

図 44. Back-Annotate Assignmentsダイアログ・ボックス

Altera Corporation2009 年 11 月 119

Page 121: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

消費電力の解析PowerPlay Power Analyzer は、熱消費電力の計算、ユーザーが提供されたソース、

および消費電力に影響を与えるいくつかの要因を含めて解析して、高品質の消費電

量見積もりを実現して、熱プランニングおよび電源プランニングをサポートします。

PowerPlay Power Analyzer にアクセスするには、Processing メニューで、Start をク

リックして、Start PowerPlay Power Analyzer を選択します。

f 詳細については、アルテラ・ウェブサイトの「パワーマネージメント・リソース・

センタ」および「Quartus II PowerPlay Power Analyzer サポート・リソース」を参

照してください。

シミュレーションアルテラでは、デザインをシミュレートするために、ModelSim-Altera 6.4a Starter Edition ソフトウェアが使用されます。

シミュレーションを開始する前に、以下のステップを実行します。

1. Assignments メニューから、Settings をクリックします。 Settings ダイアログ・

ボックスが表示されます。図 45 を参照してください。

2. Category リストで、EDA Tool Settings の隣にある「+」アイコンを展開し、

Simulation を選択します。

3. Specify options for generating output files for use with other EDA tools で、

Tool name を ModelSim-Altera に設定します。

4. EDA Netlist Writer settings に対して、次の設定を指定します。

5. NativeLink settings で、Compile test bench オプションをオンにして、そして

Test Benches ボタンをクリックします。

6. New をクリックして次の設定を指定します。

7. 参照ボタンをクリックし、pipemult.vt ファイルを選択して Add をクリックしま

す。

8. OK を 3 回クリックして、すべてのダイアログを閉じます。

表 38. EDA Netlist Writerの設定

設定 値Format for output netlist Verilog HDL

Output directory Simulation/ModelSim

表 39. NativeLinkの設定

設定 値Test bench name Pipemult

Top-level module in test bench Pipemult_vlg_vec_tst

Design instance name in test bench

il

120 Altera Corporation2009 年 11 月

Page 122: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

9. Tools メニューで、Options をクリックして EDA Tools Options を選択します。

Location of Executableが<Quartus II ソフトウェアのインストール先ディレクトリ >\90\modelsim_ase\win32aloem であることを確認します。 図 46 を参照して

ください。

10.OK をクリックします。

図 45. Settingsダイアログ・ボックス

Altera Corporation2009 年 11 月 121

Page 123: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

11.デザインのシミュレーションを開始します。 Tools メニューで、Run EDA Simulation Tool をポイントして、EDA RTL Simulation をクリックします。

Quartus IIアーカイブ・プロジェクト機能によるプロジェクトのアーカイブこの機能により、デザイン、プロジェクト、および設定ファイルを含む 1 つの圧縮

されたプロジェクトの Quartus II アーカイブ・ファイル(.qar)を生成することがで

きます。

以下のステップを実行して、プロジェクトをアーカイブします。

1. Project メニューの Archive Project をクリックします。 Archive Project ウィンド

ウが表示されます。

2. Archive file name で、アーカイブしようとする .qar ファイルのファイル名を入力

するか、または参照ボタンをクリックして .qar ファイルを選択します。

3. Advanced をクリックすると、アーカイブに関するより詳細なオプションが表示

されます。 リストからファイル・タイプを選択することで、アーカイブしようと

するファイルを指定することができます。 デフォルトのソース・コントロール・

ファイル・セットにはすべてのプロジェクト・ソース・ファイルおよび設定ファ

イルが含まれます。 デフォルトのアーカイブには、コンパイル結果またはインク

リメンタル・コンパイル用のコンパイル後ネットリストが含まれていません。 た

だし、Quartus II インクリメンタル・コンパイルを実行する場合、インポートさ

れた Quartus II Exported Partition (.qxp) ファイルはデフォルトですべてのファイ

ル・セット・オプションに含まれています。図 47 を参照してください。

4. Archive をクリックします。

図 46. Optionsウィンドウ

Location of Executable for the EDA Tool that you want to use

122 Altera Corporation2009 年 11 月

Page 124: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 A: デザイン例

f ファイル・セット・オプションについて詳しくは、「QuartusII ハンドブック Volume

2」の「Managing Quartus II Projects」の章を参照してください。

図 47. Advanced Archive Settingsウィンドウ

File set options

File subset options for the selected file set. Some options are selected by default for every file set. You can view the description in the Description box

Describes the selected file subset option

List of filesthat are archived forthe selectedfile subset

Altera Corporation2009 年 11 月 123

Page 125: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー付録 B

付録 B次の表に、コンパイル・レポートの結果を示します。 このリビジョンで、乗算器の

実装がエンベデッド乗算器からロジック・アレイに移動したことがわかります。 赤

色でハイライトされている結果を参照してください。

コンパイル・レポートの概要表 40 に、2 セットのデータを示します。 1 セットは制約のないデータであり、もう

1 セットはは制約のあるデータです。 制約のないデータのセットは 1 つのロジック・

エレメント、1 つのエンベデッド乗算器 9 ビット・エレメント、512 のメモリ・ビッ

トおよび 44 本のピンのみを使用します。 その一方で、DSP Block Balancing 制約を

デザインに適用すると、ロジック・エレメントの総数は 101 に増えていて、そして

デザインではエンベデッド乗算器 9 ビット・エレメントが使用されていません。 コ

ントロール信号およびファンアウトの結果については、Assignment Editor ツールで

制約を設定する前に、デザイン内のクロックは 3 つのレジスタのみをドライブしま

す。 この 3 つのレジスタは、メモリ・ブロック、エンベデッド乗算器およびロジッ

ク・セルです。 制約を適用した後、クロックは 33 個のレジスタを駆動します。

表 40. コンパイル結果

カテゴリ Quartus II統合合成セクションのコンパイル・レポート

Assignment Editorセクションのコンパイル・レポート

Device EP2C5F256C6 EP2CF256C6

Total Design

Total Logic Elements 1 101

Total Memory Bits 512 512

Total Embedded Multiplier 9-bit Elements

1 0

Total Pins 44 44

mult sub design

Logic Cells 1 101

Dedicated Logic Registers 0 32

Memory Bits 0 0

M4K 0 0

DSP Elements 1 0

ram sub design

Logic Cells 0 0

Dedicated Logic Registers 0 0

Memory Bits 512 512

M4K 1 1

DSP Elements 0 0

Control Signal and Fan-outclk/3 clk/33

wren/1 wren/1

124 Altera Corporation2009 年 11 月

Page 126: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー参考資料

参考資料このアプリケーション・ノートでは、以下のドキュメントを参照しています。

■ 「QuartusII ハンドブック Volume 2」の「Assignment Editor 」の章

■ 「QuartusII ハンドブック Volume 2」の「Command-Line Scripting」の章

■ 「QuartusII ハンドブック Volume 3」の「Design Debugging Using the SignalTap II Embedded Logic Analyzer」の章

■ 「QuartusII ハンドブック Volume 1」の「Design Recommendations for Altera Devices and the Quartus II Design Assistant」の章

■ Error Correction Code Megafunctions User Guide (ALTECC)

■ 「QuartusII ハンドブック Volume 2」の「Engineering Change Management with the Chip Planner」の章

■ Introduction to the Quartus II Software

■ 「QuartusII ハンドブック Volume 2」の「I/O Management」 の章

■ LPM_MULT Megafunction User Guide

■ 「QuartusII ハンドブック Volume 2」の「Netlist Optimizations and Physical Synthesis」の章

■ Phase-Locked Loops Megafunction User Guide (ALTPLL)

■ 「QuartusII ハンドブック Volume 3」の「PowerPlay Power Analysis」の章

■ 「QuartusII ハンドブック Volume 1」の「Quartus II Incremental Compilation for Hierarchical and Team-Based Design」の章

■ 「QuartusII ハンドブック Volume 1」の「Quartus II Integrated Synthesis」 の章

■ 「QuartusII ハンドブック Volume 3」の「Quartus II Programmer」の章

■ 「QuartusII ハンドブック Volume 3」の「Quartus II TimeQuest Timing Analyzer」の章

■ Quick Start Guide For Quartus II Software

■ Random Access Memory Megafunction User Guide (RAM)

■ Read Only Memory Megafunction User Guide (ROM)

■ SDC and TimeQuest API Reference Manual

■ 「QuartusII ハンドブック Volume 1」の「Recommended HDL Coding Styles」の章

■ 「QuartusII ハンドブック Volume 3」の「Section I. Simulation」の章

■ 「QuartusII ハンドブック Volume 1」の「Section III. Synthesis」の章

■ 「QuartusII ハンドブック Volume 2」の「Tcl Scripting」の章

■ Using Parity to Detect Errors White Paper

■ 「QuartusII ハンドブック」の「Volume 4: SOPC Builder」の章

Altera Corporation2009 年 11 月 125

Page 127: AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー...AN 307: Xilinxユーザー向けのアルテラのデザイン・フロー Quartus II によるFPGA デザイン手法

AN 307: Xilinx ユーザー向けのアルテラのデザイン・フロー改訂履歴

101 Innovation DriveSan Jose, CA 95134www.altera.comTechnical Supportwww.altera.com/support

Copyright © 2009 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to obtain the latest version of device specifications before

改訂履歴表 41 に、このアプリケーション・ノートの改訂履歴を示します。

表 41. 改訂履歴

日付およびドキュメント・バージョン 変更内容 概要

2009 年 11 月v6.3

タイミング制約セクションでの OFFSET IN BEFORE および OFFSET OUTPUT AFTERの UCF コマンドに対等な set_max_delay制約を修正

2009 年 4 月v6.2

付録 A: デザイン例 および 付録 B を追加—

2008 年 7 月v6.0

ソフトウェア・バージョン ISE 10.1 およびQuartus II 8.0 に対して内容を改訂および再構築

2005 年 6 月v5.0

■ ソフトウェア・バージョン ISE 7.1およびQuartus II 5.0 に対して内容を改正

■ 用語を更新

■ Pin Planner サブセクションを追加

■ Quartus II インクリメンタル・コンパイルを追加

2004 年 2 月v4.0

■ ソフトウェア・バージョン ISE 6.3iおよびQuartus II 4.2 に対して内容を改訂

■ 消費電力に対して表 6 を更新

■ クロス・プロービングのチャートを更新

2004 年 1 月v3.1

用語を更新 —

2003 年 10 月v3.0

■ ソフトウェア・バージョン ISE 6.2i および Quartus II 4.1 sp2 に対して内容を改訂

■ クロス・プロービングに関する情報を追加

2003 年 7 月v2.0

■ ソフトウェア・バージョン ISE 5.1i および Quartus II 3.0 に対して内容を改訂

■ Quartus II モジュール実行コマンドおよびコマンドライン・スクリプトに関する情報を追加

■ DDR RAM の変換に関する情報を追加

v1.0 初版 —