Tutorial
Litex
fjullien migen_litex_tutorials <-- Best Litex tutorial
ICEStorm Install icestorm_install.md
Migen Simulation
Counter
from migen import *
class DPLL(Module):
def __init__(self):
self.count = Signal(4)
self.sync += self.count.eq(self.count + 1)
def dpll_test(dut):
for i in range(20):
print((yield dut.count))
yield
if __name__ == "__main__":
dut = DPLL()
run_simulation(dut, dpll_test(dut), vcd_name="dpll.vcd")
Migen Selection of Signal from Signal as Index
shiftout = Array({} for i in range(REG_Number))
for i in range(16):
shiftout[0][i] = [self.spi_miso1.eq(Regsiters[0][i] & ~self.spi_cs)]
shiftout[1][i] = [self.spi_miso2.eq(Regsiters[1][i] & ~self.spi_cs)]
for i in range(REG_Number):
self.comb += [
Case(shift_count, shiftout[i])
]
Migen Case
self.comb += Case(word_cound,{
0: self.uart_tx.eq(start_b0),
1: self.uart_tx.eq(start_b1),
2: self.uart_tx.eq(timestamp_b0),
3: self.uart_tx.eq(timestamp_b1),
4: self.uart_tx.eq(timestamp_b2),
5: self.uart_tx.eq(timestamp_b3),
"default": self.uart_tx.eq(0),
})
Migen Module
Migen Reset FSM
fsm = FSM(reset_state="WAIT")
fsm = ClockDomainsRenamer("icap")(fsm)
fsm = ResetInserter()(fsm)
self.submodules += fsm
self.comb += fsm.reset.eq(~(self.write | self.read))
IceStorm toolset for ICE40 FPGA
# Project setup
PROJ = blinky
BUILD = ./build
DEVICE = 8k
FOOTPRINT = ct256
# Files
FILES = top.v
.PHONY: all clean burn timing
all $(BUILD)/$(PROJ).asc $(BUILD)/$(PROJ).bin:
# if build folder doesn't exist, create it
mkdir -p $(BUILD)
# synthesize using Yosys
yosys -p "synth_ice40 -top top -blif $(BUILD)/$(PROJ).blif -json $(BUILD)/$(PROJ).json" $(FILES)
# Place and route using arachne
#arachne-pnr -d $(DEVICE) -P $(FOOTPRINT) -o $(BUILD)/$(PROJ).asc -p pinmap.pcf $(BUILD)/$(PROJ).blif
nextpnr-ice40 --hx$(DEVICE) --json build/$(PROJ).json --pcf pinmap.pcf --asc build/$(PROJ).asc
# Convert to bitstream using IcePack
icepack $(BUILD)/$(PROJ).asc $(BUILD)/$(PROJ).bin
burn: $(BUILD)/$(PROJ).bin
iceprog $(BUILD)/$(PROJ).bin
timing: $(BUILD)/$(PROJ).asc
icetime -tmd hx$(DEVICE) $(BUILD)/$(PROJ).asc
clean:
rm build/*
Chisel FPGA開発日記
https://msyksphinz.hatenablog.com/
Agile Hardware Design Video 2024

Amaranth
Verilog
https://verilogguide.readthedocs.io/en/latest/
The Art of FPGA Design - element14 Community
The Art of FPGA Design - element14 Community
Digital Signal Processing, from Algorithm to FPGA Bitstream - element14 Community
Digital Signal Processing, from Algorithm to FPGA Bitstream
Xilinx Petalinux
使用Buildroot编译AMD/Xilinx Zynq ZC702 单板 Linux (内核和文件系统)
🌐使用Buildroot编译AMD/Xilinx Zynq ZC702 单板 Linux (内核和文件系统)
ZCU104_MPSoC Development - Petalinux 2024.2 Basic Tutorial
🌐ZCU104_MPSoC Development - Petalinux 2024.2 Basic Tutorial
Xillinux
🌐Xillinux: A Linux distribution for Z-Turn Lite, Zedboard, ZyBo and MicroZed
The Xillinux distribution is a software + FPGA code kit for running a full-blown graphical desktop on the Z-Turn Lite, Zedboard and (non-Z7) ZyBo, attaching a monitor, keyboard and mouse to the board itself. Xillinux also supports MicroZed without the graphics.
UltraZed-EG PCIe Carrier Card 開發紀錄
🌐UltraZed-EG PCIe Carrier Card 開發紀錄 使用 PetaLinux 建立系統
Petalinux Demo
🎬Xilinx Zynq & PetaLinux Project Demo
🎬PetaLinux SPI Device Control LCD Panel
🎬Creating Multi-Boot Bitstream In Xilinx FPGA
🎬Xilinx HLS Project Demo - SHA256 Calculation
Perfecting PetaLinux Workshop
💾Perfecting PetaLinux Workshop
🎬Perfecting PetaLinux Workshop
📚PetaLinux Tools Documentation: Reference Guide (UG1144)
Vivado Vitis Petalinux 2024 on Ubuntu 2024
🌐Vivado Vitis Petalinux 2024.2
🌐Hardware acceleration in FPGA with Vivado and Vitis

Zynq PetaLinux and Vitis
🌐Fixed Platform Design on Zynq-7000 in Vitis 2024.1
Linux and Programming
Linux Thread
Linuxとpthreadsによる マルチスレッドプログラミング入門|サポート|秀和システム Book Link
Linux Kernel Module Programming Guide
https://sysprog21.github.io/lkmpg/
Tutorial 1 https://linux-kernel-labs.github.io/refs/heads/master/#
SSH Turnnel
ssh -f -N -L 127.0.0.1:8888:127.0.0.1:8888 -i pemKey user@ipaddress
For Jupyter notebook
Chromebook
Install Desktop GUI in chromebook chromebookDesktop.md
DSP
Wavelet
Neuro Science
Neuroscience exploration Video
Topological Data Analysis (TDA)