Případová studie Řadič I2C rozhraní

Podobné dokumenty
Vestavné systémy BI-VES Přednáška 5

9. Praktická verifikace

SYSTÉMY NAČIPU MI-SOC

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Rozhraní mikrořadiče, SPI, IIC bus,..

7. Popis konečného automatu

Praktické úlohy- 2.oblast zaměření

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2

Návrh. číslicových obvodů

Návrh ovládání zdroje ATX

A4B38NVS, 2011, kat. měření, J.Fischer, ČVUT - FEL. Rozhraní mikrořadiče, SPI, IIC bus,.. A438NVS, kat. měření, ČVUT - FEL, Praha. J.

Příklady popisu základních obvodů ve VHDL

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií

Rozhraní mikrořadiče, SPI, IIC bus,..

Rozhraní mikrořadiče, SPI, IIC bus,.. Přednáška 11 (12)

Metody návrhu systémů na bázi FPGA

Úvod do jazyka VHDL. Jan Kořenek Návrh číslicových systémů

12. VHDL pro verifikaci - Testbench I

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

7. Pracovní postupy. Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt

1. Seznamte se s výukovou platformou FITkit (

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Úvod do mobilní robotiky AIL028

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Paměti Flash. Paměti Flash. Základní charakteristiky

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů:

Přednáška A3B38MMP. Bloky mikropočítače vestavné aplikace, dohlížecí obvody. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer

Číslicové obvody a jazyk VHDL

Moduly MicroUnit serie. všechny typy s výjimkou řady MU-43x, MU-44x a MU-84x

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Metody připojování periferií BI-MPP Přednáška 1

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Struktura a architektura počítačů (BI-SAP) 3

Profilová část maturitní zkoušky 2014/2015

Systém řízení sběrnice

Digitální technika. Jazyk VHDL, základy návrhu. Ing. Jakub Št astný, Ph.D. 1

Měřicí systémy. Obsah. Systémy složené z autonomních měřicích přístrojů a modulů Sériová rozhraní. Sériová rozhraní - pokračování 1

Virtuální přístroje. Matlab a Instrument Control Toolbox. J.Tomek, A.Platil

Převodník Ethernet ARINC 429

Programovatelné automaty SIMATIC S7 a S5

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Metody připojování periferií

Druhá generace palivoměru LUN 5275 pro letoun EV-55

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Profilová část maturitní zkoušky 2015/2016

Local Interconnect Network - LIN

Simulace číslicových obvodů na hradlové úrovni: model návrhu Jakub Šťastný ASICentrum, s.r.o. Katedra teorie obvodů FEL ČVUT Praha

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

CAL (CAN Application Layer) a CANopen

Firmware řídící jednotky stejnosměrného generátoru

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Metody připojování periferií

Vývoj VHDL. Verilog HDL

FVZ K13138-TACR-V004-G-TRIGGER_BOX

Sekvenční logické obvody

Integrované obvody. Obvody malé, střední a velké integrace Programovatelné obvody

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y. Rovnicí y = x 1. x 0. Přiřazení signálů: ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

ŠESTNÁCTIKANÁLOVÝ A/D PŘEVODNÍK ±30 mv až ±12 V DC, 16 bitů

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Dělení pamětí Volatilní paměti Nevolatilní paměti. Miroslav Flídr Počítačové systémy LS /11- Západočeská univerzita v Plzni

Kryptoanalýza šifry PRESENT pomocí rekonfigurovatelného hardware COPACOBANA

3. Sekvenční logické obvody

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY

FPGA + mikroprocesorové jádro:

Distribuované systémy a počítačové sítě

5. A/Č převodník s postupnou aproximací

Virtuální ověřování výroby Robotika Process Simulate Virtual Commissioning Virtuelle Inbetriebnahme

Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)

Miroslav Flídr Počítačové systémy LS /21- Západočeská univerzita v Plzni

SEKVENČNÍ LOGICKÉ OBVODY

Komunikační protokol MODBUS RTU v jednotce M4016. Seznam služeb protokolu MODBUS podporovaných řídící jednotkou M4016 je v tabulce.

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Projekt: Přístupový terminál

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Vrstvy periferních rozhraní

