
سيليكون FPGA مفتوح المصدر
إيجيس هو FPGA مفتوح المصدر بالكامل، من السيليكون فصاعدًا.
حققت جهود FPGA مفتوحة المصدر تقدمًا كبيرًا: مشاريع مثل Project IceStorm وApicula قامت بهندسة عكسية لتنسيقات bitstream المملوكة، وOpenFPGA وFABulous تقومان بتوليد نسيج FPGA مفتوح من توصيفات الهندسة المعمارية، وCologne Chip's GateMate يُنتِج FPGA تجاري مع سلسلة أدوات مفتوحة المصدر بالكامل. بينما تتناول هذه المشاريع كل منها جزءًا من اللغز، فإن إيجيس هو FPGA مفتوح المصدر بالكامل وشامل: توليد النسيج، التوليف، التحديد والتوجيه، تجميع الـbitstream، المحاكاة، والإنتاج على الشريحة كلها موجودة في مشروع واحد، مصممة من الأساس لتكون مفتوحة المصدر. من HDL إلى GDS، لا شيء خلف جدار مملوك.
يُنتج المشروع أجهزة FPGA قابلة للمعايرة تحتوي على بلاطات LUT4 وBRAM وDSP وSerDes وإدارة الساعة، بالإضافة إلى كل ما هو ضروري لتوليف تصاميم المستخدمين عليها وإنتاج النسيج نفسه في مصنع عبر PDKs مفتوحة وخدمات shuttle مثل wafer.space.
جهاز Aegis مضغوط يستهدف GF180MCU عبر wafer.space
| الموارد | العدد |
|---|---|
| النسيج | 23 × 23 بلاطة (529 إجمالي) |
| LUT4 (CLB) | 437 |
| BRAM (128x8) | 46 بلاطة |
| DSP18 (18x18 MAC) | 46 بلاطة |
| بلاطات الإدخال/الإخراج | 92 (25 ثنائي الاتجاه مربوط) |
| SerDes | 0 |
| بلاطات الساعة | 1 (4 مخرجات) |
| مسارات التوجيه | 1 لكل حافة |
nix build .#luna-1 # Generate IP (SV, JSON, chipdb, techmap)
nix build .#luna-1-tapeout # Full RTL-to-GDS for fab submission
جهاز Aegis أكبر يستهدف Sky130.
nix build .#terra-1 # Generate IP (SV, JSON, chipdb, techmap)
nix build .#terra-1-tapeout # Full RTL-to-GDS for fab submission
يحصل كل جهاز على سلسلة أدوات FPGA كاملة عبر مخرجات tools:
# Synthesize a Verilog design to Aegis cells
yosys -c synth.tcl # using $tools/share/yosys/aegis/*_cells.v + *_techmap.v
# Place and route on the fabric
nextpnr-aegis-terra_1 --json design_mapped.json --write design_pnr.json
# Pack into a bitstream
terra_1-pack --pnr design_pnr.json --output design.bin
# Simulate with the bitstream loaded
terra_1-sim --bitstream design.bin --cycles 1000 --vcd waves.vcd
يقوم خط أنابيب الإنتاج على الشريحة بتوليف نسيج FPGA نفسه إلى خلايا PDK القياسية:
nix build .#terra-1-tapeout
ls result/
# terra_1_synth.v - gate-level netlist (Yosys)
# terra_1_final.def - placed & routed layout (OpenROAD)
# terra_1.gds - GDS2 for fab submission
# terra_1_layout.png - layout render
# timing.rpt - timing analysis
# power.rpt - power report
يدعم GF180MCU (wafer.space) و PDKs Sky130.
يتطلب Nix مع تمكين flakes.
# Build the default package (aegis-ip-tools)
nix build
# Build Terra 1 IP
nix build .#terra-1
# Run the blinky example as a check
nix build .#checks.$(nix eval --raw nixpkgs#system).terra-1-blinky
# Enter development shell
nix develop
صور متعددة المعمارية مبنية مسبقًا متاحة من GitHub Container Registry:
docker pull ghcr.io/midstall/aegis-terra_1:latest
# Run with your design directory mounted
docker run -v $(pwd):/workspace -it ghcr.io/midstall/aegis-terra_1:latest
الصور موسومة بـ git SHA وإصدار الإصدار (مثل :v1.0.0).
للبناء محليًا باستخدام Nix:
nix build .#terra-1-docker
docker load < result
قم بتنزيل حزم .deb من GitHub Releases (amd64 و arm64):
sudo dpkg -i aegis-terra-1_*.deb
يقوم هذا بتثبيت aegis-pack و aegis-sim و nextpnr-generic و wrappers الخاصة بالجهاز (terra_1-sim, terra_1-pack, nextpnr-aegis-terra_1) وملفات الدعم تحت /usr/share/aegis/.
للبناء محليًا باستخدام Nix:
nix build .#terra-1-deb
يتم إنشاء نسيج FPGA بواسطة ROHD (إطار عمل HDL بلغة Dart) ويخرج SystemVerilog قابل للتوليف. تتبع الهندسة المعمارية اصطلاحات مشابهة لـ Xilinx:
يتم تحميل التهيئة عبر سلسلة من مسجلات الإزاحة المتسلسلة: بلاطات الساعة -> بلاطات IO -> بلاطات SerDes -> بلاطات النسيج (row-major).
OpenFPGA - مولد IP FPGA مفتوح المصدر من جامعة يوتا. نظرًا لوصف هندسة معمارية بتنسيق XML، فإنه يولد Verilog قابل للتوليف لنسيج FPGA كامل بالإضافة إلى أدوات bitstream وبنية تحتية للاختبار الذاتي. مثبت على السيليكون عبر برنامج POSH التابع لـ DARPA.
FABulous - إطار عمل FPGA مدمج مفتوح المصدر (eFPGA) من جامعة مانشستر. يولد نسيج FPGA مخصص من تهيئة قائمة على CSV ويدمج Yosys و nextpnr. مثبت على السيليكون مع أكثر من 12 إنتاجًا على الشريحة عبر عقد من TSMC 180nm نزولاً إلى 28nm CMOS.
Cologne Chip GateMate - FPGA تجاري على GlobalFoundries 28nm مع سلسلة أدوات مفتوحة المصدر بالكامل وخالية من التراخيص مبنية على Yosys و nextpnr و openFPGALoader. السيليكون نفسه مملوك، لكنه ملحوظ كأحد FPGAs التجارية القليلة التي تتبنى أدوات EDA مفتوحة المصدر بالكامل.
| الموارد | العدد |
|---|
| LUT4 | ~2880 |
| BRAM (128x8) | 128 بلاطة |
| DSP18 (18x18 MAC) | 64 بلاطة |
| منصات الإدخال/الإخراج | 224 |
| SerDes | 4 |
| بلاطات الساعة | 2 (8 مخرجات) |
| مسارات التوجيه | 4 لكل حافة |