JP2000078030A - Interleaving address generator and interleaving address generation method - Google Patents

Interleaving address generator and interleaving address generation method

Info

Publication number
JP2000078030A
JP2000078030A JP10243718A JP24371898A JP2000078030A JP 2000078030 A JP2000078030 A JP 2000078030A JP 10243718 A JP10243718 A JP 10243718A JP 24371898 A JP24371898 A JP 24371898A JP 2000078030 A JP2000078030 A JP 2000078030A
Authority
JP
Japan
Prior art keywords
step width
address
value
output
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10243718A
Other languages
Japanese (ja)
Inventor
Takafumi Ito
隆文 伊藤
Takayuki Aono
孝之 青野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP10243718A priority Critical patent/JP2000078030A/en
Publication of JP2000078030A publication Critical patent/JP2000078030A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To generate a read/write address to a memory so that a continuous interleaving processing on data of a plurality of blocks is realized with one memory. SOLUTION: An address generator 1 generating a read/write address to a memory for executing an interleaving on N rows × M columns where N×M data are made into one block is provided with an address counter 3 executing count-up from zero at step width which is synchronized with a clock and is inputted, outputting the count value as the address, setting a value obtained by modulo-operating the value by (N×M-1) to be the next count value when the count value at the next clock becomes not less than (N×M), and returning the next count value to '0' when the count value becomes (N×M-1) and a step width computing element 5 changing step width to the counter 3 to a value obtained by (NμM-1) modulo-operating a value obtained by multiplying step width till then by M whenever the count value returns to '0'.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、デジタル通信技術
に関し、特に、デジタル通信システムにおけるバースト
誤りの影響を低減するためのインターリーブ処理に関す
るものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to digital communication technology, and more particularly, to an interleaving process for reducing the influence of a burst error in a digital communication system.

【0002】[0002]

【従来の技術】一般に、デジタル通信システムの無線伝
送路上で発生するバースト誤りは、誤りデータが集中的
に発生するため、無線伝送路で伝送するデータに対して
ビタビデコーダやリードソロモンデコーダ等による誤り
訂正処理を直接適用しても、大きな効果が得られない。
2. Description of the Related Art In general, a burst error occurring on a radio transmission path of a digital communication system is such that error data is intensively generated. Even if the correction processing is directly applied, a great effect cannot be obtained.

【0003】そこで、従来より、無線伝送路で伝送する
データに対して、誤り訂正処理と共にインターリーブ処
理を併用することで、バースト誤りによる集中した誤り
データを分散させてランダム誤りに変換し、これによ
り、誤り訂正効果の改善を図るようにしている。
[0003] Therefore, conventionally, by using an interleaving process together with an error correction process on data transmitted through a wireless transmission path, concentrated error data due to a burst error is dispersed and converted into a random error. The error correction effect is improved.

【0004】このインターリーブ処理では、送信側でデ
ータの順序を入れ替えて送信するようにしている。そし
て、受信側で送信側と逆の操作を行うことにより、デー
タを元の順序に戻している。こうすることにより、伝送
路でのバースト誤りが分散されてランダムな誤りに変換
されるため、誤り訂正効果を高めることができる。
[0004] In this interleaving process, the transmitting side changes the order of data and transmits the data. Then, the data is returned to the original order by performing the reverse operation of the transmitting side on the receiving side. By doing so, the burst errors in the transmission path are dispersed and converted into random errors, so that the error correction effect can be enhanced.

【0005】ここで、こうしたインターリーブ処理にお
いて、N×M個(但し、NとMは2以上の整数)を1ブ
ロックとするデータの順序を入れ替えるために、RAM
(ランダムアクセスメモリ)を用いる方法がある。そし
て、この方法では、RAMにN行の行アドレスとM列の
列アドレスがあるものと仮定して、その行アドレスの順
でRAMに入力データを書き込み、その書き込み終了後
に、列アドレスの順でRAMからデータを読み出すこと
により、仮想的な行アドレスと列アドレスとのX−Y変
換を行って、入力データを入力時の順序とは異なる順序
で出力するようにしている。
Here, in such an interleaving process, in order to change the order of N × M data (where N and M are integers of 2 or more) as one block, a RAM is used.
(Random access memory). In this method, assuming that the RAM has N row addresses and M column addresses, the input data is written to the RAM in the order of the row addresses, and after the writing is completed, the input data is written in the order of the column addresses. By reading data from the RAM, XY conversion between a virtual row address and a column address is performed, and input data is output in a different order from the input order.

【0006】例えば、図7に示すように、こうしたイン
ターリーブ処理を行う従来のインターリーブ回路101
は、データ入力端子DINからの入力データを格納する
と共に、その格納したデータをデータ出力端子DOUT
から出力するRAM103と、クロック入力端子CLK
からのクロックに同期して、初期値0から1ずつカウン
トアップ動作を行うn+1ビットのアドレスカウンタ1
05、及び、アドレスカウンタ105から出力されるn
+1ビットのデータQ0 〜Qn のうちで、最上位ビット
Qn 以外のnビットデータQ0 〜Qn-1 が、nビット分
の第1入力端子a0 〜an-1 に入力されると共に、アド
レスカウンタ105からの上記nビットデータQ0 〜Q
n-1 における下位mビットQ0 〜Qm-1 と上位(n−
m)ビットQm 〜Qn-1 とを入れ替えたnビットデータ
Qm 〜Qn-1 ,Q0 〜Qm-1 が、nビット分の第2入力
端子b0 〜bn-1 に入力されたアドレスセレクタ107
からなるインターリーブアドレス発生器とを備えてい
る。
For example, as shown in FIG. 7, a conventional interleave circuit 101 for performing such interleave processing is used.
Stores the input data from the data input terminal DIN, and transfers the stored data to the data output terminal DOUT.
And a clock input terminal CLK
N + 1-bit address counter 1 that counts up from the initial value 0 by 1 in synchronization with the clock from
05 and n output from the address counter 105
Of the + 1-bit data Q0 to Qn, n-bit data Q0 to Qn-1 other than the most significant bit Qn are input to the n-bit first input terminals a0 to an-1 and from the address counter 105. N-bit data Q0 to Q
The lower m bits Q0 to Qm-1 and the upper (n-
m) Address selector 107 in which n-bit data Qm to Qn-1 and Q0 to Qm-1 in which bits Qm to Qn-1 are exchanged are input to n-bit second input terminals b0 to bn-1.
And an interleaved address generator.

【0007】そして、アドレスセレクタ107は、アド
レスカウンタ105の最上位ビットQn が例えば「0」
の場合には、第1入力端子a0 〜an-1 に入力されるア
ドレスカウンタ105からのデータQ0 〜Qn-1 を、自
己の出力端子Y0 〜Yn-1 からRAM103のアドレス
入力端子A0 〜An-1 へ書き込みアドレスとして出力
し、逆に、アドレスカウンタ105の最上位ビットQn
が「1」の場合には、第2入力端子b0 〜bn-1 に入力
されるアドレスカウンタ105からのデータQm〜Qn-1
,Q0 〜Qm-1 を、自己の出力端子Y0 〜Yn-1 から
RAM103のアドレス入力端子A0 〜An-1 へ読み出
しアドレスとして出力する。
In the address selector 107, the most significant bit Qn of the address counter 105 is, for example, "0".
In this case, the data Q0 to Qn-1 from the address counter 105 input to the first input terminals a0 to an-1 are transferred from the own output terminals Y0 to Yn-1 to the address input terminals A0 to An- of the RAM 103. 1 as a write address, and conversely, the most significant bit Qn of the address counter 105.
Is "1", the data Qm to Qn-1 from the address counter 105 input to the second input terminals b0 to bn-1.
, Q0 to Qm-1 are output as read addresses from their own output terminals Y0 to Yn-1 to address input terminals A0 to An-1 of the RAM 103.

【0008】そして更に、RAM103は、アドレスカ
ウンタ105の最上位ビットQn が「0」の場合には、
データ入力端子DINからクロックに同期して順次入力
されるデータを、アドレス入力端子A0 〜An-1 に入力
されるデータにより示されるアドレスに格納し、また、
アドレスカウンタ105の最上位ビットQn が「1」の
場合には、アドレス入力端子A0 〜An-1 に入力される
データにより示されるアドレスのデータを、クロックに
同期してデータ出力端子DOUTから順次出力する。
Further, when the most significant bit Qn of the address counter 105 is "0", the RAM 103
Data sequentially input from the data input terminal DIN in synchronization with the clock is stored at an address indicated by the data input to the address input terminals A0 to An-1.
When the most significant bit Qn of the address counter 105 is "1", the data of the address indicated by the data input to the address input terminals A0 to An-1 is sequentially output from the data output terminal DOUT in synchronization with the clock. I do.

【0009】このようなインターリーブ回路101で
は、入力データをRAM103に書き込む場合には、ア
ドレスセレクタ107によって、アドレスカウンタ10
5からのnビットデータQ0 〜Qn-1 が、そのままRA
M103のアドレス入力端子A0 〜An-1 へ書き込みア
ドレスとして出力されるため、RAM103の0番地か
ら順にデータが書き込まれることとなる。
In such an interleave circuit 101, when input data is written to the RAM 103, the address counter 107 is used by the address selector 107.
The n-bit data Q0 to Qn-1 from 5 are stored in the RA
Since the data is output as a write address to the address input terminals A0 to An-1 of M103, data is written in order from address 0 of the RAM 103.

【0010】また、RAM103からデータを読み出す
場合には、アドレスセレクタ107によって、アドレス
カウンタ105からのnビットデータQ0 〜Qn-1 にお
ける下位mビットQ0 〜Qm-1 と上位(n−m)ビット
Qm 〜Qn-1 とを入れ替えたnビットデータQm 〜Qn-
1 ,Q0 〜Qm-1 が、RAM103のアドレス入力端子
A0 〜An-1 へ読み出しアドレスとして出力されるた
め、データの書き込み時に対してRAM103の行アド
レスと列アドレスとを入れ替えた順序でデータが読み出
されることとなる。
When reading data from the RAM 103, the address selector 107 causes the lower m bits Q0 to Qm-1 and the upper (nm) bits Qm of the n-bit data Q0 to Qn-1 from the address counter 105 to be read. To Qn-1 and n-bit data Qm to Qn-
1, Q0 to Qm-1 are output to the address input terminals A0 to An-1 of the RAM 103 as read addresses, so that data is read in the order in which the row address and the column address of the RAM 103 are exchanged with respect to the time of data writing. It will be.

【0011】例えば、4行×4列でのインターリーブ処
理を行った場合(即ち、4×4個のデータを1ブロック
としてインターリーブ処理を行った場合)、データ入力
端子DINからの入力データは、図8(A)に示すアド
レスの順序でRAM103に書き込まれることとなる。
そして、1ブロック分の16(=4×4)個のデータが
全て書き込まれると、次に、図8(B)に示すアドレス
の順序でRAM103からデータが読み出され、その読
み出されたデータがデータ出力端子DOUTから順次出
力されることとなる。尚、図8(A)における○内の番
号は、データを書き込むアドレスの順序を示しており、
図8(B)における△内の番号は、データを読み出すア
ドレスの順序を示している。
For example, when interleaving processing is performed in 4 rows × 4 columns (ie, when interleaving processing is performed with 4 × 4 data as one block), the input data from the data input terminal DIN is as shown in FIG. The data is written to the RAM 103 in the order of the address shown in FIG.
When all 16 (= 4 × 4) data for one block have been written, data is read from the RAM 103 in the order of addresses shown in FIG. 8B, and the read data is read out. Are sequentially output from the data output terminal DOUT. Note that the numbers in the circles in FIG. 8A indicate the order of addresses to write data.
The numbers in parentheses in FIG. 8B indicate the order of addresses from which data is read.

【0012】よって、1ブロック分の入力データに対し
て1番目のものから順にD1 ,D2,D3 ,…,D14,
D15,D16というインデックスを付けるとすると、デー
タ出力端子DOUTからは、入力データが、D1 ,D5
,D9 ,D13,D2 ,D6 ,D10,D14,D3 ,D7
,D11,D15,D4 ,D8 ,D12,D16という順に並
べ替えられて出力されることとなる。
Thus, for one block of input data, D1, D2, D3,..., D14,.
Assuming that indexes D15 and D16 are provided, input data is input from the data output terminal DOUT to D1 and D5.
, D9, D13, D2, D6, D10, D14, D3, D7
, D11, D15, D4, D8, D12, D16 in that order.

【0013】[0013]

【発明が解決しようとする課題】ところで、上記従来の
インターリーブ回路101では、RAM103からのデ
ータ読み出しを終えるまでは、1ブロック分のデータを
保持する必要がある。よって、順次入力される複数のブ
ロックのデータを連続してインターリーブ処理するため
には、図9に示すように、図7のインターリーブ回路1
01と同じ構成を有する2つの回路ブロック101A,
101Bと、一方の回路ブロック101Bへクロックが
供給され始めるのを1ブロック分だけ遅延させる遅延回
路109と、他方の回路ブロック101Aにおけるアド
レスカウンタ105の最上位ビットQn が「1」の場合
に、回路ブロック101Aのデータ出力端子DOUTか
ら出力されるデータを出力データとして出力し、逆に、
上記最上位ビットQn が「0」の場合には、回路ブロッ
ク101Bのデータ出力端子DOUTから出力されるデ
ータを出力データとして出力するセレクタ111とか
ら、インターリーブ回路を構成し、回路ブロック101
A,101Bの各々が、図10に示すようなタイミング
で、RAM103にデータを書き込むフェーズと、RA
M103からデータを読み出すフェーズとを、交互に受
け持つようにする必要がある。
By the way, in the above-mentioned conventional interleave circuit 101, it is necessary to hold one block of data until the data reading from the RAM 103 is completed. Therefore, in order to continuously interleave data of a plurality of blocks that are sequentially input, as shown in FIG. 9, the interleave circuit 1 shown in FIG.
01, two circuit blocks 101A,
101B, a delay circuit 109 for delaying the start of the clock supply to one circuit block 101B by one block, and a circuit when the most significant bit Qn of the address counter 105 in the other circuit block 101A is "1". Data output from the data output terminal DOUT of the block 101A is output as output data, and conversely,
When the most significant bit Qn is "0", an interleave circuit is constituted by the selector 111 that outputs data output from the data output terminal DOUT of the circuit block 101B as output data.
A and 101B each have a phase of writing data to the RAM 103 at the timing shown in FIG.
It is necessary to alternately handle the phase of reading data from M103.

【0014】尚、図10は、図8と同様に、4×4個の
データを1ブロックとしてインターリーブ処理を行った
場合を示している。そして、図10において、Qn が
「1」の場合に出力されている番号が1〜16までの出
力データと、番号が33以上の出力データは、回路ブロ
ック101Aによってインターリーブ処理されたもので
あり、Qn が「0」の場合に出力されている番号が17
〜32までの出力データは、回路ブロック101Bによ
ってインターリーブ処理されたものである。
FIG. 10 shows a case where an interleave process is performed with 4 × 4 data as one block, as in FIG. In FIG. 10, the output data of numbers 1 to 16 and the output data of number 33 or more output when Qn is “1” are interleaved by the circuit block 101A, The number output when Qn is "0" is 17
Output data up to 32 are data subjected to interleave processing by the circuit block 101B.

