书籍详情
VHDL芯片设计
作者:陈荣,陈华 著
出版社:机械工业出版社
出版时间:2006-01-01
ISBN:9787111178040
定价:¥35.00
购买这本书可以去
内容简介
本书是为熟练掌握VHDL芯片设计而编写的基础教材。本书以VHDL语言为载体,详细介绍了功能仿真软件ModelSim、综合软件Synplify、时序仿真软件MaxplusII,并通过丰富的实例对照,全面介绍良好的VHDL编程风格。重点讲述数字电路设计的概念,内容涵盖VHDL行为模型、层次式模块化设计、组合逻辑电路设计、状态机设计、测试平台设计等,井以大量VHDL程序实例演示说明有关应用程序的设计过程,介绍主流的编程思想及方法,培养读者的代码编写能力及良好的设计风格。本书内容深入浅出,覆盖面广,图文并茂,独具特色。既有丰富的理论知识,也有大量的实战范例,使读者能循序渐进,由浅入深。.本书是在作者多年实践基础上编写的,适合作为电子,电机等专业相关课程的教材,对于从事电子工程设计的科技人员,本书也是极佳的参考....
作者简介
暂缺《VHDL芯片设计》作者简介
目录
第1章 VHDL设计概念 1
1.1 数字电路设计简介 1
1.2 ASIC和FPGA组件比较 2
1.2.1 ASIC 2
1.2.2 FPGA 4
1.3 FPGA和ASIC设计流程简介 5
1.4 数字电路设计所需考虑的因素 7
第2章 EDA软件介绍 10
2.1 功能仿真软件ModelSim 10
2.1.1 ModelSim简介 10
2.1.2 建立一个新的项目 11
2.1.3 基本VHDL仿真 14
2.1.4 除错 16
2.1.5 Finding names and values 19
2.1.6 使用Wave窗口 20
2.1.7 性能分析器仿真 22
2.1.8 Code Coverage仿真 25
2.1.9 ModelSim 常用指令集 28
2.2 综合工具Synplify 30
2.2.1 Synplify简介 30
2.2.2 Synplify的特色 31
2.2.3 Synplify FPGA设计流程 32
2.2.4 安装事项 32
2.2.5 Synplify用户接口 33
2.2.6 设定源文件 33
2.2.7 检查源文件 35
2.2.8 RTL View 35
2.2.9 Synplify Altera Flow 37
2.3 Altera MaxplusII EDA Tool 42
2.3.1 Maxplus Ⅱ版本介绍及安装方式 43
2.3.2 设计输入 53
2.3.3 功能仿真 57
2.3.4 平面布局 64
2.4 结论 70
第3章 初探HDL语言 71
3.1 HDL的好处 71
3.2 VHDL和Verilog的比较 71
3.3 如何选择电路的结构 72
3.4 HDL程序的组成 73
3.5 HDL程序结构 77
第4章 基本VHDL要素 79
4.1 标识符 79
4.2 数据对象 80
4.3 数据类型 82
4.3.1 标量数据类型 82
4.3.2 复合数据类型 84
4.3.3 数组数据类型 84
4.3.4 记录数据类型 85
4.4 运算操作符 85
第5章 VHDL行为模型 91
5.1 简介 91
5.2 实体声明 91
5.3 结构体 92
5.4 进程语句 93
5.5 变量赋值语句 94
5.6 信号赋值语句 95
5.7 Wait 语句 95
5.8 if语句 97
5.9 Case 语句 100
5.10 Null 语句 104
5.11 Loop语句 104
5.12 Exit 语句 109
5.13 Next 语句 109
5.14 Assertion 语句 110
5.15 Report 语句 111
5.16 信号赋值语句进阶探讨 112
5.16.1 惯性延迟模型 112
5.16.2 传输延迟模型 113
5.17 建立信号波形 113
5.18 多进程 114
第6章 数据流模型 117
6.1 简介 117
6.2 并发性信号赋值语句 117
6.3 并发性与顺序性信号赋值 118
6.4 探讨Delta delay 119
6.5 条件信号赋值语句 121
6.6 选择信号赋值语句 122
6.7 Unaffected值 123
6.8 块语句 124
第7章 结构化模型 127
7.1 简介 127
7.2 简单的范例 127
7.3 元件声明 128
7.4 元件实例化 130
7.5 层次式结构 131
7.6 其他范例 134
第8章 VHDL中的属性和配置 142
8.1 简介 142
8.2 数值属性 142
8.2.1 数值类型属性 143
8.2.2 数值数组属性 143
8.2.3 数值块属性 144
8.3 函数属性 144
8.3.1 函数类型属性 144
8.3.2 函数数组属性 145
8.3.3 函数信号属性 147
8.4 类型属性 148
8.5 范围属性 148
8.6 信号属性 149
第9章 层次式模块化设计 151
9.1 简介 151
9.2 类属和配置 151
9.2.1 类属 151
9.2.2 配置 153
9.3 生成语句 162
第10章 子程序及包 167
10.1 简介 167
10.2 子程序 167
10.2.1 函数 167
10.2.2 过程 170
10.3 运算符重载 171
10.4 包 175
10.4.1 包声明 175
10.4.2 包主体 177
第11章 组合逻辑电路设计 180
11.1 简介 180
11.2 多选器设计 180
11.3 编码器设计 183
11.4 优先级编码器设计 187
11.5 译码器设计 189
11.6 含有使能的译码器设计 192
11.7 四位地址译码器设计 194
11.8 使用Generic N to M 位的二进制译码器 197
11.9 比较运算符 200
11.10 算术逻辑单元设计 202
第12章 时序逻辑电路设计 205
12.1 简介 205
12.2 D型触发器 205
12.3 触发器应用电路 212
12.3.1 延迟电路 212
12.3.2 微分器电路设计 214
12.4 计数器设计 216
12.5 同步计数器电路设计 220
12.6 分频电路设计 220
第13章 状态机设计 227
13.1 状态机简介 227
13.2 Moore 状态机 227
13.3 Melay 状态机 231
第14章 测试平台 234
14.1 简介 234
14.2 如何写测试平台 234
14.3 波形产生器 235
14.3.1 重复性和非重复的测试样本 235
14.3.2 使用向量的方式 238
14.4 整数转换成time数据类型 240
14.5 将结果保存为文本文件 240
14.6 从文本文件中读取向量 242
第15章 RTL Coding Guideline 245
15.1 简介 245
15.2 初探Coding Guideline 245
15.3 基本的代码注意事项 245
15.3.1 一般的命名方式 245
15.3.2 结构名称命名规则 246
15.3.3 标题文件的注意事项 246
15.3.4 注释 247
15.3.5 一行的长度 248
15.3.6 缩进 248
15.3.7 Port的顺序 248
15.3.8 端口映射和类属映射 249
15.3.9 实体、结构和配置 250
15.3.10 使用函数 250
15.3.11 使用Loops和Arrays 250
15.3.12 使用有意义的标记名称 251
15.4 可移植性 252
15.4.1 使用IEEE 标准类型 252
15.4.2 不要使用实际的数值 252
15.4.3 包 253
15.4.4 转换(VHDL至Verilog) 253
15.5 有关Clock和Reset的准则 253
15.5.1 避免使用混合频率触发 253
15.5.2 避免对频率信号做处理 254
15.5.3 避免内部产生频率信号 254
15.5.4 门时钟和低功率设计 255
15.5.5 避免内部产生Reset信号 255
15.6 Coding for Synthesis 256
15.6.1 触发器的写法 256
15.6.2 避免锁存器 257
15.6.3 避免使用组合逻辑的反馈 262
15.6.4 完整的敏感表 262
15.6.5 信号和变量赋值 264
15.6.6 Case语句与if-then-else 语句 264
15.6.7 状态机的编程风格 265
15.6.8 Partitioning for Synthesis 267
第16章 高级设计范例 269
16.1 数字闹铃电路设计 269
16.2 最大公因子电路设计及验证 278
16.2.1 设计要求 278
16.2.2 设计概念 278
16.2.3 测试平台的设计 285
1.1 数字电路设计简介 1
1.2 ASIC和FPGA组件比较 2
1.2.1 ASIC 2
1.2.2 FPGA 4
1.3 FPGA和ASIC设计流程简介 5
1.4 数字电路设计所需考虑的因素 7
第2章 EDA软件介绍 10
2.1 功能仿真软件ModelSim 10
2.1.1 ModelSim简介 10
2.1.2 建立一个新的项目 11
2.1.3 基本VHDL仿真 14
2.1.4 除错 16
2.1.5 Finding names and values 19
2.1.6 使用Wave窗口 20
2.1.7 性能分析器仿真 22
2.1.8 Code Coverage仿真 25
2.1.9 ModelSim 常用指令集 28
2.2 综合工具Synplify 30
2.2.1 Synplify简介 30
2.2.2 Synplify的特色 31
2.2.3 Synplify FPGA设计流程 32
2.2.4 安装事项 32
2.2.5 Synplify用户接口 33
2.2.6 设定源文件 33
2.2.7 检查源文件 35
2.2.8 RTL View 35
2.2.9 Synplify Altera Flow 37
2.3 Altera MaxplusII EDA Tool 42
2.3.1 Maxplus Ⅱ版本介绍及安装方式 43
2.3.2 设计输入 53
2.3.3 功能仿真 57
2.3.4 平面布局 64
2.4 结论 70
第3章 初探HDL语言 71
3.1 HDL的好处 71
3.2 VHDL和Verilog的比较 71
3.3 如何选择电路的结构 72
3.4 HDL程序的组成 73
3.5 HDL程序结构 77
第4章 基本VHDL要素 79
4.1 标识符 79
4.2 数据对象 80
4.3 数据类型 82
4.3.1 标量数据类型 82
4.3.2 复合数据类型 84
4.3.3 数组数据类型 84
4.3.4 记录数据类型 85
4.4 运算操作符 85
第5章 VHDL行为模型 91
5.1 简介 91
5.2 实体声明 91
5.3 结构体 92
5.4 进程语句 93
5.5 变量赋值语句 94
5.6 信号赋值语句 95
5.7 Wait 语句 95
5.8 if语句 97
5.9 Case 语句 100
5.10 Null 语句 104
5.11 Loop语句 104
5.12 Exit 语句 109
5.13 Next 语句 109
5.14 Assertion 语句 110
5.15 Report 语句 111
5.16 信号赋值语句进阶探讨 112
5.16.1 惯性延迟模型 112
5.16.2 传输延迟模型 113
5.17 建立信号波形 113
5.18 多进程 114
第6章 数据流模型 117
6.1 简介 117
6.2 并发性信号赋值语句 117
6.3 并发性与顺序性信号赋值 118
6.4 探讨Delta delay 119
6.5 条件信号赋值语句 121
6.6 选择信号赋值语句 122
6.7 Unaffected值 123
6.8 块语句 124
第7章 结构化模型 127
7.1 简介 127
7.2 简单的范例 127
7.3 元件声明 128
7.4 元件实例化 130
7.5 层次式结构 131
7.6 其他范例 134
第8章 VHDL中的属性和配置 142
8.1 简介 142
8.2 数值属性 142
8.2.1 数值类型属性 143
8.2.2 数值数组属性 143
8.2.3 数值块属性 144
8.3 函数属性 144
8.3.1 函数类型属性 144
8.3.2 函数数组属性 145
8.3.3 函数信号属性 147
8.4 类型属性 148
8.5 范围属性 148
8.6 信号属性 149
第9章 层次式模块化设计 151
9.1 简介 151
9.2 类属和配置 151
9.2.1 类属 151
9.2.2 配置 153
9.3 生成语句 162
第10章 子程序及包 167
10.1 简介 167
10.2 子程序 167
10.2.1 函数 167
10.2.2 过程 170
10.3 运算符重载 171
10.4 包 175
10.4.1 包声明 175
10.4.2 包主体 177
第11章 组合逻辑电路设计 180
11.1 简介 180
11.2 多选器设计 180
11.3 编码器设计 183
11.4 优先级编码器设计 187
11.5 译码器设计 189
11.6 含有使能的译码器设计 192
11.7 四位地址译码器设计 194
11.8 使用Generic N to M 位的二进制译码器 197
11.9 比较运算符 200
11.10 算术逻辑单元设计 202
第12章 时序逻辑电路设计 205
12.1 简介 205
12.2 D型触发器 205
12.3 触发器应用电路 212
12.3.1 延迟电路 212
12.3.2 微分器电路设计 214
12.4 计数器设计 216
12.5 同步计数器电路设计 220
12.6 分频电路设计 220
第13章 状态机设计 227
13.1 状态机简介 227
13.2 Moore 状态机 227
13.3 Melay 状态机 231
第14章 测试平台 234
14.1 简介 234
14.2 如何写测试平台 234
14.3 波形产生器 235
14.3.1 重复性和非重复的测试样本 235
14.3.2 使用向量的方式 238
14.4 整数转换成time数据类型 240
14.5 将结果保存为文本文件 240
14.6 从文本文件中读取向量 242
第15章 RTL Coding Guideline 245
15.1 简介 245
15.2 初探Coding Guideline 245
15.3 基本的代码注意事项 245
15.3.1 一般的命名方式 245
15.3.2 结构名称命名规则 246
15.3.3 标题文件的注意事项 246
15.3.4 注释 247
15.3.5 一行的长度 248
15.3.6 缩进 248
15.3.7 Port的顺序 248
15.3.8 端口映射和类属映射 249
15.3.9 实体、结构和配置 250
15.3.10 使用函数 250
15.3.11 使用Loops和Arrays 250
15.3.12 使用有意义的标记名称 251
15.4 可移植性 252
15.4.1 使用IEEE 标准类型 252
15.4.2 不要使用实际的数值 252
15.4.3 包 253
15.4.4 转换(VHDL至Verilog) 253
15.5 有关Clock和Reset的准则 253
15.5.1 避免使用混合频率触发 253
15.5.2 避免对频率信号做处理 254
15.5.3 避免内部产生频率信号 254
15.5.4 门时钟和低功率设计 255
15.5.5 避免内部产生Reset信号 255
15.6 Coding for Synthesis 256
15.6.1 触发器的写法 256
15.6.2 避免锁存器 257
15.6.3 避免使用组合逻辑的反馈 262
15.6.4 完整的敏感表 262
15.6.5 信号和变量赋值 264
15.6.6 Case语句与if-then-else 语句 264
15.6.7 状态机的编程风格 265
15.6.8 Partitioning for Synthesis 267
第16章 高级设计范例 269
16.1 数字闹铃电路设计 269
16.2 最大公因子电路设计及验证 278
16.2.1 设计要求 278
16.2.2 设计概念 278
16.2.3 测试平台的设计 285
猜您喜欢