图书介绍

VHDL电路设计PDF|Epub|txt|kindle电子书版本下载

VHDL电路设计
  • 雷伏容编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302142262
  • 出版时间:2006
  • 标注页数:393页
  • 文件大小:31MB
  • 文件页数:408页
  • 主题词:硬件描述语言,VHDL-程序设计;数字电路-电路设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

VHDL电路设计PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 概述1

1.1 硬件描述语言介绍1

1.2 VHDL语言的发展与特点2

1.3 VHDL语言的开发流程4

1.4 可编程逻辑器件简介5

1.5 学习小结7

1.6 思考与练习7

第2章 数字逻辑基础8

2.1 逻辑代数基础8

2.1.1 逻辑变量和逻辑函数8

2.1.2 基本逻辑运算8

2.1.3 逻辑函数的表示方法11

2.1.4 逻辑代数的定理和规则12

2.2 组合逻辑电路13

2.2.1 组合逻辑电路的分析14

2.2.2 组合逻辑电路的综合15

2.2.3 组合逻辑电路中的竞争与冒险16

2.3 时序逻辑电路18

2.3.1 触发器18

2.3.2 时序逻辑电路的分析22

2.3.3 时序逻辑电路的设计26

2.4 学习小结28

2.5 思考与练习29

3.1 VHDL程序基本结构31

例3-1:2选1多路选择器程序31

第3章 VHDL程序结构与要素31

3.1.1 实体32

例3-3:n输入与非门的实体描述33

例3-2:有类属说明的2输入与非门的实体描述33

3.1.2 结构体35

例3-4:半加器的完整VHDL描述36

3.1.3 描述风格36

例3-6:2选1多路选择器数据流描述程序37

例3-5:2选1多路选择器行为描述程序37

例3-7:2选1多路选择器结构描述程序38

例3-8:半加器的混合描述程序39

3.2.1 数值型文字40

3.2 VHDL文字规则40

3.2.2 标识符42

3.3.1 VHDL数据对象43

3.3 VHDL基本数据对象与数据类型43

3.3.2 VHDL数据类型47

例3-9:打开一个字符文件,读出文件中的内容并关闭文件51

3.4 VHDL表达式与运算符57

3.6 思考与练习63

3.5 学习小结63

4.1 顺序描述语句64

第4章 VHDL基本描述语句64

例4-2:WAIT FOR语句示例程序65

例4-1:WAIT语句示例程序65

4.1.1 WAIT语句65

例4-3:WAIT ON语句示例程序(2选1选择器)66

例4-4:WAIT ON语句和PROCESS语句中所使用的敏感信号列表的对比67

例4-5:WAIT UNTIL语句示例程序67

例4-6:多条件WAIT语句的示例程序68

例4-7:信号代入语句示例程序68

4.1.2 代入语句68

例4-8:变量赋值语句示例程序69

4.1.3 赋值语句69

例4-9:变量赋值和信号量代入的对比示例程序70

例4-10:采用单IF语句描述D触发器的示例程序71

4.1.4 IF语句71

例4-11:采用二选择IF语句描述2选1选择器的示例程序72

例4-12:采用多选择IF语句描述4选1选择电路的示例程序73

例4-13:采用IF语句嵌套结构的带复位端的4选1选择器的示例程序74

4.1.5 CASE语句75

例4-14:采用CASE语句来描述4选1选择器的示例程序76

例4-15:采用CASE语句设计3-8译码器的示例程序77

例4-16:采用FOR LOOP语句实现32位奇偶校验电路的示例程序78

4.1.6 FOR LOOP语句78

例4-17:WHILE LOOP语句格式的示例程序79

4.1.7 WHILE LOOP语句79

例4-18:采用WHILE LOOP语句实现32位奇偶校验电路的示例程序80

4.1.8 NEXT语句80

例4-19:采用外部信号控制的32位奇偶校验电路的示例程序81

例4-20:NEXT语句嵌在两个循环中的示例程序81

4.1.9 EXIT语句82

例4-21:采用EXIT语句的示例程序82

例4-22:采用RETURN语句的示例程序83

4.1.10 RETURN语句83

