ASIX Home

Zakázkový návrh obvodů Xilinx

  HOME  |  ASIX  |  Produkty a služby  |  FTDI  |  Microchip  |  Xilinx  |  AEC  |  Technická podpora  |  Různé 2002-12-27  

Levně integrovaný obvod na zakázku

Žádného konstruktéra elektronických zařízení není třeba dlouze přesvědčovat o výhodách, které přinášejí zákaznické integrované obvody (Application Specific Integrated Circuits - ASIC). Mezi jejich nesporné přednosti patří např. radikální zvýšení spolehlivosti, snížení spotřeby, rozměrů a hmotnosti, snížení nákladů na desky plošných spojů, výrobu, oživování, testování a servis finálních zařízení.

Problematika programovatelné logiky, zejména programovatelných hradlových polí, je značně rozsáhlá, a neustále se rychle rozvíjí. Složitostí i cenou tomu odpovídají i vývojové prostředky. Přesto tuto lákavou techniku může využívat bez příslušných znalostí a velkých investic prakticky každý, a to prostřednictvím návrhového centra.

V následujících odstavcích naleznou podrobnější informace ti, kteří chtějí ve svých aplikacích využívat techniku programovatelných zákaznických obvodů.


Pro menší série (jednotky až tisíce kusů) jsou většinou klasické technologie založené na programování obvodů při výrobě příliš drahé. Proto bylo vynaloženo velké úsilí pro nalezení vhodného kompromisu - vyvinutí součástek, které by bylo možno vyrábět levně (tedy ve velkých sériích podobně jako obvody standardní), ale které lze naprogramovat nezávisle na drahých technologických linkách výrobců polovodičů tak, aby s co nejlepšími parametry a s co největší flexibilitou plnily určitou specifickou funkci jako obvody zákaznické.

V současnosti existuje celá řada programovatelných logických obvodů - od pamětí PROM přes součástky typu PAL a z nich odvozené komplexnější obvody až po programovatelná hradlová pole (FPGA - Field Programmable Gate Arrays), která jsou nejvyšším stupněm v úsilí o levné zákaznické obvody. Dále budeme věnovat především záležitostem, které se týkají vlastního návrhu.

Programovatelná hradlová pole byla představena v polovině osmdesátých let, a pro konstrukci digitálních elektronických systémů mají podobně fundamentální význam, jaký mělo uvedení mikroprocesorů počátkem let sedmdesátých. FPGA v sobě slučují výhody vysoké integrace VLSI obvodů (velká hustota logiky, rychlost, výkonnost) s výhodami snadného návrhu, levné produkce a rychlého nasazení, které jsou typické pro uživatelsky programovatelné součástky (flexibilita, nízká cena vývoje a snadné přizpůsobení požadavkům uživatele). Logické funkce, dříve realizované mnoha pouzdry TTL apod., lze integrovat do jediného pouzdra, a přitom se vyhnout vysokým cenám, nezanedbatelnému riziku, a poměrně dlouhým dobám vývoje. Velmi často je vývoj zařízení s FPGA i rychlejší než při "bastlení" ze standardních obvodů.

V současnosti vyrábí různé varianty programovatelných hradlových polí několik výrobců. Mezi nimi od počátku zaujímá vedoucí pozici americká firma XILINX s obvody registrovanými pod obchodní značkou LCA (Logic Cell Array).

Základem architektury LCA je matice konfigurovatelných logických bloků realizujících prostřednictvím programovatelného propojení požadovanou logickou funkci. Komunikaci s okolím zajišťují programovatelné vstupně-výstupní bloky.

Programovatelné logické obvody vycházející z architektury PAL mají s LCA mnoho společných rysů, avšak ve dvou základních oblastech se navzájem podstatně odlišují. Oba tyto rozdíly umožňují programovatelným hradlovým polím dosáhnout vyšší logické hustoty a navíc i jejího efektivnějšího využití (větší flexibilitu a nižší cenu v přepočtu na jedno ekvivalentní hradlo).

1. Propojení má u LCA aditivní charakter, t.j. propojovací vodiče mohou být připojovány tak, aby vytvořily cestu mezi libovolnými dvěma uzly s prakticky téměř neomezeným počtem vnitřních signálů. Naproti tomu programovatelné propojení součástek typu PAL, GAL, EPLD apod. je subtraktivní - naprogramování požadovaného propojení spočívá v odstranění předdefinovaných spojů, aby nadbytečná logika byla eliminována. Počet propojovacích cest mezi dvěma uzly je předem definován, a jakmile je nějaký spoj odstraněn, není už odpojená část logiky použitelná.

