您建议采用哪种方法来制作异步电路原型?


9

我发现没有适当的成熟工具来设计和原型化异步电路,这让我感到惊讶,并在一定程度上感到震惊。

我一直在使用Google和其他方法进行搜索,以找到一种设计VLSI异步电路的好方法,但是到目前为止,搜索未能给出答案。

有一些废弃的工具,如Balsa等,用于使VLSI设计自动化,但是它们完全没有文档记录,很难使用。我正在寻找的是在同步世界中拥有的类似FPGA的产品。

无论如何,如果您共享可靠工具的名称以及减轻异步电路设计负担的原型硬件,我将不胜感激。


10
您不会找到它(商业产品和工具),因为对它没有市场需求。异步设计很难正确解决,这就是为什么将它的使用限制在几个定义明确的原始函数(触发器等)上,然后对所有更高级别的函数使用同步技术更具成本效益的原因。通过说明您的动机以及您希望实现的目标来帮助我们。
Dave Tweed

6
研究项目的实质是要有所创新,因此,只能预见到将有废弃的土路而不是州际公路。我唯一能建议的就是寻找孟菲斯的论文。我记得1990年ISSCC在格拉斯哥举行时看到过一两次。
Brian Drummond

5
同样,我与西蒙·摩尔(Simon Moore)(cl.cam.ac.uk/~swm11/resume)进行了研究,十年前,整个小组都在研究这个问题。我还参与了异步硬件设计工具的启动..由于缺乏市场,该公司转向了同步低功耗设计工具。同样,您应该从他和他的研究小组那里寻找论文。
pjc50 '16

4
(此外,投票赞成关闭此问题的人是因为与电子设计
无关,

2
还有带有传统 VHDL库的NULL Convention Logic。原始名称表示指向Theusus Research Inc.的链接。关于堆栈溢出的问题,我有一个NCL乘数问题,关于我准备为其进行测试的时间。(2015年5月13日)。这个想法会定期出现,以避免在密码学中进行功耗分析(上周看到了IACR提到)。用逻辑惯例确定的无空逻辑的设计无时钟系统设计,Karl M. Fant。
user8352

Answers:


3

提到了These修斯逻辑NCL,还有握手系统(Philips剥离了)以及Fulcrum Microsystems和Caltech。还有一个异步ARM处理器,称为Amulet。SUN Microsystems拥有一个处理器设计团队以及一个无时钟的SPARC。

我称这些无时钟设计为避免诸如波纹计数器之类的逻辑设计与这些类型的电路之间的混淆。但通常使用这两个术语。

Synopsys的DC(设计编译器)以及FTL系统的Merlin也曾经可用。

但是,如果您具有正确设计的核心单元库,则此顶层抽象/描述可能变得很简单。核心问题是,如果您设计的系统允许每个单元向前传播表示“结果良好”的信号,并向后传播“系统可用”的信号,那么系统的自时钟就可以像这样简单地进行设计无需考虑比赛条件或时间的软件。

因此,所使用的工具将像用于单元级(晶体管级)设计的SPICE一样简单,以及用于编译为要放置的一组原语的C语言一样简单。在我的一生中,我找不到所使用的基于C的工具(开源)。

看看像韦斯利·克拉克(Wesley Clark)(他最近去世)以及伊万·萨瑟兰(Ivan Sutherland)和卡尔·范特(Karl Fant)(在其他地方也提到)这样的人。


@Ehsan:它肯定很有趣,但我看不出它是如何解决这个问题,在所有。单元级布局仅用于ASIC设计,而不用于原型设计。
Ben Voigt

@本:我同意,这就是为什么我不接受他的回答。但是我可以使用MultiSim和LTSpice中的单元级库\ emp {仿真}一些基本的异步电路。NCL逻辑还具有一个沙箱Verilog库,可以使用FPGA对基于NCL的电路进行原型制作:github.com/karlfant/NCL_sandbox。但是我还没有尝试过。当我学习NCL时,我意识到该方法的巨大开销,因此我试图避免使用它,并提出了更实用的方法。
Ehsan

2

如果寄存器使用系统时钟作为时钟,则将其视为同步时钟。如果同一寄存器直接由门,逻辑电路或除系统时钟外的任何其他时钟提供时钟,它将是异步的。Altera的寄存器可以使用多个系统时钟或逻辑时钟。您可以构建所需的任何类型的门电路。。。根据我对大多数ASIC或FPGA的经验,每次编译时,都会路由不同的东西。因此,传播延迟总是在变化。


2

FPGA是正确的硬件。但是您将无法使用以同步为中心的综合软件,因为它进行了错误的转换。

例如,FPGA完全有能力形成带有反相器链的振荡器。但是,如果您在例如VHDL中定义了逆变器链并使用标准编译器之一,则“ NOT-gate pushback”将成对消除逆变器,而只剩下一个,并且设备不会振荡。

您可能必须编写一些自己的综合软件,如果您在比特流上获得了足够的信息,这将是可能的。我会研究在比特流而不是行为描述上进行的其他研究工作-毛刺检测和可靠性分析之类的东西高度依赖于合成器选择的映射。冗余容错逻辑领域中的一些工作可能已经解决了一些自定义映射技术,因为通用乘积项消除是传统合成器执行的标准转换之一,并且绝对破坏了冗余设计。

当您控制诸如查找表以及本地和全局互连之类的FPGA逻辑元素原语的用法时,您将能够使用固有的延迟来实现异步设计。您的优化问题要比满足建立和保持时间的目标困难得多,但这就是进行研究的原因。


1

取决于电路的复杂性。如果您的设计主要是数字化的,则可以考虑使用Altera的Quartus系统。使用异步时钟寄存器或仅使用逻辑门,通过图形和/或VHDL工具输入设计。根据需要添加虚拟缓冲器,门,信号引脚等,以延迟信号路径以匹配您的任何需求。(假设您的设计比其最快的CPLD栅极延迟<5 ns慢)

使用他们的芯片进行多年的设计,我从未发现错误的模拟器结果。较小的设计可以使用其免费工具完成。


“异步时钟寄存器”?!我不确定您是否理解正确。没有“异步时钟寄存器”这样的东西。电路具有时钟(同步)或没有时钟(异步)。我要寻找的工具必须支持原始穆勒闸,双轨闸,2NCL闸等。–
Ehsan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.