特集
» 2008年08月01日 00時00分 UPDATE

Design Ideas:パラレル型のM系列符号生成器

[上田 直也(島津製作所),EDN]

 デジタルフィルタの検証を行う際には、ホワイトノイズを入力信号に加算したり、入力信号の発生タイミングをランダムにしたり、といったことを行いたいケースが多い。このような場合、通常は、擬似乱数発生器であるM系列符号生成器を用いる。その回路としては、図1に示すようなシフトレジスタとXORゲートで構成したシリアル型のものが一般的に用いられる。この場合、1クロックで1ビットのデータを送出するので、任意のビット幅の値を得るには、必要となるビット幅分のクロックが入力されるまで待たなければならない。例えば、デジタルフィルタの入力信号として4ビットのホワイトノイズを加算したいケースであれば、入力信号よりも4倍速いクロックが必要になるので扱いづらい。

図1 シリアル型のM系列符号生成器 図1 シリアル型のM系列符号生成器

 この問題を解決するために、1クロックで任意のビット幅の値が得られるようなパラレル型のM系列符号生成器を考案した。必要なビット数(出力ビット幅)、生成多項式とも任意に設定可能である(図2)。

図2 パラレル型のM系列符号生成器 図2 パラレル型のM系列符号生成器

 上述したように、シリアル型のM系列符号生成器では、所望のビット数を得るためにはその分だけのクロックが必要になる。それに対して、パラレル型のM系列符号生成器では必要な処理を一気に行う。すなわち、各ビットのデータを同時に処理する必要がある。そのため、ANDゲートとXORゲートを組み合わせた構成が、生成多項式に必要なビット幅の数だけ並列(縦)に並び、必要な出力ビット幅の数だけ直列(横)に並ぶことになる。つまり、生成多項式に必要なビット幅をBW、必要な出力ビット幅をBJとすると、AND/XOR回路の個数はBW×BJ個となる。なお、図2で用いている変数、信号名の意味は表1のとおりである。

表1 変数と信号名の意味 表1 変数と信号名の意味

 例として、生成多項式がX24+X4+X3+X1+1で、1クロックごとに4ビット幅のホワイトノイズが必要なケースを考える。その場合、BW=24、BJ=4、POLY="000000000000000000011010"、ENB=1で固定とすればよい。また、同じ生成多項式で平均16クロックに1回の割合でランダムなタイミングのパルスを生成したい場合には、この符号発生器からの出力と、0〜15の任意の値とを比較するコンパレータを配置することで実現できる。

 リスト1に、この回路のVHDLコードを示す。また、これを米Xilinx社の「Spartan-3 XC3S200FT256-4」で論理合成した結果を表2に示した。比較のために、シリアル型の結果も併記している。出力ビット幅が大きくなると規模が増加するが、数ビット程度の出力であれば、論理ゲートICで実装しても十分実用に耐え得る。また、生成多項式を固定にすれば、実際にはもっと規模が削減される。

表2 論理合成の結果 表2 論理合成の結果 注)ISE(IntegratedSoftwareEnvironment)9.1XSTでの結果。I/Oパッドの挿入なし
リスト1 VHDLコード リスト1 VHDLコード

関連キーワード

回路 | コンパレータ


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

RSSフィード

EDN 海外ネットワーク

All material on this site Copyright © 2005 - 2017 ITmedia Inc. All rights reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.