Geri Dön

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

Designing and implementing microprocessor using FPGA's

  1. Tez No: 100940
  2. Yazar: FEHMİ KAZANCI
  3. Danışmanlar: PROF.DR. AHMET DERVİŞOĞLU
  4. Tez Türü: Yüksek Lisans
  5. Konular: Elektrik ve Elektronik Mühendisliği, Electrical and Electronics Engineering
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2000
  8. Dil: Türkçe
  9. Üniversite: İstanbul Teknik Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Belirtilmemiş.
  12. Bilim Dalı: Belirtilmemiş.
  13. Sayfa Sayısı: 83

Özet

FPGA'LERLE MİKROİŞLEMCİ TASARIMI VE GERÇEKLEŞTİRİLMESİ ÖZET İş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ıuadresi 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 byteuzunlukludur. 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. XI

Özet (Çeviri)

DESIGNING AND IMPLEMENTING MICROPROCESSORS USING FPGAs SUMMARY 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. xnAdress 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 xmgets 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. xi v

Benzer Tezler

  1. FPGA üzerinde HYSA ve HYSA'ya özel öğrenme algoritmalarının birlikte gerçeklenmesi

    Implementation of CNN and CNN specific learning algorithms on FPGA

    ERDEM KÖSE

    Yüksek Lisans

    Türkçe

    Türkçe

    2017

    Elektrik ve Elektronik Mühendisliğiİstanbul Teknik Üniversitesi

    Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı

    PROF. DR. MÜŞTAK ERHAN YALÇIN

  2. Design of a microprocessor-based embedded fault diagnostic system and an FPGA-based improvement proposal

    Mikroişlemci tabanlı bir gömülü tanı sistemi tasarımı ve FPGA tabanlı bir optimizasyon önerisi

    ONUR BEKAR

    Yüksek Lisans

    İngilizce

    İngilizce

    2022

    Elektrik ve Elektronik Mühendisliğiİstanbul Teknik Üniversitesi

    Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı

    PROF. DR. ECE OLCAY GÜNEŞ

  3. FPGA based efficient implementation of IPMSM control methodologies

    Başlık çevirisi yok

    BURAK TÜFEKÇİ

    Yüksek Lisans

    İngilizce

    İngilizce

    2020

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolÖzyeğin Üniversitesi

    Bilgisayar Bilimleri Ana Bilim Dalı

    PROF. DR. HASAN FATİH UĞURDAĞ

  4. SIxD: A configurable and customizable SISD/SIMD microprocessor soft core

    SIxD: Yapılandırılabilir ve uyarlanabilir bir TKTV/TKÇV yumuşak mikroişlemci çekirdeği

    NEHİR SÖNMEZ

    Yüksek Lisans

    İngilizce

    İngilizce

    2006

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolBoğaziçi Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. ARDA YURDAKUL

  5. FPGA ımplementation of quantum key distribution based communication

    Kuantum anahtar dağıtıcılı iletişimin FPGA'le gerçeklenmesi

    YİĞİT BİLGİN

    Yüksek Lisans

    İngilizce

    İngilizce

    2023

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolYeditepe Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    PROF. DR. SEZER GÖREN UĞURDAĞ

    PROF. DR. HASAN FATİH UĞURDAĞ