تعاون
فن
خوبصورتی اور تندرستی
دستکاری
ثقافت اور تاریخ
تفریح
ماحول
خوراک اور مشروبات
ریورس انجینئرنگ
سائنسز
کھیل
ٹیکنالوجی
پہننے والے آلات

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 بٹس میں سے ہر ایک کیا ہے
ان 4,096 بٹس میں سے ہر ایک کیا ہے
ایمبیڈڈ بلیو پرنٹ دکھاتا ہے کہ اسٹیٹک میموری کا ایک بٹ خود کو کیسے تھامے رکھتا ہے: دو انورٹرز کا ایک لوپ۔ اس رنگ میں میکرو ایک ہی ارے میں 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 ری سیٹ نہیں ہے، میموری آپریشنل نہیں ہے" پرنٹ کرتا ہے، لہذا کور ری سیٹ کے دوران CEN کو 1 پر رکھتا ہے اور اس کے بعد نیچے کرتا ہے۔ دوسری، پڑھنے کا عمل کلاک ایج کے فوراً بعد Q پر mem[A] دیتا ہے جس نے A کو سیمپل کیا، لہذا ڈیٹا ایک کلاک بعد تیار ہوتا ہے۔ تیسری، ماڈل ہر بائٹ کو 0 سے شروع کرتا ہے۔ حقیقی چپ ایسا نہیں کرتی: اس کا SRAM اسی حالت میں آن ہوتا ہے جس میں ہر سیل گرا تھا، لہذا ڈیزائن کو پڑھنے سے پہلے لکھنا ہوگا۔
ٹیمپلیٹ کی اپنی مثال CEN کو 1 سے جوڑتی ہے، لہذا اس کے دونوں میکرو بند رہتے ہیں۔ اس کی ٹائمنگ فائلیں میکرو کی کم از کم کلاک پیریڈ عام 5 V کارنر پر 6.6 ns اور سست 3.0 V، 125 °C کارنر پر 18.3 ns بتاتی ہیں، دونوں ٹیمپلیٹ کے 40 ns کے اندر اچھی طرح ہیں۔
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 abhi reset hua hai, memory operational hai ---------
test_pattern.test_plays_the_table PASS (600 periods، table ایک ہی offset پر align ہوتا ہے)
test_pattern.test_reload PASS
TESTS=2 PASS=2 FAIL=0 SKIP=0
یہ ثابت کرنے کے لیے کہ ٹیسٹ ناکام ہو سکتا ہے، WEN کو 8'b0 سے 8'hFF میں تبدیل کیا گیا، یہ active-low pin کے ساتھ کلاسک غلطی ہے: ہر bit masked، کچھ بھی نہیں لکھا گیا، اور صفروں کا ایک table۔ دونوں ٹیسٹ ناکام ہوئے، اور core کو واپس رکھ دیا گیا۔
پہلی لائن SRAM model کا اپنا پیغام ہے: reset کے بعد core نے CEN کو نیچے کیا، جیسا کہ model تقاضا کرتا ہے۔
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 ٹکڑا
۵ ملی میٹر ایل ای ڈی1 ٹکڑا
۳۳۰ اوہم مزاحم1 ٹکڑادرکار اوزار:
ESP32 ترقیاتی بورڈ
بریڈ بورڈ
جمپر تاریں
ڈیسک ٹاپ کمپیوٹر8
8
ایک ایسا پیٹرن جو محفوظ نہیں ہوتا یا نہیں چلتا
ایک ایسا پیٹرن جو محفوظ نہیں ہوتا یا نہیں چلتا
SRAM پیٹرن کی خرابی کا سراغ لگانا۔
Flow
Loading...
9
9
ماخذ اور دیانتدارانہ حدود
ماخذ اور دیانتدارانہ حدود
**ماخذ**، 29 ستمبر 2026 کو پڑھے گئے: GF180MCU PDK اُس کمٹ پر جو ٹیمپلیٹ پن کرتا ہے (gf180mcuD، f6eeac7dad085ffcc829ccfd721f7b4ce39edcf7، fossi-foundation ciel releases سے؛ Apache-2.0): SRAM ماڈل gf180mcu_fd_ip_sram__sram512x8m8wm1.v، اس کا LEF بیرونی خاکے کے لیے، اور اس کی ٹائمنگ فائلیں کم از کم کلاک پیریڈ کے لیے؛ معیاری سیل لائبریری کی ٹائمنگ فائل فلپ فلاپ کے رقبے کے لیے۔ wafer-space/gf180mcu-project-template ریپوزیٹری (src/chip_core.sv، src/chip_top.sv، README.md، librelane/config.yaml؛ Apache-2.0)۔
**دیانتدارانہ حدود۔** سمولیشن chip_core کی سطح پر ہے، SRAM کے اپنے ماڈل کے ساتھ، مگر pad ring، synthesis یا layout کے بغیر، اور ماڈل کی ٹائمنگ چیکس یہاں کچھ طے نہیں کرتیں۔ ESP32 اسکیچ کمپائل ہوا، چلایا نہیں گیا۔ HOLD_LOG2 ٹیسٹ میں 0 رکھا گیا تاکہ وہ ختم ہو جائے؛ چپ 9 استعمال کرتی، تقریباً 1.3 سیکنڈ کا ایک وقفہ۔
مواد
4- 1 ٹکڑاپلیس ہولڈر
- 1 ٹکڑاپلیس ہولڈر
- پلیس ہولڈر
- 1 ٹکڑاپلیس ہولڈر
متعلقہ بلیو پرنٹ
یہ بلیو پرنٹ علم بانٹتے ہیں — تکنیک، مواد یا اصول
CC0 پبلک ڈومین
یہ بلیو پرنٹ CC0 کے تحت جاری کیا گیا ہے۔ آپ اجازت لیے بغیر اس کام کو نقل، ترمیم، تقسیم اور کسی بھی مقصد کے لیے استعمال کرنے کے لیے آزاد ہیں۔
میکر کی حمایت کریں ان کے بلیو پرنٹ کے ذریعے پروڈکٹس خرید کر جہاں وہ میکر کمیشن وینڈرز کی طرف سے مقرر، کماتے ہیں، یا اس بلیو پرنٹ کی نئی تکرار بنائیں اور آمدنی شیئر کرنے کے لیے اسے اپنے بلیو پرنٹ میں کنکشن کے طور پر شامل کریں۔



