资料介绍
Preface xi
Part I Asynchronous circuit design – A tutorial
Author: Jens Sparsø
1
Introduction 3
1.1 Why consider asynchronous circuits? 3
1.2 Aims and background 4
1.3 Clocking versus handshaking 5
1.4 Outline of Part I 8
2
Fundamentals 9
2.1 Handshake protocols 9
2.1.1 Bundled-data protocols 9
2.1.2 The 4-phase dual-rail protocol 11
2.1.3 The 2-phase dual-rail protocol 13
2.1.4 Other protocols 13
2.2 The Muller C-element and the indication principle 14
2.3 The Muller pipeline 16
2.4 Circuit implementation styles 17
2.4.1 4-phase bundled-data 18
2.4.2 2-phase bundled data (Micropipelines) 19
2.4.3 4-phase dual-rail 20
2.5 Theory 23
2.5.1 The basics of speed-independence 23
2.5.2 Classification of asynchronous circuits 25
2.5.3 Isochronic forks 26
2.5.4 Relation to circuits 26
2.6 Test 27
2.7 Summary 28
3
Static data-flow structures 29
3.1 Introduction 29
3.2 Pipelines and rings 30
v
vi PRINCIPLES OF ASYNCHRONOUS CIRCUIT DESIGN
3.3 Building blocks 31
3.4 A simple example 33
3.5 Simple applications of rings 35
3.5.1 Sequential circuits 35
3.5.2 Iterative computations 35
3.6 FOR, IF, and WHILE constructs 36
3.7 A more complex example: GCD 38
3.8 Pointers to additional examples 39
3.8.1 A low-power filter bank 39
3.8.2 An asynchronous microprocessor 39
3.8.3 A fine-grain pipelined vector multiplier 40
3.9 Summary 40
4
Performance 41
4.1 Introduction 41
4.2 A qualitative view of performance 42
4.2.1 Example 1: A FIFO used as a shift register 42
4.2.2 Example 2: A shift register with parallel load 44
4.3 Quantifying performance 47
4.3.1 Latency, throughput and wavelength 47
4.3.2 Cycle time of a ring 49
4.3.3 Example 3: Performance of a 3-stage ring 51
4.3.4 Final remarks 52
4.4 Dependency graph analysis 52
4.4.1 Example 4: Dependency graph for a pipeline 52
4.4.2 Example 5: Dependency graph for a 3-stage ring 54
4.5 Summary 56
5
Handshake circuit implementations 57
5.1 The latch 57
5.2 Fork, join, and merge 58
5.3 Function blocks – The basics 60
5.3.1 Introduction 60
5.3.2 Transparency to handshaking 61
5.3.3 Review of ripple-carry addition 64
5.4 Bundled-data function blocks 65
5.4.1 Using matched delays 65
5.4.2 Delay selection 66
5.5 Dual-rail function blocks 67
5.5.1 Delay insensitive minterm synthesis (DIMS) 67
5.5.2 Null Convention Logic 69
5.5.3 Transistor-level CMOS implementations 70
5.5.4 Martin’s adder 71
5.6 Hybrid function blocks 73
5.7 MUX and DEMUX 75
5.8 Mutual exclusion, arbitration and metastability 77
5.8.1 Mutual exclusion 77
5.8.2 Arbitration 79
5.8.3 Probability of metastability 79
Contents vii
5.9 Summary 80
6
Speed-independent control circuits 81
6.1 Introduction 81
6.1.1 Asynchronous sequential circuits 81
6.1.2 Hazards 82
6.1.3 Delay models 83
6.1.4 Fundamental mode and input-output mode 83
6.1.5 Synthesis of fundamental mode circuits 84
6.2 Signal transition graphs 86
6.2.1 Petri nets and STGs 86
6.2.2 Some frequently used STG fragments 88
6.3 The basic synthesis procedure 91
6.3.1 Example 1: a C-element 92
6.3.2 Example 2: a circuit with choice 92
6.3.3 Example 2: Hazards in the simple gate implementation 94
6.4 Implementations using state-holding gates 96
6.4.1 Introduction 96
6.4.2 Excitation regions and quiescent regions 97
6.4.3 Example 2: Using state-holding elements 98
6.4.4 The monotonic cover constraint 98
6.4.5 Circuit topologies using state-holding elements 99
6.5 Initialization 101
6.6 Summary of the synthesis process 101
6.7 Petrify: A tool for synthesizing SI circuits from STGs 102
6.8 Design examples using Petrify 104
6.8.1 Example 2 revisited 104
6.8.2 Control circuit for a 4-phase bundled-data latch 106
6.8.3 Control circuit for a 4-phase bundled-data MUX 109
6.9 Summary 113
7
Advanced 4-phase bundled-data
protocols and circuits
115
7.1 Channels and protocols 115
7.1.1 Channel types 115
7.1.2 Data-validity schemes 116
7.1.3 Discussion 116
7.2 Static type checking 118
7.3 More advanced latch control circuits 119
7.4 Summary 121
8
High-level languages and tools 123
8.1 Introduction 123
8.2 Concurrency and message passing in CSP 124
8.3 Tangram: program examples 126
8.3.1 A 2-place shift register 126
8.3.2 A 2-place (ripple) FIFO 126
viii PRINCIPLES OF ASYNCHRONOUS CIRCUIT DESIGN
8.3.3 GCD using while and if statements 127
8.3.4 GCD using guarded commands 128
8.4 Tangram: syntax-directed compilation 128
8.4.1 The 2-place shift register 129
8.4.2 The 2-place FIFO 130
8.4.3 GCD using guarded repetition 131
8.5 Martin’s translation process 133
8.6 Using VHDL for asynchronous design 134
8.6.1 Introduction 134
8.6.2 VHDL versus CSP-type languages 135
8.6.3 Channel communication and design flow 136
8.6.4 The abstract channel package 138
8.6.5 The real channel package 142
8.6.6 Partitioning into control and data 144
8.7 Summary 146
Appendix: The VHDL channel packages 148
A.1 The abstract channel package 148
A.2 The real channel package 150
Part II Balsa - An Asynchronous Hardware Synthesis System
Author: Doug Edwards, Andrew Bardsley
9
An introduction to Balsa 155
9.1 Overview 155
9.2 Basic concepts 156
9.3 Tool set and design flow 159
9.4 Getting started 159
9.4.1 A single-place buffer 161
9.4.2 Two-place buffers 163
9.4.3 Parallel composition and module reuse 164
9.4.4 Placing multiple structures 165
9.5 Ancillary Balsa tools 166
9.5.1 Makefile generation 166
9.5.2 Estimating area cost 167
9.5.3 Viewing the handshake circuit graph 168
9.5.4 Simulation 168
10
The Balsa language 173
10.1 Data types 173
10.2 Data typing issues 176
10.3 Control flow and commands 178
10.4 Binary/unary operators 181
10.5 Program structure 181
10.6 Example circuits 183
10.7 Selecting channels 190
Contents ix
11
Building library components 193
11.1 Parameterised descriptions 193
11.1.1 A variable width buffer definition 193
11.1.2 Pipelines of variable width and depth 194
11.2 Recursive definitions 195
11.2.1 An n-way multiplexer 195
11.2.2 A population counter 197
11.2.3 A Balsa shifter 200
11.2.4 An arbiter tree 202
12
A simple DMA controller 205
12.1 Global registers 205
12.2 Channel registers 206
12.3 DMA controller structure 207
12.4 The Balsa description 211
12.4.1 Arbiter tree 211
12.4.2 Transfer engine 212
12.4.3 Control unit 213
Part III Large-Scale Asynchronous Designs
13
Descale 221
Joep Kessels & Ad Peeters, Torsten Kramer and Volker Timm
13.1 Introduction 222
13.2 VLSI programming of asynchronous circuits 223
13.2.1 The Tangram toolset 223
13.2.2 Handshake technology 225
13.2.3 GCD algorithm 226
13.3 Opportunities for asynchronous circuits 231
13.4 Contactless smartcards 232
13.5 The digital circuit 235
13.5.1 The 80C51 microcontroller 236
13.5.2 The prefetch unit 239
13.5.3 The DES coprocessor 241
13.6 Results 243
13.7 Test 245
13.8 The power supply unit 246
13.9 Conclusions 247
14
An Asynchronous Viterbi Decoder 249
Linda E. M. Brackenbury
14.1 Introduction 249
14.2 The Viterbi decoder 250
14.2.1 Convolution encoding 250
14.2.2 Decoder principle 251
14.3 System parameters 253
14.4 System overview 254
x PRINCIPLES OF ASYNCHRONOUS CIRCUIT DESIGN
14.5 The Path Metric Unit (PMU) 256
14.5.1 Node pair design in the PMU 256
14.5.2 Branch metrics 259
14.5.3 Slot timing 261
14.5.4 Global winner identification 262
14.6 The History Unit (HU) 264
14.6.1 Principle of operation 264
14.6.2 History Unit backtrace 264
14.6.3 History Unit implementation 267
14.7 Results and design evaluation 269
14.8 Conclusions 271
14.8.1 Acknowledgement 272
14.8.2 Further reading 272
15
Processors 273
Jim D. Garside
15.1 An introduction to the Amulet processors 274
15.1.1 Amulet1 (1994) 274
15.1.2 Amulet2e (1996) 275
15.1.3 Amulet3i (2000) 275
15.2 Some other asynchronous microprocessors 276
15.3 Processors as design examples 278
15.4 Processor implementation techniques 279
15.4.1 Pipelining processors 279
15.4.2 Asynchronous pipeline architectures 281
15.4.3 Determinism and non-determinism 282
15.4.4 Dependencies 288
15.4.5 Exceptions 297
15.5 Memory – a case study 302
15.5.1 Sequential accesses 302
15.5.2 The Amulet3i RAM 303
15.5.3 Cache 307
15.6 Larger asynchronous systems 310
15.6.1 System-on-Chip (DRACO) 310
15.6.2 Interconnection 310
15.6.3 Balsa and the DMA controller 312
15.6.4 Calibrated time delays 313
15.6.5 Production test 314
15.7 Summary 315
Epilogue 317
References 319
Index 333
Part I Asynchronous circuit design – A tutorial
Author: Jens Sparsø
1
Introduction 3
1.1 Why consider asynchronous circuits? 3
1.2 Aims and background 4
1.3 Clocking versus handshaking 5
1.4 Outline of Part I 8
2
Fundamentals 9
2.1 Handshake protocols 9
2.1.1 Bundled-data protocols 9
2.1.2 The 4-phase dual-rail protocol 11
2.1.3 The 2-phase dual-rail protocol 13
2.1.4 Other protocols 13
2.2 The Muller C-element and the indication principle 14
2.3 The Muller pipeline 16
2.4 Circuit implementation styles 17
2.4.1 4-phase bundled-data 18
2.4.2 2-phase bundled data (Micropipelines) 19
2.4.3 4-phase dual-rail 20
2.5 Theory 23
2.5.1 The basics of speed-independence 23
2.5.2 Classification of asynchronous circuits 25
2.5.3 Isochronic forks 26
2.5.4 Relation to circuits 26
2.6 Test 27
2.7 Summary 28
3
Static data-flow structures 29
3.1 Introduction 29
3.2 Pipelines and rings 30
v
vi PRINCIPLES OF ASYNCHRONOUS CIRCUIT DESIGN
3.3 Building blocks 31
3.4 A simple example 33
3.5 Simple applications of rings 35
3.5.1 Sequential circuits 35
3.5.2 Iterative computations 35
3.6 FOR, IF, and WHILE constructs 36
3.7 A more complex example: GCD 38
3.8 Pointers to additional examples 39
3.8.1 A low-power filter bank 39
3.8.2 An asynchronous microprocessor 39
3.8.3 A fine-grain pipelined vector multiplier 40
3.9 Summary 40
4
Performance 41
4.1 Introduction 41
4.2 A qualitative view of performance 42
4.2.1 Example 1: A FIFO used as a shift register 42
4.2.2 Example 2: A shift register with parallel load 44
4.3 Quantifying performance 47
4.3.1 Latency, throughput and wavelength 47
4.3.2 Cycle time of a ring 49
4.3.3 Example 3: Performance of a 3-stage ring 51
4.3.4 Final remarks 52
4.4 Dependency graph analysis 52
4.4.1 Example 4: Dependency graph for a pipeline 52
4.4.2 Example 5: Dependency graph for a 3-stage ring 54
4.5 Summary 56
5
Handshake circuit implementations 57
5.1 The latch 57
5.2 Fork, join, and merge 58
5.3 Function blocks – The basics 60
5.3.1 Introduction 60
5.3.2 Transparency to handshaking 61
5.3.3 Review of ripple-carry addition 64
5.4 Bundled-data function blocks 65
5.4.1 Using matched delays 65
5.4.2 Delay selection 66
5.5 Dual-rail function blocks 67
5.5.1 Delay insensitive minterm synthesis (DIMS) 67
5.5.2 Null Convention Logic 69
5.5.3 Transistor-level CMOS implementations 70
5.5.4 Martin’s adder 71
5.6 Hybrid function blocks 73
5.7 MUX and DEMUX 75
5.8 Mutual exclusion, arbitration and metastability 77
5.8.1 Mutual exclusion 77
5.8.2 Arbitration 79
5.8.3 Probability of metastability 79
Contents vii
5.9 Summary 80
6
Speed-independent control circuits 81
6.1 Introduction 81
6.1.1 Asynchronous sequential circuits 81
6.1.2 Hazards 82
6.1.3 Delay models 83
6.1.4 Fundamental mode and input-output mode 83
6.1.5 Synthesis of fundamental mode circuits 84
6.2 Signal transition graphs 86
6.2.1 Petri nets and STGs 86
6.2.2 Some frequently used STG fragments 88
6.3 The basic synthesis procedure 91
6.3.1 Example 1: a C-element 92
6.3.2 Example 2: a circuit with choice 92
6.3.3 Example 2: Hazards in the simple gate implementation 94
6.4 Implementations using state-holding gates 96
6.4.1 Introduction 96
6.4.2 Excitation regions and quiescent regions 97
6.4.3 Example 2: Using state-holding elements 98
6.4.4 The monotonic cover constraint 98
6.4.5 Circuit topologies using state-holding elements 99
6.5 Initialization 101
6.6 Summary of the synthesis process 101
6.7 Petrify: A tool for synthesizing SI circuits from STGs 102
6.8 Design examples using Petrify 104
6.8.1 Example 2 revisited 104
6.8.2 Control circuit for a 4-phase bundled-data latch 106
6.8.3 Control circuit for a 4-phase bundled-data MUX 109
6.9 Summary 113
7
Advanced 4-phase bundled-data
protocols and circuits
115
7.1 Channels and protocols 115
7.1.1 Channel types 115
7.1.2 Data-validity schemes 116
7.1.3 Discussion 116
7.2 Static type checking 118
7.3 More advanced latch control circuits 119
7.4 Summary 121
8
High-level languages and tools 123
8.1 Introduction 123
8.2 Concurrency and message passing in CSP 124
8.3 Tangram: program examples 126
8.3.1 A 2-place shift register 126
8.3.2 A 2-place (ripple) FIFO 126
viii PRINCIPLES OF ASYNCHRONOUS CIRCUIT DESIGN
8.3.3 GCD using while and if statements 127
8.3.4 GCD using guarded commands 128
8.4 Tangram: syntax-directed compilation 128
8.4.1 The 2-place shift register 129
8.4.2 The 2-place FIFO 130
8.4.3 GCD using guarded repetition 131
8.5 Martin’s translation process 133
8.6 Using VHDL for asynchronous design 134
8.6.1 Introduction 134
8.6.2 VHDL versus CSP-type languages 135
8.6.3 Channel communication and design flow 136
8.6.4 The abstract channel package 138
8.6.5 The real channel package 142
8.6.6 Partitioning into control and data 144
8.7 Summary 146
Appendix: The VHDL channel packages 148
A.1 The abstract channel package 148
A.2 The real channel package 150
Part II Balsa - An Asynchronous Hardware Synthesis System
Author: Doug Edwards, Andrew Bardsley
9
An introduction to Balsa 155
9.1 Overview 155
9.2 Basic concepts 156
9.3 Tool set and design flow 159
9.4 Getting started 159
9.4.1 A single-place buffer 161
9.4.2 Two-place buffers 163
9.4.3 Parallel composition and module reuse 164
9.4.4 Placing multiple structures 165
9.5 Ancillary Balsa tools 166
9.5.1 Makefile generation 166
9.5.2 Estimating area cost 167
9.5.3 Viewing the handshake circuit graph 168
9.5.4 Simulation 168
10
The Balsa language 173
10.1 Data types 173
10.2 Data typing issues 176
10.3 Control flow and commands 178
10.4 Binary/unary operators 181
10.5 Program structure 181
10.6 Example circuits 183
10.7 Selecting channels 190
Contents ix
11
Building library components 193
11.1 Parameterised descriptions 193
11.1.1 A variable width buffer definition 193
11.1.2 Pipelines of variable width and depth 194
11.2 Recursive definitions 195
11.2.1 An n-way multiplexer 195
11.2.2 A population counter 197
11.2.3 A Balsa shifter 200
11.2.4 An arbiter tree 202
12
A simple DMA controller 205
12.1 Global registers 205
12.2 Channel registers 206
12.3 DMA controller structure 207
12.4 The Balsa description 211
12.4.1 Arbiter tree 211
12.4.2 Transfer engine 212
12.4.3 Control unit 213
Part III Large-Scale Asynchronous Designs
13
Descale 221
Joep Kessels & Ad Peeters, Torsten Kramer and Volker Timm
13.1 Introduction 222
13.2 VLSI programming of asynchronous circuits 223
13.2.1 The Tangram toolset 223
13.2.2 Handshake technology 225
13.2.3 GCD algorithm 226
13.3 Opportunities for asynchronous circuits 231
13.4 Contactless smartcards 232
13.5 The digital circuit 235
13.5.1 The 80C51 microcontroller 236
13.5.2 The prefetch unit 239
13.5.3 The DES coprocessor 241
13.6 Results 243
13.7 Test 245
13.8 The power supply unit 246
13.9 Conclusions 247
14
An Asynchronous Viterbi Decoder 249
Linda E. M. Brackenbury
14.1 Introduction 249
14.2 The Viterbi decoder 250
14.2.1 Convolution encoding 250
14.2.2 Decoder principle 251
14.3 System parameters 253
14.4 System overview 254
x PRINCIPLES OF ASYNCHRONOUS CIRCUIT DESIGN
14.5 The Path Metric Unit (PMU) 256
14.5.1 Node pair design in the PMU 256
14.5.2 Branch metrics 259
14.5.3 Slot timing 261
14.5.4 Global winner identification 262
14.6 The History Unit (HU) 264
14.6.1 Principle of operation 264
14.6.2 History Unit backtrace 264
14.6.3 History Unit implementation 267
14.7 Results and design evaluation 269
14.8 Conclusions 271
14.8.1 Acknowledgement 272
14.8.2 Further reading 272
15
Processors 273
Jim D. Garside
15.1 An introduction to the Amulet processors 274
15.1.1 Amulet1 (1994) 274
15.1.2 Amulet2e (1996) 275
15.1.3 Amulet3i (2000) 275
15.2 Some other asynchronous microprocessors 276
15.3 Processors as design examples 278
15.4 Processor implementation techniques 279
15.4.1 Pipelining processors 279
15.4.2 Asynchronous pipeline architectures 281
15.4.3 Determinism and non-determinism 282
15.4.4 Dependencies 288
15.4.5 Exceptions 297
15.5 Memory – a case study 302
15.5.1 Sequential accesses 302
15.5.2 The Amulet3i RAM 303
15.5.3 Cache 307
15.6 Larger asynchronous systems 310
15.6.1 System-on-Chip (DRACO) 310
15.6.2 Interconnection 310
15.6.3 Balsa and the DMA controller 312
15.6.4 Calibrated time delays 313
15.6.5 Production test 314
15.7 Summary 315
Epilogue 317
References 319
Index 333
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- VEAM CIR系列连接器产品规格书 0次下载
- UART(univerasl asynchronous receiver-transmitter)
- 恒星干涉仪原理英文版 Principles of Stellar Interferometry 0次下载
- 基于ISL8016CIR1EVAL1Z直流到直流多输出电源的参考设计
- 无线通信原理与应用中文版Wireless Communications:Principles and Practice Second Edition 0次下载
- 数字逻辑与微处理器VHDL设计 0次下载
- TL16C552,pdf(Dual Asynchronous
- PCI2060,pdf(Asynchronous PCI-t
- GM16C550 ASYNCHRONOUS COMMUNIC
- Power Supply Management—Principles
- Principles of Computer Archite 0次下载
- Encyclopedia of Electronic Cir
- 异步威廉希尔官方网站 设计 (Asynchronous Circuit D
- acer Aspire 4925G CIR红外驱动下载
- acer Aspire 4720 CIR红外驱动下载
- 芯片设计中的UART模块及其关键技术介绍 1226次阅读
- 图解UART与COM接口 3263次阅读
- 交流异步电动机的结构与特点 5984次阅读
- 基于MM32L0130的LPUART应用(2) 855次阅读
- UART串口通信协议详解 6856次阅读
- AIE支持哪两种类型的RTP 1061次阅读
- 宽禁带器件和仿真环境介绍 1457次阅读
- 在贴片加工厂中有哪些安全防护需要了解 1306次阅读
- 复合放大器实现高精度的高输出驱动能力 获得最佳的性能 1600次阅读
- 凌壹科技NANO-J1900/1800T-1CIR简介 2769次阅读
- 设计基于FPGA的串行通用异步收发器 814次阅读
- 用降压型稳压器或线性稳压器电源时值来会为负载供电 984次阅读
- 锂电池并联充电时保护板均衡原理 3w次阅读
- 更小更智能的电机控制器推进HEV/EV市场 1105次阅读
- 超全的SPDK性能评估指南 8751次阅读
下载排行
本周
- 1HFSS电磁仿真设计应用详解PDF电子教程免费下载
- 24.30 MB | 126次下载 | 1 积分
- 2H桥中的电流感测
- 545.39KB | 7次下载 | 免费
- 3雷达的基本分类方法
- 1.25 MB | 4次下载 | 4 积分
- 4I3C–下一代串行通信接口
- 608.47KB | 3次下载 | 免费
- 5电感技术讲解
- 827.73 KB | 2次下载 | 免费
- 6从 MSP430™ MCU 到 MSPM0 MCU 的迁移指南
- 1.17MB | 2次下载 | 免费
- 7有源低通滤波器设计应用说明
- 1.12MB | 2次下载 | 免费
- 8RA-Eco-RA2E1-48PIN-V1.0开发板资料
- 35.59 MB | 2次下载 | 免费
本月
- 12024年工控与通信行业上游发展趋势和热点解读
- 2.61 MB | 763次下载 | 免费
- 2HFSS电磁仿真设计应用详解PDF电子教程免费下载
- 24.30 MB | 126次下载 | 1 积分
- 3继电保护原理
- 2.80 MB | 36次下载 | 免费
- 4正激、反激、推挽、全桥、半桥区别和特点
- 0.91 MB | 32次下载 | 1 积分
- 5labview实现DBC在界面加载配置
- 0.57 MB | 21次下载 | 5 积分
- 6在设计中使用MOSFET瞬态热阻抗曲线
- 1.57MB | 15次下载 | 免费
- 7GBT 4706.1-2024家用和类似用途电器的安全第1部分:通用要求
- 7.43 MB | 13次下载 | 免费
- 8PADS-3D库文件
- 2.70 MB | 10次下载 | 2 积分
总榜
- 1matlab软件下载入口
- 未知 | 935113次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4威廉希尔官方网站 仿真软件multisim 10.0免费下载
- 340992 | 191360次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183329次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81578次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73804次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65985次下载 | 10 积分
评论
查看更多