750 likes | 1.02k Views
异步电路初窥. 扩展的话题. 提纲. 引言:从 同步电路 到 异步电路 并发过程的同步 ——Muller 的 C 元件 规格说明与综合 ——STG 图 案例: FIFO 控制器的初步设计 STG 图 和 SG 图 回顾与展望:异步电路设计与测试的挑战 附录:参考文献资源. 从同步 / 异步时序电路 到 异步电路. 同步电路 同步时序逻辑电路 + 异步时序逻辑电路
E N D
异步电路初窥 扩展的话题
提纲 引言:从 同步电路 到 异步电路 并发过程的同步——Muller的C元件 规格说明与综合——STG图 案例:FIFO控制器的初步设计 STG图 和 SG图 回顾与展望:异步电路设计与测试的挑战 附录:参考文献资源
从同步/异步时序电路 到 异步电路 • 同步电路 • 同步时序逻辑电路 + 异步时序逻辑电路 • (定义)circuits which are sequenced by one or more globally distributed periodic timing signals called clocks. [Davis 1997]
同步电路——隐式的同步 R CL R CL R CL R CLK 同步,通过外部时钟源观察系统的状态
异步电路——显式的同步 Ack R 存储 CL 计算逻辑 R CL R CL R Req 异步,通过外部或内部的事件观测系统状态。 Asynchronous are also called Self-Timed. 采用系统组件之间的握手确保时间的正确次序
历史 与 现状 • 1950’s 早期 • 研究机械继电器的“开关”电路; • 没有区分同步和异步电路; • 1956~1957,Muller D E和Bartky W S • A Theory of Asynchronous Circuits I/II, U. of Illinois • 然而,从1960's • 主流数字电路制造企业关注于同步电路,因为... • 同步电路可以简单地被时钟信号顺序地触发; • ……
AMULET1: Manchester大学, 1990~1993,micropipeline方式实现的ARM处理器 MU5--Manchester大学,1969~1974年,异步操作的计算机 • 异步电路的研究从来没有停滞过,相反, • 它的应用领域得以扩展 • 1980’s 至今 • Asynchronous Fight Back!
异步电路存在的必要 • 有些场合,使用异步电路是不可避免的 • 异步接口电路、仲裁器 等 • 另外,异步电路的优点是 • 充分利用线速极限 • “balabala#@?!……”,但是至少可以找出—— • 同步电路的缺点 • 全局时钟同步是一种考虑“最坏情况”的设计 • 最慢组件的最坏情况的延迟 v.s. 最快部件的最及时的响应 • 复杂系统中的时钟同步是非常困难的 • 时钟的偏斜(skew)必须控制在很小的范围,这直接限制了时钟频率的提高
异步电路的例子 • 应用需求:大量数据跨越时钟域 • 所谓的“异步FIFO” • “异步FIFO”:一个时钟写入数据,另一个时钟读出数据,读/写时钟是异步的 • 关键:产生读/写地址和空/满标志… • HDL描述 • 常规EDA工具综合的电路,并 不是 真正的“异步电路” • 例如:对于在本地时钟同步驱动下的FIFO,较为简单,几行Verlog HDL代码…
真正异步的FIFO • 对于高速工作的FIFO • 如果不想受限于本地时钟频率,就采用直接用触发器(锁存器、C元件)响应异步信号; • 线速——物理连线或协议规定可以达到的最高速度。 • Micro-pipeline • 微流水线 • 数据的“ripple” • 用C-element
Rendezvous Circuit(“幽会”电路)[陈昌居] • Pipe stages are empty • Stage on left indicates it is full • C element opens latch briefly • Data moves down pipeline • Previous stage becomes empty • Next stage becomes full
“幽会”控制器的仿真[Hades] How does it work? 单击开始播放
注意:工作时的状态——信号的因果关系… • 微流水线工作的时候… • 本例是4相位流水线,可以改进2相位流水线
附:2相位微流水线[陈昌居][Kishinevsky 1995] Input: Req Output: Ack Data D D 特殊的锁存器:CapturePass
参考[陈昌居]“Chapter_2_ Fundamentals.ppt” • 锁存器 • “锁存器‘优雅地’工作,不需要每次都使脉冲返回0电平”,但需要更复杂的传输机构。
C C C delay delay delay 参考[Kishinevsky 1995]Micropipelines处理(Sutherland 89) • 还可构成“bundled data”的数据处理系统(本例为4相位,“管道”中有延迟环节。) Aout Ain C L锁存器 L锁存器 L锁存器 L锁存器 logic逻辑运算 logic逻辑运算 logic逻辑运算 Rin Rout
提纲 引言:从 同步电路 到 异步电路 并发过程的同步——Muller的C元件 规格说明与综合——STG图 案例:FIFO控制器的初步设计 STG图 和 SG图 回顾与展望:异步电路设计与测试的挑战 附录:参考文献资源
并发过程的同步——Muller的C元件 • C元件 是 一种 锁存器 • 试分析:集成电路内部以CMOS管开关构成的 “C-element” • 逻辑功能?
其它符号 (续) • C-element
C元件的其它实现形式 • C-element • 又叫作Muller C-gate [wiki] • “Muller C-element was first used in the arithmetic logic unit (ALU) of the ILLIAC II supercomputer, proposed in 1958, and operational in 1962.” • 变体——Asymmetric(不对称) C-element • 一些输入仅以高电平或低电平影响其操作 延迟的设定影响异步设计的正确性,这些电路必须被仔细地设计(布局、晶体管的尺寸、电荷分配)
C元件的实现——延迟假设 • [Kishinevsky 1995]
提纲 引言:从 同步电路 到 异步电路 并发过程的同步——Muller的C元件 规格说明与综合——STG图 案例:FIFO控制器的初步设计 STG图 和 SG图 回顾与展望:异步电路设计与测试的挑战 附录:参考文献资源
A+ B+ A- B- 异步电路 的 规格说明与综合 • 如何表达输入输出信号之间的转换关系? • 控制过程的规格说明 • CSP——进程代数之一 • FSM——Finite State Machine • 状态转换图就是有限状态机 • STG——Signal Transition Graphs • 信号转换图 A A 输入——外部输入 B输出——内部主动输出 B
异步电路 的 规格说明与综合 • STG图 • 顶点 代表信号转换; • 弧 代表转换之间的因果关系,“Cause & Effect”; • STG是“Petri网”一种表现形式。 • Pertri Net ——1962, Petri, Carl Adam,波恩大学博士 • 库所 place、迁移 transmit、令牌token、fire bar
STG图——原因与效果的逻辑关系 • 所谓的“Control Specification” A+ B+ B A A- 缓冲器 B-
STG图——原因与效果的逻辑关系 • (续) A+ B- B A A- B+
C STG图——原因与效果的逻辑关系 • (续) A+ B+ A C+ C B A- B- C-
C STG图——原因与效果的逻辑关系 • (续) A+ B- A C+ C B A- B+ C-
STG图——原因与效果的逻辑关系 • Control Specification • 多级信号之间的握手关系 (以4-phase bundled data为例)
Ri Ro FIFO controller Ai Ao EN ■表示外部输入的信号 ■表示本级输出的信号 回顾:“幽会”电路 STG图——用于设计综合 • 案例:4相位异步FIFO控制器电路 • 考虑两级之间的信号握手关系
Ri Ro Ro+ Ri+ FIFO controller Ai Ao Ai+ Ao+ EN Ro- Ri- ■表示外部输入的信号 ■表示本级输出的信号 Ao- Ai- STG图——用于设计综合 • 案例:4相位异步FIFO控制器电路(续) • 考虑两级之间的信号握手关系 如何协调?
C Ri Ro FIFO controller Ai Ao Ri EN Ro Ai ■表示外部输入的信号 ■表示本级输出的信号 STG图——用于设计综合 • 案例:4相位异步FIFO控制器电路(续) • 考虑两级之间的信号握手关系 Ro+ Ri+ Ai+ Ao+ Ro- Ri- Ao- Ai- To be cont. … the next page
Ri Ro C FIFO controller Ai Ao 下游节点响应 Ri EN EN+ Ro Ai 下游节点响应 EN- STG图——用于设计综合 • 案例:4相位异步FIFO控制器电路(续) Ro+ Ri+ 内部连线 Ai+ Ao+ Ro- Ri- 内部连线 Ao- Ai- To be cont. … the next page
注意:在该设计中,实质上… Ri Ro FIFO controller Ao Ai EN EN+ EN- STG图——用于设计综合 • 案例:4相位异步FIFO控制器电路(续) Ro+ Ri+ Ai+ Ao+ Ro- Ri- Ao- Ai-
STG图——用于设计综合 • 案例:4相位异步FIFO控制器电路(续) • 思考:这是唯一的解决方案吗? • 可否合理利用并发特性,提高响应速度?! Ro+ Ri+ Ai+ Ao+ Ro- Ri- Ao- Ai-
STG图——用于设计综合 • 其它可行的异步的时序,更合理吗? Ro+ Ri+ Ro+ Ri+ Ai+ Ao+ Ai+ Ao+ 比较 Ro- Ri- Ro- Ri- Ao- Ai- Ao- Ai- 实际上,RO-可以不取决于上游的Ri-;它应该取决于下游的读取操作,如果下游已经Ai+,则应RO-
Ro+ Ri+ Ai+ Ao+ Ro- Ri- Ao- Ai- • 左边的解决方案对于FIFO来,还不够“异步” • 为什么?
Ri+ Ri+ Ri+ Ro+ Ro+ Ro+ Ao+ Ao+ Ao+ Ai+ Ai+ Ai+ Ri- Ri- Ri- Ro- Ro- Ro- Ao- Ao- Ao- Ai- Ai- Ai- 为什么说左边的解决方案对于FIFO来,还不够“异步”? 发送端 接收端
Ri+ Ri+ Ri+ Ro+ Ro+ Ro+ Ao+ Ao+ Ao+ Ai+ Ai+ Ai+ Ri- Ri- Ri- Ro- Ro- Ro- Ao- Ao- Ao- Ai- Ai- Ai- 为什么说左边的解决方案对于FIFO来,还不够“异步”? 发送端 接收端 设:但Ri-必须等待从发送端而来的连锁反应。 设:下游缓冲为空,已经得到Ai+信号
STG图——用于设计综合 • 设计更加“异步”的FIFO控制器 • 对于 • (Ri+ && Ro+)Ao+ • (Ri- && Ro-) Ao- • Easy! Ro+ Ri+ Ai+ Ao+ Ro- Ri- Ao- Ai-
STG图——用于设计综合 • 设计更加“异步”的FIFO控制器(续) • 但是,对于 • (Ri+ && Ai-) Ro+ • (Ao+&& Ai+)Ro- • 用什么方法综合? • 三种信号、不同的边沿,如何考虑? Ro+ Ri+ Ai+ Ao+ Ro- Ri- Ao- Ai-
观察 Ao的卡诺图 Ri \Ai Ri \Ai 0 0 1 1 1圈 0 0 0 0 0保 1保 1圈 事件同步区 1 1 1保 0保 1 1 Ao的上升沿 事件同步区 0圈 0圈 Ao的下降沿 思考… • 可以参考一下简单的情况 • 事件同步区 由两个信号的1圈或0圈叠合而成; • 没有叠合到的区域,是未取得事件同步时的保持区
STG图——用于设计综合 • 设计更加“异步”的FIFO控制器(续) • 那么,对于 • (Ri+ && Ai-) Ro+ • (Ao+&& Ai+)Ro- • 已知事件同步的叠合区域为 • Ro上升沿—— Ri的1圈和Ai的0圈叠合 • Ro下降沿—— Ao的1圈和Ai的1圈叠合 Ro+ Ri+ Ai+ Ao+ Ro- Ri- Ao- Ai-
例如:都可以算是Ai的1圈 Ri Ai 11 10 00 01 Ao 0 1 说明… • 对于某信号,它的1圈(或0圈)有多种可行取法 • 区别是:其它信号的配合情况 • 设计的目的:根据已知的叠合区域,合理地确定信号的配合情况,满足事件同步的要求
STG图——用于设计综合 • 设计更加“异步”的FIFO控制器(续) • Ro的卡诺图 • 已知事件同步的叠合区域 Ro+ Ri+ Ri Ai 11 10 00 01 Ao Ai+ Ao+ 0 1 Ro- Ri- Ri Ai 11 10 00 01 Ao- Ai- Ao 0 1
设计更加“异步”的FIFO控制器(续) 推理: 既然Ro+的事件同步区域由Ri的1圈和Ai的0圈叠合, 不妨令 即为Ri的1圈 Ai的0圈待定,但它一定包含 同理, Ro-的事件同步区域由Ao的1圈和Ai的1圈叠合, 不妨令 即为Ai的1圈 Ao的1圈待定… Ri的1圈 Ai的1圈 STG图——用于设计综合 Ri Ai 11 10 00 01 Ao 0 1 Ri Ai 11 10 00 01 Ao 0 1
STG图——用于设计综合 • 设计更加“异步”的FIFO控制器(续) • 推理(续) • 所以,考虑Ro+的事件同步叠合区域,可以是: • 对应C元件的电路