2. Základní logické bloky jsou u LCA programovatelné a mohou být nakonfigurovány pro použití v širokém spektru kombinačních a sekvenčních funkcí. Naproti tomu u programovatelných logických obvodů vycházejících z architektury PAL bývají funkce makrobuňek konfigurovatelné jen v omezeném rozsahu.

K dispozici je velký výběr LCA vzájemně se lišících architekturou (v několika typových řadách), množstvím logiky (s odstupňovanými hustotami od několika stovek až do stovek tisíc ekvivalentních hradel), rychlostí, počtem pinů, pouzdry atd. Uživatel si může zvolit, jaký typ jeho aplikaci nejlépe vyhovuje. V každém případě už i nejmenší LCA může nahradit až několik desítek SSI/MSI integrovaných obvodů.

LCA jsou vyráběna pokročilou technologií CMOS (stejnou jako pro SRAM) s nízkou cenou, velmi nízkou spotřebou, vysokou dosažitelnou rychlostí, hustotou logiky, výtěžností, spolehlivostí a testovatelností.

Podobně jako u programovatelných mikroprocesorových periferních obvodů jsou i u LCA uložena konfigurační data ve vnitřní statické paměti RAM. Existuje několik způsobů, jak do ní (např. po zapnutí napájení) "nahrát" příslušná data, a tím LCA nakonfigurovat pro konkrétní použití. Je možné použít externí paměť EPROM - buď některý ze standardních typů nebo speciální sériové paměti dodávané v malém pouzdře s pouhými osmi vývody. LCA lze rovněž zapojit do systému s mikroprocesorem (např. PC nebo mikrokontrolér) a programovat jej jako jiné periferní obvody nebo zařízení načtením konfiguračních dat z disku. Konfiguraci LCA (a tím i jeho funkci) lze samozřejmě neomezeně měnit, a to i za běhu aplikace. Tím lze dosáhnout vysoké flexibility systému.


Důvody, proč využívat služeb návrhového centra, jsou pro většinu zájemců o aplikaci LCA především následující:

Úspora peněz:
Návrhový systém není levná záležitost. Kromě toho vyžaduje dostatečně výkonný počítač a vysoce kvalifikovaného návrháře.

Úspora času:
Kdo svěří svůj projekt do péče návrhového centra, ušetří mnoho času, který by jinak musel věnovat studiu detailů architektury LCA, učení se zacházení s návrhovým systémem, udržování se v kondici, a sledování souvisejících novinek.

Záruka spolehlivé funkce:
Zkušenosti návrhového centra s řešením mnoha návrhů z nejrůznějších oblastí jsou zárukou toho, že uživatel dostane optimální řešení, a projekt bude doveden až do stadia spolehlivé funkce.


Přejděme nyní k jednotlivým aspektům, které s sebou návrh přináší:

Ceny:

Částka, kterou uživatel zaplatí za kompletní dodávku, je tvořena dvěma položkami:

  • cena vývoje (návrh obvodu)
  • cena součástek

Cena návrhu:

Vzhledem k charakteru průběhu návrhu nelze cenu odpovědně stanovit např. ceníkem podle typu součástky apod. Cena vývoje závisí na řadě faktorů a definitivně se stanovuje po důkladném seznámení se návrháře s projektem. Důležité faktory ovlivňující cenu jsou:

  • Kvalita a úplnost zadání:
    Zájemce by si měl především ujasnit, co vlastně požaduje, a umět to libovolným, ale jednoznačným a srozumitelným způsobem vyjádřit. Nejasné, nedostatečně formulované zadání, špatně čitelné podklady a prohřešky proti zásadám správného logického návrhu apod. ztěžují práci návrháře, a tím zvyšují cenu.
  • Výsledné parametry:
    Cena je vyšší u návrhů se zvýšenými požadavky na rozmístění vývodů při současném vysokém stupni využití obvodu, s mimořádnými nároky na dynamiku nebo na extrémně nízký dynamický odběr, s nutností rozsáhlých detailních simulací, apod.
  • Poměr cena návrhu/cena součástky:
    V některých případech lze pečlivým ručním návrhem snížit nároky na použitý obvod a použít buď pomalejší verzi obvodu nebo součástku s nižším obsahem uživatelské logiky, což vede ke snížení ceny obvodu; v takovém případě závisí na rozhodnutí uživatele, zda preferuje levnější návrh nebo levnější součástku (což závisí na velikosti požadované série).

