2017-09-16 76 views
0

我想用Yosys来实现连接的合成后处理。即,我想在合成过程完成后手动操作Verilog模块之间的连接。Verilog连接的手动操作

我试着调查一段时间的代码,我发现我需要创建一个实现我需要的确切功能的“Pass”结构的子类。

我需要找出如何操纵连接本身。所以,我需要知道“Design”结构是否包含用作工具输入的Verilog设计表示。如果这是真的,我到底能在哪里找到连接(哪些变量用于表示连接)?另外,如果我需要自动操作连接,我需要知道该工具如何为每个连接分配特定名称,以便我能够实现自动化算法,该算法可以自动选择要删除的特定连接,或根据现有连接的名称添加新连接。通过连接的名称,我的意思是Yosys显示的名称,以便GraphViz用于以图形方式呈现设计。

在此先感谢。 最好的问候

回答

0

我在哪里可以找到连接(哪些变量用于表示连接)?

如果两个模块端口连接到相同的网络或两个相互连接的网络(Module::connections()),则端口已连接。

SigMap类可以帮助您处理相互连接的导线情况。

我需要知道此工具如何具体名称分配给每个连接

连接没有名字。

电线有名称。他们的名字来自HDL设计或自动生成(大多数情况下使用NEW_ID宏)。

如果你需要猜测一个自动生成的线的名称,那么你肯定是做错了什么。不幸的是你没有确切地描述你正在尝试做的,为什么你认为你已经猜出自动生成导线的名字,所以我不能告诉你,这是你在做什么错..

确保您已经阅读并理解了CodingReadme文件,examples/cxx-api/中的示例以及处理Yosys API的presentation slides(位于该幻灯片的末尾)。

+0

我试图遍历电路,并有选择地删除一些特定的连接,使端口仍然存在,但它们不再相互连接。即如果设计包含一个与门,其输出连接到一个或门的输入之一,我想要移除连接它们的导线。可能不需要知道为此生成的电线名称,但我需要遍历整个设计,并根据特定条件删除一些电线。 – AbdelAziz