没有合适的资源?快使用搜索试试~ 我知道了~
首页Digital System Design with SystemVerilog Mark Zwolinsk
资源详情
资源评论
资源推荐

Digital System Design with Sy s t emVerilog
Mark Zwoli´nski
December 8, 2016

2

Contents
Preface 19
1 Introduction 25
1.1 Modern digital design . . . . . . . . . . . . . . . . . . . . . . . . 25
1.2 Designing with hardware description languages . . . . . . . . . . 25
1.2.1 Design automation . . . . . . . . . . . . . . . . . . . . . 25
1.2.2 What is SystemVerilog? . . . . . . . . . . . . . . . . . . 26
1.2.3 What is VHDL? . . . . . . . . . . . . . . . . . . . . . . 26
1.2.4 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.2.5 Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.2.6 Reusability . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.2.7 Verification . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.2.8 Design flow . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.3 CMOS technology . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.3.1 Logic gates . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.3.2 ASICs and FPGAs . . . . . . . . . . . . . . . . . . . . . 33
1.4 Programmable logic . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.5 Electrical properties . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.5.1 Noise margins . . . . . . . . . . . . . . . . . . . . . . . 42
1.5.2 Fan-out . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2 Combinational logic design 47
2.1 Boolean algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.1.1 Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.1.2 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.1.3 Truth tables . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.1.4 Rules of Boolean algebra . . . . . . . . . . . . . . . . . . 49
2.1.5 De Morgan’s law . . . . . . . . . . . . . . . . . . . . . . 50
2.1.6 Shannon’s expansion theorem . . . . . . . . . . . . . . . 50
2.2 Logic gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3

4
CONTENTS
2.3 Combinational logic design . . . . . . . . . . . . . . . . . . . . . 52
2.3.1 Logic minimization . . . . . . . . . . . . . . . . . . . . . 53
2.3.2 Karnaugh maps . . . . . . . . . . . . . . . . . . . . . . . 54
2.4 Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.5 Number codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.5.1 Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.5.2 Fixed point numbers . . . . . . . . . . . . . . . . . . . . 63
2.5.3 Floating point numbers . . . . . . . . . . . . . . . . . . . 64
2.5.4 Alphanumeric characters . . . . . . . . . . . . . . . . . . 64
2.5.5 Gray codes . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.5.6 Parity bits . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3 Combinational logic 69
3.1 Modules and files . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.2 Identifiers, spaces and comments . . . . . . . . . . . . . . . . . . 70
3.3 Basic gate models . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.4 A simple netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.5 Logic values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.6 Continuous assignments . . . . . . . . . . . . . . . . . . . . . . 73
3.6.1 SystemVerilog operators . . . . . . . . . . . . . . . . . . 74
3.7 Delays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.8 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.9 Testbenches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4 Combinational building blocks 81
4.1 Multiplexers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.1.1 2 to 1 multiplexer . . . . . . . . . . . . . . . . . . . . . . 81
4.1.2 4 to 1 multiplexer . . . . . . . . . . . . . . . . . . . . . . 82
4.2 Decoders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.2.1 2-4 decoder . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.2.2 Parameterizable decoder . . . . . . . . . . . . . . . . . . 85
4.2.3 Seven-segment decoder . . . . . . . . . . . . . . . . . . . 86
4.3 Priority encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.3.1 Don’t cares and uniqueness . . . . . . . . . . . . . . . . 88
4.4 Adders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.4.1 Functional model . . . . . . . . . . . . . . . . . . . . . . 89
4.4.2 Ripple adder . . . . . . . . . . . . . . . . . . . . . . . . 90
4.4.3 Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

CONTENTS
5
4.5 Parity checker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.6 Three state buffers . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.6.1 Multi-valued logic . . . . . . . . . . . . . . . . . . . . . 94
4.7 Testbenches for combinational blocks . . . . . . . . . . . . . . . 95
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5 Sequential logic blocks 99
5.1 Latches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.1.1 SR latch . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.1.2 D latch . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.2 Flip-flops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.2.1 Edge-triggered D flip-flop . . . . . . . . . . . . . . . . . 102
5.2.2 Asynchronous set and reset . . . . . . . . . . . . . . . . . 102
5.2.3 Synchronous set and reset and clock enable . . . . . . . . 104
5.3 JK and T flip-flops . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.4 Registers and shift registers . . . . . . . . . . . . . . . . . . . . . 108
5.4.1 Multiple bit register . . . . . . . . . . . . . . . . . . . . . 108
5.4.2 Shift registers . . . . . . . . . . . . . . . . . . . . . . . . 108
5.5 Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.5.1 Binary counter . . . . . . . . . . . . . . . . . . . . . . . 111
5.5.2 Johnson counter . . . . . . . . . . . . . . . . . . . . . . 114
5.5.3 Linear feedback shift register . . . . . . . . . . . . . . . . 116
5.6 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.6.1 ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.6.2 Static RAM . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.6.3 Synchronous RAM . . . . . . . . . . . . . . . . . . . . . 121
5.7 Sequential multiplier . . . . . . . . . . . . . . . . . . . . . . . . 122
5.8 Testbenches for sequential building blocks . . . . . . . . . . . . . 124
5.8.1 Clock generation . . . . . . . . . . . . . . . . . . . . . . 124
5.8.2 Reset and other deterministic signals . . . . . . . . . . . . 125
5.8.3 Checking responses . . . . . . . . . . . . . . . . . . . . . 126
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
6 Synchronous sequential design 131
6.1 Synchronous sequential systems . . . . . . . . . . . . . . . . . . 131
6.2 Models of synchronous sequential systems . . . . . . . . . . . . . 132
6.2.1 Moore and Mealy machines . . . . . . . . . . . . . . . . 132
6.2.2 State registers . . . . . . . . . . . . . . . . . . . . . . . . 132
6.2.3 Design of a three-bit counter . . . . . . . . . . . . . . . . 133
6.3 Algorithmic state machines . . . . . . . . . . . . . . . . . . . . . 135
剩余369页未读,继续阅读



















u010806153
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0