【0015】このように、従来の技術では、順次入力さ
れる複数のブロックのデータに対してインターリーブ処
理を連続して行うためには、アドレスカウンタ105及
びアドレスセレクタ107からなるインターリーブアド
レス発生器と、RAM103とを、2つずつ設ける必要
があり、インターリーブ処理を行うための回路を小型化
することが困難であった。そして特に、この種のインタ
ーリーブ処理は、移動体通信機器等で実施されるため、
インターリーブ処理を行う回路は小型であることが要求
される。
As described above, in the prior art, in order to continuously perform interleaving processing on a plurality of blocks of data that are sequentially input, an interleaved address generator including the address counter 105 and the address selector 107 includes: It is necessary to provide two RAMs 103 each, and it is difficult to reduce the size of the circuit for performing the interleave processing. And especially, since this kind of interleaving processing is performed in a mobile communication device or the like,
The circuit that performs the interleaving process is required to be small.

【0016】そこで、本発明は、複数のブロックのデー
タに対する連続したインターリーブ処理を、1つのメモ
リで実施することのできるインターリーブアドレス発生
器及びインターリーブアドレス発生方法を提供すること
を目的としている。
SUMMARY OF THE INVENTION It is an object of the present invention to provide an interleave address generator and an interleave address generation method capable of performing a continuous interleave process on a plurality of blocks of data with one memory.

【0017】[0017]

【課題を解決するための手段、及び発明の効果】上記目
的を達成するためになされた本発明のインターリーブア
ドレス発生方法は、請求項4に記載のように、N×M個
(但し、NとMは2以上の整数)を1ブロックとするデ
ータを順次入力してメモリへ書き込むと共に、そのメモ
リに書き込んだデータを書き込み時とは異なるアドレス
の順序で読み出すことにより、入力したデータを入力時
の順序とは異なる順序で出力するインターリーブ処理を
行うために用いられ、前記メモリへの読み出し及び書き
込み用のアドレスを発生するものである。
The interleave address generating method according to the present invention, which has been made to achieve the above object, has N × M addresses (where, N and M). (M is an integer of 2 or more) as one block, and sequentially writes the data into a memory, and reads out the data written in the memory in an address order different from that at the time of writing, so that the input data is It is used to perform an interleaving process of outputting in an order different from the order, and generates addresses for reading and writing to the memory.

【0018】そして、本発明のインターリーブアドレス
発生方法は、設定されたステップ幅で初期値0からカウ
ントアップを行って、そのカウント値を前記メモリへの
読み出し及び書き込み用のアドレスとして順次出力する
と共に、次のカウント値が前記(N×M)以上となる場
合には、その値について(N×M−1)のモジュロを取
った値を、次のカウント値とし、更に、今回のカウント
値が(N×M−1)となった場合には、次のカウント値
を初期値0に戻すようにしたアドレスカウント処理と、
該アドレスカウント処理で用いる前記ステップ幅を設定
するステップ幅設定処理とからなり、ステップ幅設定処
理では、現在設定しているステップ幅に前記Mを乗じた
値について(N×M−1)のモジュロを取った値を、次
のブロックに対するインターリーブ処理時の新たなステ
ップ幅として求め、前記アドレスカウント処理によるカ
ウント値が初期値0に戻ったタイミングに同期して、前
記アドレスカウント処理で用いるステップ幅を前記求め
た新たなステップ幅に更新することを特徴としている。
The interleave address generating method of the present invention counts up from an initial value of 0 at a set step width, and sequentially outputs the count value as an address for reading and writing to the memory. If the next count value is equal to or more than the above (N × M), the value obtained by taking the modulo of (N × M−1) for that value is set as the next count value, and the current count value is (N × M−1). N × M−1), an address counting process for returning the next count value to the initial value 0,
A step width setting process for setting the step width used in the address counting process. In the step width setting process, a value obtained by multiplying the currently set step width by the M is (N × M−1) modulo. Is obtained as a new step width at the time of the interleave processing for the next block, and the step width used in the address count processing is synchronized with the timing when the count value by the address count processing returns to the initial value 0. It is characterized in that it is updated to the obtained new step width.

【0019】また、このような本発明のインターリーブ
アドレス発生方法は、請求項1に記載のインターリーブ
アドレス発生器によって実施することができる。即ち、
請求項1に記載のインターリーブアドレス発生回路は、
N×M個(但し、NとMは2以上の整数)を1ブロック
とするデータを順次入力してメモリへ書き込むと共に、
そのメモリに書き込んだデータを書き込み時とは異なる
アドレスの順序で読み出すことにより、入力したデータ
を入力時の順序とは異なる順序で出力するインターリー
ブ処理を行うために用いられて、前記メモリへの読み出
し及び書き込み用のアドレスを発生するものであり、ア
ドレスカウント手段と、ステップ幅演算手段とを備えて
いる。
Further, such an interleave address generating method of the present invention can be implemented by the interleave address generator according to the first aspect. That is,
The interleave address generation circuit according to claim 1,
N × M data (where N and M are integers of 2 or more) are sequentially input as data and written into a memory,
By reading data written in the memory in an address order different from that at the time of writing, it is used for performing interleave processing of outputting input data in an order different from the order at the time of input, and reading out the memory. And an address for writing, and includes an address counting means and a step width calculating means.

【0020】そして、アドレスカウント手段は、クロッ
クに同期し且つ外部より入力されるステップ幅で初期値
0からカウントアップ動作を行い、そのカウント値を前
記メモリへの読み出し及び書き込み用のアドレスとして
出力すると共に、次のクロックタイミングでのカウント
値が前記(N×M)以上となる場合には、その値につい
て(N×M−1)のモジュロを取った値を、次のクロッ
クタイミングでのカウント値とし、更に、今回のカウン
ト値が(N×M−1)となった場合には、次のクロック
タイミングでのカウント値を初期値0に戻すように構成
されている。
The address counting means performs a count-up operation from an initial value of 0 with a step width input from the outside in synchronization with a clock, and outputs the count value as an address for reading and writing to the memory. In addition, when the count value at the next clock timing is equal to or more than the above (N × M), the value obtained by taking the modulo (N × M−1) for the value is used as the count value at the next clock timing. Further, when the current count value becomes (N × M−1), the count value at the next clock timing is returned to the initial value 0.

【0021】そして更に、ステップ幅演算手段は、アド
レスカウント手段がカウントアップ動作に用いるステッ
プ幅を演算して前記アドレスカウント手段へ出力するの
であるが、特に、現在出力しているステップ幅に前記M
を乗じた値について(N×M−1)のモジュロを取った
値を、次のブロックに対するインターリーブ処理時の新
たなステップ幅として設定し、前記アドレスカウント手
段のカウント値が初期値0に戻ったタイミングに同期し
て、前記アドレスカウント手段へ出力するステップ幅を
前記設定した新たなステップ幅に変更する。
Further, the step width calculating means calculates the step width used for the count-up operation by the address counting means and outputs the calculated step width to the address counting means.
Is set as a new step width at the time of interleaving processing for the next block, and the count value of the address counting means returns to the initial value 0. In synchronization with the timing, the step width output to the address counting means is changed to the set new step width.

【0022】尚、ステップ幅とは、メモリへのアドレス
となるカウント値をカウントアップする際の、1回毎の
増加分の値を意味している。また、ある値Zについて
(N×M−1)のモジュロを取った値とは、ある値Zを
(N×M−1)で割った場合の余りの値を意味してい
る。
Incidentally, the step width means an increment value for each time when a count value serving as an address to the memory is counted up. The value obtained by taking the modulo of (N × M−1) for a certain value Z means the remainder value when the certain value Z is divided by (N × M−1).

【0023】このような本発明のインターリーブアドレ
ス発生方法及びインターリーブアドレス発生器におい
て、アドレスカウント処理或いはアドレスカウント手段
によって出力されるアドレスのステップ幅は、その出力
されるアドレスが(N×M−1)から初期値0に戻る毎
であって、入力データの1ブロック分毎に変更されるこ
ととなる。
In the interleave address generation method and the interleave address generator according to the present invention, the step width of the address output by the address count processing or the address count means is such that the output address is (N × M-1). , And is changed every time one block of input data is returned.

【0024】よって、本発明のインターリーブアドレス
発生方法及びインターリーブアドレス発生器によれば、
1番目の(即ち、最初の)ブロックのデータを入力する
期間においては、アドレスカウント処理或いはアドレス
カウント手段によって出力されるメモリの各アドレスに
入力データを順次書き込み、2番目以降の各ブロックの
データを入力する期間においては、アドレスカウント処
理或いはアドレスカウント手段によって出力されるメモ
リの各アドレスからデータを読み出すと共に、その読み
出したアドレスに現在の入力データを上書きすることに
より、メモリからのデータの読み出しが、そのデータを
書き込んだ時とは異なるステップ幅でアドレッシングさ
れることとなる。このため、メモリとインターリーブア
ドレス発生器とを1組備えるだけで、複数のブロックの
データに対する連続したインターリーブ処理が可能とな
る。
Therefore, according to the interleave address generation method and the interleave address generator of the present invention,
During the period of inputting the data of the first (ie, first) block, the input data is sequentially written to each address of the memory output by the address counting process or the address counting means, and the data of each of the second and subsequent blocks is written. During the input period, data is read from each address of the memory output by the address counting process or the address counting means, and the read address is overwritten with the current input data, so that the data reading from the memory is performed. Addressing is performed with a step width different from that when the data is written. Therefore, continuous interleave processing on data of a plurality of blocks can be performed only by providing one set of a memory and an interleave address generator.

【0025】例えば、ステップ幅の初期値を1とすると
共に、行数(ロー数)N=4及び列数(カラム数)M=
3のブロックサイズでインターリーブ処理を行う場合
(即ち、4×3個のデータを1ブロックとした4行×3
列でのインターリーブ処理を行う場合)について、具体
的に説明する。
For example, the initial value of the step width is set to 1, the number of rows (the number of rows) N = 4 and the number of columns (the number of columns) M =
When the interleave processing is performed with a block size of 3 (ie, 4 rows × 3 where 4 × 3 data is one block)
The case of performing interleave processing in columns) will be specifically described.

【0026】この場合には、図4の上から5段目及び最
下段に示すように、1番目のブロックのデータ(D1-1
〜D1-12)を入力する期間においては、アドレスカウン
ト処理或いはアドレスカウント手段から、0,1,2,
3,4,5,6,7,8,9,10,11の順にアドレ
スが出力されることとなる。
In this case, as shown in the fifth and bottom rows from the top in FIG. 4, the data of the first block (D1-1
To D1-12), 0, 1, 2, 2 from the address counting process or the address counting means.
The addresses are output in the order of 3, 4, 5, 6, 7, 8, 9, 10, and 11.

【0027】そして、2番目のブロックのデータ(D2-
1 〜D2-12)を入力する期間においては、ステップ幅設
定処理或いはステップ幅演算手段によって設定或いは出
力されるステップ幅が、1番目のブロックの入力期間に
おけるステップ幅(=1)にM(=3)を乗じた値(=
3)について11(=N×M−1)のモジュロを取った
値(=3)となる。よって、アドレスカウント処理或い
はアドレスカウント手段からは、0,3,6,9,1,
4,7,10,2,5,8,11の順にアドレスが出力
されることとなる。尚、出力されるアドレスが9の次に
1へと変化しているのは、9に現在のステップ幅である
3を加算した値(=12)が、1ブロックのデータ数で
ある12(=N×M)以上となるため、この場合には、
12について11(=N×M−1)のモジュロを取った
値である1が、次のカウント値になるからである。また
同様に、出力されるアドレスが10の次に2へと変化し
ているのも、10に現在のステップ幅である3を加算し
た値(=13)が12(=N×M)以上となるため、こ
の場合には、13について11(=N×M−1)のモジ
ュロを取った値である2が、次のカウント値になるから
である。
Then, the data (D2-
1 to D2-12), the step width set or output by the step width setting process or the step width calculating means is set to M (= 1) in the step width (= 1) in the input period of the first block. 3) (=
3) is a value (= 3) obtained by taking a modulo of 11 (= N × M−1). Therefore, from the address count processing or the address count means, 0, 3, 6, 9, 1, 1,
The addresses are output in the order of 4, 7, 10, 2, 5, 8, and 11. Note that the output address changes to 1 after 9 because the value obtained by adding 3 which is the current step width to 9 (= 12) is 12 (= the number of data in one block). N × M) or more, so in this case,
This is because 1 which is a value obtained by taking a modulo of 11 (= N × M−1) for 12 becomes the next count value. Similarly, the output address changes to 2 after 10 because the value obtained by adding 3 which is the current step width to 10 (= 13) is 12 (= N × M) or more. Therefore, in this case, the value 2 obtained by taking the modulo of 11 (= N × M−1) for 13 becomes the next count value.

【0028】そして更に、3番目のブロックのデータ
(D3-1 〜D3-12)を入力する期間においては、ステッ
プ幅設定処理或いはステップ幅演算手段によって設定或
いは出力されるステップ幅が、2番目のブロックの入力
期間におけるステップ幅(=3)にM(=3)を乗じた
値(=9)について11(=N×M−1)のモジュロを
取った値(=9)となる。よって、アドレスカウント処
理或いはアドレスカウント手段からは、0,9,7,
5,3,1,10,8,6,4,2,11の順にアドレ
スが出力されることとなる。尚、出力されるアドレスが
9の次に7へと変化しているのは、9に現在のステップ
幅である9を加算した値(=18)が、1ブロックのデ
ータ数である12(=N×M)以上となるため、この場
合には、18について11(=N×M−1)のモジュロ
を取った値である7が、次のカウント値になるからであ
る。そして、このことは、出力されるアドレスが7の次
に5へと変化する場合や、5の次に3へと変化する場合
等についても同様である。
Further, during the period of inputting the data (D3-1 to D3-12) of the third block, the step width set or output by the step width setting processing or step width calculating means is equal to the second step width. The value (= 9) obtained by taking the modulo of 11 (= N × M−1) for the value (= 9) obtained by multiplying the step width (= 3) by M (= 3) in the input period of the block. Therefore, from the address counting process or the address counting means, 0, 9, 7,.
The addresses are output in the order of 5, 3, 1, 10, 8, 6, 4, 2, and 11. Note that the output address changes from 9 to 7 because the value obtained by adding 9 which is the current step width to 9 (= 18) is 12 (= the number of data in one block). This is because, in this case, 7 which is a value obtained by taking the modulo of 11 (= N × M−1) for 18 becomes the next count value. The same applies to the case where the output address changes from 7 to 5 or from 5 to 3 or the like.

