Dokonce i Samsung má vlastní 4b potvory - viz http://www.samsung.com/semiconductor/global/file/product/MCU_selection_guide-4.pdf Měl jsem s nima dokonce jeden projekt, ale s osmibitem (myslím, že S3F9943)
A před lety byl popis nějakýho 4b MCU od Holteku v AR (na webu ho nemůžu najít a na přehrabování půdy momentálně není ani čas, ani chuť).
On si zákazník objednává výsledný produkt (plošňák odpovídající specifikaci) nebo i konkrétní čipy? Nebo jsou to úpravy už existujících produktů, kde to měnit nejde? U nás byly vždycky požadavky na výsledný produkt s tím, že jestli tam narveme MCU, FPGA nebo něco jiného, je čistě na nás.
Objednával FW + výrobní podklady (gerber data + osazováky).
Obecně, v rámci požadavků je často "použijte tuhle a tuhle knihovnu", "máme 90% věcí na platformě X, zachovejte to", "bereme materiál od distributora Y, musí to být ze součástek od nich", "zrecyklujte starší návrh", "zaintegrujte náš hotový procesorový modul", "musí to jít flashovat na mašině, co máme ve výrobě" a podobně... Takže i když vidím, že brouk A by tam sedl jako zadek na hrnec, ve finále tam musí jít brouk B a nějak to zašmoulit... :/
Jo, 51 je mimo.
Kvůli paměti tam nejde rozumně použít nic kromě ASM. To znamená
- knihovny, co používám, přepsat do ASM51
- vyhradit si čas na zkoumání kódu od zákazníka
- nákup vybavení (pokud si zákazník nechce zaplatit extra čas pro ladění pomocí výpisů na UARTu, pokud je UART vůbec k dispozici)
A když se to všechno nacení, zákazník zakoulí očima, poděkuje a o projekt s x51 najednou nemá zájem. Za 14 let, co dělám vývoj, ani jeden projekt na x51...
Dokud bude dostupne 74LS181 tak je pouzitelne https://www.bigmessowires.com/nibbler/ http://www.bigmessowires.com/category/nibbler/ :-)
Ta ALU LS181 muze umrit. Kdyz jsem videl cenu, prvni co mne napadlo je "strcim to do CPLD", nebudu magor kupovat takovou vykopavku. Potom ale nastesti zvitezila nostalgie :). V supliku mam snad vsechny soucastky, ale jeste jsem se nedostal k tomu to nadratovat.
Mam v hlave modifikaci, strcit mikrokod do SRAM, aby byl i mikrokod modifikovatelny :). Idalne nasdilet jeden ROM i SRAM cip na oboji (u te SRAMky je samozrejme problem, ze v taktu pri loadovani kodu se ztrati stav, tzn. bude tam potrebny navic jeden latch).
Plan je takovy, ze zaklad mikrokodu bude v ROM a nekde bude registr, ktery bude mapovat cast ROM misto RAM (pro par zakladnich instrukci) a to bude vychozi stav. Uzivatelsky kod po resetu naplni RAM obsahem a pak uz to pobezi normalne.
Na tyto experimenty ale vyhodim to ALU a dam tam nejake CPLD, k nemu ROM sdilenou microcode/code, a "velkou" SRAMku, tzn. mohly by tam byt celkem 3 IC. Takhle to popisuju dost zjednodusene, bude tam hromada problemu.
No pro ctyrbitovyho svaba zadnou ALU ani nepotrebujes, staci dostatecne velka ROM 2^12x4 bity:
- 2 bity adresy pro vyber operace
- 4 bity pro prvni operand
- 4 bity pro druhy operand
Co se precte z ROM je vysledek. Klidne si tak muzes udelat i nasobicku.
PS: kurnik to zacina vypadat dost elegantne, asi si 4bit taky udelam!
Pokud tam dáš *ROM, tak klidně můžeš na výběr operace dát víc bitů a nadefinovat si operace dle libovosti: nejen stčítání, o0dčítání, posuny, ale klidně násobení, dělení, sinus, kosinus, atd. Teda, ne, že by to při 4bitech až zas tak moc dávalo smysl, ale elegantní by to bylo...
Elegantni mi prijde zejmena ta moznost dynamicky menit instrukce, napr. si dodefinovat nejake bitove operace pro sifrovani, nebo jine vypocetne narocne veci (to ma na 4bitu fungujicim treba na 10MHz smysl, ze ? :) ).
Post o sin/cos/nasobicce/apod mne inspiroval k tomu, ze by mozna stalo za to tam dat ROM/RAMku na lookupy hodnot! Do mikrokodu to cpat je blbost, ale udelat bit na pripojeni lookupovaci fce(ROM/RAM) na sbernici uz smysl dava.
V te dobe, kdy se pocet cipu pro aplikaci pohyboval v radu 100k a vic, to asi bylo levnejsi si nechat udelat posledni masku, nez platit za EPROM. Ja tedy napriklad v kalkulackach vzdycky videl cipy bez okynka, coz ale nic neznamena, protoze to muze byt PROM (s diodama) nebo OTP. Ale - to je drahy na vyrobu.