FPGA'lerle mikroişlemci tasarımı ve gerçekleştirilmesi

dc.contributor.advisor Dervişoğlu, Ahmet
dc.contributor.author Kazancı, Fehmi
dc.contributor.authorID 100940
dc.contributor.department Telekomünikasyon Mühendisliği
dc.date.accessioned 2023-02-24T08:14:19Z
dc.date.available 2023-02-24T08:14:19Z
dc.date.issued 2000
dc.description Tez (Yüksek Lisans) -- İstanbul Teknik Üniversitesi, Fen Bilimleri Enstitüsü, 2000
dc.description.abstract İşaret işleme sistemlerindeki ilerlemelerle birlikte kullanıcı istekleri ve dolayısıyla sistemlerin karmaşıklıkları hızlı bir biçimde artmaktadır. Başlangıçta yüzler mertebesinde kapılar içeren sistemler kullanıcının isteklerini karşılarken, günümüzde bu sayı milyonlar mertebesine ulaşmıştır. Tüm gelişmeler mevcut sistemlerdeki tasarımların mümkün olduğunca hızlı olması zorunluluğunu getirmektedir. Bu nedenle tasarımlar olabildiğince yazılım ortamına indirgenmekte ve mümkün oldukça donanım tasarımı kullanılmamaktadır. Buna yönelik olarak birçok donanım tasarım dili geliştirilmiştir. Bunlar genelde HDL (Hardware description laguages) olarak adlandırılır. HDL dilleri genelde tasarım süresini, donanım tasarımına göre kısaltırlar ve tasarım işleminin kolaylaşmasını sağlarlar. Sistemlerde karmaşık fonksiyonları gerçekleştirme, bunları kontrol eden yapıların boyutlarının artırması ve daha yetenekli hale gelmesi ile sağlanmıştır. Genel olarak sistemlerdeki kontrol işlemleri mikroişlemciler yardımıyla gerçekleştirilir. Bu çalışmada genel amaçlı kullanıma yönelik olarak mikroişlemci tasarlanmıştır. Tasarımın büyük bir bölümü VHDL kullanılarak yapılmıştır. Tasarım FPGA'ler üzerinde gerçekleştirilmiştir. XILINX firmasının 4000E serisi FPGA'leri kullanılmıştır. Tasarımı gerçekleştirilen mikroişlemcinin özellikleri aşağıda verilmiştir.. 64 kbyte'hk dış program belleği (EPROM, PROM, EEPROM... ). 64 kbyte'hk dış bellek hafıza bloğu (RAM). 32 adet giriş çıkış uçları. 8 bitlik ön bölücülü kesme kaynaklı 2 adet 8 bit sayıcı. 2 adet düşen kenar kesme kaynağı. değişken hızlı UART birimi. 8 bit kontrollü, frekans seçimli PWM çıkışı. 128 byte iç RAM. 128bitulaşımhRAM. 1, 2 ve 3 byte uzunluklu komutlar. 825 MB bloğu Tasarlanan mikroişlemci 64 kbyte'hk dış program belleğini destekleyebilmektedir. Bunun için 16 bitlik adres ve 8 bitlik veri yolu kullanılır. Dış program bloğu zamanlama işlemleri mikroişlemci tarafından sağlanır. Bunun için iki adet çıkış ucu kullanılır. Ayrıca 64 kbyte'hk dış bellek hafızası da aynı 16 bitlik vıu adresi ve 8 bitlik yolu kullanır. Bu blok içinde üç adet çıkış ucu ile kontrol yapılır. Bu yapıların genel gösterimi Şekil A ile verilmektedir. Adres 1 6 bit Veri 8 bit CSK CSR RD WR Saat girişi Mikro işlemci Adres 1 6 bit Veri 8 bit CSK RD Adres 16bit Veri 8 bit CSR RD WR Kod hafızası Veri hafızası Saat üreteci (10 MHz) Şekil A Mikroişlemci Mikro işlemci 32 adet giriş çıkış ucuna sahiptir. Bunlara yazım işlemi bil olarak yada byte olarak yapılabilir. Her uç daha önce belirlenmiş bir adrese sahiptir. Bu adreslere veri yazımı uçlara yazım olarak değer kazanır. Her uç ayrı ayrı giriş yada çıkış olarak koşullanabilir. Bunun için işlemci içerisinde belirli yazmaçlar oluşturulmuştur. Bu yazmaçlara yazılan değerlere göre ilgili uç koşullanmaları gerçekleşir. Güç (power-on) verilmesinde giriş olarak koşullanırlar. Giriş olarak koşullanan uçlara değer yazımı herhangi bir işlem ifade etmez. Tüm uçlar 20 mA sürebilme ve 20 mA akım çekebilme özelliğindedir. Tasarlanan mikro işlemci 5 adet kesme kaynağına sahiptir. Bu kesme kaynakları öncelikleri kullanıcı tarafından belirlenebilir. Tüm kesmeler belirlenen genel kesme izin biti yardımıyla kapatılabilir. Bu bitin ' 1 ' olması durumunda, diğer kesmeler ayrı ayrı değerlerine göre kesmeler açık yada kapalı yapılabilir. Kesme İX öncelikleri mikroişlemciler için önemli bir özelliktir. İki kademeli kesme öncelik seçimi vardır. Aynı öncelikli kesmelerin aynı zamanda gelmesi durumunda ise belirlenen sıraya uygun olarak, daha öncelikli kesme ilk olarak gerçekleştirilir. Bu kesme kaynaklarından iki tanesi sayıcı/zamanlayıcılar tarafından oluşturulur. Mikro işlemcinin sayıcı/zamanlayıcı modülleri 8 bitlik olarak çalışırlar. Her sayıcı/zamanlayıcı, dışarıdan gelen işaretleri saymak için sayıcı olarak yada iç saat işaretini kullanarak zamanlayıcı olarak koşullandırılabilir. Kesme kaynaklarından diğer iki tanesi ise dış kesme kaynaklarından oluşturulur. Bu uçlarda düşen kenar işaret olması durumunda işlemci kesme oluşturur. Bu kesme önceliği ve çalışma durumu yazılım ile kullanıcı tarafından programlanabilir. Son kesme kaynağı ise seri haberleşme birimi olan UART tarafından sağlanır. UART birimi birbirinden bağımsız çalışan iki ana birimden oluşur. Bunlardan birincisi alım birimidir. Aktif edilmesi ile hattı kontrol etmeye başlar. 1 bit start biti, 8 bit data ve 1 bit stop biti yapısına uygun bir veri alımı sağlanması durumunda, alınan bu veri 8 bitlik alım yerine konur ve kesme oluşturur. Bu bölümün belirli bir adresi vardır. Oluşan kesme ile kullanıcı bu bölümü okuması durumunda alınan veriye doğru bir biçimde ulaşılabilir. Alıcı bölümün alım hızı 8 bitlik bir yazmaç yardımıyla değiştirilebilir. İkinci bölüm gönderim kısmıdır. Bunun için gönderilecek veriyi yazmaya yönelik olarak bir yazmaç oluşturulmuştur. Bu yazmaca yazım yapılması durumunda, gönderim izni olumlu ise, mikroişlemci bu yazım işlemini sezer ve 1 bit start, 8 bit data ve 1 bit stop biti kullanarak data gönderimine başlar. Veri gönderim işlemi bitmesi durumunda kesme oluşturur ve gönderim işleminin bitimini bildirir. PWM (Pulse Width Modulation) modülü için işlemci tarafından 1 adet çıkış ayrılmıştır. PWM işlemi için iki adet yazmaç ayrılmıştır. Bu yazmaçlardan birincisi PWM işaretinin frekansının belirlenmesi için kullanılır. Bunun için 8 bit ile 256 farklı frekans seçimi yapılabilir. İkinci yazmaç ise PWM işaretinin data değerini tutan yazmaçtır. Buraya yazılan değer PWM işaretinin T ve '0' oranını belirler. Mikroişlemci içerisinde, kullanıma yönelik olarak 128 byte iç bellek oluşturulmuştur. Bu belleklere doğrudan adresleme yada dolaylı adresleme ile erişilebilir. 128 bytelık veri alanı dışında, kullanımı hızlandırmak ve kod uzunluğunu azaltmak için 8 adet, yazmaç bulunmaktadır. Bunlar ile ilgili kodlar, eşdeğer bellek kullanılan kodlarına göre 1 byte az yer tutarlar. Genel olarak oluşturulan komutlar da bu yazmaçlara yönelik olarak tasarlanmıştır. Bunun yanında mikroişlemcide genelde işlemler akümülatörler kullanılarak yapılır. Akümülatör 8 bitlik bir yazmaçtır ve mikroişlemci kod çözücü bloğunda bulunur. Mikroişlemci komut kümesi,1, 2 ve 3 byte uzunluklu komutlardan oluşmaktadır. Tek parametreli komutlar 1 byte uzunluklu, tek bellek adresi gerektiren yada tek bağımlı adres gerektiren komutlar 2 byte uzunluklu, bunlar dışında ki 16 bit adres yada bellek adresi ve bağımlı adres gerektiren komutlar 3 byte uzunlukludur. Belirlenen komutların çalışma biçimleri kod çözücü bloğu tarafından kontrol edilir. Mikro işlemci için oluşturulan bu komutlara ilişkin kodlar, yapılan bir yazılımın derleyici programın çalıştırılması ile oluşturulur. Derleyici program C++ Builder yazılımı kullanılarak yapılmıştır. Gerçekleştirilen bir uygulamanın hataları, uyarıları ve sonuçları bu program tarafından belirtilir. tr_TR
dc.description.abstract The developments in signal processing systems comes with an increase on user demands which make the systems more complex. Systems, having gates about hundreds in the past, have millions of gates now and require higher speeds. For this reason presently systems are implemented in software environment rather than using hardware tools. Many hardware description languages are developed for these kinds of works. These are called as HDLs(Hardware Description Language) which decrease the development time of the system. The complexity of a control logic increases as the complexity of the system itself increases. Control logics are usually implemented by using microprocessors. In this work, a general purpose microprocessor is designed by using VHDL codes on FPGAs of XILINX 4000E. 825 CLB blocks are used in this implementation. The properties of the microprocessor is given below.. 1 0 Mhz operation frequency. External Program Memory(EPROM, PROM, EEPROM...) 64KB. External Operation Memory(RAM) 64KB. 32 bits I/O Ports. Two 8 bit counter. Two low-edge triggerred interrupt source. Variable bit rate UART. 8 bit controlled PWM output (frequency can be chosen). 128 byte internal RAM. 128 bit accessed RAM. 1,2 and 3 byte-length codes Microprocessor supports external program memory and external operation memory using 1 6 bits of address and 8 bits of data bus. The timing operations in external program memory is done by the microprocessor itself by using two output pins. External operation memory is controlled by using three pins. This is given in FigA. xn Adress 1 6 bit Data 8 bit CSK CSR RD WR Clock in > Micro processor Adress 16 bit Data 8 bit CSK RD Adressi 6bit Data 8 bit CSR RD WR Cod memory data memory Clock (10 MHz) Fig. A Microprocessor The microprocessor consists of 32 I/O pins which can be writen in bits or bytes. Every port has an address and the value written to this is the port's value. Ports can be defined as input or output. Some registers in the microprocessor is used for this reason. Ports are seen as input ports as the system power ons. Values given to the input ports is meaningless. Every port can source or sink 20mA current. The microprocessor has 5 interrrupt sources. Priorities can be defined by user and all of these interrupts can be disabled by an interrupt enable flag. If this flag is enabled, interrupts can be enabled or disabled one by one. There are two interrupt levels. If some interrupts having the same interrupt priority occur at the same time, the default priority sequence is used. Two of these interrupt sources can be made by using 8 bit timers/counters. Every counter/timer can be used for counting the output signals/using the internal clock*. The other two interrupts are for external sources. If falling edges occur in these pins, microprocessor gives an interrupt*. The last interrupt flag is used for UART which consists of two independent units. The one which is for receiving starts to control the line if it is enabled. If the format of the data in the line is 1 bit for start bit, 8 bit for data and 1 bit for stop bit, it xm gets the 8 bit data and writes it to an addressed buffer and signals and interrupt. Using this interrupt user can access this data by using the address of the buffer. The bit rate of the receiver part can be changed by using a register. The one which is used for transmitting has also a data register. If user writes data here and transmit enable flag is on, microprocessor realises this event and transmits the data in 1 bit start, 8 bit data and 1 bit stop format. At the end of the transmission it gives an interrupt to the microprocessor saying that transmission is complete. These two units can be separately enabled or disabled. For PWM(Pulse Width Modulation) there is one output port registered in the microprocessor. For this operation there are two registers. One is used for defining the frequency of PWM signal in 8 bits which is 256 different values. Second register is used for the PWM data. The value here gives the ratio of 1 's over O's. For user-defined operations there is one 128 byte internal memory. This memory can be accessed by using direct or indirect addressing. Except this 128 byte internal memory there are also 8 operational registers. Codes using these registers are lbyte shorter than the other codes. Usually operations in the microprocessor are done by using accumulator. It is an 8 bit register that is in the deocder part of the microprocessor. Microprocessors instruction set has 1,2 or 3 byte length instructions. The ones having 1 operand are 1 byte, the ones that need an memory address are 2 byte and the ones that need an 16 bit address are 3 byte long. These instructions are controlled by decoding block. The hexadecimal codes that corresponds to these instructions are generated by a program. This program is written in C++ Builder and the errors, warnings or results of a user code can be seen. en_US
dc.description.degree Yüksek Lisans
dc.identifier.uri http://hdl.handle.net/11527/21708
dc.language.iso tr
dc.publisher Fen Bilimleri Enstitüsü
dc.rights Kurumsal arşive yüklenen tüm eserler telif hakkı ile korunmaktadır. Bunlar, bu kaynak üzerinden herhangi bir amaçla görüntülenebilir, ancak yazılı izin alınmadan herhangi bir biçimde yeniden oluşturulması veya dağıtılması yasaklanmıştır. tr_TR
dc.rights All works uploaded to the institutional repository are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. en_US
dc.subject Mikroişlemciler tr_TR
dc.subject VHDL tr_TR
dc.subject İşaret işleme tr_TR
dc.subject Microprocessors en_US
dc.subject VHDL en_US
dc.subject Signal processing en_US
dc.title FPGA'lerle mikroişlemci tasarımı ve gerçekleştirilmesi tr_TR
dc.title.alternative Designing and implementing microprocessor using FPGA's en_US
dc.type masterThesis en_US
Dosyalar
Orijinal seri
Şimdi gösteriliyor 1 - 1 / 1
thumbnail.default.alt
Ad:
100940.pdf
Boyut:
3.05 MB
Format:
Adobe Portable Document Format
Açıklama
Lisanslı seri
Şimdi gösteriliyor 1 - 1 / 1
thumbnail.default.placeholder
Ad:
license.txt
Boyut:
3.16 KB
Format:
Plain Text
Açıklama