A Programmable CMOS analog vector quantizer chip

thumbnail.default.alt
Tarih
1999
Yazarlar
Aksın, Devrim Yılmaz
Süreli Yayın başlığı
Süreli Yayın ISSN
Cilt Başlığı
Yayınevi
Institute of Science and Technology
Özet
Kuantalama fikrinin temelleri 1898'li yıllara kadar uzanmaktadır. Kuantalayıcıların tarihsel hikayesi ve ilgili kaynakların önemli bir bölümü Robert M. GRAY ve David L. NEUHOFF'un 'Quantization' başlıklı makalesinde bulunabilir. Haberleşme teorisinde, kuantalayıcılar genellikle bir işaret sıkıştırma metodu olarak algılanmışlardır. Kuantalamanın amacı şu şekilde özetlenebilir: Belli bir olasılık yoğunluk fonksiyonu ile tanımlanmış bir kaynaktan gelen işaretlerin mümkün olan en düşük bit sayısı ile kodlamak, öyle ki bu kodun çözülmesi ile elde edilen işaret mümkün olduğu kadar yüksek kalitede olsun. Kuantalayıcıları giriş işaret vektörlerinin boyutlarına göre 2 ana kategoriye ayırmak mümkündür. Giriş işaret vektörü tek boyutlu ise kuantalayıcı 'Skalar Kuantalayıcı' olarak adlandırılır, aksi takdirde kuantalayıcı 'Vektörel Kuantalayıcı' olarak adlandırılır. Son yıllarda Vektörel Kuantalayıcılar üzerine odaklanmış çalışmaların sayısı hızla artmaktadır. Bunun ana sebebi, Shannon' in 'Rate-Distortion' teoremine göre, teorik olarak, daha iyi bir performans, her zaman, tek bir işaret yerine bir işaret bloğunun birlikte kodlanması sayesinde elde edilebilir. Vektör Kuantalamayı, m boyutlu vektör uzayı Rm'den onun bir alt kümesi olan T ye bir dönüşüm olarak tanımlayabiliriz. Q : Rm -> T Kod-kitabı (code-book) olarak adlandırılan T kümesinin içinde kuanta vektörleri vardır. Kuantalayıcı, girişindeki her bir giriş vektörüne karşı düşen kuanta vektörünü seçer. Bunu şu şekilde ifade edebiliriz: Q(x) = t, Daha sonra seçilen kuanta vektörünün Kod-kitabı içindeki indeksi kodlanarak çıkış işareti üretilir. Birinci işlem bir sınıflama işlemidir, ikincisi ise kodlama işlemidir. xvıYukarıdaki bilgilerden yararlanarak şunu belirtebiliriz ki, Vektör Kuantalayıcı tasarımı kendi içinde iki problemi barındırır. Birinci problem olasılık yoğunluk fonksiyonu belli giriş işaretleri için 'optimal' Kod-kitabının tasarlanması. Bu problemin çözümü Haberleşme Teorisinin konusudur. İkinci problem ise Kod- Kitaplığı belirlenmiş bir Vektör Kuantalayıcının optimal bir şekilde silikon üzerine aktarılmasıdır. Bu tezde ikinci problemin çözümüne ilişkin bir sistem yapısı gösterilmiş; ve sistem alt blokları ile birlikte gerçekleştirilerek silikon üzerine aktarılmıştır. Aşağıda, önerilen Programlanabilir CMOS Analog Vektör Kuantalayıcı sistemin mimari yapısı görülmektedir. P O o o Distance Block uP r t. ıı T2ı "T:ml - T- l-T, 12 22 ~Tm2 l-T, İm w I o o o. '-s Output Distance Call input T T:: X (input vector) Şekil 1 : Sistem blok Şeması {output Sistem kabaca iki ana fonksiyonel bölüme ayrılabilir, Distance ve MİNNET bloklarından oluşan birinci bölüm sınıflandırma işlemini, Encoder bloğundan oluşan ikinci bölüm ise kodlama işlemini yapar. Şemadaki Distance bloğu, Distance hücre matrisinden oluşmuştur. Matristeki her bir satırda giriş vektör boyu kadar Distance hücresi vardır ve içlerinde o satıra ilişkin kuanta vektörü saklanmaktadır. Distance hücreleri girişlerine uygulanan işaret ile içlerinde saklanan kuanta vektör elemanı arasındaki mesafeyi ölçer ve çıkışlarına aktarırlar. Matristeki satır sayısı Kod-kitabındaki kuanta vektör sayısına eşittir. Distance hücresi olarak gerçeklenen devrenin devre şeması aşağıda görünmektedir. Bu devrenin giriş işareti gerilim, çıkış işareti akımdır. Devre kuanta vektör elemanını dinamik olarak saklamaktadır. Devre, hız, rezolüsyon ve silikon alanı açılarından benzer devrelere göre çok daha avantajlı bir konumdadır. Hücre satırının çıkışında kuanta vektörü ile giriş vektörü arasındaki Euclid mesafesi ölçülür. Birim hücrenin kapladığı alan 15.8 um x 13.6um dır. Şekil 1 deki MİNNET bloğu, giriş işaretleri arasında en küçük genliğe sahip olanı seçen bir devredir. Kaybeden-Hepsini-Alır (Loser-Takes-All (LTA) ) devreleri ile gerçeklenirler. Literatürde pek çok değişik LTA yapısı önerilmiştir. Değişik devrelerin değişik avantaj ve dezavantajları vardır. Tez de bu devre ROWWTA bloğu ile gerçekleştirilmiştir. Şekil 3 de ROW_WTA bloğunun şeması xvııgörülmektedir. Bu devre önce sabit bir akımdan giriş akımını (Distance bloğu satır çıkışı) çıkarır. Sabit akım her zaman giriş akımından büyük olacak şekilde seçilir. Böylece fark akımı vektörler arası mesafe kısaldıkça sabit akıma, arttıkça sıfıra doğru yaklaşır. Bu fark akımı J. Lazarro tarafından önerilmiş Kazanan-Hepsini-Alır (Winner-Takes-All (WTA)) devresine uygulanır ve böylece en büyük fark akımı yada girişe en küçük mesafedeki kuanta vektörü seçilmiş olur. Bu blok da küçük bir silikon alanı kaplamaktadır. Devrenin WTA kısmı sisteme hız ve rezolüsyon limitleri getirebilir. Bu sebeple yüksek performans gerektiren uygulamaklarda farklı WTA topolojilerinin aranması anlamlıdır. VDD N2 C2 Şekil 2 : Distance hücresinin şema gösterimi Encoder bloğu ROW_WTA bloğu tarafından seçilen kuanta vektörünün Kod-kitabı içindeki indeksinin kodlanmasından sorumludur. Uygulamada bu blok kuanta vektörünün Kod-kitabındaki adresini gösteren basit bir Kodlayıcı devresi ile gerçeklenmiştir. Bu durumda kodlamanın optimal olması için her bir kuanta vektörünün seçilme olasılığının birbirine eşit olması gereklidir. Farklı uygulamalar için farklı encoder blokları tasarlanabilir. Devre basit bir sayısal devredir. Sistem şemasında gözüken RAM ve Controller bloklarına gelince; Ram bloğu içinde Kod-kitabı saklanmaktadır. Distance bloğu içindeki değerlerin (Kod kitabının) yenilenmesi gerektiğinde bu bloktan yararlanılır. Sistem Analog bir Vektör Kuantalayıcı olduğu için ihtiyaç duyulan RAM hücre sayısı Distance bloğundaki Distance hücresi sayısı çarpı bir Distance hücresinin rezolüsyonuna eşittir. Sistemin seriminden de rahatlıkla görülebileceği üzere sistemin RAM ihtiyacı aktif alanın en büyük kısmını kaplamaktadır. Controller bloğu ise Distance bloğuna ve RAM bloğuna yazma (okuma) işlemlerinden sorumlu sayısal bloktur. Vektör kuantalayıcıyı programlamak için kullanacağımız mikroişlemci bu blok ile iletişim kurar. Basit bir sayısal kontrol devresidir ve ciddi bir silikon alanı kaplamaz. XV111VDD L|M3 16.5/5.5^ vdn | <0- OUT,Bn 10/0.6 M 4 1^10/0.6 3d d lioil V, 2/1 0 vd fi rid; Vbıos MS <0- Ml lyl6 Vkuy -y 0.6 5.5/5.5 nd T Şekil3 : ROWWTA bloğunun şema gösterimi Vektör kuantalayıcı sisteminin içinde sistemin analog olmasından kaynaklanan ve şemada gösterilmeyen iki blok daha vardır Bunlar, Distance bloğu içindeki hücrelerin giriş işaretlerini üreten giriş kuvvetlendiricisi (IN_AMP) bloğu ve Sayısal Analog dönüştürücü (D AC) bloğudur. Bu bloklar RAM bloğu gibi çok alan kullanan bloklardır. Ve sistemin hız limitini belirlerler. Sistemin rezolüsyon sınırı DCELL, ROW_WTA ve IN_AMP blokları tarafından belirlenir. Sistem içindeki her bir bloğun tasarım prosedürleri detaylı olarak tez içinde anlatılmıştır. Şimdi sistemin yerleşimini ve çalışma prensibini kısaca anlatalım. Sistemde Kod-Kitabının yazıldığı bir RAM bloğu bulunmaktadır. RAM bloğunun kelime sayısı Kod-Kitabmdaki kuanta vektörlerinin sayısı kadar, kelimelerin uzunluğu ise vektör uzunluğu çarpı bir vektör elemanının rezolüsyonu kadardır. Sistemdeki DAC bloklarının rezolüsyonu da gene bir vektör elemanının rezolüsyonu (m) kadardır. Analog işaretler üzerinden çalıştığımız için RAM bloğunun data bus'ı (m) bitlik gruplar halinde kuanta vektör elemanlarının her birini oluşturmak üzere DAC bloklarının giriş kelime hattına bağlanır. Sistemde bulunan Distance hücre matrisindeki satır sayısı da Kod-Kitabındaki kuanta vektörlerinin sayısı kadardır. Matrisin her satırında Kod-Kitabındaki farklı bir kuanta vektörü her bir vektör elemanı bir distance hücresine gelecek şekilde saklanır. Böylece matristeki kolon sayısı vektör eleman sayısına eşit olur. Giriş vektör elemanları Distance hücre matrisine kolonlardan uygulanır. Böylece aynı kolondaki iki hücre aynı giriş vektör elemanı ile uyarılmış olur. Doğal olarak farklı iki satırda bulunan aynı kolona ait 2 ayrı Distance hücresi, içinde farklı kuanta vektör elemanı saklanmışsa, hücre çıkışlarının ait oldukları satır çıkışlarına etkileri de farklı olacaktır. Daha önce belirtildiği üzere, kuanta vektör elemanları Distance xıxhücrelerinde dinamik olarak saklanmaktadırlar. Bu sebeple periyodik olarak yenilenmeleri (refresh) gerekmektedir. Kuanta vektör elemanları yenilenirken de işaretler gene matris kolonlarından uygulanırlar. Bu sebeple yenileme işlemi boyunca matris satırları ardışık olarak aktif hale getirilmelidirler. Matris kolon işaretleri INAMP bloğu tarafından oluşturulur. Bunun sebebi, DCELL bloğu normal çalışabilmek için giriş işaretinin hem kendisine, hem de evriğine aynı anda ihtiyaç duymaktadır. Doğal olarak Distance hücre matrisindeki her bir kolon için bir INAMP bloğunun kullanılması gerekmektedir. Bloğun iki ayrı girişi vardır birinci giriş yenileme işlemi sırasında IN_AMP bloğunun sürdüğü kolona bağlanması gereken DAC bloğunun çıkışına bağlıdır; ikinci giriş ise sürülen bloğa ilişkin giriş vektör elemanına bağlıdır. Blok yenileme süresi boyunca DAC çıkışlarını, operasyon süresi boyunca da giriş vektör elemanını kullanarak Kolon işaretlerini üretir. Yenileme süreci şu şekilde özetlenebilir: Microprocessor tarafından belirlenen bir zamanın sonunda Controller bloğu RAM bloğuna gerekli kontrol işaretlerini göndererek sırayla matristeki her bir Analog Kuanta vektörünün DAC çıkışlarında oluşmasını sağlar. Bu süreç boyunca INAMP bloklarına gönderilen kontrol işareti ile bu blokların giriş işareti olarak DAC çıkışlarını alması sağlanır. Matrisin her bir satırı içindeki Distance hücreleri, kendilerine ilişkin Kuanta vektör elemanları girişlerinde belirdiği anda aktive edilerek, ilgili vektör elemanlarının hücre içine yazılması sağlanır. Böylece bütün satırlar yazıldıktan sonra normal işleme geçilir. Normal işlem süresince IN_AMP blokları giriş vektör elemanlarını işlerler. Normal operasyon boyunca, giriş işaretleri değiştikçe, matris kolon işaretleri değişir. Dolayısıyla ilgili hücrelerin çıkış işaretleri (giriş ve kuanta vektörleri arasındaki mesafeler) değişir. Ve bu işaretlere göre de sınıflama ve kodlama işlemi sürekli olarak yapılır. Sistemin yapısı, onun Kohonen Self-Organizing Feauture Map haline getirilmesine uygundur. Yapılması gereken sadece çıkış işaretlerinin bir microprosessör tarafından değerlendirilip yeni kuanta vektörlerinin Controller bloğu vasıtası ile Kod-Kitabına (RAM) yazılmasıdır. Vektör Kuantalayıcı sisteminin serimi tez içinde bulunabilir. Sistemde 79 adet PAD bulunmaktadır. Bunların dağılımı şu şekildedir : 6 tane sayısal çıkış padi Encoder block çıkışı için, 20 tane analog pad giriş vektörünün uygulanması için, 8 tane analog pad Analog kutuplama işaretleri için 8 tane bi-directional sayısal pad microprossesör data busı için, 10 tane sayısal giriş padi microprossesör adres busı için, 3 tane sayısal giriş padi microprossesör kontrol işaretleri için, 2 tane sayısal giriş padi sistem saat ve reset işaretleri için, XX4 çifti analog 7 çifti sayısal olmak üzere besleme padleri. Bonding padler ile birlikte tüm sistem alanı 4.1 mm x 3.7mm (15.17 mm2) kadardır. Kod-kitabının büyüklüğü göz önüne alındığında bu gerçekten küçük bir alandır. Üstelik kuantalama işlemini yapan Distance blok, MİNNET (ROWWTA bloklarının oluşturdukları kolon) ve Encoder bloklarının kapladığı alan sistem alanının %3'den azdır. Toplam aktif alanın %70 kadarı RAM bloğu tarafından kapanır. Geri kalan %27 ise DAC, IN_AMP ve sayısal bloklar tarafından paylaşılır.
The basis of the quantization idea has a long history since 1898. The historical story of the quantizers and an important part of the related references can be found in the article title 'Quantization' of Robert M. GRAY and David L. NEUHOFF. In the information theory, the quantization is generally considered as a method of signal compression. The goal of quantization is to encode the data from a source that is characterized by its probability density function with as minimum rate as possible in such a way that reproducing may be recovered from the bits as high quality as possible. We can classify quantizers into two different sub-categories with respect to their input vector size. If the input vector space is one dimensional, the quantizer is classified as 'Scalar quantizer'; otherwise it is classified as 'Vector Quantizer'. In recent years, there has been much interest focused on Vector Quantization. The main cause of this trend is: According to Shannon's rate-distortion theory, a better performance is always achievable in theory by coding a block of signal (vector) instead of coding each signal individually (scalar). Vector quantization is a mapping Q from m dimensional vector space Rm into a finite subset TofRm(TcRm). It is denoted by Q:Rm->T T is the set of reproduction vectors and it is called template-book (code-book) for the vector quantizer. For every input vector X, a template-word tj is selected as the representation for X. This process is called quantization phase (or the template-book search phase) of the Vector Quantizer. It is denoted by Q(X) = ti XIThen the code word tj is represented by some symbols (normally the address of the template-vector in the template-book). This is called the encoding phase of the Vector Quantizer. The first phase is an classification, and the second one is an encoding. The problem of designing a VQ system is constituted by 2 part. First part of the problem concern to design an 'optimal' template-book for a given probability density function of input vector space in order to minimize average distortion in replacing any input vector by the closest template-vector. This part of the problem is the subject of Information Theory. The second part of the problem, which concerns the subject of this thesis, is to implement Vector Quantizer System for a given template- book. The schematic view of implemented VQ system can be seen in figure below. O o o Mi M Distance Block r T 11 '21 Tml -Ty- I" T, 12 MTnı2 X', T llm -? - L2m in X, 2 Z W H e O O."S Output Distance Cell input T T:: UP X (input vector) Figure 1: Block Schematic of the VQ system [output In the schematic, The first part of the system consists of 'Distance block' and 'MİNNET block' (Loser-Takes- All). The second part of the system consists of 'The Encoder block'. The block Distance contains the Distance Cell (DCELL) matrix. The number of DCELL in each row is equal to the input vector dimension. And the number of the matrix row is equal to the number of template-vector in code-book. Each row stores related template-vector, and measures the Euclidean distance between the input vector and stored template-vector. The schematic view of the DCELL can be seen in figure below. The input signal of the circuit is voltage and the output signal is current. The template-vector is stored dynamically. The silicon area consumption of the cell is x 13.6um. The block MİNNET, in Figure 1, is a circuit selecting the minimum one among its input signals. This is a famous Loser-Takes-All circuit. In the literature, there are many different circuit topologies. Every topology has its own advantages and disadvantages. In the VQ system, the block ROW_WTA realizes it. The schematic view of the block can be seen in Figure 3. Circuit subtracts the input current from a constant bias current being unconditionally greater than the input current and applies this difference current to the input of a current based Winner-Takes- All circuit of J. Lazarro. As the bias current is unconditionally greater than the input current, it is maximum when the measured distance is minimum. It consumes considerably small xnsilicon area. WTA part of the circuit may pose resolution problem. Therefore, different WTA topologies must be considered for high performance applications. VDD M 2 N2 C2 Vphi Figure 2: The schematic view of the Distance Cell The block ENCODER is coding the selected template-vector's index in the code- book. In the system, a simple circuit showing the address in the code-book realizes it. It is optimal if all of the template- vector have the same probability. Vbias VDD 16.5/5.5^ vda_| OUT,Iin M4 1 0/0.6 l_ydd v7. 10/0.6 M 2 gn M5 5.5/5.5 nd X 2/1 vd fi liail M6 Vkuy M ^nd 0.6 Figure 3 The schematic view of the block ROWWTA The block RAM stores the content of the code-book. As the template-vectors are stored dynamically in the Distance matrix, RAM block is used during the refresh phase. As we can easily remark from the system layout, RAM block consumes more xmthan 60% of the silicon area. The block Controller is responsible of the reading and writing operation to the Distance and RAM blocks. This is a simple digital block. In the VQ system, there are two other block not showed in the system schematic but needed due to the analog structure of the system. They are input amplifier block IN_AMP and the digital to analog converter block DAC6. These blocks may determine the resolution and the speed of the system. The design procedure of the all of the blocks is examined in detail in the thesis. Let me now briefly explain the working principles and the floorplan of the system. Code-book is stored in the RAM block. The number of word is equal to the number of template-vector in the code-book. The word length of the block is equal to the multiple of the input vector size with the resolution of the one vector element (m). The resolution of the DAC is also equal to the resolution of the one vector element. The output buses of the RAM block are connected to the DAC blocks to constitute one of the template vector elements. The number of row in the Distance matrix is equal to the number of template-vector. Each row stores its template- vector. The number of the colon in the Distance matrix is equal to the input vector size. Input vectors are applied to the Distance matrix from its colon inputs. Therefore, the distance cells on the same colon have the same input vector. Obviously, if the stored template-vector elements are different, their output will be different. As mentioned previously, the template-vectors are stored dynamically in the Distance matrix. Thus, we need to refresh them. During the refresh period, template-vector elements are applied from the colon input of the matrix too. For that reason, each row of the matrix must be activated for refresh operation sequentially. The block INAMP drives matrix colon inputs because distance cell needs the input and its inverse at the same time for proper operation. Obviously, we must use one IN_AMP block for every colon of the matrix. The block has 2 inputs. During the operation phase, block accepts the input vector, whereas during the refresh phase, it accepts DAC block output. Refresh phase can be summarized as follows: At the end of a time determined by the microprocessor, the block Controller starts to send the control signals to the RAM. Thus the template- vectors starts to appear at the output of the DAC blocks. During this phase, the block INAMP process the DAC output. And finally, all of matrix rows are activated sequentially for writing template-vectors when their template- vector appears at the colons of the matrix. During the operation phase, colon signals change with the input signals. Therefore, row's output changes, winner template changes and encoded index changes. The structure of the system permits to adapt it to the Kohonen Self-Organizing Feature Map. We must simply post-process the system outputs and update the code- book. The layout of the system can be found in the thesis. It contains 79 bonding pads. They are: XIV6 digital output pads for the Encoder block. 20 analog pad for input vectors. 8 analog pad for biasing. 8 bi-directional digital pad for microprocessor data bus. 10 digital input pad for microprocessor address bus. 3 digital input pad for microprocessor control signals. 2 digital input pad for system clock and reset. 4 couple of analog and 7 couple of digital power pads. The total silicon area of the system including bonding pads is 4.1mm x 3.7mm (15.17 mm2).
Açıklama
Thesis (M.Sc.) -- İstanbul Technical University, Institute of Science and Technology, 1999
Anahtar kelimeler
CMOS, Kuantumlama, Vektörler, CMOS, Quantization, Vectors
Alıntı