Ushirikiano
SANAA
UREMBO NA USTAWI
UJANJA
UTAMADUNI NA HISTORIA
BURUDANI
MAZINGIRA
CHAKULA NA VINYWAJI
UHANDISI WA KINYUME
SAYANSI
MICHEZO
TEKNOLOJIA
VAZI

English
Youblob (simulation output) · CC0
Kumbukumbu ya SRAM Ndani ya Chip: Mwanga Unaopumua Uliohifadhiwa Kwenye Kumbukumbu ya Chip Yako
Kiolezo cha wafer.space kinakuja na macros mbili za SRAM katika muundo wake wa mfano, kila moja ikiwa na baiti 512, na zimezimwa. Macro ni kizuizi kilichokamilika cha kumbukumbu kutoka PDK: seli 4,096 za kumbukumbu tuli, zilizochorwa mara moja pamoja na kisimbuaji cha anwani na saketi za kusoma, unazoweka zote kwa pamoja badala ya kuzijenga kutoka kwenye gates.
Hatua hii inawasha moja kati yake. Dimmer ya PWM kutoka hatua iliyotangulia sasa inacheza mfuatano: microcontroller inaandika baiti 256 kwenye chip kupitia pads zake, mara moja, na kuanzia hapo chip inazisoma yenyewe, baiti moja kwa hatua, kama mwangaza wa taa inayopumua polepole.
Core na testbench yake viliendeshwa kwa blueprint hii kwa kutumia Icarus Verilog 12.0, cocotb 2.1.0 na modeli ya simulation ya PDK yenyewe ya macro ya SRAM: matokeo yalifuata jedwali lililohifadhiwa kwa vipindi 600 vya PWM. Picha ni matokeo ya simulation hiyo yenyewe, upau mmoja kwa kila kipindi. Mchoro wa ESP32 unaopakia jedwali ulikusanywa kwa blueprint hii; bado hakuna chip ya kuuendesha.
Juu
Jioni, pamoja na chip
Maagizo
1
1
Muundo, muda na ukubwa
Muundo, muda na ukubwa
Inapakia daftari la Jupyter…
2
2
Kila moja ya biti 4,096 ni nini
Kila moja ya biti 4,096 ni nini
Mchoro uliopachikwa unaonyesha jinsi biti moja ya kumbukumbu tuli inavyojishikilia yenyewe: kitanzi cha vibadilishi viwili (inverters). Macro katika ngazi hii ni biti 4,096 za kumbukumbu tuli katika safu moja.
3
3
Pini za macro, na mambo matatu ambayo modeli yake inasema
Pini za macro, na mambo matatu ambayo modeli yake inasema
gf180mcu_fd_ip_sram__sram512x8m8wm1 inashikilia baiti 512. Pini zake: CLK; A, anwani ya biti 9; D, baiti ya kuandika; Q, baiti iliyosomwa. Vidhibiti vitatu vyote ni vinavyofanya kazi kwa kiwango cha LOW. CEN ikiwa 0 huwasha kumbukumbu. GWEN ikiwa 0 hufanya ukingo wa saa kuwa uandishi, ikiwa 1 ni usomaji. WEN ni biti moja kwa kila biti ya data, na 0 huruhusu biti hiyo kuandikwa, hivyo uandishi unaweza kubadilisha baadhi ya biti za baiti na kuacha nyingine bila kuguswa.
Kusoma modeli ya uigaji ya PDK kunaonyesha mambo matatu yanayostahili kujulikana. Kwanza, kumbukumbu hufanya kazi tu baada ya CEN kubadilika kutoka 1 hadi 0; vinginevyo modeli huchapisha "CEN is not reset, memory is not operational", hivyo core inashikilia CEN kuwa 1 wakati wa reset na kuishusha baadaye. Pili, usomaji hutoa mem[A] kwenye Q mara baada ya ukingo wa saa uliosampuli A, hivyo data iko tayari saa moja baadaye. Tatu, modeli huanza na kila baiti ikiwa 0. Chip halisi haifanyi hivyo: SRAM yake huwashwa ikiwa na chochote kila seli ilichoanguka nacho, hivyo muundo lazima uandike kabla ya kusoma.
Mfano wa template yenyewe unafunga CEN kuwa 1, hivyo macro zake mbili zimezimwa. Faili zake za muda zinaonyesha kipindi cha chini cha saa cha macro kuwa 6.6 ns katika kona ya kawaida ya 5 V na 18.3 ns katika kona ya polepole ya 3.0 V, 125 °C, zote mbili zikiwa ndani ya 40 ns ya template.
4
4
The core
The core
src/chip_core.sv for the pattern player, with the template's port list unchanged plus one parameter, HOLD_LOG2. Input pad 0 enables, pad 1 selects LOAD mode, pad 2 is the write strobe; bidirectional pads 0 to 7 carry the byte, pad 8 the PWM. The LOAD and strobe pads are passed through two flip-flops before use, a synchroniser: they change whenever the outside world likes, not in step with the chip's clock, and a flip-flop caught mid-change can hover between 0 and 1 for a while. In play mode, each time HOLD_LOG2 periods have passed, the byte the SRAM has been reading becomes the new duty and the address moves on.
chip_core.svsystemverilog
Zana zinazohitajika:
Kompyuta ya mezani5
5
The test
The test
test_pattern.py builds the core with the PDK's SRAM model, gf180mcu_fd_ip_sram__sram512x8m8wm1.v, at the template's 25 MHz and with HOLD_LOG2 = 0 so the whole table plays in 256 periods. It loads the table through the pads the way the ESP32 will, then counts the high clocks in each of 600 PWM periods and requires them to follow the table from exactly one starting point. A second test loads again and checks the new pattern replaced the old.
test_pattern.pypython
Zana zinazohitajika:
Kompyuta ya mezani6
6
Kile ambacho simulesheni ilichapisha
Kile ambacho simulesheni ilichapisha
Endesha kwa blueprint hii kwa Icarus Verilog 12.0 na cocotb 2.1.0:
-------- MESSAGE: CEN imewekwa upya tu, kumbukumbu inafanya kazi ---------
test_pattern.test_plays_the_table PASS (periodi 600, jedwali linalingana kwa mpangilio mmoja tu)
test_pattern.test_reload PASS
TESTS=2 PASS=2 FAIL=0 SKIP=0
Ili kuthibitisha kwamba jaribio linaweza kushindwa, WEN ilibadilishwa kutoka 8'b0 hadi 8'hFF, kosa la kawaida na pini inayofanya kazi kwa kiwango cha chini: kila biti imefichwa, hakuna kilichoandikwa, jedwali la sifuri. Majaribio yote mawili yalishindwa, na core ikarejeshwa.
Mstari wa kwanza ni ujumbe wa modeli ya SRAM yenyewe: core ilishusha CEN baada ya kuwekwa upya, kama modeli inavyohitaji.
7
7
Load it from an ESP32
Load it from an ESP32
Once the chip is on its breakout board, this sketch writes the table. Eight GPIOs carry the byte, three more drive LOAD, the strobe and enable, and an LED with a 330 ohm resistor from pad 8 to ground shows the breath. Each level is held for 1 microsecond, 25 of the chip's clocks, so the synchroniser always sees it. The sketch then does nothing: the pattern lives in the chip. It is lost when the chip loses power, so send r over serial to load it again.
The ESP32 is a 3.3 V part and its inputs are not 5 V tolerant. The sketch only drives the chip and never reads from it. The template's default libraries are the 5 V ones; before you connect, check in the I/O library's documentation that 3.3 V is a valid logic high for your chip's inputs, or build with the 3.3 V libraries, as the template's README shows. The sketch compiles for the ESP32 with the Arduino ESP32 core 3.3.12; it has not been run, because the chip does not exist yet.
load_pattern.inocpp
Vifaa kwa hatua hii:
Chipu ya ASIC iliyobuniwa maalum1 kipande
Bamba la mzunguko lililochapishwa1 kipande
LED ya mm 51 kipande
Kizuia-mkondo cha ohm 3301 kipandeZana zinazohitajika:
Bao la Uendelezaji la ESP32
Bao la Majaribio
Nyaya za Kuunganisha
Kompyuta ya mezani8
8
Mchoro ambao hauhifadhiwi au hauchezwi
Mchoro ambao hauhifadhiwi au hauchezwi
Utatuzi wa mchoro wa SRAM.
Flow
Loading...
9
9
Vyanzo na mipaka ya kweli
Vyanzo na mipaka ya kweli
**Vyanzo**, vilisomwa tarehe 29 Septemba 2026: GF180MCU PDK kwenye commit ambayo template inaibandika (gf180mcuD, f6eeac7dad085ffcc829ccfd721f7b4ce39edcf7, kutoka fossi-foundation ciel releases; Apache-2.0): modeli ya SRAM gf180mcu_fd_ip_sram__sram512x8m8wm1.v, LEF yake kwa muhtasari, na faili zake za muda kwa kipindi cha chini kabisa cha saa; faili ya muda ya maktaba ya standard-cell kwa eneo la flip-flop. Hazina ya wafer-space/gf180mcu-project-template (src/chip_core.sv, src/chip_top.sv, README.md, librelane/config.yaml; Apache-2.0).
**Mipaka ya kweli.** Uigaji uko katika kiwango cha chip_core, ukitumia modeli ya SRAM yenyewe lakini bila pad ring, synthesis au layout, na ukaguzi wa muda wa modeli hauamui chochote hapa. Mchoro wa ESP32 ulikusanywa, haukuendeshwa. HOLD_LOG2 ilikuwa 0 katika jaribio ili umalizike; chip ingetumia 9, pumzi ya takriban sekunde 1.3.
Vifaa
4- 1 kipandeKishikilia Nafasi
- 1 kipandeKishikilia Nafasi
- Kishikilia Nafasi
- 1 kipandeKishikilia Nafasi
Zana Zinazohitajika
4- Kishikilia Nafasi
- Kishikilia Nafasi
- 1 vendor sell this, none ship to you yetKishikilia Nafasi
- 3 vendors sell this, none ship to you yetKishikilia Nafasi
Blueprint zinazohusiana
Blueprint hizi zinashiriki maarifa — mbinu, vifaa au kanuni
CC0 Umma Wote
Mchoro huu umetolewa chini ya CC0. Uko huru kunakili, kubadilisha, kusambaza, na kutumia kazi hii kwa madhumuni yoyote, bila kuomba ruhusa.
Saidia Mtengenezaji kwa kununua bidhaa kupitia Mchoro wao ambapo wanapata Kamisheni ya Mtengenezaji iliyowekwa na Wachuuzi, au unda marudio mapya ya Mchoro huu na uiunganishe kama kiungo katika Mchoro wako kuchangia mapato.



