XC95144XL用ボード 使用方法

基板のピン配置

基板ピン配置 表  基板のピン配置は右の図のようになっています。
 この基板ではジャンパ・ピンの番号とファンクション・ブロックの関係は一致しています。また、ピンの番号とマクロセル番号も対応しています。
 例えば、J1の10番ピンはファンクション・ブロックのマクロセル10番に接続されています。

 見てのとおり、電源とグラウンドは隅に寄せてあります。これらのピンは内部で結線されているので、一箇所つなげばOKです。ただし、VCCIOとVCCINTは別物ですので、両方結線してください。

 JTAG用のピンがまとまっているのも注目です。

 XILINX-CPLDを基板に実装するときには、1番ピンの場所にご注意ください。「XILINX」と描かれたロゴを見るのではなく、チップの切りかきと丸ポッチの場所を参照して実装してください。

赤で描かれたピンはCPLDの内部電源です。これは3.3Vを供給してください。
紫色で描かれたピンはCPLDのI/O電源です。これは3.3Vまたは2.5Vを供給してください。
黄色で描かれたピンは、CPLDの書き込みのためのJTAGピンです。
黒で描かれたピンは、グラウンドです。
緑で描かれたピンは、CPLDのユーザーI/Oです。全部で117本あります。
白で描かれたピンはどこにも接続されていません。XC95144XLのマクロセルは全部で144個ありますが、ユーザーピンの数は117個しかないので、各ファンクション・ブロックあたり3〜5個のマクロセルがCPLDの内部接続専用になっています。欠番したマクロセルに対応するピンはNCにしてあります。詳しくは後の節で解説します。

基板の裏側

基板ピン配置 裏  基板の裏側にはチップ部品のパスコンがつきます。パスコンには0.1uFが適しています。チップサイズは1608,2012,3216などが実装できます。また、2箇所ある大きな灰色はチップ・タンタルコンデンサです。10uF程度の容量が適当ですが、無くても構わないと思います。現在のところグリーンレジストを作っていないので、タンタルは多少浮かせてつけてください。(下を走る信号線と接触しないために)
 大電流を高速でバチバチやるときには必要かもしれません。なお、タンタルコンデンサは極性があるので、間違えないでください。

半田付けが終わったら

 とにかく、良く観察して、ブリッジがないかどうかを確認してください。次に、電源のショートがないかどうかを確かめてください。89番ピンと90番ピンはともにGNDなのでつながっていても間違いではありません。

XC95144ボードのコネクタ配置(簡易版)

 テキストだけで描いたものもあります。J1などと描かれている方が1番ピン側です。
        ********J6
        ********J4
J2J1
* *   1          * *
* *    /     X   * *
* *          I   * *
* *          L   * *
* *          I   * *
* *          N   * *
* *          X   * *
* *              * *
* *              * *
   J3********** J7J8
   J5**********
           *****   -------- VCC,TDI,TCK,TDO,TMS,GND

ボード回路図

 回路図pdfファイル(約20kByte)

XC95144XL用ボード 解説

ファンクション・ブロック、マクロセルについて

 マクロセルというのは、XILINX-CPLDの基本的な構成要素で、そのCPLDの規模を示すものです。1マクロセルあたり、1個のフリップフロップが実装されているので、144マクロセルの製品は最大で144個のフリップフロップが使えます。各フリップフロップの入力には、積項と呼ばれる論理回路があり、ユーザーはこの論理回路を自由に設定することで任意の機能を実現させます。フリップフロップと積項を合わせたものがマクロセルだと考えても差し支えありません。
 積項には極めて複雑な論理式を記述することができます。XILINX-CPLDの9500シリーズは、積項内にあらかじめXORゲートを持っているので、XORゲートを記述しても論理の複雑さが急激に増すことはありませんし、マクロセル内のフリップフロップはD型にもT型にもなることができます。このため、カウンタ回路がとても簡単に実現できます。

 これらマクロセルをいくつか集めたものがファンクション・ブロックです。XC95シリーズでは18個のマクロセルで1つのファンクション・ブロックが構成されています。ファンクション・ブロック内では、マクロセルの出力を他のマクロセルの入力に入れるのは自由ですし、時間的な遅れも最小限にとどまります。

 以上のことより、ある機能を実現する回路は可能な限り同じファンクション・ブロックに配置した方が良い結果が得られるのがわかります。特にカウンタ回路は同じファンクションブロック内に作るとCPLDの持つ能力を発揮できます。
 しかしながらXC95シリーズとWebPACKはそれ自体とても高度なものなので、ユーザーはそれほど気にしなくても構いません。WebPACKのツールが最適化を自動的に行ってくれますので、慣れていないユーザーは気にしないほうがよいでしょう。

 デバイスの再設計を考慮に入れる場合や、リソース使用率100%に迫るような設計をする場合はファンクション・ブロックの配置を念頭に設計します。

 なお、PLDの規模をゲートサイズでいうときがありますが、144マクロセルは3200ゲート相当だそうです。