【0029】また、図4には示されていないが、4番目
のブロックのデータを入力する期間においては、ステッ
プ幅設定処理或いはステップ幅演算手段によって設定或
いは出力されるステップ幅が、3番目のブロックの入力
期間におけるステップ幅(=9)にM(=3)を乗じた
値(=27)について11(=N×M−1)のモジュロ
を取った値(=5)となる。よって、アドレスカウント
処理或いはアドレスカウント手段からは、0,5,1
0,4,9,3,8,2,7,1,6,11の順にアド
レスが出力されることとなる。尚、出力されるアドレス
が10の次に4へと変化しているのは、10に現在のス
テップ幅である5を加算した値(=15)が、1ブロッ
クのデータ数である12(=N×M)以上となるため、
この場合には、15について11(=N×M−1)のモ
ジュロを取った値である4が、次のカウント値になるか
らである。そして、このことは、出力されるアドレスが
9の次に3へと変化する場合や、8の次に2へと変化す
る場合等についても同様である。
Although not shown in FIG. 4, during the period of inputting the data of the fourth block, the step width set or output by the step width setting processing or the step width calculating means is equal to the third step width. A value (= 5) obtained by taking a modulo of 11 (= N × M−1) for a value (= 27) obtained by multiplying the step width (= 9) by M (= 3) in the input period of the block. Therefore, from the address count processing or the address count means, 0, 5, 1
Addresses are output in the order of 0, 4, 9, 3, 8, 2, 7, 1, 6, and 11. Note that the output address is changed to 4 after 10 because the value obtained by adding 5 which is the current step width to 10 (= 15) is 12 (= the number of data in one block). N × M) or more,
In this case, the value 4 obtained by taking the modulo of 11 (= N × M−1) for 15 becomes the next count value. The same applies to a case where the output address changes to 3 after 9 or a case where the output address changes to 2 after 8.

【0030】よって、1番目のブロックのデータを、ア
ドレスカウント処理或いはアドレスカウント手段によっ
て出力されるメモリの各アドレスに順次書き込めば、そ
の1番目のブロックの各データは、メモリの0から11
までのアドレスへ、図1(A)の○内に示す番号の順序
で書き込まれることとなる。
Therefore, if the data of the first block is sequentially written into each address of the memory output by the address counting process or the address counting means, the data of the first block will be 0 to 11 in the memory.
Addresses are written in the order of the numbers shown in the circles in FIG.

【0031】そして、2番目のブロックのデータを入力
する期間において、アドレスカウント処理或いはアドレ
スカウント手段によって出力されるメモリの各アドレス
からデータを読み出すと共に、その読み出したアドレス
に現在の入力データを上書きすれば、メモリに既に書き
込まれている1番目のブロックの各データは、0から1
1までのアドレスから、図1(B)の△内に示す番号の
順序で読み出され、また、2番目のブロックの各データ
は、メモリの0から11までのアドレスへ、図1(C)
の○内に示す番号の順序(即ち、図1(B)の△内に示
す番号と同じ順序)で書き込まれることとなる。
During the period of inputting the data of the second block, data is read from each address of the memory output by the address counting process or the address counting means, and the read address is overwritten with the current input data. For example, each data of the first block already written in the memory is 0 to 1
1 (B), the data of the second block are read from the addresses 0 to 11 of the memory to the addresses 0 to 11 in FIG. 1 (C).
Are written in the order of the numbers shown in the circles (ie, the same order as the numbers shown in the circles in FIG. 1B).

【0032】そして更に、3番目のブロックのデータを
入力する期間において、アドレスカウント処理或いはア
ドレスカウント手段によって出力されるメモリの各アド
レスからデータを読み出すと共に、その読み出したアド
レスに現在の入力データを上書きすれば、メモリに既に
書き込まれている2番目のブロックの各データは、0か
ら11までのアドレスから、図1(D)の△内に示す番
号の順序で読み出され、また、3番目のブロックの各デ
ータは、図1(B)と図1(C)の関係と同様に、メモ
リの0から11までのアドレスへ図1(D)の△内に示
す番号の順序で書き込まれることとなる。
Further, during the period of inputting the data of the third block, data is read from each address of the memory output by the address counting process or the address counting means, and the read address is overwritten with the current input data. Then, each data of the second block already written in the memory is read from the addresses from 0 to 11 in the order of the numbers shown in {} in FIG. Each data of the block is written to addresses 0 to 11 of the memory in the order of the numbers shown in {} in FIG. 1 (D), similarly to the relationship between FIG. 1 (B) and FIG. 1 (C). Become.

【0033】このため、1ブロック分の12個の入力デ
ータに対して1番目のものから順にD1 ,D2 ,D3 ,
D4 ,D5 ,D6 ,D7 ,D8 ,D9 ,D10,D11,D
12というインデックスを付けるとすると、図1(A)と
図1(B)の関係及び図1(C)と図1(D)の関係か
らも分かるように、順次入力される各ブロックの入力デ
ータは、メモリから読み出されることにより、夫々、D
1 ,D4 ,D7 ,D10,D2 ,D5 ,D8 ,D11,D3
,D6 ,D9 ,D12という順序に並べ替えられること
となる。
For this reason, D1, D2, D3,.
D4, D5, D6, D7, D8, D9, D10, D11, D
Assuming that an index of 12 is added, as can be seen from the relationship between FIG. 1A and FIG. 1B and the relationship between FIG. 1C and FIG. Are read from the memory, so that
1, D4, D7, D10, D2, D5, D8, D11, D3
, D6, D9, D12.

【0034】つまり、メモリへのアドレスのステップ幅
を、ステップ幅設定処理或いはステップ幅演算手段によ
ってデータの1ブロック分毎に変更していくことによ
り、1つのメモリだけで連続したインターリーブ処理が
可能となるのである。尚、ステップ幅の初期値は、1に
限るものではなく、1以上の整数であれば良い。また、
インターリーブ処理に用いるメモリの先頭アドレスが0
番地でない場合には、アドレスカウント処理或いはアド
レスカウント手段によって出力されるアドレスに上記先
頭のアドレス値を加算し、その加算後のアドレスをメモ
リのアドレス入力端子へ供給するようにすれば良い。
That is, by changing the step width of the address to the memory for each block of data by the step width setting processing or the step width calculating means, continuous interleave processing can be performed with only one memory. It becomes. Note that the initial value of the step width is not limited to 1, but may be any integer greater than or equal to 1. Also,
The start address of the memory used for the interleave processing is 0
If the address is not an address, the head address value is added to the address output by the address counting process or the address counting means, and the address after the addition may be supplied to an address input terminal of the memory.

【0035】ところで、請求項1に記載のインターリー
ブアドレス発生器において、ステップ幅演算手段は、請
求項2に記載のように、アドレスカウント手段のカウン
ト値が初期値0から(N×M−1)となるまでの1ブロ
ック分の期間中に、現在出力しているステップ幅を前記
M回分だけ累積加算すると共に、その累積加算値につい
て(N×M−1)のモジュロを取った値を、次のブロッ
クに対するインターリーブ処理時の新たなステップ幅と
して設定するステップ幅設定手段と、アドレスカウント
手段のカウント値が(N×M−1)になったことを検出
する検出手段と、該検出手段によりアドレスカウント手
段のカウント値が(N×M−1)になったことが検出さ
れると、前記ステップ幅設定手段にて設定された新たな
ステップ幅を、次のクロックタイミングで記憶すると共
に、該記憶したステップ幅をアドレスカウント手段へ出
力するステップ幅出力手段と、から構成することができ
る。
In the interleaved address generator according to the first aspect, the step width calculating means may be arranged so that the count value of the address counting means is from the initial value 0 to (N × M-1). During the period of one block up to, the currently output step width is cumulatively added M times, and the value obtained by taking the modulo of (N × M−1) for the cumulative added value is given by Step width setting means for setting as a new step width at the time of interleave processing for the block of No., detecting means for detecting that the count value of the address counting means has become (N × M-1), and When it is detected that the count value of the counting means has reached (N × M−1), the new step width set by the step width setting means is replaced with the next step width. Stores the lock timing may be composed of a step width output means for outputting a step width that the storage to the address counting means.

【0036】つまり、請求項2に記載のインターリーブ
アドレス発生器では、現在出力しているステップ幅に前
記Mを乗じた値を、現在のステップ幅を前記M回分だけ
累積加算することによって求めている。また、請求項1
に記載のインターリーブアドレス発生器において、ステ
ップ幅演算手段は、請求項3に記載のように、現在出力
しているステップ幅と前記Mとの乗算を行うと共に、そ
の乗算値について(N×M−1)のモジュロを取った値
を、次のブロックに対するインターリーブ処理時の新た
なステップ幅として設定するステップ幅設定手段と、ア
ドレスカウント手段のカウント値が(N×M−1)にな
ったことを検出する検出手段と、該検出手段によりアド
レスカウント手段のカウント値が(N×M−1)になっ
たことが検出されると、前記ステップ幅設定手段にて設
定された新たなステップ幅を、次のクロックタイミング
で記憶すると共に、該記憶したステップ幅をアドレスカ
ウント手段へ出力するステップ幅出力手段と、から構成
することもできる。
In other words, in the interleave address generator according to the present invention, a value obtained by multiplying the currently output step width by the M is obtained by cumulatively adding the current step width for the M times. . Claim 1
In the interleave address generator described in (3), the step width calculating means multiplies the currently output step width by the M and calculates the multiplied value by (N × M− Step width setting means for setting the value obtained by taking the modulo of 1) as a new step width at the time of interleave processing for the next block, and the fact that the count value of the address counting means has become (N × M-1). Detecting means for detecting, and when the detecting means detects that the count value of the address counting means has reached (N × M−1), the new step width set by the step width setting means is And a step width output means for storing the stored step width at the next clock timing and outputting the stored step width to the address counting means.

【0037】つまり、請求項3に記載のインターリーブ
アドレス発生器では、現在出力しているステップ幅に前
記Mを乗じた値を、現在のステップ幅と前記Mとを乗算
することによって求めている。但し、請求項2に記載の
ように、現在出力しているステップ幅をM回累積加算す
るように構成する方が、乗算を直接行う必要がないた
め、回路構成を簡素化できるという点で有利である。
That is, in the interleave address generator according to the third aspect, a value obtained by multiplying the currently output step width by the M is obtained by multiplying the current step width by the M. However, the configuration in which the currently output step width is cumulatively added M times as described in claim 2 is advantageous in that the circuit configuration can be simplified because there is no need to directly perform multiplication. It is.

【0038】[0038]

【発明の実施の形態】以下、本発明の一実施形態につい
て、図面を用いて説明する。まず図2は、第1実施形態
のインターリーブアドレス発生器1の構成を表すブロッ
ク図であり、図3は、そのインターリーブアドレス発生
器1の詳細な回路図である。
DESCRIPTION OF THE PREFERRED EMBODIMENTS One embodiment of the present invention will be described below with reference to the drawings. First, FIG. 2 is a block diagram showing a configuration of the interleave address generator 1 of the first embodiment, and FIG. 3 is a detailed circuit diagram of the interleave address generator 1.

【0039】尚、本第1実施形態のインターリーブアド
レス発生器1は、N×M個(但し、NとMは2以上の整
数)のデータを1ブロックとしたN行×M列でのインタ
ーリーブ処理を行うために、図示しないメモリ(具体的
にはRAM)への読み出し及び書き込み用のアドレスを
発生するものである。また、以下の説明において、上記
Mを、列数を意味する「カラム数」といい、1ブロック
のデータ数である上記(N×M)を、「ブロックサイ
ズ」という。
The interleave address generator 1 according to the first embodiment performs an interleave process in N rows × M columns using N × M data (where N and M are integers of 2 or more) as one block. In order to perform the above, addresses for reading and writing to a memory (specifically, a RAM) not shown are generated. In the following description, M is referred to as “column number” meaning the number of columns, and (N × M), which is the number of data in one block, is referred to as “block size”.

【0040】図2に示すように、本第1実施形態のイン
ターリーブアドレス発生器1は、クロック入力端子T1
からのクロックに同期し且つ外部より入力されるステッ
プ幅で初期値0からカウントアップ動作を行い、そのカ
ウント値をメモリへの読み出し及び書き込み用のアドレ
スとして出力するアドレスカウンタ3と、そのアドレス
カウンタ3から出力されるアドレス、ブロックサイズ入
力端子T2から入力されるブロックサイズ−1(=N×
M−1)を表すデータ、及びカラム数入力端子T3から
入力されるカラム数(=M)を表すデータに基づき、ク
ロック入力端子T1からのクロックに同期して、アドレ
スカウンタ3でのステップ幅を演算し出力するステップ
幅演算器5とから構成されている。
As shown in FIG. 2, the interleave address generator 1 of the first embodiment has a clock input terminal T1.
An address counter 3 that performs a count-up operation from an initial value 0 at a step width input from the outside in synchronization with a clock from an external device, and outputs the count value as an address for reading and writing to a memory; , The block size input from the block size input terminal T2−1 (= N ×
M-1) and the data representing the number of columns (= M) inputted from the column number input terminal T3, the step width of the address counter 3 is synchronized with the clock from the clock input terminal T1. And a step width calculator 5 for calculating and outputting.

【0041】尚、アドレスカウンタ3とステップ幅演算
器5には、リセット信号入力端子T4を介して、ハイア
クティブのリセット信号が入力されるようになってい
る。また、アドレスカウンタ3にも、ブロックサイズ入
力端子T2からのブロックサイズ−1(=N×M−1)
を表すデータが入力されている。また更に、アドレスカ
ウンタ3からメモリへは、アドレス出力端子T5を介し
てアドレスが出力されるようになっている。
Incidentally, a high active reset signal is inputted to the address counter 3 and the step width calculator 5 via a reset signal input terminal T4. The address counter 3 also has a block size -1 (= N × M-1) from the block size input terminal T2.
Is input. Further, an address is output from the address counter 3 to the memory via the address output terminal T5.