4.1.11 REPORT语句83

例4-24:使用NULL语句的示例程序84

例4-23:采用REPORT语句的示例程序84

4.1.12 NULL语句84

例4-25:采用ASSERT语句的示例程序85

4.1.13 ASSERT语句85

4.2 并行描述语句86

4.2.1 并发信号代入语句(Concurrent Signal Assignment)87

例4-27:采用条件信号代入语句描述3-8译码器的示例程序89

例4-26:采用条件信号代入语句描述异或门的示例程序89

例4-28:采用条件信号代入语句来描述4选1选择器的示例程序90

例4-29:采用选择信号代入语句描述异或门的示例程序91

例4-30:采用选择信号代入语句来描述4选1选择器的示例程序91

4.2.2 进程语句(PROCESS)92

例4-31:利用进程语句设计半加器的示例程序93

例4-32:利用在一个构造体中有两个进程语句通信的示例程序93

4.2.3 元件调用语句(COMPONENT)94

例4-33:利用COMPONENT语句的2选1选择器的示例程序95

4.2.4 端口映射语句(PORT MAP)96

例4-34:利用GENERIC语句定义二输入或非门的上升沿和下降沿参数的示例程序98

4.2.5 类属参数传递语句(GENERIC)98

例4-35:利用GENERIC语句的示例程序99

例4-36:利用BLOCK语句设计2选1选择器的示例程序100

4.2.6 块语句(BLOCK)100

例4-37:利用BLOCK语句和PROCESS语句嵌套设计半加器的示例程序101

例4-38:利用BLOCK语句的CPU芯片设计的示例程序102

例4-39:利用卫式BLOCK语句设计D触发器的示例程序104

4.2.7 过程语句(PROCEDURE)105

例4-40:利用PROCEDURE语句结构把位矢量转换成整数的示例程序106

例4-41:在主程序中调用过程bitvector_to_integer的示例程序107

4.2.8 函数(FUNCTION)108

例4-42:利用FUNCTION语句结构把位矢量转换成整数的示例程序109

例4-44:调用函数getmax()实现最大值检出的示例程序110

例4-43:利用FUNCTION语句结构实现取最大值的示例程序110

4.2.9 生成语句(GENERATE)111

例4-45:用FOR-GENERATE语句设计4位移位寄存器的示例程序112

例4-46:用一般的方法设计4位移位寄存器的示例程序113

例4-47:利用IF-GENERATE语句设计n位移位寄存器的示例程序114

4.2.10 延时语句115

4.3.2 数值类属性描述语句117

4.3.1 属性预定义117

4.3 属性描述语句117

例4-49:用DOWNTO来排列数据时,获取该数据的数值属性的示例程序118

例4-48:获取数值型枚举类型的数值属性的示例程序118

例4-50:利用数据的数值属性检测数据总线宽度的示例程序119

例4-51:获取字符型枚举类型的数值属性的示例程序120

例4-52:利用′LENGTH属性来获取数组的范围长度的示例程序120

例4-53:利用′LENGTH属性来获取枚举类型的多维数组范围长度的示例程序121

例4-54:说明块的数值属性′STRUCTURE和′BEHAVIOR的示例程序123

4.3.3 函数类属性描述语句124

例4-55:利用数据类型的属性函数解析欧姆定律的示例程序125

例4-56:说明′SUCC、′PRED、′LEFTOF、′RIGHTOF属性使用方法的示例程序127

例4-57:利用数组的属性函数的示例程序128

例4-58:属性函数′EVENT和′LAST VALUE的使用方法的示例程序129

例4-59:利用信号的属性函数′LAST EVENT检查建立时间的示例程序131

4.3.4 信号类属性描述语句132

例4-60:利用属性′DELAYED(time)描述三输入或门的示例程序133

例4-61:利用信号类属性′DELAYED检查保持时间的示例程序134

例4-62:利用属性′STABLE(time)的示例程序136

例4-63:利用属性′QUIET(time)描述具有优先级的中断机制的示例程序136

例4-64:利用属性′BASE的示例程序139

4.3.5 数据类型类属性描述语句139