ファンクション・ブロックと使用可能入出力数

 XC95144XLTQ144の場合は、ユーザーI/Oピンが117本であるので、すべてのマクロセルが外部に出力されてはいません。そのため、いくつかのマクロセルは埋め込み(buried)という仕様になっています。埋め込みマクロセルは、内部結線では自由に使えますが、外部とのインターフェースには使えません。そのようなマクロセルが各ファンクション・ブロックに3〜5個存在します。マクロセル18はすべてのファンクション・ブロックで埋め込みです。
ファンクション・ブロック外部へのマクロセル数
FB115
FB215
FB315
FB415
FB514
FB613
FB715
FB815

ucfファイルについて

 このページの最後はXILINXのucfファイル形式になっています。ucfファイルとはUser Constraint Fileといって、ユーザーがデザインに対して制約をかけられるファイルです。制約といっても悪い意味ではなく、ピンの配置などを固定することを意味します。何も制約がないと論理合成ツールはピン配置などを勝手に決めてしまいますが、制約があるときには制約に従って決めます。つまり、制約されるのはユーザーではなく、制約をかけるのがユーザーなのです。そういうわけで、ユーザーがピン配置を決めるときにはucfファイルを書かなければならないのです。

 ucfファイルの#はコメントを意味します。各行のコメント部分にあるFB=1,MC=等の記述は、ピンの割り当てがわかりやすくなるように書き加えました。FBはファンクション・ブロック、MCはマクロセルの番号をあらわしています。N/AはユーザーIOとして使えないピンを意味します。GCK,GTS,GSRとなっているのはグローバルピンです。GCKはグローバルクロックという信号です。グローバル信号はCPLDの全体に行き渡る専用の配線を持っています。
 そのためクロックなどCPLD全体で使う信号はこのグローバルピンを使うように心がけます。ちなみにGCKは3本あり、このCPLDは3相のクロックを同等に扱えます。GTSはグローバル・トライステートで、CPLDのI/Oを一気にハイ・インピーダンスにするのに使います。GSRはグローバル・セット・リセットで、CPLD内のフリップフロップを一気に非同期セット・リセットするのに使います。GTSやGSRは私はいままでに使ったことはありませんし、滅多に使う必要はないでしょう。もちろんこれらのピンは普通のIOピンとしても使えますが、逆はできません。つまり普通のIOピンをグローバル信号にすることはできません。

 下のucfファイルで、""で囲まれた部分にあなたのデザインで使った信号名を入れてください。""のままだとWebPACKは誤動作をします。LOC=の"S:23"という表現はピン番号を表しています。
#Function block 1 , USER I/O = 15
NET ""		LOC = "S:23";	#FB=1,MC=1
NET ""		LOC = "S:16";	#FB=1,MC=2  ,GTS3
NET ""		LOC = "S:17";	#FB=1,MC=3  ,GTS4
NET ""		LOC = "S:25";	#FB=1,MC=4
NET ""		LOC = "S:19";	#FB=1,MC=5  ,GTS1
NET ""		LOC = "S:20";	#FB=1,MC=6  ,GTS2
#NET ""		LOC = "S:";	#FB=1,MC=7  ,N/A
NET ""		LOC = "S:21";	#FB=1,MC=8
NET ""		LOC = "S:22";	#FB=1,MC=9
NET ""		LOC = "S:31";	#FB=1,MC=10
NET ""		LOC = "S:24";	#FB=1,MC=11
NET ""		LOC = "S:26";	#FB=1,MC=12
#NET ""		LOC = "S:";	#FB=1,MC=13 ,N/A
NET ""		LOC = "S:27";	#FB=1,MC=14
NET ""		LOC = "S:28";	#FB=1,MC=15
NET ""		LOC = "S:35";	#FB=1,MC=16
NET ""		LOC = "S:30";	#FB=1,MC=17 ,GCK1
#NET ""		LOC = "S:";	#FB=1,MC=18 ,N/A

