考虑电路评估的问题,其中输入是布尔电路C和输入字符串x,并且您想要计算C(x)。 (如果你愿意的话,假设粉丝2。)
这在算法上是一个“微不足道”的问题,但是当C可能很大(想想数百万门)并且内存管理成为一个问题时,实现它似乎并非易事。
有几种方法可以解决这个问题,折衷内存,时间和光盘访问。但在我自己完成所有这些工作之前,有没有人知道这个问题的任何现有算法实现?如果不存在,我会感到惊讶......
答案 0 :(得分:1)
对于C / C ++,标准数字电路设计&模拟系统已超过10年了SystemC。
这是一个允许您使用C ++设计数字逻辑的库。有一些支持软件可以让你进行时序分析,甚至可以为C代码生成原理图网表。
在决定我对Verilog更加满意之前,我只玩了一点。但它是一个成熟的软件,拥有大量的行业支持。谷歌搜索将产生很多信息,包括几个教程页面。
答案 1 :(得分:0)
听起来Binary Decision Diagrams可以用于你的任务吗?有一些众所周知的算法(和实现)在内存使用方面非常紧凑,因为它们被设计用于巨大的状态空间。