Logic 从任意代码段进行逻辑综合

Logic 从任意代码段进行逻辑综合,logic,vhdl,verilog,synthesis,Logic,Vhdl,Verilog,Synthesis,我已经完成了一个制作物理逻辑门的项目,现在正在寻找一种方法,将任意程序转换成一系列逻辑门,这样我就可以使用它们了 我需要一个程序,可以采取一些任意函数(如f=x^2-1)直接进入一些逻辑门系列。这已经存在了吗 我已经找到了和其他几个开源选项,但它们似乎没有输出电路图。还有Quartus II和其他将代码转换为示意图的程序 我更希望能直接将Python/C++编译成逻辑门原理图,但实际上任何语言都可以 谢谢 编辑:我指的是实体门——它们使用滚珠轴承 我有所有的1位输入/1位输出门和所有的2位输入/

我已经完成了一个制作物理逻辑门的项目,现在正在寻找一种方法,将任意程序转换成一系列逻辑门,这样我就可以使用它们了

我需要一个程序,可以采取一些任意函数(如f=x^2-1)直接进入一些逻辑门系列。这已经存在了吗

我已经找到了和其他几个开源选项,但它们似乎没有输出电路图。还有Quartus II和其他将代码转换为示意图的程序

我更希望能直接将Python/C++编译成逻辑门原理图,但实际上任何语言都可以

谢谢

编辑:我指的是实体门——它们使用滚珠轴承


我有所有的1位输入/1位输出门和所有的2位输入/1位输出门。根据这些,我还可以构造一个主要的门来进行错误校正

用VHDL编写任意代码,将VHDL转换为门是合成工具的功能


不是你写的所有东西都可以合成;文件处理不能转换为门,任何常规使用堆的东西(如C中的malloc或指针,或VHDL中的“new”和访问类型)也不能转换为门。浮点可以合成(使用VHDL-2008),但它并不像信号A:Real那么简单;首先,逻辑综合是逻辑电路的基本逻辑优化,或将结构逻辑电路转换为表示逻辑电路的数据结构。有关逻辑综合的参考资料,请参阅

第二,为了将计算机程序(例如,在Python、C、C++或其他)转换成逻辑电路,需要执行高级综合(或行为综合),将计算机程序解析成控制和数据流图(CDFG,或一对控制流图和数据流图),优化CDFG,然后将该CDFG转换为逻辑电路进行逻辑综合。一旦有了逻辑电路,您仍然需要执行物理设计(例如,布局规划、布局和布线),以将该逻辑电路映射到tapeout布局(基于标准单元的数字集成电路设计)或现场可编程门阵列(FPGA)上

下面的参考文献为我提到的主题提供了文献综述

@book{Lavagno2016a,
    Address = {Boca Raton, {FL}},
    Author = {Luciano Lavagno and Igor L. Markov and Grant Martin and Louis K. Scheffer},
    Doi = {https://dx.doi.org/10.1201/b19569},
    Edition = {Second},
    Publisher = {{CRC} Press},
    Series = {Electronic Design Automation for Integrated Circuits Handbook},
    Title = {Electronic Design Automation for {IC} System Design, Verification, and Testing},
    Volume = {1},
    Year = {2016}}

@book{Lavagno2016,
    Address = {Boca Raton, {FL}},
    Author = {Luciano Lavagno and Igor L. Markov and Grant Martin and Louis K. Scheffer},
    Doi = {https://dx.doi.org/10.1201/b19714},
    Edition = {Second},
    Publisher = {{CRC} Press},
    Series = {Electronic Design Automation for Integrated Circuits Handbook},
    Title = {Electronic Design Automation for {IC} Implementation, Circuit Design, and Process Technology},
    Volume = {2},
    Year = {2016}}
有关瑞士洛桑EPFL(法国洛桑理工学院)最先进的逻辑综合库,请参见

您可以使用这些工具来执行逻辑综合。它们是程序,商业高级合成软件,将C或C++代码转换成Verilog(或其他一些硬件描述语言,HDL),然后转换成逻辑电路。

您还可以考虑基于Python的HDL(例如PyMTL、Pytl或MyHDL)、基于Scala的HDL(例如,ChISEL HDL)或基于Haskell的HDL(例如,冲突)。这些HDL为您将计算机程序转换为逻辑电路的目标提供了一种变通方法。

那么您只需要一个转换器:Python/C++->Verilog/VHDL?你应该看看Vivado高级综合工具。其他选项请参见。谢谢-理想情况下,我要找的是Python/C++->Verilog/VHDL->逻辑门原理图。谢谢你的回复!这应该可以解决问题了。整洁!那么,这种方法是你将得到的最接近的方法。请注意,Xilinx工具针对各种不同的设备,您可能会发现针对更简单的设备可能会减少所需原语(Simprims库中的组件)的列表。或者您可能希望尝试Actel/Microsemi工具(Libero,使用Synplicity)他们的FPGA(如ProAsic 3)具有更简单的内部结构。你可能不得不降低你的雄心壮志:我怀疑4位加法将使滚珠轴承技术从一开始就有足够的发展空间!此外,Xilinx使用架构技巧简化算法:除非您有滚珠轴承快速进位链,否则更简单的FPGA技术(Microsemi)可能更适合。