Хамтын ажиллагаа
УРЛАГ
ГОО САЙХАН БА ЭРҮҮЛ МЭНД
ГАРААР ХИЙСЭН
СОЁЛ БА ТҮҮХ
ҮЗВЭР НААДАМ
БАЙГАЛЬ ОРЧИН
ХООЛ БА УНДАА
УРВУУ ИНЖЕНЕРЧЛЭЛ
ШИНЖЛЭХ УХААН
СПОРТ
ТЕХНОЛОГИ
ӨМСДӨГ ХЭРЭГСЭЛ

English
Youblob (simulation output) · CC0
Чип дотор байрлах SRAM: Чипийн өөрийн санах ойд хадгалагдсан амьсгалдаг гэрэл
wafer.space-ийн загвар нь жишээ дизайндаа хоёр SRAM макро агуулж, тус бүр 512 байт бөгөөд тэдгээрийг унтраалттай орхисон байдаг. Макро гэдэг нь PDK-ээс бэлэн болсон санах ойн блок юм: 4,096 статик санах ойн эс бөгөөд хаягийн декодер болон унших хэлхээтэй нь нэг удаа зурагдсан бөгөөд таныг хаалгануудаас бүтээхийн оронд бүхэлд нь байрлуулдаг.
Энэ шатлал нэгийг асаана. Өмнөх шатлалын PWM гэрлийн бүдэгрүүлэгч одоо хэв маягийг тоглуулдаг: микроконтроллер нэг удаа падуудаараа дамжуулан чип рүү 256 байт бичдэг, үүнээс хойш чип тэдгээрийг өөрөө нэг алхам тутамд нэг байтаар уншиж, удаан амьсгалдаг гэрлийн гэрэлтлэг болгон ашигладаг.
Цөм болон түүний туршилтын стенд энэ блюпринтэд Icarus Verilog 12.0, cocotb 2.1.0, мөн PDK-ийн өөрийн SRAM макроны симуляцийн загвараар ажиллуулсан: гаралт хадгалагдсан хүснэгтийг 600 PWM мөчлөгийн турш дагасан. Зураг нь тэр симуляцийн өөрийн гаралт бөгөөд мөчлөг бүрт нэг баганатай. Хүснэгтийг ачаалдаг ESP32 скетч нь энэ блюпринтэд зориулан эмхэтгэгдсэн; үүнийг ажиллуулах чип одоогоор байхгүй.
Дээд шат
Нэг оройн, мөн чип
Зааварчилгаа
1
1
Загвар, цаг хугацаа ба хэмжээ
Загвар, цаг хугацаа ба хэмжээ
Jupyter дэвтэр ачаалж байна…
2
2
4,096 биt бүрийн юу болох
4,096 биt бүрийн юу болох
Суулгагдсан зураг нь статик санах ойн нэг битийг хэрхэн өөрийгөө хадгалдгийг харуулж байна: хоёр инвертерийн гогцоо. Энэ шатанд байгаа макро нь нэг массивт байрласан 4,096 бит статик санах ой юм.
3
3
Макроны булнууд ба загварын хэлж буй гурван зүйл
Макроны булнууд ба загварын хэлж буй гурван зүйл
gf180mcu_fd_ip_sram__sram512x8m8wm1 нь 512 байт хадгална. Түүний булнууд: CLK; A, 9 битийн хаяг; D, бичих байт; Q, уншсан байт. Гурван удирдлагын дохио бүгд идэвхтэй LOW байна. CEN 0 үед санах ойг асаана. GWEN 0 үед цагийн ирмэгийг бичих, 1 үед унших үйлдэл болгоно. WEN нь өгөгдлийн бит бүрт нэг бит байх ба 0 байвал тухайн битийг бичиж болно, тиймээс бичих үед байтын зарим битийг өөрчилж, бусдыг хэвээр үлдээж болно.
Макроны PDK-ийн симуляцийн загварыг уншихад мэдэх нь зүйтэй гурван зүйл харагдана. Нэгдүгээрт, санах ой зөвхөн CEN 1-ээс 0 болж буурсны дараа ажиллана; үгүй бол загвар "CEN is not reset, memory is not operational" гэж хэвлэнэ, тиймээс цөм дахин тохируулгын үед CEN-г 1 байлгаж, дараа нь буулгана. Хоёрдугаарт, унших үед Q дээр mem[A] гарна, энэ нь A-г дээжлэсэн цагийн ирмэгийн дараа гарч, өгөгдөл нэг цаг хойно бэлэн болно. Гуравдугаарт, загвар бүх байтыг 0-ээр эхлүүлдэг. Бодит чип тийм биш: түүний SRAM асах үедээ нүд бүр ямар утгад орсноор эхэлдэг тул загвар уншихаасаа өмнө бичих ёстой.
Загварын өөрийн жишээ CEN-г 1-д холбодог тул түүний хоёр макро унтарсан байдалд байна. Тэдгээрийн цагийн файлууд макроны хамгийн бага цагийн периодыг типик 5 V байдалд 6.6 нс, удаан 3.0 V, 125 °C байдалд 18.3 нс гэж заадаг бөгөөд энэ нь загварын 40 нс-ээс хамаагүй доогуур байна.
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
Шаардлагатай багаж:
Ширээний компьютер5
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
Шаардлагатай багаж:
Ширээний компьютер6
6
Симуляцийн хэвлэсэн үр дүн
Симуляцийн хэвлэсэн үр дүн
Энэ загварт зориулж Icarus Verilog 12.0 болон cocotb 2.1.0-ээр ажиллуулсан:
-------- MESSAGE: CEN зөвхөн дахин тохируулагдсан, санах ой ажиллагаатай байна ---------
test_pattern.test_plays_the_table PASS (600 период, хүснэгт яг нэг офсетэд тохирно)
test_pattern.test_reload PASS
TESTS=2 PASS=2 FAIL=0 SKIP=0
Тест алдаа гаргаж чадах эсэхийг батлахын тулд WEN-ийг 8'b0-оос 8'hFF болгож өөрчилсөн: идэвхтэй-доод зүү дээрх сонгодог алдаа, бүх бит маскалагдсан, юу ч бичигдээгүй, тэглэх хүснэгт. Хоёр тест тэнцсэнгүй, мөн цөм буцаан сэргээгдсэн.
Эхний мөр бол SRAM загварын өөрийн мессеж: цөм дахин тохируулсны дараа CEN-ийг доошлуулсан, загвар үүнийг шаарддаг.
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
Энэ алхмын материал:
Захиалгат ASIC чип1 ширхэг
Хэвлэмэл хэлхээний хавтан1 ширхэг
5 мм LED1 ширхэг
330 омын эсэргүүцэл1 ширхэгШаардлагатай багаж:
ESP32 хөгжүүлэлтийн самбар
Макет самбар
Холбогч утас
Ширээний компьютер8
8
Хадгалахгүй эсвэл тоглуулахгүй байгаа загвар
Хадгалахгүй эсвэл тоглуулахгүй байгаа загвар
SRAM загварын алдааг шалгах.
Flow
Loading...
9
9
Эх сурвалж ба шударга хязгаарууд
Эх сурвалж ба шударга хязгаарууд
**Эх сурвалж**, 2026 оны 9-р сарын 29-нд уншсан: GF180MCU PDK нь загвар дээр бэхлэгдсэн commit дээр (gf180mcuD, f6eeac7dad085ffcc829ccfd721f7b4ce39edcf7, fossi-foundation ciel хувилбаруудаас; Apache-2.0): SRAM загвар gf180mcu_fd_ip_sram__sram512x8m8wm1.v, түүний LEF нь хэлбэрийн тодорхойлолтын төлөө, мөн түүний timing файлууд нь хамгийн бага цагийн мөчлөгийн хугацааны төлөө; стандарт cell сангийн timing файл нь flip-flop-ийн талбайн төлөө. wafer-space/gf180mcu-project-template repository (src/chip_core.sv, src/chip_top.sv, README.md, librelane/config.yaml; Apache-2.0).
**Шударга хязгаарууд.** Симуляци нь chip_core түвшинд хийгдсэн, SRAM-ийн өөрийн загвартай боловч pad ring, synthesis эсвэл layout-гүй; загварын timing шалгалтууд энд ямар ч шийдвэр гаргадаггүй. ESP32 загварласан зураг эмхэтгэгдсэн боловч ажиллуулаагүй. HOLD_LOG2 туршилтад дуусахын тулд 0 байсан; чип нь 9-ийг ашиглах байсан, ойролцоогоор 1.3 с-ийн амралт.
Материал
4- 1 ширхэгТүр орлуулагч
- 1 ширхэгТүр орлуулагч
- Түр орлуулагч
- 1 ширхэгТүр орлуулагч
Шаардлагатай багаж
4- Түр орлуулагч
- Түр орлуулагч
- 1 vendor sell this, none ship to you yetТүр орлуулагч
- 3 vendors sell this, none ship to you yetТүр орлуулагч
Холбоотой загварууд
Эдгээр загварууд мэдлэг хуваалцдаг — арга техник, материал эсвэл зарчим
CC0 Нийтийн домэйн
Энэ загвар CC0 дор гаргагдсан. Та зөвшөөрөл авахгүйгээр хуулах, өөрчлөх, түгээх, ашиглах боломжтой.
Загвараар дамжуулан бүтээгдэхүүн худалдаж авч Бүтээгчийг дэмжээрэй Бүтээгчийн шимтгэл Борлуулагчаар тогтоосон, эсвэл энэ загварын шинэ хувилбар үүсгэж орлогоо хуваахын тулд өөрийн загварт холбоос болгон оруулна уу.



