《用于逻辑综合的VHDL 原书第3版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)拉什顿著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2014
  • ISBN:9787512413665
  • 页数:454 页
图书介绍:本书作者曾作为数字电路自动综合工具的设计者在著名EDA公司工作多年,所以他对VHDL描述与综合后生成的电路结构之间的关系有着深刻的理解。当他转业到大学,担任数字系统设计教学工作后,由于他理解深刻,所以编写的教材在语言描述和电路结构相互关系方面的阐述确实远比其他作者清晰,对读者有很好的启发和帮助。这本书之所以能出第3版,不但与综合器的迅速发展有关,与作者本人拥有广大的读者群也有密切的关系。国内由于熟悉这一领域的专家几乎没有,这方面的教材也是一个空白,翻译本书能填补这一领域的空白,并提高我国大学和研究生的数字集成电路设计的工程教育水准,也能给我国年轻一代的数字设计师提供有力的支持,使他们设计的由自动综合工具所生成的电路结构更加明确,从而使电子系统更加稳定可靠,节省资源。

第1章 引言 1

1.1 VHDL设计周期 1

1.2 VHDL的起源 2

1.3标准化过程 3

1.4 VHDL标准的统一 4

1.5可移植性 4

第2章 寄存器传输级设计 6

2.1 RTL设计阶段 7

2.2电路举例 8

2.3确定数据运算 9

2.4确定数据精度 10

2.5确定所用资源 11

2.6运算资源的配置 11

2.7设计控制器 12

2.8设计复位机制 13

2.9RTL设计的VHDL描述 14

2.10综合结果 15

第3章 组合逻辑 16

3.1设计单元 16

3.2实体和结构体 17

3.3仿真模型 19

3.4综合模板 22

3.5信号和端口 24

3.6初始值 26

3.7简单信号的赋值 27

3.8条件信号赋值 27

3.9受选信号赋值 29

3.10样例 30

第4章 基本类型 31

4.1可综合的类型 31

4.2标准类型 32

4.3标准操作符 32

4.4比特(bit)类型 33

4.5布尔(boolean)类型 34

4.6整数(Integer)类型 35

4.6.1 Type Integer 35

4.6.2自定义整数 35

4.6.3整数子类型 36

4.6.4综合解释 37

4.7枚举类型 39

4.8多值逻辑类型 41

4.9记录 41

4.10数组 43

4.11集合体、字符串和位串 46

4.12属性 49

4.12.1整数类型和枚举类型 49

4.12.2数组属性 51

4.13关于被选中信号赋值的几个问题 53

第5章 操作符 55

5.1标准操作符 55

5.2操作符的优先级 56

5.3布尔操作符 62

5.4比较操作符 65

5.4.1综合解释 65

5.4.2整数类型和枚举类型 65

5.4.3数组类型 67

5.5移位操作符 68

5.5.1固定移位位数 69

5.5.2可变移位位数 70

5.6算术操作符 70

5.6.1综合解释 71

5.6.2正号 71

5.6.3负号 71

5.6.4求绝对值操作符abs 71

5.6.5加法操作符 72

5.6.6减法操作符 72

5.6.7乘法操作符 73

5.6.8除法操作符 73

5.6.9求模操作符 73

5.6.10求余操作符 75

5.6.11幂指数操作符 75

5.7拼接操作符 76

第6章 综合类型 77

6.1综合类型系统 77

6.2使程序包可见 79

6.2.1情景1:由供应商提供的VHDL-2008程序包 80

6.2.2情景2:使用VHDL-1993兼容程序包 80

6.2.3VHDL-2008 Context(上下文)声明 81

6.3逻辑类型-Std_Logic_1164 82

6.3.1std_logic-一位逻辑类型 83

6.3.2std_logic_vector-多位逻辑类型 84

6.3.3操作符 85

6.3.4比较操作符 85

6.3.5布尔操作符 85

6.3.6移位操作符 86

6.4数值类型-Numeric_Std 86

6.4.1所提供的类型 87

6.4.2 Resize函数 88

6.4.3操作符 91

6.4.4比较操作符 91

6.4.5布尔操作符 92

6.4.6移位操作符 92

6.4.7算术操作符 93

6.5定点类型-Fixed_Pkg 96

6.5.1提供的类型 97

6.5.2溢出模式和下溢模式 98

6.5.3 Resize函数 99

6.5.4操作符 101

6.5.5比较操作符 101

6.5.6布尔操作符 102

6.5.7移位操作符 103

6.5.8算术操作符 104

6.5.9实用函数 108

6.6浮点类型-Float_Pkg 109

6.6.1 Float类型 110

6.6.2解释浮点数 111

6.6.3溢出,下溢和错误模式 111

6.6.4舍入模式 112

6.6.5模式选择 113

6.6.6函数和操作符 113

6.6.7分类函数 113

6.6.8操作符 115

6.6.9比较操作符 115

6.6.10布尔操作符 116

6.6.11算术操作符 117

6.6.12 Resize函数 119

6.6.13实用函数 121

6.7类型转换 124

6.7.1位保留转换 124

6.7.2值保留转换 129

6.8常数 135

6.9表达式中的混合类型 137

6.10顶层接口 138

第7章 Std_Logic_Arith(标准算术逻辑) 142

7.1 Std_Logic_Arith程序包 143

7.2 Std_Logic_Arith的内容 144

7.2.1位宽调整函数 144

7.2.2运算符 146

7.2.3比较运算符 147

7.2.4布尔运算符 148

7.2.5算术运算符 148

7.2.6移位函数 152

7.3类型转换 153

7.4常数 155

7.5表达式中混合类型 156

