# ===========================
# 操作系统 & 编辑器
# ===========================
.DS_Store
Thumbs.db
.vscode/
.idea/
*.swp
*.swo
*~
*.bak
*.tmp

# ===========================
# OpenCode
# ===========================
.opencode/

# ===========================
# Vivado / Vitis (Zynq)
# ===========================

# 日志与报告
*.jou
*.log
*.pb
*.wdb
*.rpt
*.sdf
*.vcd

# 生成的可编程文件（先统一忽略，下面再恢复需要的）
*.bin
*.mcs
*.prm
*.rbt
*.bgn
*.cfi
*.elf
*.ltx
*.mif
*.mmi
*.nky
*.obj
*.opt
*.xml
*.Xil
*.xise
*.xpa
*.xtx
*.xwbt
*.do
*.csv

# 工具生成目录
.Xil/
.vivado/
.runs/
.srcs/
.gen/
.cache/
.data/
.hw/
.ip_user_files/
/sim/
/synth/
/impl/
/hw_handoff/
/sdk/
/export/
/.vs/
*.bld
*.ipdefs
*.tmp/

# 部分软件输出
*.o
*.a
*.d
*.fsbl
*.ssbl
*.bit.bin          # 非.bit的二进制位流
*.hdf
*.xsa
*.mss

# 临时pid/错误文件
vivado_pid*.str
vivado_pid*.debug
hs_err_pid*.log
webtalk*.jou
webtalk*.log
usage_statistics_webtalk.*

# ===========================
# Lattice Diamond / Radiant
# ===========================

# 综合与布局布线临时文件
*.dir/
*.rrr
*.twr
*.tdo
*.mrp
*.map
*.mfd
*.par
*.ngd
*.ncd
*.ptwx
*.srr
*.sdf
*.xrf
*.recovery
*.sty
*.prf
*.tcl            # 注意：只忽略生成脚本，手写的.tcl请放在独立目录或明确跟踪
*.tcl.old
*.tcl.bak

# 工具生成目录
/impl/
/_diamond/
/radiant_project/
*.ldf
*.ipxact
*.sbx

# 日志
*.log
*.jou

# ===========================
# 明确保留的文件
# ===========================
# 保留所有 .bit 和 .jed 文件
!*.bit
!*.jed

# 额外建议保留的约束/源文件（如果某些规则误伤，可在此恢复）
# 例如 Lattice 的逻辑偏好文件通常是手写的，避免被 *.tcl 规则误删
!*.lpf
!*.xdc
!*.pcf
!*.sdc
!*.elf