Bujtás Péter weblapja /
8, 16 és 32 bites saját tervezésű mikroprocesszoraim Xilinx CPLD/FPGA-kból

Ha már korábban elkészültek volna a CPLD -és FPGA -mikroprocesszoraim és mikrokontrollereim, akkor minden elektronikámat ezekkel alkottam volna meg... Éppen tízszer lassabban haladok, mint ahogy haladnék, mert amit kb 1 évre terveztem magamnak feladatot, azt kb 10 év alatt végeztem el -köszönhetően azoknak a gonoszoknak, akik folyamatosan ellenem támadtak: mocskoltak, sértettek, lejárattak, féligazságokkal meghazudtoltak, provokáltak, nevetségessé tettek, szugeráltak. Ezeknek az erőknek a visszaverése sok energiámat felemésztette és felemészti, de senki és semmilyen lény nem tudja elvenni az erőmet a két fontos találmyányom elkészítésétől. (És itt jegyzem meg, hogy mindenkit, aki ellenem mocskolt, nagyon primitív és magamnál alacsonyabb szellemi szintű lénynek tartok, mivel ők nem kreatív, nem alkotó emberek, azaz semmik.) Remélem elkészülök még addíg, amíg el nem kezdődnek a világban a mesterséges bajok... Az elektromos -legfontosabb- találmányom is tartalmaz mikroelektronikát, de az itt bemutatott másik kettőtől (BP-3D, BP-CPU) eltérően nem "mikroelektronikai"-jellegű, egyenlőre nem szerepel a weboldalon.

CPLD-Mikroprocesszoraim

A CPLD-kből kizárólag 8 bites mikroprocesszorokat és mikrovezérlőket alakítottam ki. Ez azt jelenti, hogy a CPU-t és az összes kiegészítő logikát a CPLD-ben helyeztem el, amit kapcsolási rajzban terveztem meg. PC-n cross assemblerfordító áll már rendelkezésre és lesz saját assemblerfordítója is a saját mikrogépekben. A mikrovezérlőhöz (BPX8C512) a BPISP letöltőkábelem használható. Az utasításkészlet nagyon logikus és teljesen saját és nem hasonlít egyik kereskedelemben kapható mikrovezérlő utasításkészletéhez sem.

BPX8C256 -8 bites általános célú mikroprocesszor (készült 10 db)
Jellemzői:
19 bites címsín, 8 bites adatsin, 32768 db akkumulátor regiszter (32K SRAM), kvarcoszcillátor és RC-oszcillátor, POR, integrált címdekóder, 2 külső interrupt, és hagyományos mnemonikus utasításkészlet.
A panel felső oldalán van a CPLD (XCR3256XL), a panel alsó oldalán van a 32K SRAM és a kiegészítő apró alkatrészek. Preciziós PGA foglalatba rakható:


BPX8C324 -8 bites általános célú mikroprocesszor (készült 9 db)
Jellemzői:
19 bites címsín, 8 bites adatsin, kvarcoszcillátor és RC-oszcillátor, POR, integrált kétirányú port, integrált címdekóder, 2 külső interrupt, és hagyományos mnemonikus utasításkészlet.
A panel felső oldalán van a fő CPLD (XC95288XL), a panel alsó oldalán van a második CPLD (XC9536XL) és a kiegészítő apró alkatrészek. Tüskesor kivezetései vannak:


BPX8C512 -8 bites általános célú mikrovezérlő (készült 9 db)
Jellemzői:
Kvarcoszcillátor és RC-oszcillátor, POR, kvarcóra (RS5C313), 64K Ser.EE, 32K SRAM (SRAM program és adatmemória), 2 analóg bemenet (MCP3002), minden portbiten pinchange-interrupt van, BPISP-letöltő port és hagyományos mnemonikus utasításkészlet.
A panel felső oldalán van a CPLD (XC2C512), a panel alsó oldalán van a 32K SRAM, a 64K Ser.EE, az ADC, a kvarcóra és a kiegészítő apró alkatrészek. Tüskesor kivezetései vannak:


BPX8C144-3 és BPX8C144-5 -8 bites általános célú mikroprocesszor (készült 7 db 3,3V-os és 7 db 5V-os)
Jellemzői:
16 bites címsín, 8 bites adatsin, 2 külső interrupt, és hagyományos mnemonikus utasításkészlet.
A panel felső oldalán van a CPLD (XC95144 / XC95144XL), a panel alsó oldalán van egy 512Kbájtos PLCC Flash (29F040 / 29VF040) és a kiegészítő apró alkatrészek. Preciziós PGA foglalatba rakható:

FPGA-Mikroprocesszoraim