第8章 时序VHDL 159

8.1进程 159

8.1.1进程分析 159

8.1.2组合进程 160

8.1.3 Wait语句 161

8.1.4 wait语句的位置 162

8.2信号赋值 162

8.3变量 163

8.3.1声明 163

8.3.2初始值 163

8.3.3使用变量 163

8.4 if语句 164

8.5 Case语句 169

8.6锁存器推断 170

8.7循环 172

8.7.1 For Loops 173

8.7.2 Exit语句 177

8.7.3 Next语句 178

8.8样例 179

第9章 寄存器 181

9.1基本的D类型寄存器 181

9.2仿真模型 182

9.3综合模型 183

9.4寄存器模板 184

9.4.1基本模板 184

9.4.2 If语句模板 185

9.4.3敏感列表模板 186

9.4.4确定Wait语句的位置 187

9.4.5指定有效边沿 187

9.5寄存器类型 188

9.6时钟类型 189

9.7时钟门控 190

9.8数据门控 191

9.9异步复位 193

9.9.1异步复位的仿真模型 195

9.9.2异步复位模板 197

9.10同步复位 197

9.11寄存器化变量 199

9.12初始值 200

第10章 层次结构 201

10.1元件作用 201

10.2间接绑定 202

10.2.1元件实例 203

10.2.2元件声明 204

10.2.3配置说明 205

10.2.4默认绑定 206

10.2.5间接绑定过程总结 207

10.3直接绑定 207

10.4元件程序包 208

10.5参数化元件 209

10.5.1类属实体 209

10.5.2使用类属元件 210

10.5.3参数化的结构体 211

10.5.4类属参数类型 212

10.6生成语句 213

10.6.1 For Generate语句 213

10.6.2 If Generate语句 215

10.6.3生成语句中的元件实例 217

10.7样例 218

10.7.1伪随机二进制序列(PRBS)发生器 218

10.7.2脉动(Systolic)处理器 223

第11章 子程序 230

11.1子程序的作用 230

11.2函数 231

11.2.1函数的使用 231

11.2.2函数的声明 232

11.2.3初始值 233

11.2.4具有未限定参数的函数 234

11.2.5非限定性返回值 237

11.2.6多个返回 240

11.2.7函数重载 241

11.3操作符 242

11.3.1内置操作符 243

11.3.2操作符重载 244

11.4类型转换 246

11.4.1内置类型转换 246

11.4.2自定义类型转换 247

11.5过程 250

11.5.1过程参数 250

11.5.2具有非限定性参数的过程 251

11.5.3使用Inout参数 253

11.5.4信号参数 253

11.6声明子程序 255

11.6.1局部子程序声明 255

11.6.2程序包中的子程序 256

11.6.3使用程序包 258

11.7样例 259

第12章 特殊结构 266

12.1三态 266

12.2有限状态机 271

12.2.1两个进程,一个译码器 273

12.2.2两个进程,两个译码器 275

12.2.3一个进程,一个译码器 276

12.2.4状态编码 278

12.2.5非法状态和复位 278

12.3 RAMs和寄存器堆 279

12.3.1异步读,同步写 280

12.3.2同步先读后写 282

12.3.3同步先写后读 283

12.3.4 RAM读优化 284

12.3.5获得寄存器堆 284

12.3.6复位 284

12.4译码器和ROMs 285

12.4.1 Case语句译码器 285

12.4.2查找表译码器 286

第13章 测试平台 288

13.1测试平台 288

13.2组合测试平台 289

13.3验证响应 293

13.4时钟和复位 295

13.5其他标准类型 297

13.6无关输出 299

13.7打印响应值 301

13.8使用TextIO读数据文件 303

13.9读标准类型 306

13.10 TextIO错误处理 308

13.11综合类型的TextIO 309

13.12自定义类型的TextIO 311

13.13样例 313

第14章 库 316

14.1库 316

14.2库名 317

14.3工作库 318

14.4标准库 319

14.4.1标准库std 319

14.4.2 ieee库 320

14.4.3推荐的ieee库(ieee_proposed) 321

14.5组织你的文件 322

14.6增量编译 324

第15章 案例分析 325

15.1规范 325

15.2系统级设计 326

15.3 RTL设计 328

15.3.1框图 328

15.3.2接口 329

15.3.3结构体概要 330

15.3.4系数储存器 331

15.3.5样点储存器 333

15.3.6计算和累加器 334

15.3.7地址生成器 336

15.3.8输出寄存器 336

15.3.9控制器 337

15.4尝试综合 340

15.5测试设计 341

15.5.1基本测试 343

15.5.2噪声计算 347

15.6浮点版本 348

15.7最终的综合 350

15.8通用版本 352

15.9结论 354

附录A 程序包列表 356

A.1程序包Standard 356

A.2程序包Standard_Additions 361

A.3程序包Std_Logic_1164 370

A.4程序包Std_Logic_1164_Additions 374

A.5程序包Numeric_Std 382

A.6程序包Numeric_Std_Additions 386

A.7程序包Fixed_Float_Types 395

A.8程序包Fixed_Pkg 396

A.9程序包Float_Pkg 414

A.10程序包TextIO 433

A.11程序包Standard_Textio_Additions 436

A.12程序包Std_Logic_Arith 437

A.13程序包Math_Real 442

附录B 语法参考 444

B.1关键字 444

B.2设计单元 445

B.2.1实体 445

B.2.2结构体 445

B.2.3程序包 446

B.2.4包体 446

B.2.5 Context声明 446

B.3并发语句 446

B.4顺序语句 448

B.5表达式 450

B.6声明 451

参考文献 454