MachXO2 SED マ ク ロ使用ガ イ ド 2013 年 12 月 テ ク ニ カル ノ ー ト TN1206 は じ めに ソ フ ト エ ラ ーは、 高エネルギー荷電粒子に よ っ て、 電子回路内の メ モ リ セルに格納 さ れたチ ャ ージが変化 し て発生す る こ と があ り ます。 本現象は最初に DRAM の問題 と し て現出 し 、 高信頼性アプ リ ケーシ ョ ンの大容 量 メ モ リ シ ス テ ム ではエ ラ ー検出 と 訂正が必要にな り ま す。 デバ イ ス ジオ メ ト リ は縮小を続け てい る ため、 シ ス テ ムに よ っ ては SRAM 内での メ モ リ エ ラ ーの可能性がかな り 高 く な っ てい ます。 設計者は様々な手法を 使用 し て、 シ ス テ ム動作に与え る メ モ リ エ ラ ーの影響を抑え よ う と し てい ます。 SRAM ベース の PLD は、 ロ ジ ッ ク ・ コ ン フ ィ グ レーシ ョ ン ・ デー タ を SRAM セルに格納 し ます。 PLD 内部の SRAM の数 と 規模が増加 し てい る ため、 メ モ リ エ ラ ーに よ っ てプ ロ グ ラ ム さ れたシ ス テ ムの論理動作が変化 す る 可能性 も 増 し てい ます。こ の問題は多数の手法で対策 さ れてい ますが、その多 く はユーザが設計の ロ ジ ッ ク 内に実装 し た IP (Intellectual Property) コ ア を利用す る ため、 貴重な リ ソ ース を使用 し 、 設計の性能に影 響を与え る 可能性があ り ます。 MachXO2TM デバ イ ス はハー ド ウ ェ ア実装 さ れた SED 回路を持つため、 それ を SRAM エ ラ ーの検出に使用で き 、 訂正 も 可能です。 本書では、 ラ テ ィ ス セ ミ コ ン ダ ク タ ーが MachXO2 PLD に採用 し た、 ハー ド ウ ェ アベース の SED 手法につい て説明 し ます。 SED の概要 MachXO2 デバ イ ス の SED ハー ド ウ ェ アは、 PLD の コ ン フ ィ グ レーシ ョ ン ・ メ モ リ へのア ク セ ス ポ イ ン ト 、 制御回路、 及び対象ビ ッ ト ス ト リ ームの CRC を格納す る 32 ビ ッ ト レ ジ ス タ で構成 さ れます (図 1-1 参照)。 SED ハー ド ウ ェ アは、 PLD の コ ン フ ィ グ レーシ ョ ン ・ メ モ リ か ら シ リ アルデー タ を リ ー ド し 、 CRC を計算 し ます。 その リ ー ド さ れたデー タ 、 及び計算 さ れた CRC には、 EBR メ モ リ ま たは RAM と し て使用 さ れ る PFU が含まれません。 その後、 計算 さ れた CRC は 32 ビ ッ ト レ ジ ス タ に格納 さ れた CRC の期待値 と 比較 さ れま す。 CRC 値が一致 し た場合は コ ン フ ィ グ レーシ ョ ン ・ メ モ リ が破損 し ていない こ と が示 さ れ、 値が異な る 場 合はエ ラ ー信号が生成 さ れます。 図 1-1. シ ス テ ムブ ロ ッ ク 図 EFB Configuration Clock Divider (66MHz) Configuration Logic Glitchless SMCLK Clock MUX Internal OSC 266MHz SED Clock Divider (2.08MHz - 33MHz) SED Control Circuit 32-Bit CRC Register 計算 さ れた CRC は、特定の設計に対す る 特定の コ ン フ ィ グ レーシ ョ ン ・ メ モ リ の内容に基づいた も のにな り ます。 その結果、 期待 さ れ る CRC 値は、 設計が実装 さ れて配線 さ れ る ま で指定で き ません。 Lattice Diamond ™ま たは ispLEVER® ビ ッ ト ス ト リ ーム生成 ソ フ ト ウ ェ アは、 実装及び配線 さ れた設計の コ ン フ ィ グ レーシ ョ ン を解析 し 、 ビ ッ ト ス ト リ ーム生成時に 32 ビ ッ ト SED CRC レ ジ ス タ の内容を更新 し ます。 以下の項では、 MachXO2 SED の実装 と フ ロ ーについて説明 し ます。 © 2013 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal. All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice. (日本語版は日本語に よ る 理解のため一助 と し て提供 し てい ます。 その作成にあ た っ ては可能な限 り 正確を期 し てお り ますが、 原文英語版 と の不一致や不適切な訳文があ る 場合を含み、 註記がない限 り 英語版が正 (有効) です。 特に電気的特性 ・ 仕様値係わ る 事項については最新版の英語版を必ず参照す る よ う にお願い致 し ます。) www.latticesemi.com 1-1 TN1206J_01.9 MachXO2 SRAM CRC エ ラ ー検出マ ク ロ使用ガ イ ド SED の制約 SED を実行で き る のは、 デバ イ ス の ロ ジ ッ ク が安定状態に保たれ、 誤っ たエ ラ ー表示が防止 さ れ る 場合に限 ら れます。 ま た、 ク ロ ッ ク 周波数が 33.33MHz を超え る 場合の SED には対応 し てい ません。 SED 回路の ク ロ ッ ク (SMCLK) は コ ン フ ィ グ レーシ ョ ン回路 と 共用 さ れてい ます。 そのため、 SED モジ ュ ー ルは、 EFB 機能の幾つかの動作に対 し て以下の様な関連性があ り ます。 •. SED 回路が動作時に EFB や コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク がア ク セ ス さ れ る と 、 - その時点の SED サ イ ク ルは強制終了 し ます ・ SED 回路が強制終了 さ れ る と 、 EFB や コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク がア ク セ ス で き る よ う に な る ま で SMCLK 2 周期分の遅延があ り ます。こ れは SMCLK が SED ク ロ ッ ク か ら コ ン フ ィ グ レー シ ョ ン ・ ク ロ ッ ク ド メ イ ンに切 り 替え ら れ る ために要す る 期間です。 ”2 SMCLK” 周期 と は低速の SED ク ロ ッ ク で定義 さ れます。 ・ SED 回路が強制終了 さ れ る と 、 SEDDONE お よ び SEDERR は Low の ま ま に保持 さ れ、 SEDINPROG は High か ら Low に リ セ ッ ト さ れます。 - EFB や コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク のア ク セ ス で SED 動作に関連性があ る のは次の通 り です : ・ JTAG ポー ト ま たは WISHBONE イ ン タ ーフ ェ イ ス か ら 与え ら れ る 以下の コ マ ン ド - LSC_REFRESH - ISC_ENABLE - ISC_ENABLE_X - 全 IEEE 1532 命令 - ISC_DISABLE ・ プ ラ イ マ リ I2C コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク の ス レーブア ド レ ス が一致 ・ SPI コ ン フ ィ グ レーシ ョ ン ・ ロ ジ ッ ク のチ ッ プセ レ ク ト がアサー ト さ れ る •. PROGRAMn ピ ン を検出す る ロ ジ ッ ク は最低 6 SMCLK 周期以上の Low 期間を必要 と し ます。 SED 回路 が動作中は 6 SMCLK 周期は SED ク ロ ッ ク で定義 さ れます。 SED の動作モー ド MachXO2 デバ イ ス の SED 動作には 2 つのモー ド があ り ます。 • 標準動作モードでは、SED の実行開始タイミングやエラー検出動作のテストをデザインから制御でき ます • ワンショット動作モードは、デバイスのコンフィグレーション後に SED を 1 回実行し、コンフィグ レーションが目的のコンフィグレーションと一致していることを確認するために使用されます ど ち ら の動作で も 、EBR 及び RAM メ モ リ を除 く 、コ ン フ ィ グ レーシ ョ ン SRAM 内の全ビ ッ ト の CRC がチ ェ ッ ク さ れます。 標準モー ド 動作は SEDFA プ リ ミ テ ィ ブ を使用 し て起動 さ れ る のに対 し て、 ワ ン シ ョ ッ ト 動作 は SEDFB プ リ ミ テ ィ ブ を使用 し て起動 さ れます。 こ れ ら のプ リ ミ テ ィ ブについては、 次の項で説明 し ます。 SED 動作中にエ ラ ーが検出 さ れた場合、 ユーザは 2 つの訂正ア ク シ ョ ンのいずれかを選択で き ます。 1 つは " 何 も し ない " です。 も う 1 つは、 PROGRAMN ピ ン を Low にす る こ と で、 オンデマ ン ド のユーザ再 コ ン フ ィ グ レーシ ョ ン を開始 し ます。 こ れは別のデバ イ ス か ら 、 ま たは図 16-4 に示す MachXO2 デバ イ ス の出力か ら 行い ます。 PROGRAMn ピ ン を検出す る ロ ジ ッ ク は最低 6 SMCLK 周期以上の Low 期間を必要 と し ます。 SED 回路が動作 中は 6 SMCLK 周期は SED ク ロ ッ ク で定義 さ れます。 エ ラ ー検出がア ク テ ィ ブに さ れ る と 、 PROGRAMn の Low 期間は SEDCLK で 6 周期の定義にな り ます。 こ れはア ク テ ィ ブは SMCLK は SEDCLK に切 り 替え ら れ る 1-2 TN1206J_01.9 MachXO2 SRAM CRC エ ラ ー検出マ ク ロ使用ガ イ ド ためです。 こ れは SMCLK が最速で動作 し てい る通常動作時 と は異な る振 る舞いです。 デバ イ ス起動後、 SED 機能ブ ロ ッ ク は新規 コ ン フ ィ グ レーシ ョ ン設定に基づいて動作 し ます。 標準 SED 標準 SED 動作は、 図 1-2 に示す SEDFA プ リ ミ テ ィ ブ を実現す る こ と で使用で き ます。 プ リ ミ テ ィ ブのポー ト 定義を表 1-1 に示 し ます。 各ポー ト の詳細については、 本書の 「ポー ト 説明」 の項を参照 し て く だ さ い。 (日本語注1) 図 1-2. SEDFA プ リ ミ テ ィ ブ ・ シ ン ボル l SEDENABLE SEDCLKOUT SEDSTART SEDDONE SEDFA SEDFRCERR SEDSTDBY SEDINPROG SEDERR (From OSCH Primitive) ワ ン シ ョ ッ ト SED ワ ン シ ョ ッ ト SED 動作は、 図 1-3 に示す SEDFB プ リ ミ テ ィ ブを実現す る こ と で使用で き ます。 SEDFB プ リ ミ テ ィ ブのポー ト 定義を表 1-1 に示 し ます。 各ポー ト の詳細については、 本書の 「ポー ト 説明」 の項を参照 し て く だ さ い。 (日本語注2) 図 1-3. SEDFB プ リ ミ テ ィ ブ ・ シ ン ボル SEDCLKOUT SEDDONE SEDFB SEDINPROG SEDERR 1. 日本語注:英語版オリジナルにある R1 デバイスの記述は省略 2. 日本語注:英語版オリジナルにある R1 デバイスの記述は省略 1-3 TN1206J_01.9 MachXO2 SRAM CRC エ ラ ー検出マ ク ロ使用ガ イ ド 信号説明 表 1-1. SEDFA プ リ ミ テ ィ ブのポー ト 定義 信号名 方向 アクテ ィ ブ SEDENABLE 入力 High 記 述 SEDSTART 入力 立ち上が り エ ッ ジ SRAM CRC サ イ ク ルを開始 SEDFRCERR 入力 立ち上が り エ ッ ジ SRAM CRC エ ラ ーフ ラ グ を強制的にアサー ト SEDSTDBY 入力 High ス タ ンバ イ モー ド 時に SRAM CRC をデ ィ セーブル SEDCLKOUT 出力 N/A 出力 ク ロ ッ ク SEDDONE 出力 High SRAM CRC サ イ ク ル完了 SEDINPROG 出力 High SRAM CRC サ イ ク ル実行中 SEDERR 出力 High SRAM CRC エ ラ ーフ ラ グ SRAM CRC イ ネーブル SED の ク ロ ッ ク ド ラ イ バ SEDFA ま たは SEDFB プ リ ミ テ ィ ブ使用時、SED 回路は MachXO2 内部オシ レー タ で ド ラ イ ブ さ れます。対応 す る 最高周波数は 33.25MHz です。 MachXO2 内部オシ レー タ は、 コ ン フ ィ グ レーシ ョ ン、 SED、 内部ユーザ ク ロ ッ ク な ど、 デバ イ ス内のい く つ かの機能で使用で き ます。 オシ レー タ 出力の周波数は、 こ う し た用途ご と に異な る 設定にで き ます。 SED ク ロ ッ ク で使用可能な設定を、 次の表に示 し ます。 SED 使用時、 内部オシ レー タ 周波数は SED_CLK_FREQ パ ラ メ ー タ で指定 さ れます。 表 1-2. SED に内部オシ レー タ が対応する 周波数設定 2.08 4.16 8.31 16.63 2.15 4.29 8.58 17.73 2.22 4.43 8.87 19.00 2.29 4.59 9.17 20.46 2.38 4.75 9.50 22.17 2.46 4.93 9.85 24.18 2.56 5.12 10.23 26.60 2.66 5.32 10.64 29.56 33.25 2.77 5.54 11.08 2.89 5.78 11.57 3.02 6.05 12.09 3.17 6.33 12.67 3.33 6.65 13.30 3.50 7.00 14.00 3.69 7.39 14.78 3.91 7.82 15.65 SED の属性 SED プ リ ミ テ ィ ブに使用可能な属性が 3 つあ り 、 それ ら を表 1-3 に示 し ます。 こ れ ら 属性の使用例は、 本書 の 「記述例」 の項にあ り ます。 現在の と こ ろ、 SEDFB プ リ ミ テ ィ ブは こ こ に示す 3 つの属性に対応 し てい ま せん。 1-4 TN1206J_01.9 MachXO2 SRAM CRC エ ラ ー検出マ ク ロ使用ガ イ ド 表 1-3. SED の属性 属性名 SED_CLK_FREQ 属性 タ イ プ String 記 述 SEDFA プ リ ミ テ ィ ブで使用時の ク ロ ッ ク 周波数を指定する DEV_DENSITY String シ ミ ュ レーシ ョ ンモデルで使用する デバ イ ス規模を指定する CHECKALWAYS String (予約) SED_CLK_FREQ 属性は ク ロ ッ ク 周波数の指定に使用 さ れます。 SEDFA プ リ ミ テ ィ ブは、 ク ロ ッ ク 源 と し て MachXO2 内部オシ レー タ を使用 し ます。 表 1-3 に使用可能な設定を示 し ます。 こ の表に示 し た以外の値を使 用 し た場合、 ソ フ ト ウ ェ アはエ ラ ー メ ッ セージ を表示 し 、 MAP プ ロ セ ス を終了 し ます。 DEV_DENSITY 属 性 は MachXO2 シ ミ ュ レ ー シ ョ ン モ デ ル の デ バ イ ス 規 模 の 指定 に 使 用 さ れ ま す。 DEV_DENSITY 属性を指定 し なか っ た場合は、 デフ ォ ル ト 値の 1200L が使用 さ れます。 DEV_DENSITY 属性に 指定可能な値は次の と お り です。 256L, 640L, 1200L, 2000L, 4000L, 7000L, 640U, 1200U, ま たは 2000U 現時点で CHECKALWAYS 属性には対応 し てい ません。 ポー ト 説明 SEDENABLE SEDENABLE はレベルセ ン シテ ィ ブ信号で、 High の と き は SED が イ ネーブルにな り ます。 こ の信号が Low に な る と 、SED ハー ド ウ ェ アがデ ィ セーブル さ れます。必要であれば、設計内で High に固定す る こ と も で き ます。 SEDSTART SEDSTART は SED プ ロ セ ス を開始す る 信号です。 SEDENABLE が High の場合、 SEDSTART 信号の立ち上が り エ ッ ジで SED サ イ ク ルが開始 さ れます。 SEDSTART 信号は、 SED プ ロ セ ス が完了す る ま で High にな っ て い る 必要があ り ます。 SED サ イ ク ル中に SEDSTART が Low にな る と 、 SEDDONE ま たは SEDERR を アサー ト す る こ と な く プ ロ セ ス が終了 し ます。 SEDFRCERR SEDFRCERR は SEDERR 信号でエ ラ ー表示を返す よ う 、 SED プ ロ セ ス を強制設定す る ために使用 さ れます。 通常は、 SEDERR 出力に関連す る ロ ジ ッ ク のテ ス ト に使用 さ れます。 SEDFRCERR 信号の立ち上が り エ ッ ジ は、 SED ハー ド ウ ェ アで検出 さ れ、 SED ク ロ ッ ク ド ラ イ バ信号の立ち上が り エ ッ ジで ラ ッ チ さ れ ます。 エ ラ ー表示を返すためには、SED がア ク テ ィ ブの間、SEDFRCERR が High に ラ ッ チ さ れてい る 必要があ り ます。 推奨す る 使用法は、 SEDINPROG 信号の立ち上が り エ ッ ジが検出 さ れた と き に、 セ ッ ト ア ッ プ ・ ホール ド 時 間要件を満た し なが ら 図 1-5 に示す よ う にユーザ ロ ジ ッ ク で SEDFRCERR 信号を Low か ら High に ド ラ イ ブ す る こ と です。 SEDSTDBY SEDSTDBY ポー ト は SEDFA プ リ ミ テ ィ ブのみにあ り 、 OSCH コ ン ポーネ ン ト の SEDSTDBY 出力ポー ト に接 続 さ れてい る 必要があ り ます。 こ の信号は STDBY 機能のシ ミ ュ レーシ ョ ンサポー ト 用に用意 さ れ、 内部オ シ レー タ をオ フす る ために使用 さ れます。 STDBY 機能に よ っ て内部オシ レー タ がオ フ さ れ る と 、 ク ロ ッ ク 源 がオ フ さ れ る ため、 SEDFA ブ ロ ッ ク は動作 し な く な り ます。 ユーザが SEDFA の こ の信号を接続 し なか っ た 場合で も 、 SED はハー ド ウ ェ ア的に同 じ 動作 と な り ますが、 STDBY を使用 し た場合 と はシ ミ ュ レーシ ョ ン結 果が一致 し ない こ と があ り ます。 SEDCLKOUT SEDCLKOUT は SED ブ ロ ッ ク への SED ク ロ ッ ク ド ラ イ バ信号の、 ゲー ト 付 き バージ ョ ンです。SEDCLKOUT は SEDENABLE でゲー ト 処理 さ れます。 こ の信号は、 SED ブ ロ ッ ク への入力、 ま たは SED ブ ロ ッ ク か ら の出 力の同期に使用 さ れます。 1-5 TN1206J_01.9 MachXO2 SRAM CRC エ ラ ー検出マ ク ロ使用ガ イ ド SEDDONE SEDDONE は SED チ ェ ッ ク のサ イ ク ル完了を示す出力です。こ の信号は SED ハー ド ウ ェ アのア ク テ ィ ブ High 出力であ り 、 SEDCLKOUT の立ち上が り エ ッ ジで ク ロ ッ ク さ れます。 SEDDONE は SEDSTART 信号が Low に な る と リ セ ッ ト さ れます。 SEDINPROG SEDINPROG は SED チ ェ ッ ク の実行中を示す出力です。 こ の信号は SED ハー ド ウ ェ アのア ク テ ィ ブ High 出 力であ り 、 SEDCLKOUT の立ち上が り エ ッ ジで ク ロ ッ ク さ れます。 SEDINPROG は SEDSTART が High にな る と 、 図 1-5 に示す遅延後に High にな り ます。 SEDERR SEDERR は SED チ ェ ッ ク のサ イ ク ルが完了 し 、 エ ラ ーがあ っ た こ と を示す出力です。 こ の信号は SED ハー ド ウ ェ アのア ク テ ィ ブ High 出力であ り 、 SEDCLKOUT の立ち上が り エ ッ ジで ク ロ ッ ク さ れます。 SEDERR は SEDSTART 信号が Low にな る と 、 図 1-5 に示す遅延後に リ セ ッ ト さ れます。 SED フ ロ ー 一般的な SED フ ロ ーは、 次の よ う にな り ます。 1. ユーザ ロ ジ ッ ク が SEDENABLE を High にす る 。 必要に応 じ て こ の信号は High に固定 さ れ る 2. ユーザ ロ ジ ッ ク が SEDSTART を High に し 、 SED サ イ ク ルの実行中 High に保つ。 SEDINPROG が High にな る 。 SEDDONE ま たは SEDERR が既に High にな っ ていた場合は Low に ド ラ イ ブ さ れ る 3. SED が、 コ ン フ ィ グ レーシ ョ ン SRAM か ら のデー タ リ ー ド を開始す る 4. SED がチ ェ ッ ク を終了す る 。 SEDERR が更新 さ れ、 SEDINPROG が Low にな り 、 SEDDONE が High にな る 。 別の SED サ イ ク ルが開始 さ れ る と 、 SEDERR 信号が リ セ ッ ト さ れ る 5. SEDERR が High に ド ラ イ ブ さ れてい る 場合は、 PLD を再 コ ン フ ィ グ レーシ ョ ンす る と リ セ ッ ト で き る 6. ユーザの指定に応 じ て SEDENABLE が Low にな り 、 SED が使用 さ れな く な る エ ラ ー検出時の望ま し い動作は、 PLD を再 コ ン フ ィ グ レーシ ョ ンす る こ と です (日本語注1)。 再 コ ン フ ィ グ レ ーシ ョ ン は、 PROGRAMN ピ ン を Low に ド ラ イ ブす る と 行われ ま す。 こ れは、 外部的に GPIO ピ ン を PROGRAMN に接続す る と 実現で き ます。 1. 日本語注:自動的に無条件で再コンフィグレーションすることは推奨しない。図 16-4 はあくまで一例 として示す意図である。望ましい動作はシステム要件・システム設計に依存する。 1-6 TN1206J_01.9 MachXO2 SRAM CRC エ ラ ー検出マ ク ロ使用ガ イ ド 図 1-4. 回路例 VCC MachXO2 10K PROGRAMN 1 Ohm GPIO Open Drain Output Note: The 1 Ohm resistor shown allows a user to recover from a bad program which always pulls the GPIO pin low in the MachXO2 device. If this type of pattern is loaded into the MachXO2, the device will always be held in the re-configuration state and is not able to communicate or be erased to clear the error condition. To recover from this condition, remove the resistor and reprogram the device, then replace resistor. SED 動作の タ イ ミ ン グ図 図 1-5. SED 動作の タ イ ミ ン グ図 SEDENABLE tEN_MIN tST_HMIN tST_LMIN SEDSTART tIPDEL tINPROG_TYP SEDINPROG tFEHOLD_MIN tFESETUP_MIN tERROUT tFE_MIN tOUT_CLR SEDFRCERR SEDERR tDONE_SET SEDDONE こ こ で、 図中のパ ラ メ ー タ は以下の通 り です。 パラ メ ー タ 値 単位 0 SEDCLK tIPDEL 2 SEDCLK tFEHOLD_MIN 92 SEDCLK tFESETUP_MIN 5 SEDCLK tFE_MIN 2 SEDCLK tERROUT 1 SEDCLK tST_HMIN 0 SEDCLK tST_LMIN 1 SEDCLK tOUT_CLR 2 SEDCLK tDONE_SET 0 SEDCLK tEN_MIN 1-7 TN1206J_01.9 MachXO2 SRAM CRC エ ラ ー検出マ ク ロ使用ガ イ ド SED の実行時間 SED チ ェ ッ ク の実行に必要な時間は、 デバ イ ス の規模 と 、 SED ク ロ ッ ク ド ラ イ バ信号の周波数に よ っ て異な り ま す。 ま た、 計算のためのオーバーヘ ッ ド 時間 も あ る 程度かか り ま すが、 相対的には非常に短時間です。 必要な時間は、 次の式を使用 し て概算で き ます。 (最大ビ ッ ト 数 / 8) / SED ク ロ ッ ク ド ラ イ バ周波数 = 時間 (ms) 最大ビ ッ ト 数は Kbits 単位で表 し 、 PLD の規模に よ っ て異な り ます (表 1-4 参照)。 SED ク ロ ッ ク ド ラ イ バ信 号周波数は MHz 単位で表 し ます。 時間は ミ リ 秒単位です。 MachXO2 デバ イ ス の SED チ ェ ッ ク では、 SED サ イ ク ルご と に 8 ビ ッ ト (1 バ イ ト ) が リ ー ド さ れます。 た と えば、 4,000 LUT の MachXO2 を使用 し た設計で、 SED ク ロ ッ ク ド ラ イ バ周波数が 7MHz の場合は、 次の よ う にな り ます。 (972 KBits / 8) / 7.0 MHz = 17.4 ms こ の例では、 SED チ ェ ッ ク に約 17.4ms 要 し ます。 SED ク ロ ッ ク ド ラ イ バ信号の生成には内部オシ レー タ が使用 さ れますが、その周波数は ±5.5% の変動があ る こ と に注意 し て く だ さ い。 表 1-4. SED の実行時間 XO2256 XO2640 XO2-640U XO21200 XO21200U XO22000 XO22000U XO24000 XO27000 規模 1 94K 191K 360K 360K 535K 535K 972K 972K 1534K 単位 33.3 MHz 0.35 0.72 1.35 1.35 2.00 2.00 3.64 3.64 5.75 ms 3.05 MHz 3.84 7.82 14.8 14.8 21.9 21.9 39.9 39.9 62.9 ms 1. 規模とはデバイス内のコンフィグレーション用ビット数を示す 記述例 次の簡単な RTL 記述例は、 SED プ リ ミ テ ィ ブの初期化方法を示 し てい ます。 こ の例では、 SRAM CRC 検出が 常に イ ネーブル と な り 、 "sed_start" 信号が High に ド ラ イ ブ さ れ る と 実行 さ れます。 SED ハー ド ウ ェ アの出力 は、PLD 出力ピ ンに送出で き 、別のモジ ュ ールで使用す る こ と も で き ます。SADFA プ リ ミ テ ィ ブは、ispLEVER 8.1 SP1 以降及び Diamond 1.1 以降に含まれてい ます。 SEDVHDL 記述例 VHDL SEDFA COMPONENT SEDFA GENERIC( SED_CLK_FREQ : string := "3.5"; CHECKALWAYS : string := "DISABLED"; DEV_DENSITY : string := "1200L"); --"256L","640L","1200L","2000L","4000L","7000L", "640U", "1200U", "2000U" PORT( SEDENABLE SEDSTART SEDFRCERR SEDSTDBY : : : : in in in in STD_LOGIC; STD_LOGIC; STD_LOGIC; STD_LOGIC; 1-8 TN1206J_01.9 MachXO2 SRAM CRC エ ラ ー検出マ ク ロ使用ガ イ ド SEDERR SEDDONE SEDINPROG SEDCLKOUT END COMPONENT; attribute attribute attribute attribute attribute attribute : : : : out out out out STD_LOGIC; STD_LOGIC; STD_LOGIC; STD_LOGIC); SED_CLK_FREQ : string ; SED_CLK_FREQ of SEDinst0 : label is "13.30"; CHECKALWAYS : string ; CHECKALWAYS of SEDinst0 : label is "DISABLED" ; DEV_DENSITY : string ; DEV_DENSITY of SEDinst0 : label is "1200L" ; SEDinst0: SEDFA -- synthesis translate_off GENERIC MAP ( SED_CLK_FREQ => “13.30”; CHECKALWAYS => "DISABLED" ; DEV_DENSITY => "1200L" ) -- synthesis translate_on PORT MAP (SEDENABLE => '1', SEDSTART => sed_start, SEDFRCERR => '0', SEDSTDBY => sed_stdby, SEDERR => sed_err, SEDDONE => sed_done, SEDINPROG => sed_active, SEDCLKOUT => sed_clkout); SED Verilog 記述例 Verilog SEDFA module SEDFA (SEDENABLE, SEDSTART, SEDFRCERR, SEDSTDBY, SEDERR, SEDDONE, SEDINPROG, SEDCLKOUT); input output SEDENABLE, SEDSTART, SEDFRCERR, SEDSTDBY; SEDERR, SEDDONE, SEDINPROG, SEDCLKOUT; parameter SED_CLK_FREQ = "3.5"; parameter CHECKALWAYS = "DISABLED"; parameter DEV_DENSITY = "1200L"; //"256L","640L","1200L","2000L","4000L","7000L","640U", "1200U", and "2000U" endmodule Verilog SEDFA プ リ ミ テ ィ ブ ・ イ ン ス タ ン ス // instantiate SEDFA primitive module with parameter passing to SEDFA module SEDFA # (.SED_CLK_FREQ("4.75"), .DEV_DENSITY("1200L")) sedfa_tst (.SEDENABLE(1'b1), .SEDSTART(sed_start), .SEDFRCERR(1'b0), .SEDSTDBY(), 1-9 TN1206J_01.9 MachXO2 SRAM CRC エ ラ ー検出マ ク ロ使用ガ イ ド .SEDERR(sed_err), OUT(sed_clkout) ); .SEDDONE(sed_done), .SEDINPROG(sed_active), .SEDCLK- テ ク ニ カルサポー ト 支援 ホ ッ ト ラ イ ン :1-800-LATTICE ( 北米 ) +1-503-268-8001 ( 北米以外 ) e-mail: [email protected] イ ン タ ーネ ッ ト :www.latticesemi.com 日本語版変更履歴 日付 バージ ョ ン 新ページ 2011 年 8 月 01.4 - 2012 年 8 月 01.6 2, 3 2013 年 2 月 2013 年 12 月 01.8 1.9 変更内容 初版 ロ ゴ更新 検出制限の節 と 動作モー ド の節を追記更新 - ”SRAM CRC エ ラ ー検出 ” --> ”SED” に更新。 章番号を 16-->1 1 図 1-1 差 し 替え 2 ”SED の制約 ” 節、 お よ び ”SED 動作モー ド ” 節、 それぞれ更新 5 SEDSTART 項、 記述一部削除 6 ”SED フ ロ ー ” 節、 項番 2 削除 7 ”SED 動作 タ イ ミ ン グ ” 節 と 図 1-5 タ イ ミ ン グ、 お よ び表追加 5 SEDFRCERR 信号記述一部更新 6 SEDINPROG、 SEDERR 信号記述一部更新 1-10 TN1206J_01.9