本书主要讲解了FPGA设计、方法和实现。这本书略去了不太必要的理论、推测未来的技术、过时工艺的细节,用简明、扼要的方式描述FPGA中的关键技术。
主要内容包括:设计速度高、体积小、功耗低的体系结构方法,时钟区域,实现数学函数,浮点单元,复位电路,仿真,综合优化,布图,静态时序分析等。
本书以FPGA设计为主题,覆盖了实践过程中可能遇到的深层次问题,并提供了经验指导。在某些方面,本书能够取代有限的工业经历,免去读者学习的困难。这种先进的,实用的方法,成为此书的特色。部分目录如下:
第1章 高速度结构设计
1.1 高流量
1.2 低时滞
1.3 时序
1.3.1 添加寄存器层次
1.3.2 并行结构
1.3.3 展平逻辑结构
1.3.4 寄存器平衡
1.3.5 重新安排路径
1.4 小结
第2章 面积结构设计
2.1 折叠流水线
2.2 基于控制的逻辑复用
2.3 资源共享
2.4 复位对面积的影响
2.4.1 无复位的资源
2.4.2 无置位的资源
2.4.3 无同步复位的资源
2.4.4 复位RAM
2.4.5 利用置位/复位触发器引脚
2.5 小结
第3章 功耗结构设计
3.1 时钟控制
3.1.1 时钟偏移
3.1.2 控制偏移
3.2 输入控制
3.3 减少供电电压
3.4 双沿触发触发器
3.5 修改
3.6 小结
第4章 设计实例:高级加密标准
4.1 AES结构
4.1.1 一级字节代换
4.1.2 零级行间移位
4.1.3 两个流水线级列混合
4.1.4 一级轮密钥加
4.1.5 紧缩结构
4.1.6 部分流水线结构
4.1.7 完全流水线结构
4.2 性能与面积
4.3 其他的优化
第5章 高级设计
5.1 抽象设计技术
5.2 图形状态机
5.3 DSP设计
5.4 软硬件协同设计
5.5 小结
第6章 时钟区域
6.1 跨越时钟区域
6.1.1 准稳态
6.1.2 解决方案一:相位控制
6.1.3 解决方案二:双跳技术
6.1.4 解决方案三:FIFO结构
6.1.5 分割同步模块
6.2 在ASIC样机中的门控时钟
6.2.1 时钟模块
6.2.2 选通移除
6.3 小结
第7章 设计实例:12S与SPDIF
7.1 I2S
7.1.1 协议
7.1.2 硬件结构
7.1.3 分析
7.2 SPDIF
7.2.1 协议
7.2.2 硬件结构
7.2.3 分析
第8章 实现数学函数
第9章 设计实例:浮点单元
第10章 复位电路
第11章 高级仿真
第12章 综合编码
第13章 设计实例:安全散列算法
第14章 综合优化
第15章 布图
第16章 布局布线优化
第17章 设计实例:微处理器
第18章 静态时序分析
第19章 PCB的问题
附录A AES密码的流水线级
附录B SRC处理器的顶层模块
在微信公众号后台回复 高级FPGA设计 (中英文版) 获取中文版以及英文版电子书。
ZynqBook 是关于 Xilinx 的 Xilinx Zynq-7000 全可编程片上系统 (SoC) 的。Zynq 书是第一本用英语编写的关于 Zynq 的书。
由来自英国格拉斯哥斯特拉斯克莱德大学的一组作者在 Xilinx 的支持下制作。希望创建一本易于访问、可读的书,使刚开始使用 Zynq 的人以及已经在使用 Zynq 的工程师受益。
初略的目录如下:
章节 1 引言
章节 2 Zynq 芯片 (“ 是什么 ”)
章节 3 Zynq 设计指南 (“ 如何使用它?”)
章节 4 芯片比较 (“ 为什么我需要 Zynq?”)
章节 5 应用和机会 (“ 拿它能做什么 ?”)
章节 6 The ZedBoard
章节 7 教育、研究和培训
章节 8 Zynq 的第一个工程
章节 9 嵌入式系统和 FPGA
章节 10 Zynq 片上系统概述
章节 11 Zynq 片上系统的开发
章节 12 Zynq SoC 设计的下一步
章节 13 IP 包设计
章节 14 高层综合
章节 15 Vivado HLS: 近视
章节 16 用 Vivado 高层综合做设计
章节 17 IP 的创建
章节 18 IP 重用与集成
章节 19 AXI 接口
章节 20 探索 IP Integrator
章节 21 Zynq 上的操作系统介绍
章节 22 Linux 概览
章节 23 Linux 内核
章节 24 Linux 启动
在微信公众号后台回复 The zynq book(中英文版) 获取中文版以及英文版电子书。
本书涵盖了从原理图驱动的入门,到传统的基于HDL/RTL的仿真和逻辑综合,一直到当前最先进的纯C/C++设计捕获和综合技术。
还讨论了专业领域,如混合硬/软件和基于DSP的设计流程,以及创新的新器件,如现场可编程节点阵列(FPGA),目录如下:
1章 概论
1.1 什么是FPGA
1.2 FPGA为什么令人感兴趣
1.3 FPGA的用途
1.4 本书内容
1.5 本书不包括什么
1.6 读者对象
2章 基本概念
2.1 FPGA的心
2.2 简单的可编程能
2.3 熔丝连接技术
2.4 熔丝技术
2.5 掩模编程器件
2.6 PROM
2.7 基于EPROM的技术
2.8 基于EEPROM的技术
2.9 基于闪存的技术
2.10 基于SRAM的技术
2.11 小结
3章 FPGA的起源
3.1 相关的技术
3.2 晶体管
3.3 集成电路
3.4 SRAM/DRAM和微处理器
3.5 SPLD和CPLD
3.5.1 PROM
3.5.2 PLA
3.5.3 PAL和GAL
3.5.4 其他可编程选择
3.5.5 CPLD
3.5.6 ABEL、CUPL、PALASM、JEDEC等
3.6 专用集成电路(门阵列等)
3.6.1 全定制
3.6.2 Micromatrix和Micromosaic
3.6.3 门阵列
3.6.4 标准单元器件
3.6.5 结构化ASIC
3.7 FPGA
3.7.1 FPGA平台
3.7.2 FPGA-ASIC混合
3.7.3 FPGA厂商如何设计芯片
4章 FPGA结构的比较
4.1 一点提醒
4.2 一些背景信息
4.3 熔丝与SRAM与其他
4.3.1 基于SRAM的器件
4.3.2 以SRAM为基础器件的安全问题和解决方案
4.3.3 基于熔丝的器件
4.3.4 基于EPROM的器件
4.3.5 基于E2PROM/FLASH的器件
4.3.6 FLASH-SRAM混合器件
4.3.7 小结
4.4 细粒、中等微粒和粗粒结构
4.5 MUX与基于LUT的逻辑块
4.5.1 基于MUX的结构
4.5.2 基于LUT的结构
4.5.3 基于MUX还是基于LUT
4.5.4 3、4、5或6输入LUT
4.5.5 LUT与分布RAM与SR
4.6 CLB、LAB与slices
4.6.1 Xlilinx逻辑单元
4.6.2 Altera逻辑部件
4.6.3 slicing和dicing
4.6.4 CLB和LAB
4.6.5 分布RAM和移位寄存器
4.7 快速位链
4.8 内嵌RAM
4.9 内嵌乘器、加器、MAC等
4.10 内嵌处理器(硬的和软的)
4.10.1 硬微处理器
4.10.2 软微处理器
4.11 时钟树和时间管理器
4.11.1 时钟树
4.11.2 时钟管理器
4.12 通用I/O
4.12.1 可配置I/O标准
4.12.2 可配置I/O阻抗
4.12.3 与I/O电压
4.13 吉比特传输
4.14 硬IP、软IP和固IP
4.15 系统门与实际的门
4.16 FPGA年
5章 FPGA编程(配置)
5.1 引言
5.2 配置文件
5.3 配置单元
5.4 基于熔丝的FPGA
5.5 基于SRAM的FPGA
5.5.1 迅速的过程欺骗了眼睛
5.5.2 对嵌入(块)RAM、分布RAM编程
5.5.3 多编程链
5.5.4 器件的快速重新初始化
5.6 使用配置端口
5.6.1 FPGA作为主设备串行下载
5.6.2 FPGA作为主设备并行下载
5.6.3 FPGA作为从设备并行下载
5.6.4 FPGA作为从设备串行下载
5.7 使用JTAG端口
5.8 使用嵌入处理器
6章 谁在参与
6.1 引言
6.2 FPGA和FPAA提供商
6.3 FPNA提供商
6.4 全线EDA提供商
6.5 专业FPGA和EDA提供商
6.6 使用专门工的FPGA设计顾问
6.7 开源、免费和低成本的设计工
7章 FPGA与ASIC设计风格
7.1 引言
7.2 编码风格
7.3 流水线和逻辑层次
7.3.1 什么是流水线
7.3.2 电子系统中的流水线
7.3.3 逻辑层次
7.4 异步设计实践
7.4.1 异步结构
7.4.2 组合回路
7.4.3 延迟链
7.5 时钟考虑
7.5.1 时钟域
7.5.2 时钟平衡
7.5.3 门控时钟与使能时钟
7.5.4 PLL和时钟调节电路
7.5.5 跨时钟域数据传输的可靠性
7.6 寄存器和锁存器考虑
7.6.1 锁存器
7.6.2 有“置位”和“复位”输入的触发器
7.6.3 全局复位和初始化条件
7.7 共享(时分复用)
7.7.1 使用它或者放弃它
7.7.2 其他内容
7.8 状态机编码
7.9 测试方学
8章 基于原理图的设计流程
8.1 往昔的时光
8.2 EDA初期
8.2.1 前端工,如逻辑仿真
8.2.2 后端工如版图设计
8.2.3 CAE+CAD=EDA
8.3 简单的原理图驱动ASIC设计流程
8.4 简单(早期)的原理图驱动FPGA设计流程
8.4.1 映射
8.4.2 包装
8.4.3 布局和布线
8.4.4 时序分析和布局布线后仿真
8.5平坦的原理图与分层次的原理图
8.5.1 沉闷的扁平原理图
8.5.2 分等级(基于模块)的原理图
8.6 今天的原理图驱动设计流程
9章 基于HDL的设计流程
9.1 基于原理图流程的问题
9.2 基于HDL设计流程的出现
9.2.1 不同的抽象层次
9.2.2 早期基于HDL的ASIC设计流程
9.2.3 早期基于HDL的FPGA设计流程
9.2.4 知道结构的FPGA流程
9.2.5 逻辑综合与基于物理的综合
9.3 图形设计输入的生活
9.4 绝对过剩的HDL
9.4.1 VerilogHDL
9.4.2 VHDL和VITAL
9.4.3 混合语言设计
9.4.4 UDL/I
9.4.5 Superlog和SystemVerilog
9.4.6 SystemC
9.5 值得深思的事
9.5.1 担心,非常担心
9.5.2 串行与并行多路复用器
9.5.3 小心锁存器
9.5.4 聪明地使用常量
9.5.5 共用考虑
9.5.6 还有一些不可忽视的内容
10章 FPGA设计中的硅虚拟原型
10.1 什么是硅虚拟原型
10.2 基于ASIC的SVP方
10.2.1 门级SVP(由快速综合产生)
10.2.2 门级SVP(由基于增益的综合产生)
10.2.3 团簇SVP
10.2.4 基于RTL的SVP
10.3 基于FPGA的SVP
10.3.1 交互作
10.3.2 增量布局布线
10.3.3 基于RTL的FPGASVP
11章 基于C/C++等语言的设计流程
11.1传统的HDL设计流程存在的问题
11.2C对C++与并行执行对顺序执行
11.3基于SystemC的设计流程
11.3.1什么是SystemC以及它从哪里来
11.3.2SystemC1.0
11.3.3SystemC2.0
11.3.4抽象级
11.3.5基于SystemC设计流程的可选方案
11.3.6 要么喜爱它,要么讨厌它
11.4 基于增强型C/C++的设计流程
11.4.1 什么是增强型C/C++
11.4.2 可选择的增强型C/C++设计流程
11.5 基于纯C/C++的设计流程
11.6 综合的不同抽象级别
11.7 混合语言设计和验证环境
12章 基于DSP的设计流程
12.1 DSP简介
12.2 可选择的DSP实现方案
12.2.1 随便选一个器件,不过不要让我看到是哪种器件
12.2.2 系统级估和验证
12.2.3 在DSP内中运行的软件
12.2.4 专用DSP硬件
12.2.5 与DSP相关的嵌入FPGA
12.3 针对DSP的以FPGA为中心的设计流程
12.3.1 专用领域语言
12.3.2 系统级设计和仿真环境
12.3.3 浮点与定点表示
12.3.4 系统/级向RTL的转换(手工转换)
12.3.5 系统/级向RTL的转换(自动生成)
12.3.6 系统/级向C/C++的转换
12.3.7 模块级IP环境
12.3.8 别忘了测试平台
12.4 DSP与VHDL/Verilog混合设计环境
13章 基于嵌入处理器的设计流程
13.1 引言
13.2 硬与软
13.2.1 硬
13.2.2 微处理器软
13.3 将设计划分为硬件和软件部分
13.4 硬件和软件的世界观
13.5 利用FPGA作为自身的开发环境
13.6 增强设计的可见性
13.7 其他一些混合验证方
13.7.1 RTL(VHDL或Verilog)
13.7.2 C/C++、SystemC等
13.7.3 硬件模拟器中的物理芯片
13.7.4 指令集仿真器
13.8 一个相巧妙的设计环境
14章 模块化设计和增量设计
14.1 将设计作为一个的模块行处理
14.2 将设计划分为更小的模块
14.2.1 模块化设计
14.2.2 增量设计
14.2.3 存在的问题
14.3 有其他
15章 高速设计与其他PCB设计注意事项
15.1 开始之前
15.2 我们都很年轻,因此
15.3 变革的时代
15.4 其他注意事项
15.4.1 高速设计
15.4.2 信号完整性分析
15.4.3 SPICE与IBIS
15.4.4 起动率
15.4.5 使用内部末端阻抗
15.4.6 串行或并行处理数据
16章 观察FPGA的内部节点
16.1 缺乏可见性
16.2 使用多路复用技术
16.3 专用调试电路
16.4 虚拟逻辑分析仪
16.5 虚拟线路
16.5.1 问题描述
16.5.2 虚拟线路解决方案
17章 IP
17.1 IP的来源
17.2 人工优化的IP
17.2.1 未加密的RTL级IP
17.2.2 加密的RTL级IP
17.2.3 未经布局布线的网表级IP
17.2.4 布局布线后的网表级IP
17.3 IP生成器
17.4 综合资料
18章 ASIC设计与FPGA设计之间的移植
18.1 可供选择的设计方
18.1.1 只做FPGA设计
18.1.2 FPGA之间的转换
18.1.3 FPGA到ASIC的转换
18.1.4 ASIC到FPGA的转换
19章 仿真、综合、验证等设计工
19.1 引言
19.2 仿真(基于周期、驱动等)
19.2.1 什么是驱动逻辑仿真器
19.2.2 驱动逻辑仿真器发展过程简述
19.2.3 逻辑值与不同逻辑值系统
19.2.4 混合语言仿真
19.2.5 其他延迟格
19.2.6 基于周期的仿真器
19.2.7 选择世界上好的逻辑仿真器
19.3 综合(逻辑/HDL综合与物理综合)
19.3.1 逻辑/HDL综合技术
19.3.2 物理综合技术
19.3.3 时序重调、复制及二次综合
19.3.4 选择世界上好的综合工
19.4 时序分析(静态与动态)
19.4.1 静态时序分析
19.4.2 统计静态时序分析
19.4.3 动态时序分析
19.5 一般验证
19.5.1 验证IP
19.5.2 验证环境和创建testbench
19.5.3 分析仿真结果
19.6 形验证
19.6.1 形验证的不同种类
19.6.2 形验证究竟是什么
19.6.3 术语及定义
19.6.4 其他可选的断言/属性规范技术
19.6.5 静态形验证和动态形验证
19.6.6 各种语言的结
19.7 混合设计
19.7.1 HDL语言到C语言的转换
19.7.2 代码覆盖率
19.7.3 性能分析
20章 选择合适的器件
20.1 丰富的选择
20.2 要是有选型工就好了
20.3 工艺
20.4 基本和封装
20.5 通用I/O接口
20.6 嵌入乘器、RAM等
20.7 嵌入处理器
20.8 吉比特I/O能力
20.9 可用的IP
20.10 速度等级
20.11 轻松的注解
21章 吉比特收发器
21.1 引言
21.2 差分对
21.3 多种多样的标准
21.4 8bit/10bit编码等
21.5 深入收发器模块内部
21.6 组合多个收发器
21.7 可配置
21.7.1 逗号检测
21.7.2 差分输出摆幅
21.7.3 片内末端电阻
21.7.4 预加重
21.7.5 均衡化
21.8 时钟恢复、抖动和眼图
21.8.1 时钟恢复
21.8.2 抖动和眼图
22章 可重配置计
22.1 可动态重配置逻辑
22.2 可动态重配置互连线
22.3 可重配置计
23章 现场可编程节点阵列
23.1 引言
23.2 估
23.3 picoChip公司的picoArray技术
23.3.1 一个理想的picoArray应用:无线基站
23.3.2 picoArray设计环境
23.4 QuickSilver公司的ACM技术
23.4.1 设计混合节点
23.4.2 系统控制器节点、输入输出节点及其他节点
23.4.3 空间与时间分割
23.4.4 在ACM上创建和运行程序
23.4.5 还有更多的内容
23.5 这就是硅,但与我们知道的并不相同
24章 的设计工
24.1 引言
24.2 ParaCoreArchitect
24.2.1 产生浮点处理能模块
24.2.2 产生FFT能模块
24.2.3 基于网络的接口
24.3 Confluence系统设计语言
24.3.1 一个简单的例子
24.3.2 还有更多的能
24.3.3 免费估版本
24.4 你是否有这种工
25章 创建基于开源的设计流程
25.1 如何白手起家创一家FPGA设计工作室
25.2 开发平台:Linux
25.3 验证环境
25.3.1 IcarusVerilog
25.3.2 Dinotrace和GTKWave
25.3.3 Covered代码覆盖率工
25.3.4 Verilator
25.3.5 Python
25.4 形验证
25.4.1 开源模型检查
25.4.2 基于开源的自动推断
25.4.3 真正的问题是什么
25.5 访问公共IP元件
25.5.1 OpenCores
25.5.2 OVL
25.6 综合与实现工
25.7 FPGA开发板
25.8 综合材料
26章 FPGA未来的发展
26.1 一种担忧
26.2 下一代结构和技术
26.2.1 十亿晶体管级器件
26.2.2 超快速I/O
26.2.3 超快速配置
26.2.4 更多的硬IP
26.2.5 模拟与混合信号器件
26.2.6 ASMBL与其他结构
26.2.7 不同的结构粒度
26.2.8 ASIC结构中的嵌入FPGA内
26.2.9 ASIC和FPGA结构中嵌入FPNA内或者相
26.2.10 基于MRAM的器件
26.3 设计工
26.4 期待意外的发生
在微信公众号后台回复 FPGA设计指南器件、工具和流程(中英文版) 获取中文版以及英文版电子书。