Az FPGA-kból 8, 16 és 32 bites mikroprocesszorokat ill. 8 és 16 bites mikrovezérlőket alakítottam ki. Ez azt jelenti, hogy a CPU-t és az összes kiegészítő logikát az FPGA-ban helyeztem el, amit kapcsolási rajzban terveztem meg. PC-n cross assemblerfordító áll már rendelkezésre és lesz saját assemblerfordítója is a saját mikrogépekben. A mikrovezérlőkhöz (BPX8F50, BPX8F150, BPX8F200, BPX16F200 és BPX16A200) a BPISP letöltőkábelem használható. Az utasításkészlet nagyon logikus és teljesen saját és nem hasonlít egyik kereskedelemben kapható mikrovezérlő utasításkészletéhez sem. A BPX32F200 és a kétmagos BPX32F400 mikroprocesszoroknak nem csak mnemonikus az utasításkészlete, ezeknél a saját találmányomnak megfelelő programfuttatási mechanizmust alakítottam ki. Ennek előnyei a kevesebb bájt és kevesebb órajelciklus ugyanannyi darab utasítás végrehajtásához, tehát spórol a memóriával és a sebességgel. Ebből következik előnye: egyetlen maggal is hatékonyabb, mint az azonos HW-képességekkel rendelkező "hagyományos" "Neumann-elvű" megoldás. Ezt igazolni is fogom, ezért készítem el.

BPX32F200 -32 bites általános célú mikroprocesszor (készült 9 db)
Jellemzői:
8, 16 és 32 bites adatsinnel is konfigurálható, így illeszthető pl. 8 bites "hagyományos" Flash-memóriákhoz (is!) de belül 16 és 32 bites műveletek is rendelkezésre állnak. Multitaszk működés, 3D szubrutinkezelési rendszer, egyszerű DMA, TFT-képernyőt elszeparáltan kezelő egység és 320x240 felbontásig használható grafikus segédprocesszor található benne. Kvarcoszcillátor és RC-oszcillátor, POR, BPISP-letöltő port, piros-zöld debug LED és választhatóan hagyományos mnemonikus utasításkészlet vagy az általam kitalált mechanizmus.
A panel felső oldalán van az FPGA (XC2S200), a panel alsó oldalán van a Boot-Flash és a kiegészítő apró alkatrészek. Tüskesor kivezetései vannak:


BPX8F200 -8 bites általános célú mikrovezérlő (készült 11 db)
Jellemzői:
Noha ez mikrovezérlő, külön ki van vezetve (az I/O-kon kívül) a 8 bites adatsín és a 19 bites címsín, a vezérlő jelek és az integrált címdekóder konfigurálható kimenetei is. Emeletes "szendvics" panel, a felső panel felső oldalán van az FPGA (XC2S200) és a piros-zöld debug LED, az alsó oldalon pedig a kvarcoszcillátor, az RC-oszcillátor, 15 analóg bemenet (MCP3008 és MCP6S28), és természetesen a Boot-Flash. Az alsó panelen található a Párhuzamos 512KBájt Flash és párhuzamos 512KBájt SRAM, a 2KBájt Ser.EE, 8MBájt Ser.Flash, 12 bites DAC és a POR. Mind a 64 I/O-n pinchange interrupt és PWM is van.
Hosszú tüskesor kivezetései vannak:



A processzorokkal épített készülékek

Ezeknek a készülékeknek a nyomtatott áramköreibe alkatrészként kerülnek bele a CPLD- ill FPGA-processzoraim. A készülékek rendeltetése a mnemonikus CPU-knál csak a demo, de a nem mnemonikus CPU-knál (BPX32F200 és BPX32F400) a találmányom kipróbálása és helyességének igazolása a cél. Természetesen játékprogram fog futni rajta: repülőgép szimulátor 320x240 TFT képernyővel és az egész assemblerben készül.
A bemutató film a processzoraimat alkalmazó alábbi készülékek működését fogja bemutatni:

BP8X3-P univerzális logikai mikrogép
Képernyő: Grafikus OLED 128x64
CPU: BPX8C512 mikrovezérlő


BP8X2-P univerzális logikai mikrogép
Képernyő: Grafikus OLED 128x64
CPU: BPX8F50 mikrovezérlő


BPF16 univerzális mikrogép hátoldali kamerával
Képernyő: Grafikus színes TFT 320x240
CPU: BPX16F200 mikrovezérlő


BPA16 oszcilloszkóp+spektrumanalizátor+logikai analizátor+multiméter+rajzolható jelgenerátor (még nincs kész a HW)
Képernyő: Grafikus színes TFT 320x240
CPU: BPX16A200 mikrovezérlő


BPX1624-P mini "laptop"
Képernyő: LED-mátrix 16x24
CPU: BPX8C256 mikroprocesszor


BPX8 kvarcjáték
Képernyő: LED-mátrix 16x24
CPU: BPX8C256 mikroprocesszor


BPZ128-P kvarcjáték (még nincs kész a HW)
Képernyő: Grafikus LCD 128x64
CPU: BPX8C144-3 mikroprocesszor


BPJ-80 univerzális mikroszámítógép
Képernyő: Grafikus LCD 128x64
CPU: J6MP80 mikroprocesszor (ezt nem magamnak fejlesztettem ki)


BPX243-P univerzális mikroszámítógép (zöld és piros példány)
(még nincs kész a HW)

Képernyő: Grafikus LCD 128x64 RGB h.vil.
CPU: BPX8F150 mikrovezérlő


BPC8 univerzális mikroszámítógép
Képernyő: Grafikus LCD 240x128
CPU: BPX8C324 mikroprocesszor


BPF8 univerzális nagyteljesítményű mikroszámítógép
Képernyő: Grafikus LCD 240x128
CPU: BPX8F200 mikrovezérlő


BPF32 Repülőgép szimulátor (az univerzális "szuperszámítógépem")
Képernyő: Grafikus színes és nagy TFT 320x240
CPU: BPX32F400 mikroprocesszor