Moderní nástroje pro vývoj elektronických řídicích jednotek

CO JE STAVOVÝ AUTOMAT

PŘÍSTUP. Docházkový terminál itouch. Produktový list : DT - itouch

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Střední odborná škola a Střední odborné učiliště, Dubno Ing. Miroslav Krýdl Tematická oblast ELEKTRONIKA

POČÍTAČOVÉ ŘÍZENÍ TECHNOLOGICKÝCH PROCESŮ

ŘÍDÍCÍ DESKA SYSTÉMU ZAT-DV

Operační paměti počítačů PC

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

RS485/MODBUS-RTU ver. 4 s rozšířením pro R24

Vzdálené ovládání po rozvodné síti 230V

Struktura a architektura počítačů (BI-SAP) 10

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Vstupně - výstupní moduly

Vana RC0001R1 RC0001R1

DESKA ANALOGOVÝCH VSTUPŮ ±24mA DC, 16 bitů

PROGRAMOVATELNÉ LOGICKÉ OBVODY

POČÍTAČOVÉ ŘÍZENÍ TECHNOLOGICKÝCH PROCESŮ

Struktura a architektura počítačů (BI-SAP) 4

Microchip. PICmicro Microcontrollers

Transkript:

Případová studie Řadič I2C rozhraní ASICentrum, s.r.o. Ing. Jakub Šťastný, Ph.D. jakub.stastny@asicentrum.cz Page 1

Cíl přednášky ukázat, jak se dělá návrh číslicového bloku zákaznického integrovaného obvodu pro hromadnou výrobu s použitím standardního postupu návrhu (design flow) s pomocí RTL jazyků krok po kroku včetně potřebné dokumentace atd. těžiště je v technické stránce návrhu Bylo složité najít dost jednoduchý blok, aby se dal demonstrovat během jedné půlpřednášky. Řadu věcí jsem musel upravit a zjednodušit (na konci povím, co ). Page 2

Specifikace čipu a postup návrhu Zachycuje záměr zákazníka Popisuje chování čipu z pohledu uživatele Důležitou součástí můžou být use cases případové studie použití integrovaného obvodu ulehčují pochopení Dokument je psán jako volný text jednoznačný bezesporný odsouhlasený všemi zúčastněnými stranami Page 3

Dvoudrátový sériový komunik. protokol: data (SDA) a hodiny (SCL) Normalizovaný komunikační protokol NXP I2C specifikace průmyslový standard mezi více řadiči (master) a více řízenými systémy (slaves) a sdílení sběrnice úspora plochy i nákladů "open drain" s pull-up resistor (obousměrná komunikace) 100 khz, 400 khz, 1 MHz, 3,4 MHz komunikace např. mezi mikropočítačem a LCD displeje senzory nevolatilní pamětí (EEPROM, FLASH) hodinami reálného času pomalejší DAC/ADC Specifikace - modelová situace: Návrh I2C slave rozhraní pro složitější systém SMBus na PC Motherboardech I2C rozhraní By en:user:cburnett - Own work made with Inkscape, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=1472017 Page 4

Modelová situace: Návrh I2C slave rozhraní pro složitější obvod Příklad: Sensor Fusion Coprocessor mikropočítač SLAVE SLAVE MASTER I2C rozhraní SLAVE MASTER SLAVE https://www.pnicorp.com/sentral/ Page 5

Návrh I2C rozhraní pro komplexní obvod Ovládání jako u periférií mikropočítače Přístup k interní registrové mapě pomocí I2C rozhraní Ovládání systému pomocí zápisu/čtení registrů Page 6

Příklad ovládání systému a registrové mapy Obvod ovládáme operacemi s registry přes I2C rozhraní Příklad (use case): host procesor chce spustit měření teploty zápis 0x04 do registru na adrese 0x01 spustí měření teploty až senzor dokončí měření, bit START_T vynuluje uživatel podle toho pozná, že se měření dokončilo výslednou teplotu si přečte z registrů TEMP_LSB a TEMP_MSB ve dvojkovém doplňku s rozlišením 0,01 C / LSB např. 0x054C = 1356 10 = 13,56 C Page 7

