作者简介
目录
目 录
章 FPGA系统设计基础1
1.1 FPGA技术的发展历史和动向1
1.1.1 FPGA技术的发展历史1
1.1.2 FPGA技术的发展动向2
1.2 FPGA的典型应用领域3
1.2.1 数据采集和接口逻辑领域3
1.2.2 高性能数字信号处理领域4
1.2.3 其他应用领域4
1.3 FPGA的工艺结构4
1.4 典型的Xilinx FPGA芯片5
1.5 FPGA芯片的应用7
1.6 工程项目中FPGA芯片的选择策略和原则8
1.6.1 尽量选择成熟的产品系列8
1.6.2 尽量选择兼容性好的封装8
1.6.3 尽量选择一个公司的产品9
1.7 FPGA的设计流程9
1.8 思考与练习11
第2章 ISE与ModelSim的安装12
2.1 ISE的安装12
2.2 ModelSim SE的安装与启动18
2.3 ISE联合ModelSim设置22
2.4 思考与练习29
第3章 ISE操作基础30
3.1 ISE的基本使用方法30
3.1.1 新建工程30
3.1.2 新建HDL文件32
3.1.3 添加HDL文件33
3.1.4 新建原理图设计33
3.1.5 在原理图中调用模块34
3.1.6 编辑原理图35
3.1.7 用Constraints Editor设置约束38
3.1.8 使用XST进行综合39
3.1.9 设计实现42
3.1.10 生成下载文件44
3.1.11 下载FPGA45
3.2 仿真验证47
3.2.1 在ISE中仿真验证47
3.2.2 在ISE中调用ModelSim51
3.3 CORE Generator的使用方法56
3.3.1 新建CORE Generator工程56
3.3.2 新建IP59
3.3.3 修改已有IP的参数61
3.3.4 在设计中例化IP61
3.3.5 选择不同版本的IP62
3.4 流水灯实例63
3.4.1 硬件介绍63
3.4.2 创建工程63
3.4.3 编写Verilog代码65
3.4.4 UCF管脚约束68
3.4.5 编译工程70
3.4.6 ISE仿真70
3.4.7 ModelSim仿真验证75
3.5 思考与练习80
第4章 Verilog HDL语言概述81
4.1 Verilog HDL语言简介81
4.1.1 硬件描述语言81
4.1.2 Verilog HDL语言的历史82
4.1.3 Verilog HDL语言的能力82
4.1.4 Verilog HDL和VHDL语言的异同83
4.1.5 Verilog HDL和C语言的异同83
4.2 Verilog HDL语言的描述层次84
4.2.1 Verilog HDL语言描述能力综述84
4.2.2 系统级和算法级建模84
4.2.3 RTL级建模85
4.2.4 门级和开关级建模85
4.3 基于Verilog HDL语言的FPGA开发流程85
4.4 Verilog HDL语言的可综合与仿真特性87
4.4.1 Verilog HDL语句的可综合性88
4.4.2 Verilog HDL语句的仿真特性说明88
4.5 Verilog HDL程序开发的必备知识89
4.5.1 数字的表示形式89
4.5.2 常用术语解释91
4.5.3 Verilog HDL程序的优劣判断指标92
4.6 Verilog HDL程序设计模式93
4.6.1 自顶向下的设计模式93
4.6.2 层次与模块化模式94
4.6.3 IP核的重用94
4.7 思考与练习98
第5章 Verilog HDL程序结构99
5.1 程序模块99
5.1.1 Verilog HDL模块的概念99
5.1.2 模块的基本结构99
5.1.3 端口声明101
5.2 Verilog HDL的层次化设计101
5.2.1 Verilog HDL层次化设计的表现形式101
5.2.2 模块例化102
5.2.3 参数映射106
5.2.4 在ISE中通过图形化方式实现层次化设计108
5.3 Verilog HDL语言的描述形式111
5.3.1 结构描述形式111
5.3.2 行为描述形式116
5.3.3 混合设计模式119
5.4 思考与练习120
第6章 Verilog HDL语言的基本要素121
6.1 标志符与注释121
6.1.1 标志符121
6.1.2 注释122
6.2 数字与逻辑数值122
6.2.1 逻辑数值122
6.2.2 常量122
6.2.3 参数124
6.3 数据类型124
6.3.1 线网类型124
6.3.2 寄存器类型128
6.4 运算符和表达式132
6.4.1 赋值运算符132
6.4.2 算术运算符134
6.4.3 逻辑运算符136
6.4.4 关系运算符137
6.4.5 条件运算符138
6.4.6 位运算符140
6.4.7 拼接运算符141
6.4.8 移位运算符141
6.4.9 一元约简运算符142
6.5 思考与练习143
第7章 面向综合的行为描述语句144
7.1 触发事件控制144
7.1.1 信号电平事件语句144
7.1.2 信号跳变沿事件语句145
7.2 条件语句146
7.2.1 if语句146
7.2.2 case语句147
7.2.3 条件语句的深入理解150
7.3 循环语句152
7.3.1 repeat语句152
7.3.2 while语句153
7.3.3 for语句154
7.3.4 循环语句的深入理解156
7.4 任务与函数157
7.4.1 task语句157
7.4.2 function语句159
7.4.3 深入理解任务和函数160
7.5 思考与练习161
第8章 可综合状态机开发163
8.1 状态机的基本概念163
8.1.1 状态机的工作原理及分类163
8.1.2 状态机描述方式164
8.1.3 状态机设计思想166
8.2 可综合状态机设计原则166
8.2.1 状态机开发流程167
8.2.2 状态编码原则167
8.2.3 状态机的容错处理168
8.2.4 常用的设计准则169
8.3 状态机的Verilog HDL实现170
8.3.1 状态机实现综述170
8.3.2 Moore状态机开发实例173
8.3.3 Mealy状态机开发实例175
8.4 思考与练习177
第9章 面向验证和仿真的行为描述语句178
9.1 验证与仿真概述178
9.1.1 代码验证与仿真概述179
9.1.2 测试平台179
9.1.3 验证测试方法论181
9.1.4 Testbench结构说明185
9.2 仿真程序执行原理186
9.2.1 Verilog HDL语义简介187
9.2.2 Verilog HDL仿真原理187
9.3 延时控制语句189
9.3.1 延时控制的语法说明189
9.3.2 延时控制应用实例189
9.4 常用的行为仿真描述语句192
9.4.1 循环语句192
9.4.2 force和release语句194
9.4.3 wait语句195
9.4.4 事件控制语句196
9.4.5 task和function语句197
9.4.6 串行激励与并行激励语句198
9.5 用户自定义元件199
9.5.1 UDP的定义与调用199
9.5.2 UDP应用实例200
9.6 仿真激励的产生202
9.6.1 变量初始化202
9.6.2 时钟信号的产生205
9.6.3 复位信号的产生207
9.6.4 数据信号的产生208
9.6.5 典型测试平台模块编写实例209
9.6.6 关于仿真效率的说明210
9.7 思考与练习210
0章 系统任务和编译预处理语句212
10.1 系统任务语句212
10.1.1 输出显示任务212
10.1.2 文件输入/输出任务218
10.1.3 时间标度任务222
10.1.4 仿真控制任务224
10.1.5 仿真时间函数224
10.1.6 数字类型变换函数226
10.1.7 概率分布函数226
10.2 编译预处理语句228
10.2.1 宏定义`define语句228
10.2.2 条件编译`if语句230
10.2.3 文件包含`include语句231
10.2.4 时间尺度`timescale语句233
10.2.5 其他语句234
10.3 思考与练习235
1章 Verilog HDL语言基础236
11.1 8-3编码器236
11.2 3-8译码器237
11.3 数据选择器238
11.4 多位数值比较器240
11.5 全加器241
11.6 D触发器242
11.7 寄存器243
11.8 双向移位寄存器244
11.9 四位二进制加减法计数器245
11.10 顺序脉冲发生器247
11.11 序列信号发生器248
11.12 思考与练习249
2章 扩展接口设计250
12.1 数码管显示接口实验250
12.1.1 数码管显示接口实验内容与实验目的250
12.1.2 数码管显示接口设计原理251
12.1.3 数码管显示接口设计方法252
12.2 LCD液晶显示接口实验259
12.2.1 LCD液晶显示接口实验内容与实验目的259
12.2.2 LCD液晶显示接口设计原理259
12.2.3 LCD液晶显示接口设计方法262
12.3 VGA显示接口实验267
12.3.1 VGA显示接口实验内容与实验目的267
12.3.2 VGA显示接口实验设计原理268
12.3.3 VGA显示接口实验设计方法269
12.4 RS-232C串行通信接口实验271
12.4.1 RS-232C串行通信接口实验内容与实验目的271
12.4.2 RS-232C串行通信接口设计原理271
12.4.3 RS-232C串行通信接口设计方法274
12.5 思考与练习279
3章 系统设计实例280
13.1 实时温度采集系统280
13.1.1 实时温度采集系统实验内容与实验目的280
13.1.2 实时温度采集系统设计原理280
13.1.3 实时温度采集系统设计方法283
13.2 实时红外采集系统299
13.2.1 实时红外采集系统实验内容与实验目的299
13.2.2 实时红外采集系统设计原理299
13.2.3 实时红外采集系统设计方法301
13.3 实时键盘采集系统305
13.3.1 实时键盘采集系统实验内容与实验目的305
13.3.2 实时键盘采集系统设计原理306
13.3.3 实时键盘采集系统设计方法308
13.4 思考与练习320
内容摘要
《零点起飞学Xilinx FPGA》以三菱公司主流的FX系列PLC为对象讲述PLC知识,全书分为三篇,基础篇、提高篇和应用篇。 基础篇包括PLC的基本概念、系统配置、内部资源、基本指令系统梯形图程序设计、编程工具等;提高篇包括PLC的功能指令、系统设计方法通信功能等;应用篇包含工业机械实例、运动控制工程实例和过程控制工程实例。
《零点起飞学Xilinx FPGA》适合从事PLC设计的工程人员使用,也适合高校相关专业的学生选作教材使用。
主编推荐
? 由浅入深,循序渐进:本书在内容编排上遵循由浅入深、由易到难的原则,基础知 识与大量实例相结合,读者可边学边练
? 实例丰富,涉及面广:本书提供丰富的FPGA程序设计实例,内容涉及电子系统的各个领域
? 兼顾原理,注重实用:本书侧重于实际应用,在编写过程中注重知识的新颖性和实用性,故在书中增加了ISE 14.7软件与ModelSim软件的联合仿真等知识
精彩内容
前 言
电子工业的飞速发展和电子计算机技术的广泛应用,促进了电子设计自动化技术日新月异的发展。FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在可编程阵列逻辑(Programmable Logic Array,PAL)、通用阵列逻辑(Generic Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Devices,CPLD)等器件的基础上进一步发展的产物。它是作为专用集成电路(Application Specific Integrated Circuit,ASIC)领域中的一种半定制电路出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,广泛应用于航空、航天、汽车、造船、通用机械和电子等工业的各个领域。
本书结合Verilog HDL硬件描述语言,以Xilinx公司的ISE 14.7和Model Technology公司的ModelSim作为FPGA软件设计工具,详细阐述了使用FPGA设计的方法和开发 过程。
本书以ISE 14.7和ModelSim开发环境为背景,介绍FPGA产品开发的完整解决方案。全书共13章,主要内容包括FPGA系统设计基础、ISE与ModelSim的安装、ISE操作基础、Verilog HDL语言概述、Verilog HDL程序结构、Verilog HDL语言基本要素、面向综合的行为描述语句、可综合状态机开发、面向验证和仿真的行为描述语句、系统任务和编译预处理语句、Verilog HDL语言基础程序设计、扩展接口设计和系统设计实例等,最后通过工程实例,将FPGA开发语言、开发思想和实际工程完美结合。
为了使初学者迅速入门,提高对电子系统设计的兴趣与爱好,并能在短时间内掌握电子系统设计开发的要点,作者在编写过程中注重内容的选取,使本书具有以下特点。
由浅入深,循序渐进:在内容编排上遵循由浅入深、由易到难的原则,将基础知识与大量实例结合,使读者可以边学边练。
实例丰富,涉及面广:提供了丰富的FPGA程序设计实例,内容涉及电子系统的多个领域。
兼顾原理,注重实用:侧重于实际应用,精炼理论讲解内容。考虑到基本原理和基本应用一直是学习FPGA技术的基本要求,为了紧随FPGA技术的发展,在编写过程中作者注重知识的新颖性和实用性,因而在书中讲解了ISE 14.7与ModelSim联合仿真等内容。
本书~3章与第9~12章由哈尔滨工程大学高敬鹏编写,第4章、第5章由黑龙江大学的曹立文编写,第6~8章由黑龙江工程学院武超群编写,3章由北京航天长征飞行器研究所白锦良编写。参加本书编写工作的人员还有管殿柱、宋一兵、王献红、李文秋。
感谢您选择了本书,希望我们的努力对您的工作和学习有所帮助,也希望您把对本书的意见和建议告诉我们。
零点工作室网站地址:www.zerobook.net
零点工作室联系信箱:syb33@163.com
零点工作室
2019年1月
— 没有更多了 —
以下为对购买帮助不大的评价