V praxi se typické ceny návrhu jednoho LCA pohybují v řádu jednotek až stovek tisíc Kč.

Cena součástek:

Pro prototypovou a malosériovou výrobu jsou LCA jednoznačně ideálním řešením. Cena součástek (od několika set Kč za jeden kus) je více než přijatelná i ve zcela nepatrných sériích. Za cenu standardní součástky je k dispozici plnohodnotný digitální zákaznický obvod. LCA jsou však vhodná nejen pro realizaci prototypů. Většina uživatelů dnes využívá LCA i v hromadné výrobě. Ceny LCA pravidelně výrazně klesají (u novějších typů asi o 30% ročně).

Termíny:

Pro dobu návrhu platí obecně tatáž kritéria jako pro stanovení ceny. Typická doba návrhu činí několik dní, maximálně týdnů. V naléhavém případě je možné návrh provést i ve velmi krátké době. Jednoduché a dobře definované zadání lze zpracovat během několika málo hodin. Změny, např. při inovacích úspěšných výrobků, lze uskutečnit většinou podstatně rychleji než celý nový návrh.


Způsob zadání, forma vstupních podkladů

Logické schéma s použitím standardních součástek

Tento způsob je nejběžnější. Pokud je potřeba integrovat již existující zařízení, lze tedy např. použít již existující dokumentaci - např. s použitím součástek řady 74xx. Mnoho konstruktérů je navíc zvyklých v těchto kategoriích uvažovat (např. místo osmivstupového dekodéru si představí přímo obvod 74151).

Blokové schéma s popisem funkce jednotlivých bloků

Tuto formu lze nejvíce doporučit. Klade totiž větší důraz na funkci systému a nikoli na jeho detailní realizaci, která je v zákaznickém obvodu podstatně odlišná od běžně používané. Detailní schéma na nejnižší úrovni je totiž vhodné výrazně přizpůsobit použité součástce a použitím blokového popisu tak odpadne fáze luštění úmyslů zadavatele. Zvláště výhodná je tato forma tehdy, pokud se jedná o konstrukci nového zařízení.

Logické schéma s použitím knihoven prvků Xilinx

Knihovny prvků Xilinx - tj. knihovny schematických prvků obsahující běžné logické prvky i prvky charakteristické pro LCA včetně parametrů pro simulaci. Tento přístup vyžaduje hlubší znalost struktury a vlastností LCA. Lze jej doporučit pouze opravdu zkušeným konstruktérům. Často bývá totiž potřebné i tato zadání přepracovat, aby vůbec fungovala, nebo, což je ještě častější, aby fungovala spolehlivě. Interface s návrhovým systémem pro LCA existuje takřka pro všechny schematické editory a simulátory, firma Xilinx přímo podporuje systémy ViewLogic, OrCAD a Mentor.

Slovní popis chování obvodu

Tento způsob bývá spojen s vývojem celého finálního zařízení "na klíč".

Časový diagram průběhů, testovací vektory

Tento způsob není zcela jednoznačný. Průběhy totiž popisují jen speciální případ chování obvodu a je více než vhodné doplnit tuto formu o komentář s uvedením souvislostí.

Popis pomocí rovnic

Tento způsob je běžný především pro uživatele obvodů PAL, GAL, EPLD apod. Vzhledem k odlišné architektuře programovatelných hradlových polí je vhodné podobu rovnic konzultovat předem.

Způsoby zadání lze samozřejmě podle libosti kombinovat, klíčová je ovšem jasná formulace požadovaných funkcí obvodu.

Doplňující požadavky

Zadání je nutné doplnit o požadavky na spotřebu, dynamiku, typ pouzdra, rozmístění některých vývodů, velikost předpokládané série apod.