Zápis do registru přes I2C sběrnici Operace zápisu do registru příklad: 0x04 na adr. 0x01 adresa mého zařízení 0011101 odeslaná sekvence: S 00111010A 00000001A 00000100A P čtení je analogické, kvůli složitosti vynecháno Zdroj: I2C specifikace NXP Page 8

Specifikace - dokumentace Reg. Mapa do Device specifikace patří také. Page 9

Systémový návrh (system design) Systém: celek složený z částí, které na sebe vzájemně působí Typický postup: dekompozice do bloků divide et impera každý blok má mít "jeden důvod své existence" (single responsibility principle) Pro jednotlivé bloky definujeme jejich funkce jejich rozhraní komunikační protokoly Vše tak, aby byly naplněny požadavky kladené na systém Page 10

Obecné paradigma dekompozice na 1. řadič 2. datovou cestu Jak dekomponovat systém do bloků? Řadič konečný automat FSM, Finite State Machine všechno to tu řídí, sám nic nedělá Ovládá datovou cestu povelovými signály do datové cesty (control signals) Rozhoduje dle příznaků generovaných datovou cestou (status signals) (vstupy) Spouští jednotlivé operace Další vstupy a výstupy hodinový a resetovací signál (vstupy) další řídící a stavové signály (vstupy i výstupy), např. z venku Implementuje komunikační protokol zde I2C protokol Page 11

Obecné paradigma dekompozice na 1. řadič 2. datovou cestu Jak dekomponovat systém do bloků? Datová cesta realizuje konkrétní operace DataPath (DP) soubor funkčních jednotek registrů propojených pomocí sběrnic a multiplexorů vstupy a výstupy hodinový a resetovací signál datový vstup a výstup příznaky pro řízení pro řadič (výstupy) ovládací signály z řadiče (vstupy) zde je zodpovědná za: příjem dat vysílání dat Page 12

Návrh řadiče: zápis do paměti pomocí I2C stavy Stavy automatu v řadiči zde extrahujeme z očekávaného chování systému. Postupně přiřadíme stavy jednotlivým komunikačním fázím I2C protokolu, jak je znázorněno barevně. Zde řadič definuje protokol, také může být specifikován datovou cestou. Čtení je analogické, kvůli složitosti neuvádíme Page 13

Datová cesta - funkce příjem a vyslání bitů převod sériového datového toku na paralelní byte převod paralelního byte na sériový datový tok signalizace start/stop podmínka zpracovaný celý byte čítání bitů v byte rozlišení read nebo write operace příprava adresy a dat komparace přijaté adresy proti adrese zařízení signalizace shody přijaté adresy zařízení s adresou očekávánou vyslání ACK/NACK Page 14

2 3 5 Datová cesta 7 4 6 1 Ideové schéma. Funkce datové cesty a příslušné signály: 1. detekce start a stop podmínek (start/stop) 2. převod sériového datového toku na paralelní byte (data_out_wr_en, data_in, data_out), příjem a vyslání bitu (SCL, SDA_in, SDA_out) 3. komparace přijaté adresy proti adrese zařízení (dev_addr_eq) 4. příprava adresy a dat (data_wr_en, addr_wr_en) 5. indikace read nebo write operace (r_wn) 6. čítání bitů v byte (bit_cnt_reset, det_bit_7,8) 7. vyslání ACK/NACK (i2c_ack) Page 15

Page 16

Datová cesta www.asicentrum.com Page 17

Integrace řadiče a datové cesty do systému Page 18

Design flow Specifikace návrhu Máme systémový návrh, dekompozici, mikroarchitekturu, to musíme předat návrhářům Specifikace zařízení nevhodná pro návrh chybí tam detaily Specifikace návrhu design specification popisuje přechod od systémové architektury k mikroarchitektuře píše se v požadavcích IEEE jazyk popisuje detaily z předchozích slidů Page 19

