问题标签 [yosys]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2098 浏览

yosys - 什么是好的“模板”Yosys 综合脚本?

我想编写自己的 Yosys 合成脚本。什么是一个好的模板开始?手册和网页包含各种示例,但没有“权威”的 hello world 示例。

0 投票
1 回答
933 浏览

verilog - 错误注册。在 ABC 阶段读取 Liberty 文件

我正在使用一个已经在不同合成工具上测试过的自由文件。它工作正常。但是当我在这里尝试使用它时,下面会显示一个错误

流程步骤如下:

它在“abc”阶段失败。希望你理解这个问题。

你能指导我解决这个问题吗?

0 投票
1 回答
447 浏览

c++ - How to execute yosys passes from an LLVM pass?

I have been working with two programs llvm's opt and clifford wolf's yosys both have similar interfaces for passes.(they use shared libraries as optimization passes)

I want to use certain data structures and functions from yosys.h to build a design module(which is then written in verilog to file) based on the data generated by my llvm opt pass.

PROBLEM: I want to make use of functions,data from yosys.h in the pass for llvm-opt. How do i compile(EDIT: and also execute either on llvm-opt or on yosys or a seperate binary executable) such code? individually they can be compiled and executed as seperate passes.

COMPILE YOSYS PASS

and execute it with

yosys -m yosyspass.so verilogfile.v

COMPILE LLVM PASS

and execute it with

opt -load ./llvmpass.so -llvmpass Somefile.bc

but how to build code which has both components from llvm , yosys? and how to execute it?

How can i make this happen without changing source code of yosys too much? All of this is to avoid writing a verilog generation backend for my llvm-opt pass.

ONE OF MY SOLUTIONS:

Metaprogramming: i.e., generate the code which when compiled and run as a yosys pass gives me the result.(verilog design file based on llvm opt input)

Maybe i'm missing something fundamental in build shared libraries? I'm new to this sort of thing. any input is welcome.

This project(though unrelated) may be similar to Rotems C-to-Verilog and univ of toronto's legup HLS tool.

0 投票
1 回答
140 浏览

yosys - Yosys ConstEval API 是如何工作的?

我正在尝试编写一个需要评估组合电路的插件。据我所知,ConstEval 是执行此操作的工具。但是,API 对我来说不是很清楚。有没有关于 ConstEval 成员的简要介绍以及他们的工作?

由 jeremysalwen 在 github 上提问)。

0 投票
1 回答
205 浏览

yosys - yosys 是否保留端口顺序?

yosys 是否保留模块/单元的输入/输出端口的顺序?RTL 中的顺序是否保证在读/写时与 verilog 的顺序相匹配?yosys会“意外”更改订单吗?

0 投票
2 回答
812 浏览

yosys - 定位新设备需要什么?

从高层次的角度来看,使用 Yosys 定位新设备需要什么?我想以 Xilinx XC9572XL 为目标。我有一个这样的开发板:XC9572XL-CPLD-development-board-v1b此处的 Xilinx 文档很好地介绍了此 CPLD 的体系结构。

我认为我需要执行以下操作:

  1. 了解如何让 Yosys 将设计综合为基于积和和 D 型触发器的网表。
  2. 从 Yosys 将该网表输出为 BLIF 格式。
  3. 为 XC9572XL 创建一个“fitter”(类似于 ICE40 FPGA 的 arachne-pnr)
  4. 输出一个 JEDEC 文件,其中包含需要设置的适当熔断器以实现上一步中的设计。
  5. 使用 xc3sprog 将设计闪存到 CPLD。

看起来有可能。难点在于构建一个“装配工”工具。该工具需要了解 CPLD 的资源,然后需要一些巧妙的算法来适应设计并以 JEDEC 格式输出所需的熔断​​器。一个导入缺失的部分是物理 CPLD 中的“熔断器”与 JEDEC 文件中的熔断器之间的映射。这必须进行逆向工程。我注意到 Xilinx WebPACK ISE 的 JEDEC 文件包含 46656 个保险丝。这些中的每一个都映射回 CPLD 中的某个可配置节点。

我想知道其他人对这种方法的看法。我可能会遇到哪些类型的问题?

如果我要进行这项工作,我需要考虑哪些法律方面的问题?如果我决定要对他们的工具生成的 JEDEC 文件进行逆向工程,我是否应该先写信给 Xilinx 并征求他们的许可?

XC9572XL 是一个过时的部件......

0 投票
1 回答
65 浏览

yosys - 使用带有额外时钟端口的 iopadmap

出于某种原因,我想将设计中的一些 IO 端口映射到单元。iopadmap 提供了一个很好的方法来做到这一点。我用了

但是,当我之后使用其他工具进行时序分析时,它不会分析这些路径,因为它们既不是 IO 也不受时钟约束。

我目前的想法是将时钟添加到单元格中,使它们就像常规寄存器一样。所以我添加了另一个端口CLKIBUF但是如何将全局时钟连接到它?我有多个IBUF细胞,所以像

不起作用。

0 投票
1 回答
94 浏览

yosys - SigMap 能否/是否产生规范输出?

SigMap 的实例保证为设计中的每条连接线产生相同的输出。但这对于在不同平台的不同版本的 yosys 中运行的 SigMap 的不同实例是否成立?

如果初始查询以相同的顺序完成呢?有没有办法让 SigMap 在多个版本的多次运行中返回相同的 SigBit?

0 投票
1 回答
1177 浏览

verilog - 使用 Yosys 导出 FSM

我正在尝试这个名为Yosys的非常简洁的工具来合成我的 Verilog 设计。我想使用 Yosys 命令 fsm_export 在我的 Verilog 设计中导出 FSM,但它不会生成任何东西。我想知道这个命令应该如何调用?

我调用的一系列命令是:read_verilog qwerty.v ; fsm_export

如果生成成功并且我有 KISS2 格式的 FSM,那么任何人都知道有哪些(开源)工具可以让我可视化 FSM?

非常感谢!

0 投票
1 回答
343 浏览

verilog - 用 Yosys 生成 TIE 细胞?

我正在使用Yosys来综合我的 RTL 设计,其中包括几个字面常量,例如以下代码中的绑定输出端口:

在这种情况下,输出d显然总是合乎逻辑的。我使用的流程包括将abc -liberty my_stdcells.lib组合逻辑映射到库提供的标准单元的调用,然后是cleanandwrite_verilog调用。

我使用的单元库也提供了TIELOTIEHI单元,但是合成的 Verilog 网表不包括这些单元的任何实例,而是仍然显示如上例中的字面常量。

我可能可以编写一个脚本来对合成的网表进行后处理,以用TIE*库中的单元实例替换这些文字,但我想知道是否可以让 Yosys 以某种方式为我做这件事,从而产生类似

对于assign d = 1'b1上面代码中的行。