【0042】次に、図3に示すように、アドレスカウン
タ3は、当該アドレスカウンタ3のカウント値をクロッ
ク入力端子T1からのクロックに同期して記憶し、その
記憶したカウント値をメモリへのアドレスとしてアドレ
ス出力端子T5に出力する、入力バス幅に対応した数の
クロック同期リセット機能付きフリップフロップからな
るフリップフロップ群11(以下、F/F群11とい
う)と、F/F群11の出力値(即ち、当該アドレスカ
ウンタ3の現在のカウント値であって、現在出力してい
るメモリへのアドレス)とステップ幅演算器5から入力
されるステップ幅とを加算する加算器13と、その加算
器13の演算結果から、ブロックサイズ入力端子T2よ
り入力されるブロックサイズ−1を表すデータ(以下単
に、ブロックサイズ−1という)を減算する減算器15
と、加算器13の演算結果とブロックサイズ入力端子T
2からのブロックサイズ−1とを大小比較して、加算器
13の演算結果がブロックサイズ−1(=N×M−1)
以下である場合に、ハイレベルのセレクト信号を出力
し、そうでなければ(つまり、加算器13の演算結果が
ブロックサイズ(=N×M)以上である場合に)、ロウ
レベルのセレクト信号を出力するコンパレータ17と、
コンパレータ17からのセレクト信号がハイレベルの場
合に、加算器13の演算結果をF/F群11のデータ端
子(D)に入力させ、コンパレータ17からのセレクト
信号がロウレベルの場合に、減算器15の演算結果をF
/F群11のデータ端子(D)に入力させるセレクタ1
9と、から構成されている。
Next, as shown in FIG. 3, the address counter 3 stores the count value of the address counter 3 in synchronization with the clock from the clock input terminal T1, and stores the stored count value in the address to the memory. And a flip-flop group 11 (hereinafter, referred to as F / F group 11) including a number of flip-flops with a clock synchronous reset function corresponding to the input bus width and output to the address output terminal T5, and an output value of the F / F group 11 (Ie, the current count value of the address counter 3, which is the address of the memory currently being output) and the step width input from the step width calculator 5, and the adder 13 13, the data representing the block size -1 input from the block size input terminal T2 (hereinafter simply referred to as the block size Subtractor 15 for subtracting) of 1
And the operation result of the adder 13 and the block size input terminal T
2 is compared with the block size −1, and the result of the operation of the adder 13 is the block size −1 (= N × M−1).
If it is less than or equal to the above, a high-level select signal is output. Otherwise (that is, if the operation result of the adder 13 is equal to or larger than the block size (= N × M)), a low-level select signal is output. A comparator 17 that performs
When the select signal from the comparator 17 is at a high level, the operation result of the adder 13 is input to the data terminal (D) of the F / F group 11, and when the select signal from the comparator 17 is at a low level, the subtractor 15 Calculation result of F
Selector 1 for input to data terminal (D) of / F group 11
9.

【0043】尚、F/F群11は、クロックの立ち上が
りに同期して動作し、リセット信号入力端子T4から自
己のリセット端子(RESET)へ入力されるリセット
信号がロウレベルである通常時には、セレクタ19から
入力バスを介して自己のデータ端子(D)に入力される
データ値を、クロックの立ち上がりタイミングで記憶
(ラッチ)して出力端子(Q)からアドレス出力端子T
5へ出力する。また、F/F群11は、自己の出力値が
ブロックサイズ−1(=N×M−1)になると、次のク
ロックの立ち上がりタイミングでは、セレクタ19の出
力に拘わらず、その出力値が初期値である0へ戻るよう
に構成されている。
The F / F group 11 operates in synchronization with the rise of the clock, and the selector 19 operates normally when the reset signal input from the reset signal input terminal T4 to its own reset terminal (RESET) is at a low level. The data value input to the own data terminal (D) from the input terminal via the input bus is stored (latched) at the rising edge of the clock, and is output from the output terminal (Q) to the address output terminal T.
Output to 5 When the output value of the F / F group 11 becomes the block size −1 (= N × M−1), the output value of the F / F group 11 is initialized at the next rising edge of the clock regardless of the output of the selector 19. It is configured to return to the value 0.

【0044】このように構成されたアドレスカウンタ3
では、リセット信号入力端子T4からハイレベルのリセ
ット信号が入力されると、F/F群11が、クロック入
力端子T1からのクロックに同期してリセットされ、そ
の結果、F/F群11に記憶されるカウント値であっ
て、アドレス出力端子T5からメモリへ出力されるアド
レスは、全ビットが0の初期値0となる(図4参照)。
The address counter 3 configured as described above
When a high-level reset signal is input from the reset signal input terminal T4, the F / F group 11 is reset in synchronization with the clock from the clock input terminal T1, and as a result, stored in the F / F group 11. In the count value to be output to the memory from the address output terminal T5, all bits have an initial value of 0 (see FIG. 4).

【0045】そして、リセット信号入力端子T4からの
リセット信号がロウレベルになって、リセットが解除さ
れると、そのリセット解除後の次のクロックより、F/
F群11を中心としてメモリへのアドレスのカウントア
ップ動作が行われる。このアドレスカウンタ3のカウン
トアップ動作としては、まず、加算器13により、F/
F群11の現在の出力値とステップ幅演算器5から入力
されるステップ幅とが加算され、その加算器13の演算
結果とブロックサイズ−1(=N×M−1)の値とが、
コンパレータ17によって大小比較される。
When the reset signal from the reset signal input terminal T4 goes low and the reset is released, the F / F is output from the next clock after the reset is released.
The count-up operation of the address to the memory is performed centering on the F group 11. The count-up operation of the address counter 3 is as follows.
The current output value of the F group 11 and the step width input from the step width calculator 5 are added, and the calculation result of the adder 13 and the value of the block size −1 (= N × M−1) are
The magnitude is compared by the comparator 17.

【0046】そして、加算器13の演算結果がブロック
サイズ−1(=N×M−1)以下である場合には、コン
パレータ17からのセレクト信号に応じて動作するセレ
クタ19により、加算器13の演算結果がそのままF/
F群11のデータ端子(D)に入力され、その結果、F
/F群11は、次のクロックの立ち上がりタイミングに
て、加算器13の演算結果を当該アドレスカウンタ3の
カウント値として記憶すると共に、その記憶したカウン
ト値を自己の出力端子(Q)からアドレス出力端子T5
へ、メモリへのアドレスとして出力することとなる。
When the operation result of the adder 13 is equal to or smaller than the block size -1 (= N × M-1), the selector 19 operating according to the select signal from the comparator 17 outputs The calculation result is F /
The data is input to the data terminal (D) of the F group 11, and as a result,
The / F group 11 stores the operation result of the adder 13 as the count value of the address counter 3 at the next rising edge of the clock, and outputs the stored count value from its own output terminal (Q) to address output. Terminal T5
To be output as an address to the memory.

【0047】また逆に、加算器13の演算結果がブロッ
クサイズ(=N×M)以上である場合には、上記セレク
タ19により、減算器15の演算結果であって、加算器
13の演算結果からブロックサイズ−1(=N×M−
1)を減じた値が、F/F群11のデータ端子(D)に
入力され、その結果、F/F群11は、次のクロックの
立ち上がりタイミングにて、減算器15の演算結果を当
該アドレスカウンタ3のカウント値として記憶すると共
に、その記憶したカウント値を自己の出力端子(Q)か
らアドレス出力端子T5へ、メモリへのアドレスとして
出力することとなる。
On the contrary, when the operation result of the adder 13 is equal to or larger than the block size (= N × M), the selector 19 calculates the operation result of the subtractor 15 and the operation result of the adder 13. From the block size -1 (= N × M-
The value obtained by subtracting 1) is input to the data terminal (D) of the F / F group 11, and as a result, the F / F group 11 outputs the operation result of the subtractor 15 at the next rising edge of the clock. In addition to storing the count value of the address counter 3, the stored count value is output from its own output terminal (Q) to the address output terminal T5 as an address to the memory.

【0048】よって、アドレスカウンタ3では、F/F
群11及び加算器13の作用により、クロックに同期し
且つステップ幅演算器5より入力されるステップ幅で初
期値0からカウントアップ動作が行われて、そのカウン
ト値がメモリへのアドレスとして出力されることとなる
が、特に、次のクロックタイミングでのカウント値がブ
ロックサイズ(=N×M)以上となる場合には、減算器
15,コンパレータ17,及びセレクタ19の作用によ
り、そのブロックサイズ以上の値についてブロックサイ
ズ−1(=N×M−1)のモジュロを取った値が、次の
クロックタイミングでのカウント値となる。そして更
に、今回のクロックタイミングでのカウント値がブロッ
クサイズ−1(=N×M−1)になると、前述したF/
F群11の作用により、次のクロックタイミングでのカ
ウント値が初期値0に戻ることとなる。
Therefore, in the address counter 3, the F / F
By the operation of the group 11 and the adder 13, a count-up operation is performed from the initial value 0 with the step width input from the step width calculator 5 in synchronization with the clock, and the count value is output as an address to the memory. In particular, when the count value at the next clock timing is equal to or greater than the block size (= N × M), the operation of the subtractor 15, the comparator 17, and the selector 19 causes the block size to exceed the block size. Is a value obtained by taking the modulo of the block size -1 (= N × M-1) as the count value at the next clock timing. Further, when the count value at the current clock timing becomes the block size -1 (= N × M-1), the above-described F /
By the operation of the F group 11, the count value at the next clock timing returns to the initial value 0.

【0049】一方、図3に示すように、ステップ幅演算
器5は、アドレスカウンタ3が前述のカウントアップ動
作に用いるステップ幅をクロック入力端子T1からのク
ロックに同期して記憶し、その記憶したステップ幅をア
ドレスカウンタ3(詳しくは、アドレスカウンタ3の加
算器13)へ出力する、1ビット目がクロック同期プリ
セット機能付きのフリップフロップ、それ以外がクロッ
ク同期リセット機能付きのフリップフロップからなるフ
リップフロップ群21(以下、F/F群21という)
と、F/F群21からアドレスカウンタ3へ出力すべき
ステップ幅を演算する過程で生じる演算値を、クロック
入力端子T1からのクロックに同期して記憶する、入力
バス幅に対応した数のクロック同期リセット機能付きフ
リップフロップからなるフリップフロップ群23(以
下、F/F群23という)と、を備えている。
On the other hand, as shown in FIG. 3, the step width calculator 5 stores the step width used by the address counter 3 in the above-described count-up operation in synchronization with the clock from the clock input terminal T1, and stores the stored step width. A step width is output to the address counter 3 (specifically, an adder 13 of the address counter 3). The first bit is a flip-flop with a clock synchronous reset function, and the other bit is a flip-flop with a clock synchronous reset function. Group 21 (hereinafter referred to as F / F group 21)
And the number of clocks corresponding to the input bus width, in which the operation value generated in the process of calculating the step width to be output from the F / F group 21 to the address counter 3 is stored in synchronization with the clock from the clock input terminal T1. And a flip-flop group 23 including a flip-flop with a synchronous reset function (hereinafter, referred to as F / F group 23).

【0050】尚、F/F群21,23は、クロックの立
ち上がりに同期して動作し、自己のリセット端子(RE
SET)或いはプリセット端子(SET)に入力される
信号がロウレベルである通常時には、入力バスを介して
自己のデータ端子(D)に入力されるデータ値を、クロ
ックの立ち上がりタイミングで記憶(ラッチ)して出力
端子(Q)から出力する。また、ステップ幅演算器5
は、F/F群21の出力値(即ち、F/F群21からア
ドレスカウンタ3へ現在出力しているステップ幅)とF
/F群23の出力値とを加算する加算器25と、その加
算器25の演算結果から、ブロックサイズ入力端子T2
より入力されるブロックサイズ−1(=N×M−1)を
減算する減算器27と、加算器25の演算結果とブロッ
クサイズ入力端子T2からのブロックサイズ−1とを大
小比較して、加算器25の演算結果がブロックサイズ−
1(=N×M−1)以下である場合に、ハイレベルのセ
レクト信号を出力し、そうでなければ(つまり、加算器
25の演算結果がブロックサイズ(=N×M)以上であ
る場合に)、ロウレベルのセレクト信号を出力するコン
パレータ29と、コンパレータ29からのセレクト信号
がハイレベルの場合に、加算器25の演算結果を選択し
て出力し、コンパレータ29からのセレクト信号がロウ
レベルの場合に、減算器27の演算結果を選択して出力
するセレクタ31と、アドレスカウンタ3のカウント値
(即ち、アドレスカウンタ3のF/F群11からメモリ
へ出力されているアドレス)とカラム数入力端子T3か
ら入力されるカラム数を表すデータ(以下単に、カラム
数という)とを大小比較して、アドレスカウンタ3のカ
ウント値がカラム数(=M)よりも小さい場合に、ハイ
レベルのセレクト信号を出力し、そうでなければ(つま
り、アドレスカウンタ3のカウント値がカラム数(=
M)以上である場合に)、ロウレベルのセレクト信号を
出力するコンパレータ33と、コンパレータ33からの
セレクト信号がハイレベルの場合に、セレクタ31の出
力をF/F群23のデータ端子(D)に入力させ、コン
パレータ33からのセレクト信号がロウレベルの場合
に、F/F群23の出力を同F/F群23のデータ端子
(D)に入力させるセレクタ35と、を備えている。
The F / F groups 21 and 23 operate in synchronization with the rise of the clock, and have their own reset terminals (RE
Normally, when the signal input to the terminal (SET) or the preset terminal (SET) is at the low level, the data value input to the own data terminal (D) via the input bus is stored (latched) at the rising edge of the clock. Output from the output terminal (Q). Also, the step width calculator 5
Is the output value of the F / F group 21 (that is, the step width currently output from the F / F group 21 to the address counter 3) and F
/ F group 23 and an output value of the block size input terminal T2 based on the operation result of the adder 25.
The subtracter 27 for subtracting the input block size -1 (= N × M-1) and the arithmetic result of the adder 25 and the block size -1 from the block size input terminal T2 are compared in size and added. The operation result of the unit 25 is a block size−
1 (= N × M−1) or less, outputs a high-level select signal; otherwise (ie, if the operation result of the adder 25 is equal to or greater than the block size (= N × M)) ), A comparator 29 for outputting a low-level select signal, and selecting and outputting the operation result of the adder 25 when the select signal from the comparator 29 is at a high level, and when the select signal from the comparator 29 is at a low level A selector 31 for selecting and outputting the operation result of the subtracter 27; a count value of the address counter 3 (that is, an address output from the F / F group 11 of the address counter 3 to the memory); and a column number input terminal. The data representing the number of columns input from T3 (hereinafter simply referred to as the number of columns) is compared in magnitude, and the count value of the address counter 3 is compared with the number of columns. (= M), a high-level select signal is output; otherwise, the count value of the address counter 3 is equal to the number of columns (= M).
M) or more), the comparator 33 that outputs a low-level select signal, and when the select signal from the comparator 33 is at a high level, outputs the selector 31 to the data terminal (D) of the F / F group 23. And a selector 35 for inputting the output of the F / F group 23 to the data terminal (D) of the F / F group 23 when the select signal from the comparator 33 is at a low level.

【0051】そして更に、ステップ幅演算器5は、アド
レスカウンタ3のカウント値とブロックサイズ入力端子
T2からのブロックサイズ−1とを比較して、アドレス
カウンタ3のカウント値がブロックサイズ−1(=N×
M−1)と等しい場合に、ハイレベルのセレクト信号を
出力し、そうでなければ(つまり、アドレスカウンタ3
のカウント値がブロックサイズ−1(=N×M−1)と
等しくない場合に)、ロウレベルのセレクト信号を出力
するコンパレータ37と、コンパレータ37からのセレ
クト信号がハイレベルの場合に、F/F群23の出力を
F/F群21のデータ端子(D)に入力させ、コンパレ
ータ37からのセレクト信号がロウレベルの場合に、F
/F群21の出力を同F/F群21のデータ端子(D)
に入力させるセレクタ39と、リセット信号入力端子T
4からのリセット信号とコンパレータ37からのセレク
ト信号との論理和信号を、F/F群23のリセット端子
(RESET)に入力させる論理和回路41と、を備え
ている。
Further, the step width calculator 5 compares the count value of the address counter 3 with the block size -1 from the block size input terminal T2, and determines that the count value of the address counter 3 is the block size -1 (= N ×
M-1), a high-level select signal is output; otherwise, the address counter 3
Is not equal to the block size −1 (= N × M−1), the comparator 37 that outputs a low-level select signal, and the F / F when the select signal from the comparator 37 is at a high level. The output of the group 23 is input to the data terminal (D) of the F / F group 21. When the select signal from the comparator 37 is at a low level,
The output of the / F group 21 is connected to the data terminal (D) of the F / F group 21
And a reset signal input terminal T
And a logical sum circuit 41 for inputting a logical sum signal of the reset signal from the comparator 4 and the select signal from the comparator 37 to the reset terminal (RESET) of the F / F group 23.

