Skip to main content

No project description provided

Project description

ralf_model

RALF(Register Abstraction Layer Format)源文本RalfDocument / 抽象节点类型BlockNodeRegisterNodeFieldNode,并实现 AbstractRalf*)之间做解析与生成。

用法

from pathlib import Path

from ralf_model import dump_ralf, load_ralf_file, parse_ralf

doc = parse_ralf(Path("chip.ralf").read_text(encoding="utf-8"))
text = dump_ralf(doc)

亦可使用 loads_ralf / dumps_ralfload_ralf_file / dump_ralf_file(见 ralf_model.io)。加载时可传入 include_paths(类似 ralgen -I dir),配合 source 行递归展开后再解析;相对路径先相对当前文件目录,再依次在各 include 目录检索。

source 与 include

RALF 常作为 Tcl 脚本。单独成行的 source "f.ralf"source {path}source name.ralf(可有行尾 ;# 注释)会在解析前被展开。不需要展开时:loads_ralf(..., expand_source=False)load_ralf_file(..., expand_source=False)

from pathlib import Path
from ralf_model import load_ralf_file

doc = load_ralf_file(
    "top.ralf",
    include_paths=[Path("ralf_inc"), Path("../shared")],
)

也可直接使用 expand_ralf_sourcesresolve_source_path(见 ralf_model.source_expand)。

能力范围

  • block:定义 block 名 { ... };简单映射 block 名 @地址;;赋值与可选路径、地址 block 左名 = 右名block 左名 = 右名 (hdl路径)... @地址,可与 { ... } 组合。
  • registerregister 名 [ (hdl路径) ] [ @字节偏移 ] { ... }register 名; 前向引用。
  • fieldfield 名 [(hdl路径)] [ @位偏移 ] { ... }(括号路径可紧贴字段名,如 field f(hdl.f))。
  • field 花括号内按源顺序保留各条语句(含 enum { ... }; 等),便于往返。
  • @ 后的偏移在写出时统一为 Verilog 风格十六进制字面量(如 'h5);bytes 等为十进制。

与 Synopsys ralgen 全语法并非字节级兼容;复杂构造若解析失败可再扩展解析器。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_library_ralf_model-0.1.5.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_library_ralf_model-0.1.5-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file python_library_ralf_model-0.1.5.tar.gz.

File metadata

File hashes

Hashes for python_library_ralf_model-0.1.5.tar.gz
Algorithm Hash digest
SHA256 b0f5e4965d5ada58693efc50d00186c5b6c4d78fa5a08a168d969f0c7ed3dff1
MD5 243f29a11d65069dc08861fcc4acd8c1
BLAKE2b-256 84beec97acac747e9c7ef62805e3310ff1b8df1fa79f73a141fe4ae063819b72

See more details on using hashes here.

File details

Details for the file python_library_ralf_model-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for python_library_ralf_model-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 c3ff75f0d328821a8378bd2a5921f30ba8b85356bee0b45ea0876f3be877cf73
MD5 f8c5eee51bfb6f19c9c2d1d09e85c81b
BLAKE2b-256 aa38caa33fd5e53b8e57efc201612c1fb1cef694fdf0b6b32465c0ab17497634

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page