例4-65:使用数据区间类属性描述语句——属性′RANGE和属性′REVERSE RANGE的示例程序140

4.3.6 数据区间类属性描述语句140

4.3.7 用户自定义属性语句141

例4-66:使用用户自定义属性语句ATTRIBUTE的示例程序142

4.4 学习小结142

4.5 思考与练习144

5.1 基本逻辑门电路145

第5章 组合逻辑电路的VHDL语言描述145

5.1.1 2输入与非门电路145

例5-2:一般2输入与非门电路设计的示例程序2146

例5-1:一般2输入与非门电路设计的示例程序1146

例5-3:调用集电极开路的2输入与非门电路的示例程序147

例5-5:2输入或非门电路设计的示例程序2148

例5-4:2输入或非门电路设计的示例程序1148

5.1.2 2输入或非门电路148

例5-7:反相器电路设计的RTL描述方式的示例程序149

例5-6:反相器电路设计的行为描述方式的示例程序149

5.1.3 反相器电路149

例5-8:2输入异或门电路设计的行为描述方式的示例程序150

例5-9:2输入异或门电路设计的结构描述方式的示例程序150

5.1.4 2输入异或门电路150

5.1.5 2输入同或门电路151

例5-10:2输入同或门电路设计的行为描述方式的示例程序151

例5-11:2输入同或门电路设计的结构描述方式的示例程序152

5.1.6 多输入门电路152

例5-12:3输入或门电路设计的行为描述方式的示例程序153

例5-13:3输入或门电路设计的结构描述方式的示例程序153

例5-14:4输入与非门电路设计的行为描述方式的示例程序154

例5-15:4输入与非门电路设计的结构描述方式的示例程序154

5.2 选择器电路155

5.2.1 2选1选择器156

例5-16:采用IF-ELSE语句实现2选1选择器的示例程序156

例5-17:采用CASE语句实现2选1选择器的示例程序157

5.2.2 16选1选择器157

例5-18:采用IF-ELSIF-ELSE语句实现16选1选择器的示例程序158

5.3 编码器与译码器电路159

5.3.1 编码器159

例5-19:采用IF-ELSE语句实现BCD输出的10线-4线优先级编码器电路的示例程序160

5.3.2 译码器161

例5-20:4线-16线译码器电路的示例程序162

例5-21:BCD码输入的4线-10线译码器电路的示例程序164

5.4.1 三态门165

5.4 三态门及总线缓冲器电路165

例5-22:多种方法实现三态门电路的示例程序166

5.4.2 总线缓冲器167

例5-23:两种方法实现74244形式的单向总线缓冲器的示例程序168

例5-24:实现74245形式的双向总线缓冲器电路的VHDL示例程序169

5.5 加法器电路170

例5-25:-半加器电路的VHDL示例程序171

例5-26:直接根据真值表设计的全加器电路的VHDL示例程序172

例5-28:采用行波进位的4位加法器电路的VHDL示例程序173

例5-27:由两个半加器元件和一个或门构成的全加器电路的VHDL示例程序173

例5-29:基于兆函数LPM_ADD_SUB模块生成的自定制加/减法电路的VHDL示例程序176

例5-30:采用行为描述方法的16位求补器电路的示例程序177

5.6 求补器电路177

5.7 乘法器电路178

例5-31:4位×4位原码移位的乘法器电路的示例程序179

例5-32:基于兆函数LPM_MULT模块生成的自定制8位×8位无符号乘法器电路的VHDL示例程序180

例5-33:4位输入数据的一般数值比较器的VHDL示例程序182

5.8 数值比较器电路182

例5-34:基于兆函数LPM_COMPARE模块生成的自定制8位与8位无符号数据比较器电路的VHDL示例程序184

5.9 移位器电路185

例5-35:对8位输入数据进行移位的VHDL示例程序185

5.10 学习小结186

5.11 思考与练习187

6.1 时序电路的时钟信号189

第6章 时序逻辑电路的VHDL语言描述189

6.1.1 时钟边沿的描述189

例6-1:显式表示时钟敏感信号(上升沿)的示例程序191

6.1.2 时钟作为敏感信号191