【0052】次に、上記のように構成されたステップ幅
演算器5の動作について説明する。まず、リセット信号
入力端子T4からハイレベルのリセット信号が入力され
ると、F/F群23では、その各フリップフロップのリ
セット端子(RESET)に入力される信号が、論理和
回路41を介してハイレベルとなり、また、F/F群2
1では、1ビット目のフリップフロップのプリセット端
子(SET)と、それ以外のビットのフリップフロップ
のリセット端子(RESET)とに夫々入力される信号
がハイレベルとなる。
Next, the operation of the step width calculator 5 configured as described above will be described. First, when a high-level reset signal is input from the reset signal input terminal T4, in the F / F group 23, the signal input to the reset terminal (RESET) of each flip-flop is transmitted via the OR circuit 41. High level and F / F group 2
At 1, the signals input to the preset terminal (SET) of the flip-flop of the first bit and the reset terminal (RESET) of the flip-flops of other bits become high level.

【0053】このため、リセット信号入力端子T4から
ハイレベルのリセット信号が入力されると、クロック入
力端子T1からのクロックに同期して、F/F群23の
出力値は全ビットが0となる。また、F/F群21の出
力値は、1ビット目だけが1で、それ以外のビットが0
となり、この結果、アドレスカウンタ3へ出力されるス
テップ幅は初期値としての1になる(図4参照)。
Therefore, when a high-level reset signal is input from the reset signal input terminal T4, all bits of the output value of the F / F group 23 become 0 in synchronization with the clock from the clock input terminal T1. . The output value of the F / F group 21 is 1 only in the first bit and 0 in other bits.
As a result, the step width output to the address counter 3 becomes 1 as an initial value (see FIG. 4).

【0054】その後、リセット信号入力端子T4からの
リセット信号がロウレベルになって、リセットが解除さ
れると、F/F群23は、コンパレータ33からのセレ
クト信号に応じて動作するセレクタ35の出力を、クロ
ックに同期してラッチし出力する。
After that, when the reset signal from the reset signal input terminal T4 becomes low level and the reset is released, the F / F group 23 outputs the output of the selector 35 which operates according to the select signal from the comparator 33. , And latch and output in synchronization with the clock.

【0055】ここで、セレクタ35は、コンパレータ3
3からのセレクト信号がハイレベルの場合(即ち、アド
レスカウンタ3のカウント値であって、アドレス出力端
子T5から出力されているアドレスが、カラム数(=
M)よりも小さい場合)には、セレクタ31の出力をF
/F群23のデータ端子(D)に入力させる。
Here, the selector 35 is connected to the comparator 3
3 is high (that is, the count value of the address counter 3 and the address output from the address output terminal T5 is the number of columns (=
M)), the output of the selector 31 is set to F
/ F group 23 to the data terminal (D).

【0056】そして、セレクタ31は、コンパレータ2
9からのセレクト信号に従い、加算器25によってF/
F群21の出力値とF/F群23の出力値とが加算され
た演算結果が、ブロックサイズ入力端子T2からのブロ
ックサイズ−1(=N×M−1)以下である場合には、
その加算器25の演算結果をそのままセレクタ35へ出
力し、逆に、加算器25の演算結果がブロック数(=N
×M)以上である場合には、減算器27によって加算器
25の演算結果からブロックサイズ−1(=N×M−
1)が減算された演算結果を、セレクタ35へ出力す
る。
Then, the selector 31 sets the comparator 2
9 according to the select signal from F / 9.
If the operation result obtained by adding the output value of the F group 21 and the output value of the F / F group 23 is equal to or smaller than the block size -1 (= N × M-1) from the block size input terminal T2,
The operation result of the adder 25 is output to the selector 35 as it is, and conversely, the operation result of the adder 25 is the number of blocks (= N
× M) or more, the block size −1 (= N × M−
The calculation result obtained by subtracting 1) is output to the selector 35.

【0057】また、セレクタ35は、コンパレータ33
からのセレクト信号がロウレベルの場合(即ち、アドレ
スカウンタ3の現在のカウント値であって、アドレス出
力端子T5から出力されているアドレスが、カラム数
(=M)以上である場合)には、F/F群23の出力を
F/F群23のデータ端子(D)に入力させる。
The selector 35 includes a comparator 33
Is low level (ie, the current count value of the address counter 3 and the address output from the address output terminal T5 is equal to or more than the number of columns (= M)). The output of the / F group 23 is input to the data terminal (D) of the F / F group 23.

【0058】よって、F/F群23は、アドレスカウン
タ3のカウント値がカラム数(=M)よりも小さい場合
には、現在の自己の出力値とF/F群23の出力値とを
加算した値についてブロックサイズ−1(=N×M−
1)のモジュロを取った値を、次のクロックタイミング
でラッチし、また、アドレスカウンタ3のカウント値が
カラム数(=M)以上である場合には、自己の出力値を
更新せずに保持することとなる。
Therefore, when the count value of the address counter 3 is smaller than the number of columns (= M), the F / F group 23 adds the current output value of itself and the output value of the F / F group 23. Block size -1 (= N × M-
The value obtained by taking the modulo of 1) is latched at the next clock timing, and when the count value of the address counter 3 is equal to or greater than the number of columns (= M), the output value of the address counter 3 is held without being updated. Will be done.

【0059】この結果、F/F群23は、加算器25、
減算器27、コンパレータ29,33、及びセレクタ3
1,35と共同して動作することにより、アドレスカウ
ンタ3のカウント値が初期値0からブロックサイズ−1
(=N×M−1)となるまでの1ブロック分の期間中
に、F/F群21から出力されているステップ幅をカラ
ム数M回分だけ累積加算すると共に、その累積加算値に
ついてブロックサイズ−1(=N×M−1)のモジュロ
を取った値を、次のブロックに対するインターリーブ処
理時の新たなステップ幅として記憶することとなる。そ
して、この動作により、アドレスカウンタ3へ現在出力
しているステップ幅にカラム数(=M)を乗じた値につ
いてブロックサイズ−1(=N×M−1)のモジュロを
取った値が、次のブロックに対するインターリーブ処理
時の新たなステップ幅として設定される。
As a result, the F / F group 23 includes the adder 25,
Subtractor 27, comparators 29 and 33, and selector 3
1 and 35, the count value of the address counter 3 is changed from the initial value 0 to the block size -1.
During the period of one block until (= N × M−1), the step width output from the F / F group 21 is cumulatively added M times the number of columns, and the block size is calculated for the cumulative added value. The value obtained by taking the modulo of -1 (= N × M-1) is stored as a new step width at the time of the interleave processing for the next block. By this operation, the value obtained by multiplying the value obtained by multiplying the step width currently output to the address counter 3 by the number of columns (= M) and taking the modulo of the block size -1 (= N × M-1) becomes Is set as a new step width at the time of the interleave processing for the block of.

【0060】また、アドレスカウンタ3のカウント値が
ブロックサイズ−1(=N×M−1)になると、コンパ
レータ37が、ブロックの最終データの入力タイミング
であると判断してハイレベルのセレクト信号を出力す
る。そして、そのコンパレータ37からのハイレベルの
セレクト信号は、論理和回路41を介してF/F群23
のリセット端子(RESET)に入力される。よって、
F/F群23は、次のクロックタイミング(即ち、アド
レスカウンタ3のカウント値が初期値0に戻るタイミン
グであって、次のブロックの最初のデータを入力するタ
イミング)でリセットされ、その出力値が0に戻ること
となる。つまり、コンパレータ37から出力されるハイ
レベルのセレクト信号は、1ブロックの終了を意味する
ブロック終了信号となっている。
When the count value of the address counter 3 reaches the block size -1 (= N.times.M-1), the comparator 37 determines that it is the input timing of the last data of the block and outputs a high-level select signal. Output. The high-level select signal from the comparator 37 is sent to the F / F group 23 via the OR circuit 41.
Is input to the reset terminal (RESET). Therefore,
The F / F group 23 is reset at the next clock timing (that is, the timing at which the count value of the address counter 3 returns to the initial value 0 and the timing at which the first data of the next block is input), and the output value of the F / F group 23 is reset. Will return to 0. That is, the high-level select signal output from the comparator 37 is a block end signal indicating the end of one block.

【0061】一方、当該ステップ幅演算器5において、
リセット信号入力端子T4からのリセット信号がハイレ
ベルからロウレベルになってリセットが解除されると、
F/F群21は、コンパレータ37からのセレクト信号
に応じて動作するセレクタ39の出力を、クロックに同
期してラッチし、ステップ幅として出力する。
On the other hand, in the step width calculator 5,
When the reset signal from the reset signal input terminal T4 changes from high level to low level and the reset is released,
The F / F group 21 latches the output of the selector 39 that operates according to the select signal from the comparator 37 in synchronization with the clock, and outputs it as a step width.

【0062】ここで、セレクタ39は、コンパレータ3
7からのセレクト信号がロウレベルの場合(即ち、アド
レスカウンタ3のカウント値がブロックサイズ−1(=
N×M−1)でない場合)には、F/F群21の出力を
F/F群21のデータ端子(D)に入力させ、また、コ
ンパレータ37からのセレクト信号がハイレベルの場合
(即ち、アドレスカウンタ3のカウント値がブロックサ
イズ−1(=N×M−1)である場合)に、F/F群2
3の出力をF/F群21のデータ端子(D)に入力させ
る。
Here, the selector 39 selects the comparator 3
7 is low (that is, the count value of the address counter 3 is equal to the block size -1 (=
If not (N × M−1)), the output of the F / F group 21 is input to the data terminal (D) of the F / F group 21, and if the select signal from the comparator 37 is at a high level (ie, , When the count value of the address counter 3 is the block size −1 (= N × M−1)), the F / F group 2
3 is input to the data terminal (D) of the F / F group 21.

【0063】よって、F/F群21は、アドレスカウン
タ3のカウント値がブロックサイズ−1(=N×M−
1)になると、次のクロックタイミング(即ち、アドレ
スカウンタ3のカウント値が初期値0に戻るタイミン
グ)で、その直前にF/F群23に記憶されている次の
ブロックに対する新たなステップ幅をラッチし、そのラ
ッチしたステップ幅を、アドレスカウンタ3のカウント
値が次にブロックサイズ−1(=N×M−1)から初期
値0へ戻るまでの1ブロック分の期間中、アドレスカウ
ンタ3へ出力することとなる。
Therefore, in the F / F group 21, the count value of the address counter 3 is equal to the block size −1 (= N × M−
At 1), at the next clock timing (ie, when the count value of the address counter 3 returns to the initial value of 0), a new step width for the next block stored in the F / F group 23 immediately before is set. The latched step width is transferred to the address counter 3 during the period of one block from when the count value of the address counter 3 returns to the initial value 0 from the next block size -1 (= N × M-1). Will be output.

【0064】つまり、F/F群21は、セレクタ39と
共同して動作することにより、コンパレータ37によっ
てアドレスカウンタ3のカウント値がブロックサイズ−
1(=N×M−1)になったことが検出されると、F/
F群23にラッチされている新たなステップ幅を次のク
ロックタイミングで記憶すると共に、その記憶した新た
なステップ幅をアドレスカウンタ3へ出力することとな
る。そして、この動作により、アドレスカウンタ3のカ
ウント値が初期値0に戻ったタイミングに同期して、そ
のアドレスカウンタ3へ出力されるステップ幅が新たな
ステップ幅に変更される。
That is, the F / F group 21 operates in cooperation with the selector 39, and the count value of the address counter 3 is reduced by the comparator 37 to the block size.
1 (= N × M-1), F /
The new step width latched in the F group 23 is stored at the next clock timing, and the stored new step width is output to the address counter 3. By this operation, the step width output to the address counter 3 is changed to a new step width in synchronization with the timing at which the count value of the address counter 3 returns to the initial value 0.

【0065】次に、図4は、上述したインターリーブア
ドレス発生器1の動作を、行数(ロー数)N=4及び列
数(カラム数)M=3のブロックサイズでインターリー
ブ処理を行う場合を例に挙げて表すタイムチャートであ
る。尚、本実施形態のインターリーブアドレス発生器1
が用いられる場合には、クロック入力端子T1へのクロ
ックに同期して、メモリへデータが順次入力される。
Next, FIG. 4 shows a case where the operation of the above-mentioned interleave address generator 1 is performed by performing an interleave process with a block size of the number of rows (number of rows) N = 4 and the number of columns (number of columns) M = 3. It is a time chart represented by giving an example. Note that the interleave address generator 1 of the present embodiment
Is used, data is sequentially input to the memory in synchronization with the clock to the clock input terminal T1.

【0066】図4に示すように、この例の場合には、1
番目のブロックのデータ(D1-1 〜D1-12)を入力する
期間(即ち、リセット信号がハイレベルからロウレベル
に変化する直前から、データの1ブロック分に相当する
クロックの12周期分の期間)において、アドレスカウ
ンタ3から、0,1,2,3,4,5,6,7,8,
9,10,11の順にアドレスが出力されることとな
る。これは、ステップ幅演算器5のF/F群21から出
力されるステップ幅の初期値が、1であるためである。
As shown in FIG. 4, in this example, 1
A period during which the data (D1-1 to D1-12) of the second block is input (that is, a period corresponding to 12 cycles of a clock corresponding to one block of data from immediately before the reset signal changes from the high level to the low level). , From the address counter 3, 0, 1, 2, 3, 4, 5, 6, 7, 8,
Addresses are output in the order of 9, 10, and 11. This is because the initial value of the step width output from the F / F group 21 of the step width calculator 5 is 1.

【0067】また、この期間においては、ステップ幅演
算器5のF/F群23、加算器25、減算器27、コン
パレータ29,33、及びセレクタ31,35からなる
回路部分の作用により、アドレスカウンタ3からのアド
レスがカラム数M(=3)よりも小さい0,1,2の各
場合に、F/F群21から現在出力されているステップ
幅(=1)が累積加算されると共に、その累積加算値に
ついてブロックサイズ−1(=11)のモジュロを取っ
た値(=3)が、次のブロックに対する新たなステップ
幅としてF/F群23に記憶される。尚、この場合に
は、ステップ幅を3回累積加算してもブロックサイズ
(=12)以上とならないため、F/F群23に記憶さ
れる値は、0→1→2→3と変化する。
In this period, the address counter is operated by the operation of the F / F group 23 of the step width calculator 5, the adder 25, the subtractor 27, the comparators 29 and 33, and the selectors 31 and 35. When the address from 3 is 0, 1, or 2 smaller than the number of columns M (= 3), the step width (= 1) currently output from the F / F group 21 is cumulatively added. The value (= 3) obtained by taking the modulo of the block size -1 (= 11) for the cumulative addition value is stored in the F / F group 23 as a new step width for the next block. In this case, the value stored in the F / F group 23 changes from 0 to 1 to 2 to 3 because the block size (= 12) does not exceed the block size even if the step width is cumulatively added three times. .

【0068】そして、アドレスカウンタ3から出力され
るアドレスが11から0に戻ると、そのタイミングで、
F/F群23に記憶されている新たなステップ幅(=
3)がF/F群21にラッチされると共に、F/F群2
3の出力値が0に戻り、F/F群21にラッチされた新
たなステップ幅(=3)が、2番目のブロックのデータ
(D2-1 〜D2-12)を入力する期間におけるステップ幅
として、アドレスカウンタ3へ出力されることとなる。
When the address output from the address counter 3 returns from 11 to 0, at that timing,
The new step width stored in the F / F group 23 (=
3) is latched by the F / F group 21 and the F / F group 2
3 returns to 0, and the new step width (= 3) latched in the F / F group 21 is the step width during the period of inputting the data (D2-1 to D2-12) of the second block. Is output to the address counter 3.

【0069】このため、2番目のブロックのデータ(D
2-1 〜D2-12)を入力する期間において、アドレスカウ
ンタ3からは、0,3,6,9,1,4,7,10,
2,5,8,11の順にアドレスが出力されることとな
る。尚、この期間において、出力されるアドレスが9の
次に1へと変化しているのは、9に現在のステップ幅で
ある3を加算した値(=12)が、ブロックサイズ(=
12)以上となるため、この場合には、減算器15の演
算結果であって、12についてブロックサイズ−1(=
11)のモジュロを取った値である1が、次のカウント
値としてF/F群11にラッチされるからである。そし
て、このことは、出力されるアドレスが10の次に2へ
と変化する場合についても同様である。
Therefore, the data of the second block (D
2-1 to D2-12), the address counter 3 outputs 0, 3, 6, 9, 1, 4, 7, 10,.
Addresses are output in the order of 2, 5, 8, and 11. During this period, the output address changes to 1 after 9 because the value obtained by adding 3 which is the current step width to 9 (= 12) is the block size (= 12).
12) or more, in this case, the result of the operation of the subtractor 15 and the block size of -12 (=
This is because the value 1 obtained by taking the modulo of 11) is latched by the F / F group 11 as the next count value. This also applies to a case where the output address changes to 2 after 10.

