
Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:42

Tässä ohjeessa käsitellään yksinkertaisen I2C -masterin suunnittelua VHDL: ssä.
HUOMAUTUS: Napsauta jokaista kuvaa nähdäksesi koko kuvan
Vaihe 1: I2C -väylän yleiskatsaus
• Integroitujen piirien telineitä.
• Synkroninen, puoliksi kaksipuolinen.
• Kaksi johdinliitäntää - SDA ja SCL.
• SDA - Master- ja Slave -ohjaama sarjatietolinja
• SCL - Mestarin luoma sarjakello
• Multi-master, Multi-slave-protokolla.
• Kaksi tilaa - 100 kbit/s ja 400 kbit/s: hidas ja nopea.
Vaihe 2: RTL -suunnittelu VHDL -muodossa
I2C Masterin suunnittelutiedot
- 8-bittinen datakehys.
- Vain yksisuuntainen SCL-ohjaus.
- 7-bittinen orjaosoite.
- Tukee sekä hidasta että nopeaa tilaa.
- Yksi isäntä, moni-orja.
- Täyttää Philipsin alkuperäiset I2C -tiedot.
Puhdasta RTL -koodia käytetään. Joten IP on helposti siirrettävissä kaikkiin FPGA -laitteisiin. Kompakti FSM -pohjainen muotoilu, jossa käytetään sisäisesti luotua kelloa, takaa optimaalisen alueen ja suorituskyvyn.
Vaihe 3: Simulointi ja testaus
Testiympäristössä
- Toiminnallinen simulointi ja testaus kolmannen osapuolen I2C Slave IP -palvelun avulla.
- Syntetisoitu Xilinx Vivado -työkalusarjalla.
- Toteutettu ja testattu Artix-7 FPGA -levyllä.
- Ajoituksen vahvistama suunnittelu 100 MHz: lle.
- Testatut aaltomuodot DSO/CRO: lla.
- Onnistuneesti testattu viestintä Arduino UNO: n kanssa I2C -orjana.
Vaihe 4: Tärkeitä huomautuksia
- Kun testaat Masteria I2C Slave IP: llä, määritä orjakoodi tarpeidesi mukaan. Haluat ehkä muuttaa oletuskellotaajuutta ja orjaosoitetta. Kellotaajuus on määritettävä myös pääkoodissa.
- Sisäisen testauksen aikana älä unohda vetovastuksia, koska SDA-linja on yleinen tyhjennyslähtö !!! Tarkista Googlesta suositeltava vetovastus eri i2c-nopeuksille. Käytin 2,2K 100 kHz: lle.
- Jos et käytä testipenkkiä ja simuloit Masteria itsenäisesti, simuloi SDA-signaali varovasti, koska se on kaksisuuntainen signaali (inout). Siinä on kaksi ohjainta, isäntäpuoli ja orjapuoli. Sinun pitäisi tietää, milloin pakottaa ja milloin pakottaa.
- SCL on yksisuuntainen linja. Ei tarvetta vetää.
- Käy IP -dokumentaatio läpi perusteellisesti.
Vaihe 5: Liitetyt tiedostot
- Kaikki I2C Masterin RTL -koodit.
- Testipenkki, myös I2C -orjakoodit testausta varten.
- IP -dokumentaatio.
Jos sinulla on kysyttävää, ota rohkeasti yhteyttä minuun:
Mitu Raj
seuraa minua:
Jos sinulla on kysyttävää, ota yhteyttä: [email protected]
Suositeltava:
Yksinkertaisen nelisuuntaisen yhdistetyn välimuistiohjaimen suunnittelu VHDL: ssä: 4 vaihetta

Yksinkertaisen nelisuuntaisen yhdistetyn välimuistiohjaimen suunnittelu VHDL: ssä: Edellisessä ohjeessani näimme kuinka suunnitella yksinkertainen suoraan kartoitettu välimuistiohjain. Tällä kertaa mennään askel eteenpäin. Suunnittelemme yksinkertaisen nelisuuntaisen yhdistetyn välimuistiohjaimen. Etu? Vähemmän miss -korkoa, mutta perfo -kustannuksella
Ohjelmoitavan keskeytysohjaimen suunnittelu VHDL: ssä: 4 vaihetta

Ohjelmoitavan keskeytysohjaimen suunnittelu VHDL: ssä: Olen hämmästynyt siitä, millaisia vastauksia saan tästä blogista. Kiitos kaverit vierailustani blogissani ja kannustivat minua jakamaan tietoni kanssanne. Tällä kertaa aion esitellä toisen mielenkiintoisen moduulin suunnittelun, jonka näemme kaikissa SOC -järjestelmissä - Keskeytä C
Yksinkertaisen välimuistiohjaimen suunnittelu VHDL: ssä: 4 vaihetta

Yksinkertaisen välimuistiohjaimen suunnittelu VHDL: ssä: Kirjoitan tämän ohjeellisen, koska minusta oli hieman vaikeaa saada viite -VHDL -koodi oppia ja aloittaa välimuistiohjaimen suunnittelu. Joten suunnittelin välimuistiohjaimen itse tyhjästä ja testasin sen onnistuneesti FPGA: lla. Minulla on p
SPI Masterin suunnittelu VHDL: ssä: 6 vaihetta

SPI Masterin suunnittelu VHDL: ssä: Tässä ohjeessa aiomme suunnitella SPI Bus Masterin alusta alkaen VHDL: ssä
UART: n suunnittelu VHDL: ssä: 5 vaihetta

UART: n suunnittelu VHDL: ssä: UART tarkoittaa Universal Asynchronous Receiver Transmitter. Se on suosituin ja yksinkertaisin sarjaliikenneprotokolla.Tässä ohjeessa opit suunnittelemaan UART -moduulin VHDL -muodossa