例6-2:隐式表示时钟敏感信号(下降沿)的示例程序192

6.2 时序电路的复位信号193

6.2.1 时序电路的同步复位方法193

例6-3:VHDL程序中描述时序电路同步复位的示例程序193

6.2.2 时序电路的异步复位方法194

例6-4:VHDL程序中描述时序电路异步复位的示例程序194

例6-5:单输入电平锁存器的VHDL模型的示例程序195

6.3 锁存器电路195

6.3.1 电平锁存器195

例6-6:多输入电平锁存器的VHDL模型的示例程序196

6.3.2 同步锁存器196

6.3.3 异步锁存器197

例6-8:异步锁存器的VHDL模型的示例程序197

例6-7:同步锁存器的VHDL模型的示例程序197

6.3.4 自定制锁存器198

例6-9:基于兆函数LPM_LATCH模块生成的自定制的带有异步置位端和异步清零端的8位锁存器电路的VHDL示例程序199

6.4.1 D触发器200

6.4 触发器电路200

例6-11:异步复位的D触发器的示例程序201

例6-10:上升沿触发的D触发器的示例程序201

例6-12:异步复位/置位的D触发器的示例程序202

例6-13:同步复位的D触发器的示例程序203

例6-14:基于兆函数LPM_DFF模块生成的自定制的带有异步置位端(aset)和异步清零端(aclr)的16位D触发器电路的VHDL示例程序204

6.4.2 T触发器205

例6-15:下降沿触发的T触发器的示例程序206

例6-16:基于兆函数LPM_TFF模块生成的自定制的带有同步置位端(sset)、同步清零端(sclr)和同步加载端(sload)的24位T触发器电路的VHDL示例程序208

6.4.3 JK触发器208

例6-17:带有异步置位/复位端的上升沿触发的JK触发器的示例程序210

6.5 寄存器电路210

例6-18:用VHDL语言描述的10位通用寄存器的示例程序211

6.5.1 10位通用寄存器211

6.5.2 串入-串出移位寄存器211

例6-19:用VHDL语言描述的8位串入-串出移位寄存器的示例程序212

例6-20:直接采用信号代入的方法实现串入-串出移位寄存器的示例程序213

6.5.3 串入-并出移位寄存器214

例6-21:用VHDL语言描述的8位串入-并出移位寄存器的示例程序215

6.5.4 循环移位寄存器216

例6-22:用VHDL语言描述的8位循环左移位寄存器的示例程序217

例6-23:调用包集合CYPAC中的循环左移过程的8位循环左移位寄存器示例程序218

6.5.5 双向移位寄存器220

6.5.6 串/并入-串出移位寄存器221

例6-24:用VHDL语言描述的8位双向移位寄存器的示例程序221

例6-25:用VHDL语言描述的8位串/并入-串出移位寄存器74166的示例程序223

6.6.1 同步计数器225

6.6 计数器电路225

例6-26:用VHDL语言描述的带使能端的十二进制计数器的示例程序226

例6-27:利用两个4位二进制计数器构成一个六十进制计数器的示例程序227

例6-28:用VHDL语言描述的8位二进制加/减计数器的示例程序229

6.6.2 异步计数器230

例6-29:用VHDL语言描述的4位行波型异步计数器电路的示例程序230

6.6.3 自定制计数器231

例6-30:基于兆函数LPM_COUNTER模块生成的自定制的带有时钟使能端(ckk_en)、计数使能端(cnt_en)、异步置位端(aset)、异步加载端(aload)和异步清零端(aclr)的12位模30加/减(updown)计数器电路的VHDL示例程序232

6.7 学习小结234

6.8 思考与练习235

7.1 有限状态机概述236

第7章 有限状态机的VHDL语言描述236

7.2 有限状态机的VHDL语言描述237

例7-1:交通灯控制系统的VHDL有限状态机实现240

例7-2:交通灯控制器采用单进程描述的有限状态机实现243

7.3 Moore型状态机的设计247

例7-3:步进电机控制器的有限状态机实现248

7.4 Mealy型状态机的设计250

例7-4:Mealy型有限状态机250