Několik praktických tipů pro zadavatele:

  • Pokud je to možné, je vhodné s návrhovým centrem formu i obsah zadání předem konzultovat.
  • Nejvhodnějším médiem pro předávání podkladů je papír, na němž je zadání buď čitelně vytištěno nebo třeba úhledně nakresleno od ruky.
  • Je užitečné předávat podklady ve dvou exemplářích, jeden slouží přímo při návrhu jako pracovní, druhý je referenční.
  • Je vhodné, aby zadání bylo kopírovatelné, tj. pokud možno jednobarevné a kontrastně provedené. Lehká ruka v kombinaci s obyčejnou tužkou tvrdosti 3 nebo jehličková tiskárna s půl roku starou páskou jsou nevhodné. Ze stejného důvodu se nedoporučuje zasílání podkladů faxem, není-li to z časových důvodů nezbytné.
  • Velkou pozornost je potřeba věnovat jménům signálů. Naprosto nevhodná jsou dlouhá jména plná háčků, čárek nebo písmen řecké abecedy. Doporučujeme tuto konvenci: jména mají mít maximální délku šest znaků, používat výhradně anglickou abecedu (A..Z - jen velká písmena), číslice (0..9), znak "_" (podtržítko) pouze uvnitř názvu a znak "-" (minus) pouze jako první znak. Jméno signálu musí začínat písmenem, je-li signál aktivní v log.1, nebo znakem "-" (minus), je-li aktivní v log.0.
  • Pro návrhové systémy představuje každé jméno obecně různý potenciál, nelze tedy např. používat na vstupu i na výstupu budiče stejné jméno.
  • Je nutné pojmenovat všechny vstupní/výstupní signály a zřetelně je odlišit od signálů vnitřních.
  • Je vhodné pojmenovat všechny důležité vnitřní signály.
  • Standardní signály (např. signály sběrnice ISA) nechť mají svá standardní jména.
  • Při používání značek z řady 74xx je vhodnější jejich vývody označit jmény, pro kontrolu jsou vítána i čísla.

Typický průběh návrhu

Jako obvyklý a nejpřirozenější postup se osvědčil tento:

Informativní rozhovor

Kontakt s návrhovým centrem je vhodné navázat co nejdříve. První rozhovor může proběhnout v nejobecnější rovině systémového řešení celého projektu, aby se od počátku zvolila koncepce maximálně využívající možností LCA. Ušetří se čas. Někteří konstruktéři se neradi zříkají toho, čemu věnovali své úsilí, i když se později ukáže, že věc šla vyřešit lépe.

Počáteční konzultace

Potom uživatel dodá předběžné zadání, aby se s ním návrhář mohl předem seznámit a opatřit si případné další potřebné informace. Potom následuje podrobná konzultace, při níž se vyjasní definitivní podoba zadání a případné další technické otázky. V této etapě je již možné stanovit i předběžné ceny a termíny dodání.

Převzetí podkladů

Následuje předání definitivní verze podkladů. Může k němu dojít buď při dalším osobním setkání (to je užitečné tehdy, když při počáteční konzultaci zůstaly otevřené podstatné problémy) nebo jednoduše poštou. Jsou-li podklady dobře definované (což je typické při opakovaných projektech), lze definitivní zadání převzít už během počáteční konzultace.

Vlastní návrh

Po kontrole podkladů a případném (v praxi téměř vždy) přepracování tak, aby byly eliminovány prohřešky proti správnému logickému návrhu, hazardní stavy apod. jsou podle potřeby provedeny funkční simulace. Následuje proces rozdělování schématu do bloků, jejich rozmístění a propojení a případné další simulace a dynamická analýza. Proces rozmisťování a propojování se pak iterativně (jak strojově, tak často ručně) opakuje, aby bylo dosaženo optimálních výsledků.

Předání výsledků

Výstupem návrhu je konfigurační soubor pro LCA, který se buď naprogramuje do externí konfigurační paměti nebo, což je při vývoji zařízení častější případ, předá na disketě (případně spolu s konfiguračním programem pro PC). Pro ověření funkce obvodu lze jako součást řešení předat i netlist pro simulaci, popř. odsimulované průběhy signálů. Součástí předání výsledků bývá i okamžité dodání jednoho nebo více kusů LCA.

Případné změny, opravy, úpravy, ...

Jednou z nejvíce okouzlujících vlastností LCA je právě jejich úžasná flexibilita, která umožňuje velmi snadno nejrůznější zásahy do funkce obvodu. Každý konstruktér ví, jak často je třeba něco přidat, ubrat či pozměnit. Pokud zbývají nějaké nepoužité uživatelské piny, je vhodné je pro odlaďování využít k vyvedení důležitých vnitřních signálů buď přímo, případně přes klopný obvod, kde se zachytí důležitý stav. To značně zrychluje oživování obvodu.

Oživování návrhu