【0070】また、この期間においては、ステップ幅演
算器5のF/F群23、加算器25、減算器27、コン
パレータ29,33、及びセレクタ31,35からなる
回路部分の作用により、アドレスカウンタ3からのアド
レスがカラム数M(=3)よりも小さい0,1,2の各
場合に、F/F群21から現在出力されているステップ
幅(=3)が累積加算されると共に、その累積加算値に
ついてブロックサイズ−1(=11)のモジュロを取っ
た値(=9)が、次のブロックに対する新たなステップ
幅としてF/F群23に記憶される。尚、この場合に
は、ステップ幅を3回累積加算してもブロックサイズ
(=12)以上とならないため、F/F群23に記憶さ
れる値は、0→3→6→9と変化する。
In this period, the address counter is operated by the operation of the circuit portion including the F / F group 23 of the step width calculator 5, the adder 25, the subtractor 27, the comparators 29 and 33, and the selectors 31 and 35. When the address from 3 is 0, 1, or 2 smaller than the column number M (= 3), the step width (= 3) currently output from the F / F group 21 is cumulatively added, and A value (= 9) obtained by taking the modulo of the block size -1 (= 11) for the cumulative addition value is stored in the F / F group 23 as a new step width for the next block. In this case, the value stored in the F / F group 23 changes from 0 to 3 to 6 to 9 because the block size (= 12) does not exceed the block size even if the step width is accumulated three times. .

【0071】そして、アドレスカウンタ3から出力され
るアドレスが11から0に戻ると、そのタイミングで、
F/F群23に記憶されている新たなステップ幅(=
9)がF/F群21にラッチされると共に、F/F群2
3の出力値が0に戻り、F/F群21にラッチされた新
たなステップ幅(=9)が、3番目のブロックのデータ
(D3-1 〜D3-12)を入力する期間におけるステップ幅
として、アドレスカウンタ3へ出力されることとなる。
When the address output from the address counter 3 returns from 11 to 0, at that timing,
The new step width stored in the F / F group 23 (=
9) is latched by the F / F group 21 and the F / F group 2
3 returns to 0, and the new step width (= 9) latched in the F / F group 21 is the step width during the period of inputting the data (D3-1 to D3-12) of the third block. Is output to the address counter 3.

【0072】このため、3番目のブロックのデータ(D
3-1 〜D3-12)を入力する期間において、アドレスカウ
ンタ3からは、0,9,7,5,3,1,10,8,
6,4,2,11の順にアドレスが出力されることとな
る。尚、この期間において、出力されるアドレスが9の
次に7へと変化しているのは、9に現在のステップ幅で
ある9を加算した値(=18)が、ブロックサイズ(=
12)以上となるため、この場合には、減算器15の演
算結果であって、18についてブロックサイズ−1(=
11)のモジュロを取った値である7が、次のカウント
値としてF/F群11にラッチされるからである。そし
て、このことは、出力されるアドレスが7の次に5へと
変化する場合や、5の次に3へと変化する場合等につい
ても同様である。
Therefore, the data of the third block (D
3-1 to D3-12), from the address counter 3, 0, 9, 7, 5, 3, 1, 10, 8,
The addresses are output in the order of 6, 4, 2, and 11. In this period, the output address changes to 9 after 9 because the value (= 18) obtained by adding 9 which is the current step width to 9 is the block size (= 18).
12) or more, in this case, the result of the operation of the subtractor 15 and the block size −1 (=
This is because the value 7 obtained by taking the modulo of 11) is latched in the F / F group 11 as the next count value. The same applies to the case where the output address changes from 7 to 5 or from 5 to 3 or the like.

【0073】また、この期間においては、ステップ幅演
算器5のF/F群23、加算器25、減算器27、コン
パレータ29,33、及びセレクタ31,35からなる
回路部分の作用により、アドレスカウンタ3からのアド
レスがカラム数M(=3)よりも小さい0,1,2の各
場合に、F/F群21から現在出力されているステップ
幅(=9)が累積加算されると共に、その累積加算値に
ついてブロックサイズ−1(=11)のモジュロを取っ
た値(=5)が、次のブロックに対する新たなステップ
幅としてF/F群23に記憶される。尚、この場合、F
/F群23に記憶される値は、0→9→7→5と変化す
る。
During this period, the address counter is operated by the circuit portion including the F / F group 23, the adder 25, the subtractor 27, the comparators 29 and 33, and the selectors 31 and 35 of the step width calculator 5. When the address from 3 is 0, 1, or 2 smaller than the number of columns M (= 3), the step width (= 9) currently output from the F / F group 21 is cumulatively added. A value (= 5) obtained by taking the modulo of the block size -1 (= 11) for the cumulative addition value is stored in the F / F group 23 as a new step width for the next block. In this case, F
The value stored in the / F group 23 changes from 0 → 9 → 7 → 5.

【0074】そして、図4には示されていないが、その
後、アドレスカウンタ3から出力されるアドレスが11
から0に戻ると、そのタイミングで、F/F群23に記
憶されている新たなステップ幅(=5)がF/F群21
にラッチされると共に、F/F群23の出力値が0に戻
り、F/F群21にラッチされた新たなステップ幅(=
5)が、4番目のブロックのデータを入力する期間にお
けるステップ幅として、アドレスカウンタ3へ出力され
ることとなる。このため、4番目のブロックのデータを
入力する期間において、アドレスカウンタ3からは、
0,5,10,4,9,3,8,2,7,1,6,11
の順にアドレスが出力されることとなる。
Then, although not shown in FIG. 4, the address output from the address counter 3 becomes 11
Returns to 0 at that time, the new step width (= 5) stored in the F / F group 23 is
And the output value of the F / F group 23 returns to 0, and the new step width (=
5) is output to the address counter 3 as the step width in the period of inputting the data of the fourth block. Therefore, during the period of inputting the data of the fourth block, the address counter 3 outputs
0, 5, 10, 4, 9, 3, 8, 2, 7, 1, 6, 11
In this order.

【0075】以上のように、本第1実施形態のインター
リーブアドレス発生器1では、アドレスカウンタ3から
クロックに同期して出力されるアドレスのステップ幅
が、その出力されるアドレスがブロックサイズ−1(=
N×M−1)から初期値0に戻る毎であって入力データ
の1ブロック分毎に、ステップ幅演算器5によって変更
されることとなる。
As described above, in the interleaved address generator 1 according to the first embodiment, the step width of the address output from the address counter 3 in synchronization with the clock is the block size minus 1 (block size). =
(N × M−1), and is returned to the initial value 0, and is changed by the step width calculator 5 for each block of the input data.

【0076】よって、このインターリーブアドレス発生
器1によれば、1番目のブロックのデータを入力する期
間においては、アドレスカウンタ3から出力されるメモ
リの各アドレスに入力データを順次書き込み、2番目以
降の各ブロックのデータを入力する期間においては、ア
ドレスカウンタ3から出力されるメモリの各アドレスか
らデータを読み出すと共に、その読み出したアドレスに
現在の入力データを上書きすることにより、図1を用い
て既述した如く、メモリからのデータの読み出しが、そ
のデータを書き込んだ時とは異なるステップ幅でアドレ
ッシングされることとなる。例えば、図4に示した例の
場合において、1ブロック分の入力データに対し1番目
のものから順にD1 ,D2 ,D3 ,D4 ,D5 ,D6 ,
D7 ,D8 ,D9 ,D10,D11,D12というインデック
スを付けるとすると、順次入力される各ブロックの入力
データは、メモリから読み出されることにより、夫々、
D1 ,D4 ,D7 ,D10,D2 ,D5 ,D8 ,D11,D
3 ,D6 ,D9 ,D12という順序に並べ替えられること
となる。
Therefore, according to the interleave address generator 1, during the period of inputting the data of the first block, the input data is sequentially written to each address of the memory output from the address counter 3, and the second and subsequent data are written. During the period of inputting data of each block, data is read from each address of the memory output from the address counter 3 and the read address is overwritten with the current input data, as described with reference to FIG. As described above, the reading of data from the memory is addressed with a step width different from that when the data is written. For example, in the case of the example shown in FIG. 4, D1, D2, D3, D4, D5, D6,.
Assuming that D7, D8, D9, D10, D11 and D12 are indexed, the input data of each block which is sequentially input is read out from the memory, so that
D1, D4, D7, D10, D2, D5, D8, D11, D
3, D6, D9, and D12.

【0077】このため、本第1実施形態のインターリー
ブアドレス発生器1によれば、当該インターリーブアド
レス発生器1とメモリとを1組備えるだけで、複数のブ
ロックのデータに対する連続したインターリーブ処理が
可能となり、インターリーブ処理を行うための回路(イ
ンターリーブ回路)を小型化することができる。
Therefore, according to the interleave address generator 1 of the first embodiment, continuous interleave processing for data of a plurality of blocks can be performed only by providing one set of the interleave address generator 1 and a memory. In addition, a circuit for performing the interleave processing (interleave circuit) can be downsized.

【0078】尚、本第1実施形態では、アドレスカウン
タ3が、アドレスカウント手段に相当しており、そのア
ドレスカウンタ3の動作が、アドレスカウント処理に相
当している。また、ステップ幅演算器5が、ステップ幅
演算手段に相当しており、そのステップ幅演算器5の動
作が、ステップ幅設定処理に相当している。そして、ス
テップ幅演算器5を構成する各部のうちで、F/F群2
3、加算器25、減算器27、コンパレータ29,3
3、セレクタ31,35、及び論理和回路41が、請求
項2に記載のステップ幅設定手段に相当し、コンパレー
タ37が、請求項2に記載の検出手段に相当し、F/F
群21及びセレクタ39が、請求項2に記載のステップ
幅出力手段に相当している。
In the first embodiment, the address counter 3 corresponds to an address counting means, and the operation of the address counter 3 corresponds to an address counting process. The step width calculator 5 corresponds to a step width calculator, and the operation of the step width calculator 5 corresponds to a step width setting process. Then, among the units constituting the step width calculator 5, the F / F group 2
3, adder 25, subtractor 27, comparator 29,3
3, the selectors 31, 35 and the OR circuit 41 correspond to the step width setting means according to claim 2, and the comparator 37 corresponds to the detection means according to claim 2, and the F / F
The group 21 and the selector 39 correspond to the step width output means.

【0079】ところで、上記第1実施形態のインターリ
ーブアドレス発生器1では、アドレスカウンタ3へ現在
出力しているステップ幅にカラム数Mを乗じた値を、現
在のステップ幅をカラム数M回分だけ累積加算すること
によって求めたが、現在のステップ幅とカラム数Mとを
直接乗算するようにしても良い。
In the interleave address generator 1 of the first embodiment, a value obtained by multiplying the step width currently output to the address counter 3 by the number of columns M is accumulated by the current step width for the number of columns M. Although obtained by adding, the current step width and the number of columns M may be directly multiplied.

【0080】そこで次に、現在のステップ幅にカラム数
Mを乗じた値を、現在のステップ幅とカラム数Mとを乗
算器にて乗算することにより求めるようにした第2実施
形態のインターリーブアドレス発生器について、具体的
に説明する。まず、図5は、本第2実施形態のインター
リーブアドレス発生器43を表す回路図である。尚、図
5において、前述した第1実施形態のインターリーブア
ドレス発生器1と同じ構成要素については、同一の符号
を付しているため、詳細な説明は省略する。
Then, a value obtained by multiplying the current step width and the number of columns M by a multiplier is used to obtain a value obtained by multiplying the current step width by the number of columns M in the second embodiment. The generator will be specifically described. First, FIG. 5 is a circuit diagram illustrating the interleaved address generator 43 according to the second embodiment. Note that, in FIG. 5, the same components as those of the interleave address generator 1 of the above-described first embodiment are denoted by the same reference numerals, and a detailed description thereof will be omitted.

