[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f21s946hqedgpa":3},{"code":4,"message":5,"data":6,"timestamp":28},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":16,"summary_md":17,"topic":18,"github_topics":21,"license":22,"homepage":23,"updated_at":24,"history":25},"YosysHQ\u002Fyosys",7,"Yosys Open SYnthesis Suite","C++",4843,1192,5,5041,[],"把 Verilog\u002FSystemVerilog RTL 综合成门级网表的开源框架，面向硬件设计者和开源 ASIC\u002FFPGA 流程。","如果你的工作涉及数字设计，并且想要一个可脚本化、可检查、可扩展的开源综合引擎，Yosys 值得投入时间。它不是厂商工具链的替代品，但可以成为开源硬件流程的核心一环。\n\n## 解决什么问题\n\n你写好了 Verilog 或 SystemVerilog RTL，接下来要确认它能否映射到目标工艺库的真实单元，而不只是语法能不能过。使用封闭的综合器时，这一步往往是个黑盒：输入源码，输出网表，中间 `always` 块、存储器和状态机怎样变成门电路，你很难看清。Yosys 把这一步交到你手里：在交互式 shell 或脚本里按顺序执行各个 pass，最后得到可检查的网表，以及一份可以重复运行、随时修改的综合脚本。\n\n## 有什么不同\n\nYosys 是一个框架，不是固定流水线。综合过程被拆成一系列 pass，README 的示例把顺序写得很清楚：用 `read -sv` 和 `hierarchy` 做展开，用 `proc` 转换 `always` 块，优化后用 `techmap` 映射到内部单元，再用 `dfflibmap` 和 `abc` 按 Liberty 文件映射触发器与逻辑。每一步都是具名命令，所以你可以停在展开阶段、导出 RTLIL，或者按自己的需要调整顺序。文档中还有 `synth` 和 `prep` 两个默认脚本，分别面向门级映射和字级形式验证，初学者不必从零组装每个 pass。\n\n真正拉开差距的是扩展方式：README 明确说可以通过组合 pass、用 C++ 增加新 pass 来让 Yosys 完成任意综合任务。这既是优点也是门槛。可脚本化的 pass 流程让从源码到网表的路径可审计，也让同一个前端可以面向不同单元库；但它默认你理解每个 pass 在做什么，它是给搭建流程的人用的框架，不是一个按钮。Verilog-2005 支持被描述为较完整，SystemVerilog 则依赖 sv-elab 和 slang，覆盖 IEEE 1800-2017 或 1800-2023 中一个非正式定义的、可综合的子集。看到“支持 SystemVerilog”时要按这个范围理解，不要假设任意测试平台代码都能综合。\n\n## 谁值得试\n\n适合：做开源 ASIC、教数字设计，或者要搭建自动化 RTL 到网表流水线的人，需要逐步脚本化和检查综合过程。也适合已经在用开源 CAD 工具链做形式验证的人，因为 SBY 是文档给出的形式验证前端。\n\n不适合：想要对大尺寸 SystemVerilog 设计一键综合、并期待厂商级前端的人。项目材料自己就把行业级 SystemVerilog 和 VHDL 解析器指向 Tabby CAD Suite，这划出了免费工具前端的边界。也不适合只想做语法检查的人：README 说明 `read_verilog` 不做语法检查，建议先用 Verilator 之类的工具 lint 源码。\n\n## 使用条件与边界\n\n安装有两条路。最省事的是二进制套件，免费 OSS CAD Suite 或商业 Tabby CAD Suite，文档给了安装说明。另一条是从源码构建，需要一长串依赖（clang、bison、flex、Tcl、zlib、libffi、graphviz 等），并递归拉取子模块；官方流程使用 CMake preset，测试另有命令，要准备比较完整的工具链，而不是装一个包就结束。README 还提醒，各 Linux 发行版提供的 Yosys 二进制新旧不一，依赖发行版前要留意版本。\n\n长期要处理的两件事是单元库和语言子集。要映射到真实硬件，你得提供 Liberty 文件；README 给出了可免费获取的标准单元库链接用于试验，而整个流程只相对于你选的库才有意义。SystemVerilog 支持是可综合子集，不是整个语言，Verilog 的 lint 明确不在范围内。项目也没有承诺覆盖大型设计中的所有构造。\n\n## HotRepo 点评\n\nHotRepo 唯一记录到的观察是 2026-10-25 一次日榜出现，当天 4,840 stars，增加 5 颗。只有一个日期、没有更早历史，无法判断关注度能否持续，这个数字也不能说明综合质量。项目本身创建于 2013 年，属于长期存在的代码库，而非新鲜事物。采用前先确认你的 SystemVerilog 构造是否落在文档所述的可综合子集内，以及目标库是否有可用的 Liberty 文件；这两点直接决定流程能不能用。\n\n[项目源码与说明](https:\u002F\u002Fgithub.com\u002FYosysHQ\u002Fyosys)",{"slug":19,"name":20},"hardware","硬件与物联网",[],"ISC","https:\u002F\u002Fyosyshq.net\u002Fyosys\u002F","2026-10-25T11:05:56Z",[26],{"date":27,"stars":11,"stars_gained":13},"2026-10-25",1792969202]