Skip to content
 
 

Latest commit

 

History

1,813 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
息壤 XiRang

python spec MIT Apache-2.0 MulanPSL-2.0

选件 · 接线 · 成片


安装

$ uv tool install --from 'git+https://github.com/Tape-Out/xirang#subdirectory=packages/xirang' xirang

长命令 xirang,短命令 ran。


常用命令

$ ran new mytimer -t ip/regmap     # 铺一个新仓
$ ran config uart -s fifoDepth=16  # 旋钮的最终取值与面积
$ ran test uart                    # 跑整张测试矩阵
$ ran build soc-mcu                # 生成并综合
$ ran export soc-mcu -f rdl        # 导成 SystemRDL
配置来历与矩阵输出
$ ran config soc-mcu --why gpiob.numPins
gpiob.numPins = 8
  层叠(低到高,越靠下越优先):
      bsv-default  32   gpio/ip.yaml (default)
    ✔ instance     8    soc-mcu/ip.yaml:12

$ ran test emac
emac  矩阵 7 点
  ✔ Default                bufWords=512  promisc=False
  ✔ BufWords1024PromiscOn  bufWords=1024 promisc=True
    同 PromiscOff          解析下来与 Default 是同一点
5 点实测,0 点不过

清单格式

文件内容
ip.yaml身份 · 契约 · 旋钮 · 价目表 · 依赖;有 instances 即为装配
regmap.yaml寄存器与字段,属性名同 SystemRDL 2.0
workspace.yaml这次用到哪些包
xirang.lock解析结果与内容摘要,跟着装配走
清单样例
name: uart
kind: ip
lang: bsv
params:
  fifoDepth: { type: int, default: 8, range: [1, 64] }
features:
  parity:
    type: bool
    default: false
    area: { points: { '1': 23.52 }, per: fifoDepth }
name: soc-switch
bus: apb4
instances:
  - name: sw0
    of: eswitch
    with: { ports: 4, macEntries: 16, vlan: false }
    addr: 0x10000000
deps: { hwcore: ^0.1, amba: ^0.1 }

装配自己不写 RTL。字段细则见 xrspec/regmap.md。


导出目标

目标是什么
rdlSystemRDL 2.0
ipxactIP-XACT 1685
coreFuseSoC CAPI2
kconfigmenuconfig 菜单
resolved解出的配置与来历
tar自足源码包

门禁清单

十道门禁
门禁拦下什么
死输入引脚驱进来的值,模块里一次也没读
未用方法寄存器接口暴露的方法,实现里没有用到
地址重叠某个合法配置下,两个寄存器占同一个地址
调度装配生成 Verilog 时 bsc 报出的规则冲突
价目表失效价目表量的是另一份生成产物
未计价改这个旋钮,面积预测不动
未实测标了价,却没有一行实测打开过这个特性
曲线平坦参数改了,量出来的面积不变
低估预测面积低于实测
工作区清单、源码与锁不一致

子包说明

八个包,与各自的改动来源
包管什么什么变了会逼它改
xirang-core清单 schema · 层叠与求解 · 依赖与锁 · 矩阵派生规范涨版本
xirang-gen寄存器图 → BSV / C 头 / 测试台 · 装配 → 顶层目标语言、契约形态
xirang-area价目表 · 面积预测 · 回填面积模型
xirang-back驱动综合与仿真工具EDA 工具与版本
xirang-out六种导出目标与读回别人的格式
xirang-ws工作区:成员与 status产品怎么组装
xirang-flow编排:叶子 · 装配 · 矩阵质量策略
xirang命令行用户界面

本地开发

$ git clone --recurse-submodules https://github.com/Tape-Out/xirang && cd xirang
$ uv sync --all-packages && uv run pytest -q && uv run ruff check .

相关项目

xrspec 规范 · xrskel 模板


许可证

任选其一: MIT · Apache 2.0 · 木兰宽松许可证 第2版

About

Package manager and assembler for hardware

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages