Remove the fixed pseudorange start offset, preserve per-PRN navigation assistance across RF loss and power cycles, and seed coherent navigation measurement phase on reacquisition. Add full LNAV almanac visibility scheduling, power-safe QSPI journaling, RF-domain reset isolation, and PPS Gray CDC hardening with Linux, sanitizer, RTL, and end-to-end coverage.
VCU118 Rocket FPGA Flow
Bu dizin VCU118 uzerinde Rocket SoC uretmek, bitstream almak ve kart flash'ina bitstream/app image yazmak icin sade bir make agaci saglar.
Dizinler
soc/
Makefile # ortak SoC girisi
software/ # bootloader, BSP ve bare-metal uygulamalar
out/ # ortak ELF, BootROM ve app flash imajlari
hardware/
upstream/rocket-chip/ # upstream Rocket Scala/resources symlink gorunumu
soc/scala/ # proje Scala/Chisel Rocket SoC katmani
generated/ # FIRRTL ve split SystemVerilog dump alani
fpga/vcu118/rtl/ # FPGA shell yardimci RTL
fpga/vcu118/constraints/ # VCU118 XDC
sim/fpga/vcu118/ # FPGA smoke/sim girisi
external/gps/rtl/ # GPS RTL kaynaklari ve filelist
targets/fpga/vcu118/
Makefile # VCU118 FPGA akisi giris noktasi
docs/ # detayli HTML dokuman
flow/vivado/ # Vivado non-project Make/Tcl akisi
tools/ # VCU118 wrapper generator
out/ # uretilen tum FPGA ciktilari
bitstream/
build/
flash/
logs/
reports/
Ana Komutlar
Her katman kendi klasorunden de calistirilabilir:
make -C soc hw
make -C soc/software all
make -C hardware/soc firrtl
make -C hardware/fpga/vcu118/rtl generated
make -C targets/fpga/vcu118/flow/vivado bitstream
make -C targets/fpga/vcu118/flow/vivado flash-app
make -C hardware/sim/fpga/vcu118 smoke
Kok Makefile ayni hedefleri tek yerden de sunar:
make -C targets/fpga/vcu118 software
make -C targets/fpga/vcu118 chisel
make -C targets/fpga/vcu118 rtl
make -C targets/fpga/vcu118 soc
make -C targets/fpga/vcu118 bitstream
make -C targets/fpga/vcu118 program-fpga
make -C targets/fpga/vcu118 program-flash
make -C targets/fpga/vcu118 program-flash-bitstream
make -C targets/fpga/vcu118 program-flash-combined
make -C targets/fpga/vcu118 prune
Gundelik uygulama gelistirme icin:
make -C targets/fpga/vcu118 program-flash
make -C targets/fpga/vcu118 program-fpga
Bitstream SRAM'e atildiktan sonra GDB ile RAM'e uygulama yuklemek icin:
make -C targets/fpga/vcu118 debug-openocd
make -C targets/fpga/vcu118 uart-listen UART_PORT=/dev/ttyUSB2
make -C targets/fpga/vcu118 debug-load APP=hello_uart
make -C targets/fpga/vcu118 debug-load APP=gps_system
Bu akista OpenOCD, Xilinx BSCAN uzerinden Rocket DMI portuna gider. FPGA
bitstream'inde rocket_bscan_dmi_tunnel.sv bulunmalidir.
RF girisi
SoC/fabric saati kartin 300 MHz kristalinden uretilmeye devam eder. GPS acquisition ve tracking/PPS saatleri secili RF sample clock'tan beslenen iki MMCM kademesinden uretilir. Varsayilan 16.367981 MHz RF referansi once 55.555556 MHz'e, ardindan 100 MHz acquisition ve 125 MHz tracking saatine cevrilir; nominal tracking oran hatasi yaklasik 0.007 ppm'dir. Reset ancak fabric ve iki GPS MMCM lock olduktan sonra kalkar.
RF, acquisition ve tracking domainleri ortak frekans referansina ragmen CDC sinirlaridir. Vivado timing scripti bunlari ayri asynchronous gruplar olarak tutar; bu ayar RF-referansli frekans coherency'sini degil, mevcut CDC protokolunun analiz modelini ifade eder.
VCU118 FPGA top'u tools/gen_vcu118_wrapper.py ile uretilir. RF kaynagi
RF_INPUT_MODE ile secilir:
pmod Varsayilan. Harici RF clock + 4-bit RF data PMOD0/J52'den SoC GPS RF portuna gider ve GPS PLL'lerini referanslar.
generated Dahili RF clock uretilir, RF data 4'd0 olur.
ethernet Eski raw-Ethernet RF streamer path'i ve PCS/PMA IP aktif olur.
Varsayilan PMOD akisi:
make -C targets/fpga/vcu118 bitstream
Eski Ethernet RF akisi sadece RF_INPUT_MODE=ethernet bitstream ile kullanilir:
make -C targets/fpga/vcu118 bitstream RF_INPUT_MODE=ethernet
sudo make -C targets/fpga/vcu118 eth-rf-send
pmod ve generated modlarinda Vivado flow Ethernet PCS/PMA IP'yi uretmez,
hardware/fpga/vcu118/rtl/ethernet_rf altindaki RTL'i okumaz ve top-level
Ethernet PHY portlarini olusturmaz.
PMOD0/J52 connector tarafi 3.3 V'tur. FPGA U1 tarafinda U41 level shifter
nedeniyle pinler 1.8 V bankta LVCMOS18 olarak constrain edilir:
port FPGA pin PMOD pin FPGA I/O PMOD header level
rf_clk_pmod AY14 PMOD0_0 J52.1 LVCMOS18 3.3 V
rf_data_pmod[0] AY15 PMOD0_1 J52.3 LVCMOS18 3.3 V
rf_data_pmod[1] AW15 PMOD0_2 J52.5 LVCMOS18 3.3 V
rf_data_pmod[2] AV15 PMOD0_3 J52.7 LVCMOS18 3.3 V
rf_data_pmod[3] AV16 PMOD0_4 J52.2 LVCMOS18 3.3 V
Disaridan sinyal baglarken 3.3 V seviyeyi J52 PMOD header tarafina ver. FPGA
U1 package pinlerine dogrudan 3.3 V uygulanmaz; o tarafta level shifter sonrasi
LVCMOS18 vardir.
PMOD pin constraintleri hardware/fpga/vcu118/constraints/vcu118_pmod_rf.xdc
dosyasindadir ve sadece RF_INPUT_MODE=pmod iken okunur. Ethernet PHY pinleri
ise hardware/fpga/vcu118/constraints/vcu118_ethernet.xdc altindadir ve sadece
RF_INPUT_MODE=ethernet iken okunur.
PMOD SPI portu her RF modunda aktiftir. SoC register adresi 0x10015000'dir;
kart konfig flash'ina bagli mevcut SPI 0x10014000 adresinde kalir.
SPI, RF icin kullanilan PMOD0/J52 yerine PMOD1/J53'e atanir. Driver
single/quad calisma modunu secer; single modda sadece dq[0] MOSI ve dq[1]
MISO kullanilir.
port FPGA pin PMOD pin
pmod_spi_csn N28 PMOD1_0 J53.1
pmod_spi_dq[0] M30 PMOD1_1 J53.3 MOSI
pmod_spi_dq[1] N30 PMOD1_2 J53.5 MISO
pmod_spi_sck P30 PMOD1_3 J53.7 SCK
pmod_spi_dq[2] P29 PMOD1_4 J53.2
pmod_spi_dq[3] L31 PMOD1_5 J53.4
J53 connector tarafi 3.3 V'tur; FPGA U1 tarafinda U42 level shifter sonrasi
LVCMOS12 kullanilir. Pin constraintleri
hardware/fpga/vcu118/constraints/vcu118_pmod_spi.xdc dosyasindadir ve Vivado
akisi tarafindan her RF modunda okunur.
Sensorden gelen external interrupt hatti SPI'dan bagimsizdir. pmod_irq
olarak PMOD1_6/J53.6'ya cikar ve PLIC'te BSP_PMOD_IRQ (11) ID'siyle
gorunur.
port FPGA pin PMOD pin
pmod_irq M31 PMOD1_6 J53.6
Pin constraintleri hardware/fpga/vcu118/constraints/vcu118_pmod_irq.xdc
dosyasindadir ve Vivado akisi tarafindan her RF modunda okunur.
fpga-config ve help ciktisi aktif RF_INPUT_MODE degerini gosterir.
Bitstream flash'a kalici yazilacaksa, uzun suren tek seferlik hedef:
make -C targets/fpga/vcu118 program-flash-bitstream
Gereksiz buyuk ara ciktilari temizlemek, ama mevcut bitstream/app ciktilarini korumak icin:
make -C targets/fpga/vcu118 prune
Detayli aciklama:
targets/fpga/vcu118/docs/vcu118_rocket_flash_boot_guide.html