7.5.1 符号化的状态编码252

7.5.2 直接状态编码252

7.5 有限状态机的状态编码252

例7-5:顺序编码的有限状态机253

例7-6:采用状态位直接输出编码的交通灯控制系统255

例7-7:一位热码编码的有限状态机257

7.6 非法状态的处理258

7.7 学习小结261

7.8 思考与练习261

第8章 采用VHDL的数字系统设计262

8.1 层次化结构设计262

8.2 自顶向下的设计方法263

8.3 库265

8.4 程序包267

8.5 配置275

例8-1:全加器的设计276

例8-2:采用元件配置说明方式实现的全加器的设计277

8.6 系统设计实例280

例8-3:64×8bit的ROM初始化(采用在程序包中直接定义的方法)281

8.6.1 存储器设计281

例8-5:64×8bit的ROM设计(采用在程序包中直接定义的方法)282

例8-4:64×8bit的ROM初始化(采用读TEXTIO的方式)282

例8-6:64×8bit的ROM设计(采用读TEXTIO的方式)283

例8-7:32×4bit的RAM设计284

例8-8:16×4bit的FIFO设计285

8.6.2 4位微处理器设计287

例8-9:ALU输入选择模块设计290

例8-10:ALU算术逻辑运算模块设计290

例8-11:存储器模块设计292

例8-13:输出选择模块设计293

例8-12:寄存器模块设计293

例8-14:4位微处理器系统的顶层描述294

8.8 思考与练习296

8.7 学习小结296

第9章 仿真、综合与优化297

9.1 仿真297

9.1.1 仿真输入信号的生成298

例9-1:全加器仿真程序(采用程序直接生成全加器仿真输入信号)299

例9-2:全加器仿真程序(利用TEXTIO文本文件的方式来生成仿真输入信号)302

例9-3:全加器仿真程序(不采用观察仿真输出波形,而使用完整的测试平台程序)304

9.1.2 仿真的δ延时305

例9-4:仿真程序305

9.2 综合306

9.2.1 约束条件307

9.2.2 工艺库308

9.2.3 门级映射309

9.3 设计优化309

例9-5:加法器示例程序310

9.3.1 模块复用310

例9-6:采用了面积优化的加法器示例程序311

9.3.2 流水线设计313

9.4 设计实现315

9.5 学习小结317

9.6 思考与练习317

第10章 在Quartus Ⅱ中进行电路设计318

10.1 Quartus Ⅱ软件的安装318

10.1.1 配置要求318

10.1.2 安装步骤319

10.1.3 授权方法324

10.1.4 设计特点326

10.2.1 图形用户界面设计流程328

10.2 Quartus Ⅱ软件的设计流程328

10.2.2 EDA工具设计流程330

10.2.3 命令行可执行文件331

10.2.4 Quartus Ⅱ软件的设计流程332

10.2.5 常用窗口介绍333

10.3 设计项目输入334

10.3.1 创建工程项目文件335

10.3.2 创建图形编辑文件336

例10-1:由Quartus Ⅱ软件生成的电路模块testblock下层的VHDL语言文件testblock.vhd的示例程序340

10.3.3 创建文本编辑文件346

例10-2:由Quartus Ⅱ软件的文本编辑器的“插入模板”对话框生成的实体声明的示例程序(采用VHDL语言编写程序)347

10.3.4 创建存储器编辑文件348

10.3.5 创建波形编辑文件350

10.4 设计项目编译与仿真353

10.4.1 Quartus Ⅱ软件的编译器选项设置353

10.4.2 编译设计项目359

10.4.3 仿真设计项目361

10.5 设计项目时序分析364

10.5.1 时序分析的基本参数介绍364

10.5.2 时序分析选项设置364

10.5.3 进行时序分析366

10.5.4 查看时序分析结果367

10.6 设计项目的下载编程367

10.6.1 器件编程介绍368

10.6.2 进行器件编程368

10.7 学习小结370

10.8 思考与练习370

附录A VHDL保留字371

附录B 常用逻辑符号对照表372

附录C 常用VHDL开发软件372

附录D 习题答案373

参考文献393

热门推荐