Specifikace návrhu detaily, příklad www.asicentrum.com 1 System Requirements Req_SYS_1: TheI2C slaveshallacceptany transaction withcorrectdeviceaddress. Transactions with incorrect device addresses shall be refused. Req_SYS_2: The register address at the address output bus shall be extracted from the transaction (see protocol waves, Fig. 1). 2 Implementation details 2.1 Bitcounter Implementation The bit counter shall be a 4 bit counter counting received/transmitted bits. ReqSPI_DP_BC_2: The bit counter shall be reset to 0x00 when bit_cnt_reset= 1. The det_bit_7shall be at 1 if the counter state equals to 7, otherwise shall be at 0. Page 20

Kódování návrhu Popis na úrovni RTL Register Transfer Level pomocí HDL jazyků Hardware Description Language VHDL, Verilog, SystemVerilog tzv. syntetizovatelná podmnožina jazyka standardizované konstrukce, kterým rozumí syntéza ukážeme si teď pár příkladů Nástroje: textové editory Page 21

Datová cesta: příklady návrhu na RTL úrovni Bit counter bit_cnt:process(i2c_res, scl_n) BEGIN IF (i2c_res = '1') THEN bit_cnt_q <= (OTHERS => '0'); ELSIF (scl_n'event AND scl_n = '1') THEN bit_cnt_q <= bit_cnt_d; END IF; END PROCESS bit_cnt; bit_cnt_d <= (OTHERS => '0') WHEN bit_cnt_reset = '1' ELSE bit_cnt_q + 1; det_bit_7 <= '1' WHEN bit_cnt_q = "0111" ELSE '0'; det_bit_8 <= '1' WHEN bit_cnt_q = "1000" ELSE '0'; 2.1 Bitcounter Implementation The bit counter shall be a 4 bit counter counting received/transmitted bits. ReqSPI_DP_BC_2: The bit counter shall be reset to 0x00 when bit_cnt_reset= 1. The det_bit_7 shall be at 1 if the counter state equals to 7, otherwise shall be at 0. Page 22

Design flow Fyzický návrh Syntéza přechod na nižší úroveň abstrakce RTL převedeno do tzv. netlistu pomocí syntezátoru Synopsys DC Compiler Rozmístění a propojení Cadence Innovus Výstupem je popis obvodu na hradlové úrovni a GDS Ten potom dále simulujeme Statická časová analýza Formální ověření správného časování obvodu Cadence Innovus Synopsys PrimeTime Součástí je i podrobná kontrola logů všech nástrojů a vysvětlení všech varování ;-) a hlášených chyb Page 23

Design flow Verifikace Verifikace: proces, při kterém ověřujeme správnou implementaci obvodu proti požadavkům ve specifikaci Verifikace zde simulací testy pokrývající požadavky specifikace požadavky zákazníků jednoznačná korespondence mezi testy a požadavky mohou být i stovky testů nutná automatická kontrola správné funkce návrhář nemá verifikovat co si sám navrhl Verifikační plán co se bude verifikovat? jaké jsou priority? kdo to bude dělat? Nástroj: číslicový simulátor Cadence NCSim Jazyky VHDL SystemVerilog Page 24

Verifikace pomocí simulace I2C slave návrh interface k registrové mapě RTL návrhu I2C master model SCL SDA Model I2C návrhu SCL SDA interface k registrové mapě modelu Page 25

Úroveň abstrakce behaviorální RTL hradlová tranzistorová Modelování - úrovně abstrakce Modelujeme návrh jeho chováním, algoritmy, ověřujeme detaily algoritmů registry a kombinační funkce, bez zpoždění kombinační logika je "nekonečně rychlá", ověřujeme funkční správnost zapojení hradel v obvodu (netlist), s reálnými zpožděními (SDF) vidíme hazardy, atd., ověřujeme funkční správnost a časování tranzistory propojené spoji, RC články, atd. Modelujeme i napájecí rozvod atd. ověřujeme všechny fyzické detaily. Realizace, nástroj Rychlost simulace pro "malý" obvod Matlab, C++, System Verilog, VHDL syntetizovatelná podmnožina HDL jazyka, digitální simulátor netlist + SDF (standard delay format file) pro anotaci, digitální simulátor analogové schéma, analogový simulátor vysoká software na PC (může být rychleji, než reálný obvod) střední (sekundy běhu minuty až desítky minut) střední, pomalejší, než RTL (více detailů), nejnižší (milisekundy běhu obvodu trvají desítky minut) Page 26