#Function block 2 , USER I/O = 15
NET ""		LOC = "S:142";	#FB=2,MC=1
NET ""		LOC = "S:143";	#FB=2,MC=2  ,GSR
#NET ""		LOC = "S:";	#FB=2,MC=3  ,N/A
NET ""		LOC = "S:4";	#FB=2,MC=4
NET ""		LOC = "S:2";	#FB=2,MC=5
NET ""		LOC = "S:3";	#FB=2,MC=6
#NET ""		LOC = "S:";	#FB=2,MC=7  ,N/A
NET ""		LOC = "S:5";	#FB=2,MC=8
NET ""		LOC = "S:6";	#FB=2,MC=9
NET ""		LOC = "S:7";	#FB=2,MC=10
NET ""		LOC = "S:9";	#FB=2,MC=11
NET ""		LOC = "S:10";	#FB=2,MC=12
NET ""		LOC = "S:12";	#FB=2,MC=13
NET ""		LOC = "S:11";	#FB=2,MC=14
NET ""		LOC = "S:13";	#FB=2,MC=15
NET ""		LOC = "S:14";	#FB=2,MC=16
NET ""		LOC = "S:15";	#FB=2,MC=17
#NET ""		LOC = "S:";	#FB=2,MC=18 ,N/A

#Function block 3 , USER I/O = 15
NET ""		LOC = "S:39";	#FB=3,MC=1
NET ""		LOC = "S:32";	#FB=3,MC=2 ,GCK2
NET ""		LOC = "S:41";	#FB=3,MC=3
NET ""		LOC = "S:44";	#FB=3,MC=4
NET ""		LOC = "S:33";	#FB=3,MC=5
NET ""		LOC = "S:34";	#FB=3,MC=6
NET ""		LOC = "S:46";	#FB=3,MC=7
NET ""		LOC = "S:38";	#FB=3,MC=8 ,GCK3
NET ""		LOC = "S:40";	#FB=3,MC=9
NET ""		LOC = "S:48";	#FB=3,MC=10
NET ""		LOC = "S:43";	#FB=3,MC=11
NET ""		LOC = "S:45";	#FB=3,MC=12
#NET ""		LOC = "S:";	#FB=3,MC=13 ,N/A
NET ""		LOC = "S:49";	#FB=3,MC=14
NET ""		LOC = "S:50";	#FB=3,MC=15
#NET ""		LOC = "S:";	#FB=3,MC=16 ,N/A
NET ""		LOC = "S:51";	#FB=3,MC=17
#NET ""		LOC = "S:";	#FB=3,MC=18 ,N/A

#Function block 4 , USER I/O = 15
NET ""		LOC = "S:118";	#FB=4,MC=1
NET ""		LOC = "S:126";	#FB=4,MC=2
NET ""		LOC = "S:133";	#FB=4,MC=3
#NET ""		LOC = "S:";	#FB=4,MC=4  ,N/A
NET ""		LOC = "S:128";	#FB=4,MC=5
NET ""		LOC = "S:129";	#FB=4,MC=6
#NET ""		LOC = "S:";	#FB=4,MC=7  ,N/A
NET ""		LOC = "S:130";	#FB=4,MC=8
NET ""		LOC = "S:131";	#FB=4,MC=9
NET ""		LOC = "S:135";	#FB=4,MC=10
NET ""		LOC = "S:132";	#FB=4,MC=11
NET ""		LOC = "S:134";	#FB=4,MC=12
NET ""		LOC = "S:137";	#FB=4,MC=13
NET ""		LOC = "S:136";	#FB=4,MC=14
NET ""		LOC = "S:138";	#FB=4,MC=15
NET ""		LOC = "S:139";	#FB=4,MC=16
NET ""		LOC = "S:140";	#FB=4,MC=17
#NET ""		LOC = "S:";	#FB=4,MC=18 ,N/A

#Function block 5 , USER I/O = 14
#NET ""		LOC = "S:";	#FB=5,MC=1  ,N/A
NET ""		LOC = "S:52";	#FB=5,MC=2
NET ""		LOC = "S:59";	#FB=5,MC=3
#NET ""		LOC = "S:";	#FB=5,MC=4  ,N/A
NET ""		LOC = "S:53";	#FB=5,MC=5
NET ""		LOC = "S:54";	#FB=5,MC=6
NET ""		LOC = "S:66";	#FB=5,MC=7
NET ""		LOC = "S:56";	#FB=5,MC=8
NET ""		LOC = "S:57";	#FB=5,MC=9
NET ""		LOC = "S:68";	#FB=5,MC=10
NET ""		LOC = "S:58";	#FB=5,MC=11
NET ""		LOC = "S:60";	#FB=5,MC=12
NET ""		LOC = "S:70";	#FB=5,MC=13
NET ""		LOC = "S:61";	#FB=5,MC=14
NET ""		LOC = "S:64";	#FB=5,MC=15
#NET ""		LOC = "S:";	#FB=5,MC=16 ,N/A
NET ""		LOC = "S:69";	#FB=5,MC=17
#NET ""		LOC = "S:";	#FB=5,MC=18 ,N/A

