Comments
Description
Transcript
3-15 CPLD
Development of 32bit×32k words, 100MHz Datalogger with CPLD device Tomonori Toyoda and Atsushi Kawamotoa) Institute for Molecular Science,Ochanomizu Universitya) CPLD を用いた 32bit×32k words 100MHz データロガーの開発 はじめに NMR(核磁気共鳴)実験で検出される FID(自由誘導減衰)シグナルを A/D 変換して記録する際に、FID シグナルの減衰 速度に応じて ADC の動作クロック周波数を考える。 溶液の NMR では 1msec 程度で減衰する信号なので ADC は 100kHz 程度で十分だが、固体の場合は数 10μsec になるため、数 MHz 以上の高速 ADC が必要になる。 これに高分解能という条件が加わると ADC の選定は難しくなる。ディジタルオシロスコープは高速だが分解能は通 常 8bit であり(有効 bit 長はそれ以下)、それ以上になると品数は少なく、また非常に高価である。PC の拡張ボードなど で直接 10MHz 以上のデータを取り込むのは難しい。そこで、一度 A/D 変換したデータを FIFO に蓄積した後、PC で それを読み出すことが適当な方法として考えられる。 今回製作したデータロガーは、12bit,40MHz の A/D ボードを 2 系統搭載し、FIFO 部は 16bit(8bit×2 の I/O と 32k のア ドレスを 2 系統持ち、最大 100MHz で動作する。A/D ボードを交換することでより高速、高分解能の ADC に対応でき る。NMR に限らず、計測における過渡信号の高速高分解能測定に幅広く利用できる。 本稿では本装置の制御全般を行うロジック回路開発に CPLD(Complex PLD)と VHDL(VHSIC Hard Description Language)を用いたことを踏まえ、研究用電子機器開発における VHDL 設計の特長と注意点を中心に述べる。 本装置の概要と VHDL 設計 本装置のブロック・ダイアグラムを図 1 に示す。本装置は PC(DOS/V)のプリンタ・ポートと接続して、表 1 の信号を 送受信する。 図 1:データロガーのブロック・ダイアグラム ロジック回路は PC から受信した 3 種類の制御信号と、4 個の FIFO の/EF 並びに/FF を基に、クロック周波数の選択、 各種制御信号の出力をあらかじめ決められたステートに沿って行う。このステートの遷移図を図 2 に示す。ステート・ マシンの利点は少数の制御信号で複雑な動作を実現できることにあるが、これを回路図と TTL IC の組み合わせ(回路 図設計)で構成しようとすると、多数の IC を組み合わせることによって基板面積が拡大する、誤配線が発生し易い、回 路の機能変更が困難になる、そして高速クロック動作に対して配線長が冗長になるなど、多くの問題を抱える。 表 1:プリンタ・ポートで送受信する信号 図 2:ロジック回路の状態遷移図 そこでロジック回路の開発にあたっては、VHDL で機能を記述して CPLD をプログラミングする手法(VHDL 設計)を 取りいれた。回路図設計との最大の相違点は、回路図設計がシンボルの接続によって目的の回路の「構造」を示すのに対 し、VHDL 設計が所定の文法に沿ったテキストで「機能」を示すということである。VHDL 設計での「構造」はコンパイ ラが生成する JEDEC ファイルである 1)。 VHDL 設計では構造即ち論理式をさほど考える必要がなく、回路図設計では難しいステートマシンや同期式回路が 比較的容易に構成できる。また、単一の IC に機能を集約できるので基板面積を節減できると同時に、高速クロック動 作に対して配線長を短縮できて有利である。階層設計や再利用も簡単に行える。他に、製造技術の向上によるデバイス の高集積化、高速化に同一の VHDL ソースで対応できる。さらに言えば、デバイスが存在しない、或いは未入手や未 定の段階でも機能を考えて VHDL ソースを記述し、後でデバイスを選定することもできる。 本装置で使用した CPLD の CY371i-110JC(Cypress Semiconductor)は、ISR(In System Reprogramming)が可能であるのも 大きな特長の一つである。ISR とは写真 1 の専用ケーブルでホスト PC と基板とを接続し、基板に CPLD を実装した状 態でプログラミングができる機能である(写真 2)。そのため、プログラマが不要で、CPLD を実装した状態で機能変更 に素早く対応できる 1)。開発過程では試行錯誤することが多く、機能の変更が必要な場合も多い。VHDL 設計と ISR を 用いればそれらを非常に効率良く行える。 写真 1:ISR ケーブル 写真 2:ISR 実行の様子 VHDL 設計の注意点 VHDL 設計は本装置の開発に大きな役割を果たしたが、同時に決して万能の手法ではないことも分かった。VHDL ソースの一例(一部)をリスト 1 に示す。ライブラリの読み込みに始まり、入出力を定義して、回路動作の定義へと移る のが大まかな流れである。 VHDL 設計で注意すべき点は、命令を逐次メモリから 読み出して実行するノイマン型言語ではないこと、たとえ 文法に間違いが無くても、記述次第では実際のデバイスに フィットできなかったり、意図した機能と食い違う場合が 生じることである。 例えば以下の記述 2)で A=1,B=C=0 の時を考える。 process(A,B,C,D)begin D<=A; X<=B or D; D<=C; Y<=B or D end process; ノイマン型言語では先頭から順次処理していくので、X は B or A で 1、Y はB or C で 0 となるが、VHDL では X,Y 共に B or C で結果は 0 になる。 これは、VHDL の記述がロジック回路の構成に直結す ることに起因する。コンパイラは上の記述を順番に評価し ていき、その接続関係から図 3 の回路を想定する。この過 程で、コンパイラは 2 つの OR 回路に接続される D に代 入すべき信号は A ではなくて C と判断して、結果的に A を度外視してしまう。 このようにソフトウェア言語の感覚で直前の代入結果を 利用した記述をすると、思わぬ結果を招くことがある。 リスト 1:VHDL ソースの例 図 3:コンパイラが想定した ロジック回路 図 4:71169 のロジック等価回路 3) リスト 1 はリップル・キャリ付き 8bit 同期カウンタの例であるが、 単純に bit 数を拡張すると、入出力ピンは足りているにもかかわらず、 多数のマクロ・セルを持つ CPLD でもフィットできない場合が生じる。 これは、リップル・キャリ付き同期カウンタの構成と CPLD のマクロ・ セル構造を知っていれば理解できる。 同期カウンタの一つ 74169 はロジック回路では図 4 のように表せる。 一方、CPLD のアーキテクチャは図 5 のように、プログラム可能な論理 演算回路(プロダクト・ターム)、フリップ・フロップとフィードバック からなるマクロ・セル、そして I/O セルで構成される。単純にカウンタ の bit 数を増やそうとすると、上位 bit で多入力ゲートが必要になる。 デバイスにフィットさせようとすると多入力ゲートを実現するために配 線を引き回し、他のブロックのプロダクト・タームやそれに接続される マクロ・セルを数多く消費する。 そのため他の部分を構成できなくなり、 結果として回路がデバイスにフィットしないということになる。 このような事態を防ぐには、VHDL が目的の回路をゲート素子とラ ッチで置換するツールであり、CPLD が無限の論理演算回路を持ってい るのではないことを踏まえて、どのようなロジックが構成されるかを想 定しながら記述していくことが必要である。 また、設計した回路が 1 つの CPLD に集約されると、VHDL ソース を変更しない限り、信号生成の過程をオシロスコープなどで目視できな い(ブラック・ボックスになる)。そのため、VHDL 設計ではシミュレー ション段階での検証が非常に重要である。 まとめ VHDL 設計を始めた当初は、ソフトウェアのプログラミングとの違 いに戸惑い、トラブルが続出した。しかし慣れていくに従い、TTL IC では難しかったステートマシンや同期式回路が簡単に実現できること、 ISR と組み合わせることで、目的の回路をテキストで入力して特別な装 置なしで素早く実現できること、論理式を考えて回路図を描く必要が殆 どなくなったことで、回路の機能の設計により集中できるようになった ことなど、VHDL 設計の強みを実感するようになった。 今後も試行錯誤が求められるロジック回路開発を中心に、VHDL 設 計を積極的に行っていきたいと考えている。 参考文献 図 5:PLD(22V10)のアーキテクチャ 4) 1)「トランジスタ技術」1998 年 12 月号 p267∼275 発行:CQ 出版社 2)「VHDL によるハードウェア設計入門」 著者:長谷川裕恭 発行:CQ 出版社 3)「最新74 シリーズ IC 規格表」98 年度版 発行:CQ 出版社 4)「VHDL for PROGRAMMABLE LOGIC」 著者:Kevin Skahill 発行:Cypress Semiconductor