I v této fázi nabízí návrhové centrun účinnou podporu. Přechod na novou obvodovou techniku nemusí být vždy bezproblémový - mohou nastat problémy s konfigurací, přes všechnu snahu a pečlivost může dojít i k ne zcela přesnému pochopení některé části zadání, a tím k nekorektní funkci obvodu, mohou se projevit nejrůznější nepříznivé vlivy apod.

Utajení

Podle požadavků uživatele zachází návrhové centrum s informacemi o návrhu různě: někdo si přeje zveřejnit o svém obvodu co nejvíce informací, jiný zase požaduje po ukončení návrhu dokonalé "smazání stop" po svém projektu, aby jej mohl stoprocentně ochránit před zneužitím. Mezi těmito dvěma extrémy existuje celé spektrum možností, a je věcí dohody, jak postupovat v konkrétním případě.


Vlastní činnost návrháře a vliv na termíny a ceny

Složitost úlohy není dána ani tak množstvím logiky, ale spíše jejím charakterem. Z tohoto hlediska jsou podstatné dva aspekty:

  • nároky kladené na práci návrháře
  • nároky kladené na návrhový systém

Implementaci požadované logické struktury do LCA provádí návrhový systém ve třech krocích:

a) Převedení logické struktury do reprezentace vnitřních logických elementů LCA,

b) rozmístění vnitřních logických elementů po čipu LCA,

c) jejich vzájemné propojení.

Přitom pouze první krok je jednoznačný, efektivita následujících dvou kroků se k optimu přibližuje úměrně s vynaloženým strojovým časem a podílem ruční práce.

Z bodu a) vyplyne (podle množství logiky a počtu pinů) nejmenší v ideálním případě postačující součástka. Řešení pro ni - konkrétně jde o bod c) - se však nemusí podařit nalézt ze dvou důvodů:

  • nepodaří se rozmístění tak, aby bylo možno vnitřní elementy správně vzájemně propojit
  • sice se to podaří, ale dynamika je nevyhovující

Nabízí se několik způsobů řešení těchto problémů:

  • nechat návrhový systém, aby provedl více pokusů
  • část návrhu udělat ručně
  • zvolit LCA z jiné, pro danou aplikaci vhodnější řady
  • zvolit rychlejší součástku (pouze v případě nevyhovující dynamiky)
  • zvolit součástku s větším obsahem vnitřní logiky
  • slevit z požadavků na rozmístění pinů
  • zvolit stejnou součástku v pouzdře s vyšším počtem pinů (zřídkakdy)
  • pozměnit koncepci tak, abychom se vzniklým potížím vyhnuli

Existuje tedy dostatek prostředků, aby zkušený návrhář dosáhl požadovaného výsledku.

Co komplikuje práci návrháře:

  • nevhodná forma zadání, různé nedostatky zadání jako např. neodůvodněná asynchronnost (zvláště ve spojení se zpětnými vazbami) logické chyby (hazardy), mnoho různých hodinových signálů,...

Co komplikuje a co usnadňuje činnost návrhového systému:

  • určité komplikace se někdy mohou vyskytovat u rozsáhlé logiky převážně registrového charakteru s množstvím vzájemných propojů s velkým větvením, široké rozvětvené třístavové sběrnice
  • snáze se implementuje rozptýlená logika, separovatelná do bloků, mezi nimiž je málo propojů (např. čítače)
  • regulární struktury se často řeší dobře tak, že se ručně odladí jeden základní blok ve vztahu k nejbližším sousedům a zbytek se nakopíruje
  • čím je využití součástky z hlediska počtu pinů a vnitřních bloků menší než 100%, tím vzrůstá efektivita rozmístění a propojení. Uživatel má často tendenci v takovém případě přidávat do zadání dodatečné funkce, až do vyčerpání všech pinů a bloků LCA.

Nakonec uveďme pro ilustraci modelový příklad: uživatel požaduje rozšíření mikroprocesorového systému o periferní obvod s osmi osmibitovými generátory PWM (pulzně-šířková modulace) a má v úmyslu vyrobit 25 kusů. Vhodným typem LCA je v tomto případě XC5202-6PC84C v pouzdru PLCC84, jehož cena je asi 300 Kč bez DPH. Cena takovéhoto návrhu se pohybuje kolem 5000 Kč. Výsledná cena za jeden kus obvodu s rozpuštěnými náklady na návrh pak vychází 500 Kč.


Máte-li zájem o další informace, zeptejte se nás.

© ASIX s.r.o., 1991-2002. All rights reserved.