#Function block 6 , USER I/O = 13
#NET ""		LOC = "S:";	#FB=6,MC=1  ,N/A
NET ""		LOC = "S:106";	#FB=6,MC=2
#NET ""		LOC = "S:";	#FB=6,MC=3  ,N/A
NET ""		LOC = "S:111";	#FB=6,MC=4
NET ""		LOC = "S:110";	#FB=6,MC=5
NET ""		LOC = "S:112";	#FB=6,MC=6
#NET ""		LOC = "S:";	#FB=6,MC=7  ,N/A
NET ""		LOC = "S:113";	#FB=6,MC=8
NET ""		LOC = "S:116";	#FB=6,MC=9
NET ""		LOC = "S:115";	#FB=6,MC=10
NET ""		LOC = "S:119";	#FB=6,MC=11
NET ""		LOC = "S:120";	#FB=6,MC=12
#NET ""		LOC = "S:";	#FB=6,MC=13 ,N/A
NET ""		LOC = "S:121";	#FB=6,MC=14
NET ""		LOC = "S:124";	#FB=6,MC=15
NET ""		LOC = "S:117";	#FB=6,MC=16
NET ""		LOC = "S:125";	#FB=6,MC=17
#NET ""		LOC = "S:";	#FB=6,MC=18 ,N/A

#Function block 7 , USER I/O = 15
#NET ""		LOC = "S:";	#FB=7,MC=1  ,N/A
NET ""		LOC = "S:71";	#FB=7,MC=2
NET ""		LOC = "S:75";	#FB=7,MC=3
#NET ""		LOC = "S:";	#FB=7,MC=4  ,N/A
NET ""		LOC = "S:74";	#FB=7,MC=5
NET ""		LOC = "S:76";	#FB=7,MC=6
NET ""		LOC = "S:77";	#FB=7,MC=7
NET ""		LOC = "S:78";	#FB=7,MC=8
NET ""		LOC = "S:80";	#FB=7,MC=9
NET ""		LOC = "S:79";	#FB=7,MC=10
NET ""		LOC = "S:82";	#FB=7,MC=11
NET ""		LOC = "S:85";	#FB=7,MC=12
NET ""		LOC = "S:81";	#FB=7,MC=13
NET ""		LOC = "S:86";	#FB=7,MC=14
NET ""		LOC = "S:87";	#FB=7,MC=15
NET ""		LOC = "S:83";	#FB=7,MC=16
NET ""		LOC = "S:88";	#FB=7,MC=17
#NET ""		LOC = "S:";	#FB=7,MC=18 ,N/A

#Function block 8 , USER I/O = 15
#NET ""		LOC = "S:";	#FB=8,MC=1  ,N/A
NET ""		LOC = "S:91";	#FB=8,MC=2
NET ""		LOC = "S:95";	#FB=8,MC=3
NET ""		LOC = "S:97";	#FB=8,MC=4
NET ""		LOC = "S:92";	#FB=8,MC=5
NET ""		LOC = "S:93";	#FB=8,MC=6
#NET ""		LOC = "S:";	#FB=8,MC=7  ,N/A
NET ""		LOC = "S:94";	#FB=8,MC=8
NET ""		LOC = "S:96";	#FB=8,MC=9
NET ""		LOC = "S:101";	#FB=8,MC=10
NET ""		LOC = "S:98";	#FB=8,MC=11
NET ""		LOC = "S:100";	#FB=8,MC=12
NET ""		LOC = "S:103";	#FB=8,MC=13
NET ""		LOC = "S:102";	#FB=8,MC=14
NET ""		LOC = "S:104";	#FB=8,MC=15
NET ""		LOC = "S:107";	#FB=8,MC=16
NET ""		LOC = "S:105";	#FB=8,MC=17
#NET ""		LOC = "S:";	#FB=8,MC=18 ,N/A

注意事項

 動作の保証は一切ありません。

アフターケアとサポートは

 アフターケアおよびサポートは終了しました。
前のページに戻る
ホームページに戻る
御意見、御感想はnahitafu at nifty "remove this" dot com
Copyright(c)1998-2000 Nahitafu All rights reserved