【0081】図5に示すように、本第2実施形態のイン
ターリーブアドレス発生器43は、第1実施形態のイン
ターリーブアドレス発生器1と比較して、ステップ幅演
算器45の構成だけが異なっており、アドレスカウンタ
3は全く同じである。そして、本第2実施形態のステッ
プ幅演算器45は、第1実施形態のステップ幅演算器5
と比較して、加算器25、減算器27、コンパレータ2
9,33、セレクタ31,35、及び論理和回路41の
代わりに、F/F群21の出力値(即ち、現在のステッ
プ幅)とカラム数入力端子T3からのカラム数(=M)
とを乗算する乗算器47と、アドレスカウンタ3のカウ
ント値(即ち、アドレスカウンタ3のF/F群11から
メモリへ出力されているアドレス)が0である場合に、
ハイレベルのセレクト信号を出力し、アドレスカウンタ
3のカウント値が0でない場合に、ロウレベルのセレク
ト信号を出力するコンパレータ49と、コンパレータ4
9からのセレクト信号がハイレベルの場合に、乗算器4
7の演算結果を選択して出力し、コンパレータ49から
のセレクト信号がロウレベルの場合に、F/F群23の
出力を選択して出力するセレクタ51と、そのセレクタ
51の出力から、ブロックサイズ入力端子T2より入力
されるブロックサイズ−1(=N×M−1)を減算する
減算器53と、セレクタ51の出力とブロックサイズ入
力端子T2からのブロックサイズ−1とを大小比較し
て、セレクタ51の出力がブロックサイズ−1(=N×
M−1)以下である場合に、ハイレベルのセレクト信号
を出力し、そうでなければ(つまり、セレクタ51の出
力がブロックサイズ(=N×M)以上である場合に)、
ロウレベルのセレクト信号を出力するコンパレータ55
と、コンパレータ55からのセレクト信号がハイレベル
の場合に、セレクタ51の出力をF/F群23のデータ
端子(D)に入力させ、コンパレータ55からのセレク
ト信号がロウレベルの場合に、減算器53の演算結果を
F/F群23のデータ端子(D)に入力させるセレクタ
57と、を備えている。
As shown in FIG. 5, the interleave address generator 43 of the second embodiment differs from the interleave address generator 1 of the first embodiment only in the configuration of the step width calculator 45. , Address counter 3 are exactly the same. The step width calculator 45 of the second embodiment is different from the step width calculator 5 of the first embodiment.
, The adder 25, the subtractor 27, the comparator 2
9, 33, the selectors 31, 35, and the OR circuit 41, instead of the output value of the F / F group 21 (ie, the current step width) and the number of columns from the column number input terminal T3 (= M).
When the count value of the address counter 3 (ie, the address output from the F / F group 11 of the address counter 3 to the memory) is 0,
A comparator 49 that outputs a high-level select signal and outputs a low-level select signal when the count value of the address counter 3 is not 0;
9 is high, the multiplier 4
7 is selected and output, and when the select signal from the comparator 49 is at a low level, a selector 51 for selecting and outputting the output of the F / F group 23 and a block size input from the output of the selector 51 A selector 53 compares the output of the selector 51 with the block size -1 from the block size input terminal T2, and compares the output of the selector 51 with the block size -1 from the block size input terminal T2. 51 is the block size -1 (= N ×
M-1), a high-level select signal is output. Otherwise (ie, when the output of the selector 51 is equal to or larger than the block size (= N × M)),
Comparator 55 for outputting low-level select signal
When the select signal from the comparator 55 is at a high level, the output of the selector 51 is input to the data terminal (D) of the F / F group 23, and when the select signal from the comparator 55 is at a low level, And a selector 57 for inputting the calculation result of (1) to the data terminal (D) of the F / F group 23.

【0082】そして、このステップ幅演算器45では、
F/F群23のリセット端子(RESET)に、リセッ
ト信号入力端子T4からのリセット信号が直接入力され
るようになっている。このように構成されたステップ幅
演算器45においては、リセット信号入力端子T4から
ハイレベルのリセット信号が入力されると、F/F群2
3では、その各フリップフロップのリセット端子(RE
SET)に入力される信号がハイレベルとなり、また、
F/F群21では、1ビット目のフリップフロップのプ
リセット端子(SET)と、それ以外のビットのフリッ
プフロップのリセット端子(RESET)とに夫々入力
される信号がハイレベルとなる。
Then, in this step width calculator 45,
The reset signal from the reset signal input terminal T4 is directly input to the reset terminal (RESET) of the F / F group 23. In the step width calculator 45 configured as above, when a high-level reset signal is input from the reset signal input terminal T4, the F / F group 2
3, the reset terminal (RE) of each flip-flop
SET) goes high, and
In the F / F group 21, the signals input to the preset terminal (SET) of the flip-flop of the first bit and the reset terminal (RESET) of the flip-flops of other bits become high level.

【0083】このため、第1実施形態のステップ幅演算
器5と同様に、リセット信号入力端子T4からハイレベ
ルのリセット信号が入力されると、クロック入力端子T
1からのクロックに同期して、F/F群23の出力値は
全ビットが0となる。また、F/F群21の出力値は、
1ビット目だけが1で、それ以外のビットが0となり、
この結果、アドレスカウンタ3へ出力されるステップ幅
は初期値としての1になる(図6参照)。
Therefore, similarly to the step width calculator 5 of the first embodiment, when a high-level reset signal is input from the reset signal input terminal T4, the clock input terminal T
All bits of the output value of the F / F group 23 become 0 in synchronization with the clock from 1. The output value of the F / F group 21 is
Only the first bit is 1, the other bits are 0,
As a result, the step width output to the address counter 3 becomes 1 as an initial value (see FIG. 6).