Netlist, SDF: Popis obvodu na hradlové úrovni i2c_slave.v modul: module i2c_transmitter_top_limit127_start_address0_test_1 (scl, sda,..., i2c_in_data,...); input scl; input sda;... output [7:0] i2c_in_data;... dfc3d2s data_reg_in_q_reg_7_ (.q(i2c_in_data[7]),.cdn(p_2),.cp(n112),.d(n42),.se(ofd_net_37_test_en),.si(ofch_net_27_n7)); mx21d1 u116 (.z(n42),.i0(i2c_in_data[7]),.i1(test_so1),.s(i2c_data_wr_en)); (CELL (CELLTYPE "mx21d1") (INSTANCE i_spi_i2c/i_i2c_top/i_i2c_transmitter/u116) (DELAY (ABSOLUTE (COND i1==1'b1&&s==1'b0 (IOPATH i0 z (0.123::0.123) (0.168::0.168))) (COND i1==1'b0&&s==1'b0 (IOPATH i0 z (0.123::0.123) (0.168::0.168))) (COND i0==1'b1&&s==1'b1 (IOPATH i1 z (0.140::0.140) (0.194::0.194))) (COND i0==1'b0&&s==1'b1 (IOPATH i1 z (0.140::0.140) (0.194::0.194))) 16 May 2018 I2C Slave design Page 27

Verifikační plán 1 System Requirements Req_SYS_1: The I2C slave shall accept any transaction with correct device address. Transactions with incorrect device addresses shall be refused. Req_SYS_2: The register address at the address output bus shall be extracted from the transaction (see protocol waves, Fig. 1). Název Popis Návr hář test_i2c _write... další testy. Řadič vysílá transakce s náhodnou adresou zařízení (prst. 0,9 správné adresy), zápisové transakce do registrů. Čtecími transakcemi se správnou adresou ověřuje, že data byla do registrů správně zapsána Stav Pokryté požadavky Pepa Hotovo Req_SYS_1 Req_SYS_2 Page 28

Prototypová výroba, kvalifikace, produkční testování Výroba "engineering samples" Kvalifikace bude návrh dostatečně robustní pro sériovou výrobu? měření všech parametrů návrhu systematická měření, které je třeba dobře zdokumentovat časově náročné corner wafers Produkční testování byl čip vyrobený bez poruch? nutno připravit testovací vektory všechny vyrobené čipy se testují Page 29

Malá omluva: Co jsem vám zatajil? Ne všechno se mi sem vešlo, některé věci jsem v zájmu přehlednosti taktně zamlčel. Pro ty zvídavější, kteří by si to chtěli sami vymyslet následuje jejich seznam: generování resetu pro obvod systémový reset, další zdroje resetu (start-stop podmínky), reset pomocí "enable" signálu, některé registry se resetují jen některými zdroji resetu (jinak by to nefungovalo správně) detaily generování hodin pro jednotlivé registry některé registry musí běžet na spádovou, jiné na náběžnou hranu SCL, aby to vše správně fungovalo časové průběhy jsou do jisté míry ideové (občas se systém "musí dívat dopředu") start/stop detektor detaily implementace a jeho řízení z řadiče (FSM) a integrace posuvný registr pro příjem a vysílání detaily implementace, hrany hodin, počítání bitů v bitcounteru je trochu "symbolické" (automat občas musí reagovat "o bit dřív") detailní řízení padů, detekce High Speed módu další I2C režim (High Speed na 3,4 MHz), řízení "glitch filtrů" v padech s proměnnou rychlostí, zpracování "master code",. watchdog I2C slave rozhraní a ještě pár dalších drobností Kdyby to mělo být všechno, byli bychom tu mnohem déle! Page 30

Děkuji za pozornost! Stále hledáme nové kolegy: www.asicentrum.cz 16 May 2018 I2C Slave design Page 31

Použité zkratky ASIC - Application Specific Integrated Circuit DUT - Design Under Test I2C - Inter-Integrated Circuit bus LSB - Least Significant Bit MSB - Most Significant Bit RTL - Register Transfer Level RFU - Reserved for Future Use SCL - Serial CLock SDA - Serial DAta Page 32