1997. 7
PLDのフューズデータのフォーマットとしては、JEDECフォーマットが事実上の標準として利用されています。これはちょうどROMライタとHEXファイルの関係と同じです。PLDコンパイラは、この形式でコンパイル結果を出力し、PLDライタはこの形式のフューズデータを読み込むことになります。
JEDECフォーマットフューズデータは、STX(0x01)で始まりETX(0x02)までの間に記述されます。この中にさまざまな定義やデータなどのブロックが入ります。それぞれのブロックのデリミタには*を使用することになっています。CRやLFは空白文字として扱われます。次に例としてGAL16V8のフューズデータで説明しましょう。
^B ← STX GAL16V8*QP20*QF2194* ← 20pin PLDで、論理フューズ数 2194本。デバイス名は必須ではありません。 G0*F0* ← プロテクト無し。論理フューズのデフォルト値 0 。 L0000 11110111111111111111111111111111* ← 論理フューズ #0 から #31 まで指定。 L0256 01100111111111111111111111111111* ← 論理フューズ #256 から #287 まで指定。 L0288 01111101111011111111111111111111* L0320 01111101111111101111111111111111* L1056 11111101111011111101111111111111* L1088 11111101111111101101111111111111* L1568 11111101111011111111111111011111* 中 略 L1792 11111101110111011101110111011110* L1824 11111101111011111111111111111101* L1856 11111101111111101111111111111101* L1888 11111101111111111110111111111101* L1920 11111101111111111111111011111101* L1952 11111101111111111111111111101101* L2048 11111111* L2128 1111111111111111111111111111111111111111111111111111111111111111* L2192 01* C6B22* ← フューズデータのチェックサム。 ^CF66A ← ETX。続く 4桁の 16進数は、BCC(STXからETXまでの文字コードのサム)です。
PLDのピン数を指定するブロックです。例えば、24pin PLDならQP24となります。
論理フューズマップのサイズを指定するブロックです。例えば、2048本の論理フューズがあるなら、QF2048となります。
書き込み後 PLDにプロテクトをかけるかを指定します。G0ならフューズデータ読み出し可能、G1なら読み出し禁止となります。
フューズデータのデフォルト値(0か1)を指定します。Lブロックで転送されなかったフューズデータはこの値を取ります。
論理フューズの値。例えばPALの場合、1で該当するフューズを切断、0で残し(接続)ます。Lに続く数値は論理フューズ番号(アドレス)で、その後のデータがそのフューズ番号から順にフューズマップに入力されます。そのブロックのフューズの値がFブロックで指定した値と全て同じ場合は、そのLブロックは省略できます。論理フューズ番号とフューズの位置はそれぞれのデバイスごとに違いますが、大抵のSPLDではデバイスの論理図と JEDECファイルに見えるフューズの配置が一致します。
論理フューズデータのチェックサム。フューズマップをバイト単位で区切り、そのバイトを全て加算した値の下位16ビットを4桁の16進数で示します。
ファンクションテスト用ベクター。ファンクションチェック機能のあるPLDライタで利用されます。