【0084】そして、その後、リセット信号入力端子T
4からのリセット信号がロウレベルになって、リセット
が解除されると、F/F群23は、セレクタ57の出力
をクロックに同期してラッチし出力する。ここで、本第
2実施形態のステップ幅演算器45においては、アドレ
スカウンタ3のカウント値が0である場合に、セレクタ
51から、乗算器47によってF/F群21の出力値と
カラム数(=M)とが乗算された乗算結果が出力され、
更に、その乗算器47の乗算結果がブロックサイズ−1
(=N×M−1)以下であれば、その乗算結果がそのま
まセレクタ57からF/F群23のデータ端子(D)へ
出力され、逆に、乗算器47の演算結果がブロック数
(=N×M)以上であれば、減算器53によって乗算器
47の乗算結果からブロックサイズ−1(=N×M−
1)が減算された演算結果が、セレクタ57からF/F
群23のデータ端子(D)へ出力される。
Then, thereafter, the reset signal input terminal T
When the reset signal from 4 goes low and the reset is released, the F / F group 23 latches and outputs the output of the selector 57 in synchronization with the clock. Here, in the step width calculator 45 of the second embodiment, when the count value of the address counter 3 is 0, the output value of the F / F group 21 and the number of columns ( = M) and the result of multiplication is output.
Further, the multiplication result of the multiplier 47 is equal to the block size -1.
If (= N × M−1) or less, the result of the multiplication is directly output from the selector 57 to the data terminal (D) of the F / F group 23, and conversely, the result of the operation of the multiplier 47 is the number of blocks (= If it is equal to or more than N × M, the block size −1 (= N × M−
The calculation result obtained by subtracting 1) is supplied from the selector 57 to the F / F
The data is output to the data terminal (D) of the group 23.

【0085】また、アドレスカウンタ3のカウント値が
0でない場合には、セレクタ51から、F/F群23の
出力の方が選択されて出力され、更に、そのF/F群2
3の出力値がブロックサイズ−1(=N×M−1)以下
であれば、そのF/F群23の出力がそのままセレクタ
57からF/F群23のデータ端子(D)へ出力され、
逆に、F/F群23の出力値がブロック数(=N×M)
以上であれば、減算器53によってF/F群23の出力
値からブロックサイズ−1(=N×M−1)が減算され
た演算結果が、セレクタ57からF/F群23のデータ
端子(D)へ出力される。
When the count value of the address counter 3 is not 0, the output of the F / F group 23 is selected and output from the selector 51.
3 is equal to or smaller than the block size −1 (= N × M−1), the output of the F / F group 23 is output from the selector 57 to the data terminal (D) of the F / F group 23 as it is,
Conversely, the output value of the F / F group 23 is the number of blocks (= N × M)
If so, the operation result obtained by subtracting the block size −1 (= N × M−1) from the output value of the F / F group 23 by the subtractor 53 is output from the selector 57 to the data terminal of the F / F group 23 ( D).

【0086】このため、F/F群23は、乗算器47、
減算器53、コンパレータ49,55、及びセレクタ5
1,57と共同して動作することにより、F/F群21
から出力されているステップ幅とカラム数Mとを乗算し
た乗算値についてブロックサイズ−1(=N×M−1)
のモジュロを取った値を、次のブロックに対するインタ
ーリーブ処理時の新たなステップ幅として記憶すること
となる。そして、この動作により、アドレスカウンタ3
へ現在出力しているステップ幅にカラム数(=M)を乗
じた値についてブロックサイズ−1(=N×M−1)の
モジュロを取った値が、次のブロックに対するインター
リーブ処理時の新たなステップ幅として設定される。
Therefore, the F / F group 23 includes a multiplier 47,
Subtractor 53, comparators 49 and 55, and selector 5
1 and 57, the F / F group 21
Block size -1 (= N × M-1) for the multiplied value obtained by multiplying the step width output from the above by the number of columns M
Is stored as a new step width at the time of interleave processing for the next block. Then, by this operation, the address counter 3
Is multiplied by the number of columns (= M) to the currently output step width, the value obtained by taking the modulo of the block size −1 (= N × M−1) is a new value at the time of the interleave processing for the next block. Set as step width.

【0087】一方、当該ステップ幅演算器45において
も、第1実施形態のステップ幅演算器5と同様に、リセ
ット信号入力端子T4からのリセット信号がハイレベル
からロウレベルになってリセットが解除されると、F/
F群21は、コンパレータ37からのセレクト信号に応
じて動作するセレクタ39の出力を、クロックに同期し
てラッチし、ステップ幅として出力する。そして、セレ
クタ39は、コンパレータ37からのセレクト信号がロ
ウレベルの場合(即ち、アドレスカウンタ3のカウント
値がブロックサイズ−1(=N×M−1)でない場合)
には、F/F群21の出力をF/F群21のデータ端子
(D)に入力させ、また、コンパレータ37からのセレ
クト信号がハイレベルの場合(即ち、アドレスカウンタ
3のカウント値がブロックサイズ−1(=N×M−1)
である場合)に、F/F群23の出力をF/F群21の
データ端子(D)に入力させる。
On the other hand, in the step width calculator 45, similarly to the step width calculator 5 of the first embodiment, the reset signal from the reset signal input terminal T4 changes from the high level to the low level, and the reset is released. And F /
The F group 21 latches the output of the selector 39 that operates according to the select signal from the comparator 37 in synchronization with the clock, and outputs it as a step width. Then, the selector 39 determines that the select signal from the comparator 37 is at a low level (that is, the count value of the address counter 3 is not the block size -1 (= N × M-1)).
, The output of the F / F group 21 is input to the data terminal (D) of the F / F group 21. When the select signal from the comparator 37 is at a high level (that is, the count value of the address counter 3 is Size -1 (= N × M-1)
), The output of the F / F group 23 is input to the data terminal (D) of the F / F group 21.

【0088】よって、本第2実施形態のステップ幅演算
器45においても、F/F群21は、アドレスカウンタ
3のカウント値がブロックサイズ−1(=N×M−1)
になると、次のクロックタイミング(即ち、アドレスカ
ウンタ3のカウント値が初期値0に戻るタイミング)
で、F/F群23に記憶されている次のブロックに対す
る新たなステップ幅をラッチし、そのラッチしたステッ
プ幅を、アドレスカウンタ3のカウント値が次にブロッ
クサイズ−1(=N×M−1)から初期値0へ戻るまで
の1ブロック分の期間中、アドレスカウンタ3へ出力す
ることとなる。
Therefore, also in the step width calculator 45 of the second embodiment, the count value of the address counter 3 of the F / F group 21 is equal to the block size −1 (= N × M−1).
, The next clock timing (ie, the timing at which the count value of the address counter 3 returns to the initial value 0)
Then, a new step width for the next block stored in the F / F group 23 is latched, and the latched step width is determined by the count value of the address counter 3 and the block size minus 1 (= N × M− During the period of one block from 1) until the initial value is returned to 0, the data is output to the address counter 3.

【0089】ここで、図6は、本第2実施形態のインタ
ーリーブアドレス発生器43の動作を、行数(ロー数)
N=4及び列数(カラム数)M=3のブロックサイズで
インターリーブ処理を行う場合を例に挙げて表すタイム
チャートである。そして、図6に示すように、本第2実
施形態のインターリーブアドレス発生器43では、F/
F群23の出力値が、1番目のブロックのデータ(D1-
1 〜D1-12)を入力する期間の開始から2つ目のクロッ
クタイミングにおいて、0から3へと変化し、2番目の
ブロックのデータ(D2-1 〜D2-12)を入力する期間の
開始から2つ目のクロックタイミングにおいて、3から
9へと変化し、更に、3番目のブロックのデータ(D3-
1 〜D3-12)を入力する期間の開始から2つ目と3つ目
の各クロックタイミングにおいて、9→16→5と順次
変化する点のみが、第1実施形態のインターリーブアド
レス発生器1と異なっている。
FIG. 6 shows the operation of the interleave address generator 43 of the second embodiment according to the number of rows (the number of rows).
9 is a time chart illustrating an example in which an interleave process is performed with a block size of N = 4 and the number of columns (the number of columns) M = 3. Then, as shown in FIG. 6, the interleave address generator 43 of the second embodiment
The output value of the F group 23 is the data of the first block (D1-
At the second clock timing from the start of the period for inputting 1 to D1-12), the state changes from 0 to 3 and the start of the period for inputting data (D2-1 to D2-12) of the second block From the third clock to the ninth at the second clock timing, and the data (D3-
1 to D3-12) at the second and third clock timings from the start of the input period, the only point that sequentially changes from 9 to 16 to 5 is the interleaved address generator 1 of the first embodiment. Is different.

【0090】そして、このような本第2実施形態のイン
ターリーブアドレス発生器43によっても、アドレスカ
ウンタ3からは、第1実施形態のインターリーブアドレ
ス発生器1と全く同様の順序でアドレスが出力されるこ
ととなり、当該インターリーブアドレス発生器43とメ
モリとを1組備えるだけで、複数のブロックのデータに
対する連続したインターリーブ処理が可能となる。
Also, with the interleave address generator 43 of the second embodiment, the addresses are output from the address counter 3 in exactly the same order as the interleave address generator 1 of the first embodiment. By simply providing one set of the interleave address generator 43 and the memory, continuous interleave processing can be performed on data of a plurality of blocks.

【0091】尚、本第2実施形態では、アドレスカウン
タ3が、アドレスカウント手段に相当しており、そのア
ドレスカウンタ3の動作が、アドレスカウント処理に相
当している。また、ステップ幅演算器45が、ステップ
幅演算手段に相当しており、そのステップ幅演算器45
の動作が、ステップ幅設定処理に相当している。そし
て、ステップ幅演算器45を構成する各部のうちで、F
/F群23、乗算器47、減算器53、コンパレータ4
9,55、及びセレクタ51,57が、請求項3に記載
のステップ幅設定手段に相当し、コンパレータ37が、
請求項3に記載の検出手段に相当し、F/F群21及び
セレクタ39が、請求項3に記載のステップ幅出力手段
に相当している。
In the second embodiment, the address counter 3 corresponds to the address counting means, and the operation of the address counter 3 corresponds to the address counting process. The step width calculator 45 corresponds to a step width calculator, and the step width calculator 45
Corresponds to the step width setting process. Then, among the components constituting the step width calculator 45, F
/ F group 23, multiplier 47, subtractor 53, comparator 4
9 and 55 and the selectors 51 and 57 correspond to the step width setting means according to claim 3, and the comparator 37
The F / F group 21 and the selector 39 correspond to the step width output means according to the third aspect.

【0092】以上、本発明の一実施形態について説明し
たが、本発明は、前述した実施形態に限定されるもので
はなく、種々の形態を採り得ることは言うまでもない。
例えば、前述した各実施形態では、ステップ幅演算器
5,45からアドレスカウンタ3へ出力されるステップ
幅の初期値が1であったが、ステップ幅の初期値は、1
以上の整数であれば良い。
Although the embodiment of the present invention has been described above, the present invention is not limited to the above-described embodiment, and it goes without saying that various forms can be adopted.
For example, in each of the above-described embodiments, the initial value of the step width output from the step width calculators 5 and 45 to the address counter 3 is 1, but the initial value of the step width is 1
Any integer greater than or equal to the integer may be used.

【0093】また、インターリーブ処理に用いるメモリ
の先頭アドレスが0番地でない場合には、アドレスカウ
ンタ3から出力されるアドレスに、メモリの先頭アドレ
スの値を加算し、その加算後のアドレスをメモリのアド
レス入力端子に供給するようにすれば良い。
If the start address of the memory used for the interleave processing is not address 0, the value of the start address of the memory is added to the address output from the address counter 3 and the address after the addition is used as the address of the memory. What is necessary is just to supply it to an input terminal.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 本発明の作用を説明する説明図である。FIG. 1 is an explanatory diagram illustrating an operation of the present invention.

【図2】 第1実施形態のインターリーブアドレス発生
器の構成を表すブロック図である。
FIG. 2 is a block diagram illustrating a configuration of an interleaved address generator according to the first embodiment.

【図3】 第1実施形態のインターリーブアドレス発生
器の構成を表す回路図である。
FIG. 3 is a circuit diagram illustrating a configuration of an interleaved address generator according to the first embodiment.

【図4】 図3のインターリーブアドレス発生器の動作
を表すタイムチャートである。
FIG. 4 is a time chart illustrating an operation of the interleave address generator in FIG. 3;

【図5】 第2実施形態のインターリーブアドレス発生
器の構成を表す回路図である。
FIG. 5 is a circuit diagram illustrating a configuration of an interleaved address generator according to a second embodiment.

【図6】 図5のインターリーブアドレス発生器の動作
を表すタイムチャートである。
6 is a time chart showing the operation of the interleave address generator of FIG.

【図7】 従来のインターリーブアドレス発生器を用い
たインターリーブ回路の基本構成を表すブロック図であ
る。
FIG. 7 is a block diagram illustrating a basic configuration of an interleave circuit using a conventional interleave address generator.

【図8】 図7のインターリーブ回路の動作を説明する
説明図である。
FIG. 8 is an explanatory diagram illustrating an operation of the interleave circuit of FIG. 7;

【図9】 複数のブロックのデータを連続してインター
リーブ処理するための、従来のインターリーブ回路の構
成を表すブロック図である。
FIG. 9 is a block diagram showing a configuration of a conventional interleaving circuit for continuously interleaving data of a plurality of blocks.

【図10】 図9のインターリーブ回路の動作を表すタ
イムチャートである。
FIG. 10 is a time chart illustrating an operation of the interleave circuit in FIG. 9;

【符号の説明】[Explanation of symbols]

1,43…インターリーブアドレス発生器 3…アドレスカウンタ 5,45…ステップ幅演算器 11,21,23…フリップフロップ群(F/F群) 13,25…加算器 15,27,53…減算器
47…乗算器 17,29,33,37,49,55…コンパレータ 19,31,35,39,51,57…セレクタ 4
1…論理和回路 T1…クロック入力端子 T2…ブロックサイズ入力
端子 T3…カラム数入力端子 T4…リセット信号入力端
子 T5…アドレス出力端子
1,43 ... interleave address generator 3 ... address counter 5,45 ... step width calculator 11,21,23 ... flip-flop group (F / F group) 13,25 ... adder 15,27,53 ... subtractor
47: Multiplier 17, 29, 33, 37, 49, 55 ... Comparator 19, 31, 35, 39, 51, 57 ... Selector 4
1: OR circuit T1: Clock input terminal T2: Block size input terminal T3: Column number input terminal T4: Reset signal input terminal T5: Address output terminal

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 N×M個(但し、NとMは2以上の整
数)を1ブロックとするデータを順次入力してメモリへ
書き込むと共に、そのメモリに書き込んだデータを書き
込み時とは異なるアドレスの順序で読み出すことによ
り、入力したデータを入力時の順序とは異なる順序で出
力するインターリーブ処理を行うために用いられ、前記
メモリへの読み出し及び書き込み用のアドレスを発生す
るインターリーブアドレス発生器であって、 クロックに同期し且つ外部より入力されるステップ幅で
初期値0からカウントアップ動作を行い、そのカウント
値を前記メモリへの読み出し及び書き込み用のアドレス
として出力すると共に、次のクロックタイミングでのカ
ウント値が前記(N×M)以上となる場合には、その値
について(N×M−1)のモジュロを取った値を、次の
クロックタイミングでのカウント値とし、更に、今回の
カウント値が(N×M−1)となった場合には、次のク
ロックタイミングでのカウント値を初期値0に戻すよう
に構成されたアドレスカウント手段と、 前記ステップ幅を演算して前記アドレスカウント手段へ
出力する手段であって、現在出力しているステップ幅に
前記Mを乗じた値について(N×M−1)のモジュロを
取った値を、次のブロックに対するインターリーブ処理
時の新たなステップ幅として設定し、前記アドレスカウ
ント手段のカウント値が初期値0に戻ったタイミングに
同期して、前記アドレスカウント手段へ出力するステッ
プ幅を前記設定した新たなステップ幅に変更するステッ
プ幅演算手段と、 を備えたことを特徴とするインターリーブアドレス発生
器。
1. A method of sequentially inputting data of N × M (where N and M are integers of 2 or more) as one block and writing the data to a memory, and writing the data written to the memory to an address different from the address at the time of writing. The interleave address generator is used to perform interleave processing of outputting input data in an order different from the order at the time of input by reading in the order of, and generating addresses for reading and writing to the memory. In synchronization with the clock, a count-up operation is performed from the initial value 0 with a step width input from the outside, and the count value is output as an address for reading and writing to the memory, and at the next clock timing. When the count value is equal to or more than the above (N × M), the value is modulo (N × M−1). The taken value is used as the count value at the next clock timing, and when the current count value becomes (N × M−1), the count value at the next clock timing is returned to the initial value 0. And a means for calculating the step width and outputting the calculated step width to the address counting means, wherein a value obtained by multiplying the currently output step width by M is (N × M−1 ) Is set as a new step width at the time of the interleave processing for the next block, and is synchronized with the timing at which the count value of the address counting means returns to the initial value 0, and is sent to the address counting means. And a step width calculating means for changing the output step width to the set new step width. Greed.
【請求項2】 請求項1に記載のインターリーブアドレ
ス発生器において、 前記ステップ幅演算手段は、 前記アドレスカウント手段のカウント値が初期値0から
(N×M−1)となるまでの1ブロック分の期間中に、
現在出力しているステップ幅を前記M回分だけ累積加算
すると共に、その累積加算値について(N×M−1)の
モジュロを取った値を、次のブロックに対するインター
リーブ処理時の新たなステップ幅として設定するステッ
プ幅設定手段と、 前記アドレスカウント手段のカウント値が(N×M−
1)になったことを検出する検出手段と、 該検出手段により前記アドレスカウント手段のカウント
値が(N×M−1)になったことが検出されると、前記
ステップ幅設定手段にて設定された新たなステップ幅
を、次のクロックタイミングで記憶すると共に、該記憶
したステップ幅を前記アドレスカウント手段へ出力する
ステップ幅出力手段とから構成されていること、 を特徴とするインターリーブアドレス発生器。
2. The interleave address generator according to claim 1, wherein the step width calculating means includes one block from when the count value of the address counting means changes from an initial value of 0 to (N × M−1). During the period
The currently output step width is cumulatively added for the M times, and the value obtained by taking the modulo of (N × M−1) for the cumulative added value is used as a new step width at the time of the interleave processing for the next block. The step width setting means to be set, and the count value of the address counting means is (N × M−
1) detecting means for detecting that the count value of the address counting means has become (N × M-1); And a step width output means for storing the new step width obtained at the next clock timing and outputting the stored step width to the address counting means. .
【請求項3】 請求項1に記載のインターリーブアドレ
ス発生器において、 前記ステップ幅演算手段は、 現在出力しているステップ幅と前記Mとの乗算を行うと
共に、その乗算値について(N×M−1)のモジュロを
取った値を、次のブロックに対するインターリーブ処理
時の新たなステップ幅として設定するステップ幅設定手
段と、 前記アドレスカウント手段のカウント値が(N×M−
1)になったことを検出する検出手段と、 該検出手段により前記アドレスカウント手段のカウント
値が(N×M−1)になったことが検出されると、前記
ステップ幅設定手段にて設定された新たなステップ幅
を、次のクロックタイミングで記憶すると共に、該記憶
したステップ幅を前記アドレスカウント手段へ出力する
ステップ幅出力手段とから構成されていること、 を特徴とするインターリーブアドレス発生器。
3. The interleave address generator according to claim 1, wherein the step width calculating means multiplies the currently output step width by the M, and calculates (N × M− Step width setting means for setting the value obtained by taking the modulo of 1) as a new step width at the time of the interleave processing for the next block; and the count value of the address counting means being (N × M−
Detecting means for detecting that the count value has become (1), and setting the step width setting means when the count value of the address counting means has become (N × M-1). And a step width output means for storing the new step width obtained at the next clock timing and outputting the stored step width to the address counting means. .
【請求項4】 N×M個(但し、NとMは2以上の整
数)を1ブロックとするデータを順次入力してメモリへ
書き込むと共に、そのメモリに書き込んだデータを書き
込み時とは異なるアドレスの順序で読み出すことによ
り、入力したデータを入力時の順序とは異なる順序で出
力するインターリーブ処理を行うために用いられ、前記
メモリへの読み出し及び書き込み用のアドレスを発生す
るインターリーブアドレス発生方法であって、 設定されたステップ幅で初期値0からカウントアップを
行って、そのカウント値を前記メモリへの読み出し及び
書き込み用のアドレスとして順次出力すると共に、次の
カウント値が前記(N×M)以上となる場合には、その
値について(N×M−1)のモジュロを取った値を、次
のカウント値とし、更に、今回のカウント値が(N×M
−1)となった場合には、次のカウント値を初期値0に
戻すようにしたアドレスカウント処理と、 該アドレスカウント処理で用いる前記ステップ幅を設定
するステップ幅設定処理とからなり、 前記ステップ幅設定処理では、現在設定しているステッ
プ幅に前記Mを乗じた値について(N×M−1)のモジ
ュロを取った値を、次のブロックに対するインターリー
ブ処理時の新たなステップ幅として求め、前記アドレス
カウント処理によるカウント値が初期値0に戻ったタイ
ミングに同期して、前記アドレスカウント処理で用いる
ステップ幅を前記求めた新たなステップ幅に更新するこ
と、 を特徴とするインターリーブアドレス発生方法。
4. A method in which N × M (where N and M are integers of 2 or more) data as one block are sequentially input and written to a memory, and the data written to the memory has an address different from the address at the time of writing. The interleave address generation method is used for performing interleave processing of outputting input data in an order different from the order at the time of input by reading out in the order of, and generating addresses for reading and writing to the memory. The count is incremented from the initial value 0 at the set step width, and the count is sequentially output as an address for reading and writing to the memory, and the next count is equal to or more than the above (N × M). In the case of, the value obtained by taking the modulo of (N × M−1) for the value is set as the next count value, and Count value is (N × M
When -1) is reached, it comprises an address counting process for returning the next count value to the initial value 0, and a step width setting process for setting the step width used in the address counting process. In the width setting process, a value obtained by taking the modulo of (N × M−1) for a value obtained by multiplying the currently set step width by the above M is obtained as a new step width in the interleaving process for the next block. A step width used in the address counting process is updated to the obtained new step width in synchronization with a timing when the count value in the address counting process returns to the initial value 0.
JP10243718A 1998-08-28 1998-08-28 Interleaving address generator and interleaving address generation method Pending JP2000078030A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10243718A JP2000078030A (en) 1998-08-28 1998-08-28 Interleaving address generator and interleaving address generation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10243718A JP2000078030A (en) 1998-08-28 1998-08-28 Interleaving address generator and interleaving address generation method

Publications (1)

Publication Number Publication Date
JP2000078030A true JP2000078030A (en) 2000-03-14

Family

ID=17107963

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10243718A Pending JP2000078030A (en) 1998-08-28 1998-08-28 Interleaving address generator and interleaving address generation method

Country Status (1)

Country Link
JP (1) JP2000078030A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986081B1 (en) * 1999-03-15 2006-01-10 Matsushita Electric Industrial Co., Ltd. Block interleaving apparatus, block deinterleaving apparatus, block interleaving method and block deinterleaving method
KR100762134B1 (en) 2004-10-07 2007-10-02 엘지전자 주식회사 Method of generating read address for block interleaving

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986081B1 (en) * 1999-03-15 2006-01-10 Matsushita Electric Industrial Co., Ltd. Block interleaving apparatus, block deinterleaving apparatus, block interleaving method and block deinterleaving method
KR100762134B1 (en) 2004-10-07 2007-10-02 엘지전자 주식회사 Method of generating read address for block interleaving

Similar Documents

Publication Publication Date Title
JPH10214486A (en) Method of generating superposed interleaver and memory address
US4639920A (en) Data interpolating circuit using a two data word memory
US4774686A (en) Serial digital signal processing circuitry
JP3276852B2 (en) Code conversion circuit
JP3535833B2 (en) Block interleave device, block deinterleave device, block interleave method, and block deinterleave method
JP3549756B2 (en) Block interleave circuit
JP2000078030A (en) Interleaving address generator and interleaving address generation method
CN115549679A (en) Current source control circuit and digital-to-analog conversion circuit applied to current rudder
JP2917853B2 (en) Convolutional interleave circuit
US6195781B1 (en) Error correction code calculator
JPH04326138A (en) High-speed memory ic
JP2827978B2 (en) Interleave device
JP3471275B2 (en) Synchronization circuit
JPH04421B2 (en)
JP2945804B2 (en) Semiconductor storage device
CN113517888A (en) Circuit device and method for synthesizing arbitrary waveform with optimized spectral purity
JPH0879012A (en) Digital filter
JPH07225630A (en) Optional waveform generator with sequence function
JPH05300028A (en) Interleave address generating circuit
JP2914813B2 (en) Error correction decoding device
JPH04179344A (en) Encoding device
RU1774328C (en) Decimal numbers divider
JPH08335887A (en) Interleave address generation circuit for plural interleave matrixes
JPH07193463A (en) Variable phase shifter
JP4532637B2 (en) Data reordering device