FPGA设计实战演练(高级技巧篇)

FPGA设计实战演练(高级技巧篇)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2015-09
版次: 1
ISBN: 9787302404439
定价: 55.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 309页
字数: 490千字
98人买过
  •   现代FPGA的结构越来越复杂,多时钟域的设计现在已是常态。对于功能电路来说,复位结构都必不可少。在同步逻辑设计中如何很好地处理异步复位,甚至在多时钟域之间传递(异步)复位信号也是逻辑工程师经常面临的挑战。本书除专门介绍了上述电路的设计方法外,还介绍了状态机的设计。在介绍这些通用电路结构的基础上,还介绍了代码优化以及如何对设计进行综合与布局布线优化方面的相关内容。《FPGA设计实战演练(高级技巧篇)》可供通信工程、电子工程、计算机、微电子等专业并有一定FPGA开发基础的在校大学生、研究生参考,也可作为硬件工程师、FPGA工程师的工具书。 王敏志 曾就职于多家科研院所,从事过雷达、通信以及医疗电子方面的研发工作。在电子期刊网站,多以coyoo、湘攸客为名发布技术文章或学习博客。参与过多型舰载雷达的研发工作,主要负责数字电路方面的开发,包括电路设计、DSP以及FPGA编程;后从事Altera代理商现场技术支撑工作多年。目前专心投入研发工作,方向是数字医疗开发、派特(PET)的数字信号处理部分以及基于FPGA的TDC实现。 第1章从PCB开始研究FPGA设计问题
    1.1基于FPGA的高速电路板设计
    1.1.1PCB材料选择
    1.1.2PCB上的传输线走线
    1.1.3阻抗计算
    1.1.4降低串扰和维持信号完整性的布线方法
    1.2FPGA的电源供电
    1.2.1供电要求
    1.2.2PCB设计的电源和地叠层分布
    1.3退耦电容
    1.3.1为何需要退耦电容
    1.3.2计算电容值
    1.3.3电容的摆放
    1.4小结

    第2章如何处理逻辑设计中的时钟域
    2.1PLL对时钟域的管理
    2.2单比特信号跨时钟域的同步处理
    2.2.1亚稳态及其危害
    2.2.2处理亚稳态的经典办法——双触发
    2.2.3使用三级触发器对亚稳态进行同步处理
    2.2.4如何同步快速信号到慢速时钟域
    2.3多比特信号跨时钟域同步处理
    2.3.1多比特信号融合
    2.3.2多周期路径规划
    2.4使用FIFO结构处理多比特跨时钟域信号
    2.5多时钟域设计分区划分
    2.5.1在时钟边界划分分区
    2.5.2多时钟域分区划分后的静态时序分析
    2.5.3对多周期规划逻辑设计进行分区划分
    2.6设计中的门控时钟行波时钟的处理
    2.6.1衍生时钟处理指导原则一
    2.6.2衍生时钟处理指导原则二
    2.6.3衍生时钟处理指导原则三
    2.6.4衍生时钟处理的其他方法
    2.7小结

    第3章正确分析衍生时钟
    3.1实例演示门控时钟分析处理
    3.1.1时钟反相生成的时钟
    3.1.2时钟经过缓冲后生成的时钟
    3.1.3经过使能处理后的时钟
    3.1.4时钟多路选择器输出的时钟
    3.1.5经外部反馈回来的时钟
    3.2实例演示衍生时钟的分析和处理
    3.2.1触发器切换生成的时钟
    3.2.2由行波计数器生成的时钟
    3.2.3由同步计数器生成的时钟
    3.2.4由PLL生成的时钟
    3.3小结

    第4章复位电路的实现及其时序分析处理
    4.1同步复位设计处理
    4.2异步复位设计处理
    4.3异步复位同步化(异步复位同步释放设计处理)
    4.4Recovery和Removal分析
    4.4.1什么是Recovery和Removal分析
    4.4.2什么是Recovery和Removal故障
    4.4.3为何总是建议使用异步复位
    4.4.4分析并解决Recovery故障
    4.5小结

    第5章如何写好状态机
    5.1状态机的特定及常见问题
    5.2如何选择状态机的编码方式
    5.3合理选择及使用单进程或多进程来设计状态机
    5.3.1多进程状态机
    5.3.2单进程状态机
    5.3.3状态机的比较
    5.4设计综合工具能够识别的状态机
    5.4.1采用Verilog编写
    5.4.2采用VHDL编写
    5.5小结

    第6章如何在书写代码时进行速度优化
    6.1逻辑设计中速度的概念
    6.2时序收敛的早期考虑
    6.3代码编写过程中时刻考虑时序优化
    6.3.1编写时序收敛代码的总体规则
    6.3.2通过减少关键路径上的组合逻辑单元数来优化时序
    6.3.3适当进行逻辑复制以优化设计速度
    6.3.4在组合逻辑中插入寄存器优化时序
    6.3.5通过寄存器平衡优化时序
    6.3.6使用并行结构优化时序
    6.3.7通过消除代码中的优先级优化速度
    6.4小结

    第7章如何在书写代码时进行面积优化
    7.1优化设计面积——操作符平衡
    7.2优化设计面积——打破设计流水
    7.3优化设计面积——资源共享
    7.3.1在互斥操作中共享操作符
    7.3.2共享表达式
    7.3.3共享逻辑功能模块
    7.4复位对设计面积的影响
    7.5从器件角度理解如何节省资源
    7.5.1利用厂家原语进行面积优化
    7.5.2巧用触发器的控制端口
    7.5.3多路选择器优化
    7.6小结

    第8章代码优化设计实例分析
    8.1对设计时序进行优化的实例分析
    8.1.1时序优化实例一:同步电路时序分析
    8.1.2时序优化实例二:异步电路及时序例外分析
    8.1.3时序优化实例三:利用PLL对设计进行时序优化
    8.2修改代码优化面积具体实例分析
    8.3小结

    第9章如何编写可综合代码
    9.1普通if和case语句可综合代码书写规则
    9.1.1基本的if语句
    9.1.2简单的case语句
    9.2如何调整if和case语句中关键信号的路径
    9.2.1简单、多个并行if语句的情况
    9.2.2单个if语句的情况
    9.2.3if语句嵌套case语句的情况
    9.2.4case语句嵌套if语句的情况
    9.3提高设计性能的代码技巧
    9.3.1通过复制数据路径提高设计性能
    9.3.2如何更好地处理if条件语句中的算术操作
    9.4代码可综合常用指导原则
    9.4.1避免创建不必要的锁存器
    9.4.2进程中的敏感列表一定要完备
    9.4.3for循环的使用以及避免组合逻辑回环
    9.4.4阻塞和非阻塞赋值
    9.4.5可综合代码设计对时钟和复位的要求
    9.5小结

    第10章综合以及布局布线优化
    10.1综合级速度与面积优化设置
    10.2使用设计助手和优化顾问
    10.3对设计执行早期时序估算
    10.4综合网表优化
    10.5物理综合
    10.5.1物理综合概述
    10.5.2针对性能的物理综合优化选项
    10.5.3针对布局布线的物理综合优化选项
    10.6了解并理解布局布线工具及其对设计的优化
    10.6.1可以帮助布局布线的一些综合建议
    10.6.2时序约束及其优化
    10.6.3优化I/O时序
    10.6.4优化设计面积
    10.7了解逻辑单元所见即所得结构
    10.7.1逻辑单元结构
    10.7.2布线延时与布线距离以及布线规则的关系
    10.7.3综合网表建议
    10.7.4综合及优化
    10.8小结

    第11章预先布图规划
    11.1增量编译
    11.1.1增量编译简介
    11.1.2使用增量编译的设计流程
    11.2为何要对设计进行分区和布图规划
    11.3对设计进行分区划分
    11.3.1设计分区划分宏观考虑因素
    11.3.2设计分区划分指导原则
    11.3.3如何对第三方设计进行分区划分
    11.3.4检查设计分区的质量
    11.3.5从底层导入设计时如何导入SDC约束
    11.4对设计进行预先布图规划的危害
    11.5布图规划
    11.5.1布图规划简介
    11.5.2布图规划布局指导原则
    11.5.3实际应用实例推荐的设计流程
    11.6小结
    参考文献
  • 内容简介:
      现代FPGA的结构越来越复杂,多时钟域的设计现在已是常态。对于功能电路来说,复位结构都必不可少。在同步逻辑设计中如何很好地处理异步复位,甚至在多时钟域之间传递(异步)复位信号也是逻辑工程师经常面临的挑战。本书除专门介绍了上述电路的设计方法外,还介绍了状态机的设计。在介绍这些通用电路结构的基础上,还介绍了代码优化以及如何对设计进行综合与布局布线优化方面的相关内容。《FPGA设计实战演练(高级技巧篇)》可供通信工程、电子工程、计算机、微电子等专业并有一定FPGA开发基础的在校大学生、研究生参考,也可作为硬件工程师、FPGA工程师的工具书。
  • 作者简介:
    王敏志 曾就职于多家科研院所,从事过雷达、通信以及医疗电子方面的研发工作。在电子期刊网站,多以coyoo、湘攸客为名发布技术文章或学习博客。参与过多型舰载雷达的研发工作,主要负责数字电路方面的开发,包括电路设计、DSP以及FPGA编程;后从事Altera代理商现场技术支撑工作多年。目前专心投入研发工作,方向是数字医疗开发、派特(PET)的数字信号处理部分以及基于FPGA的TDC实现。
  • 目录:
    第1章从PCB开始研究FPGA设计问题
    1.1基于FPGA的高速电路板设计
    1.1.1PCB材料选择
    1.1.2PCB上的传输线走线
    1.1.3阻抗计算
    1.1.4降低串扰和维持信号完整性的布线方法
    1.2FPGA的电源供电
    1.2.1供电要求
    1.2.2PCB设计的电源和地叠层分布
    1.3退耦电容
    1.3.1为何需要退耦电容
    1.3.2计算电容值
    1.3.3电容的摆放
    1.4小结

    第2章如何处理逻辑设计中的时钟域
    2.1PLL对时钟域的管理
    2.2单比特信号跨时钟域的同步处理
    2.2.1亚稳态及其危害
    2.2.2处理亚稳态的经典办法——双触发
    2.2.3使用三级触发器对亚稳态进行同步处理
    2.2.4如何同步快速信号到慢速时钟域
    2.3多比特信号跨时钟域同步处理
    2.3.1多比特信号融合
    2.3.2多周期路径规划
    2.4使用FIFO结构处理多比特跨时钟域信号
    2.5多时钟域设计分区划分
    2.5.1在时钟边界划分分区
    2.5.2多时钟域分区划分后的静态时序分析
    2.5.3对多周期规划逻辑设计进行分区划分
    2.6设计中的门控时钟行波时钟的处理
    2.6.1衍生时钟处理指导原则一
    2.6.2衍生时钟处理指导原则二
    2.6.3衍生时钟处理指导原则三
    2.6.4衍生时钟处理的其他方法
    2.7小结

    第3章正确分析衍生时钟
    3.1实例演示门控时钟分析处理
    3.1.1时钟反相生成的时钟
    3.1.2时钟经过缓冲后生成的时钟
    3.1.3经过使能处理后的时钟
    3.1.4时钟多路选择器输出的时钟
    3.1.5经外部反馈回来的时钟
    3.2实例演示衍生时钟的分析和处理
    3.2.1触发器切换生成的时钟
    3.2.2由行波计数器生成的时钟
    3.2.3由同步计数器生成的时钟
    3.2.4由PLL生成的时钟
    3.3小结

    第4章复位电路的实现及其时序分析处理
    4.1同步复位设计处理
    4.2异步复位设计处理
    4.3异步复位同步化(异步复位同步释放设计处理)
    4.4Recovery和Removal分析
    4.4.1什么是Recovery和Removal分析
    4.4.2什么是Recovery和Removal故障
    4.4.3为何总是建议使用异步复位
    4.4.4分析并解决Recovery故障
    4.5小结

    第5章如何写好状态机
    5.1状态机的特定及常见问题
    5.2如何选择状态机的编码方式
    5.3合理选择及使用单进程或多进程来设计状态机
    5.3.1多进程状态机
    5.3.2单进程状态机
    5.3.3状态机的比较
    5.4设计综合工具能够识别的状态机
    5.4.1采用Verilog编写
    5.4.2采用VHDL编写
    5.5小结

    第6章如何在书写代码时进行速度优化
    6.1逻辑设计中速度的概念
    6.2时序收敛的早期考虑
    6.3代码编写过程中时刻考虑时序优化
    6.3.1编写时序收敛代码的总体规则
    6.3.2通过减少关键路径上的组合逻辑单元数来优化时序
    6.3.3适当进行逻辑复制以优化设计速度
    6.3.4在组合逻辑中插入寄存器优化时序
    6.3.5通过寄存器平衡优化时序
    6.3.6使用并行结构优化时序
    6.3.7通过消除代码中的优先级优化速度
    6.4小结

    第7章如何在书写代码时进行面积优化
    7.1优化设计面积——操作符平衡
    7.2优化设计面积——打破设计流水
    7.3优化设计面积——资源共享
    7.3.1在互斥操作中共享操作符
    7.3.2共享表达式
    7.3.3共享逻辑功能模块
    7.4复位对设计面积的影响
    7.5从器件角度理解如何节省资源
    7.5.1利用厂家原语进行面积优化
    7.5.2巧用触发器的控制端口
    7.5.3多路选择器优化
    7.6小结

    第8章代码优化设计实例分析
    8.1对设计时序进行优化的实例分析
    8.1.1时序优化实例一:同步电路时序分析
    8.1.2时序优化实例二:异步电路及时序例外分析
    8.1.3时序优化实例三:利用PLL对设计进行时序优化
    8.2修改代码优化面积具体实例分析
    8.3小结

    第9章如何编写可综合代码
    9.1普通if和case语句可综合代码书写规则
    9.1.1基本的if语句
    9.1.2简单的case语句
    9.2如何调整if和case语句中关键信号的路径
    9.2.1简单、多个并行if语句的情况
    9.2.2单个if语句的情况
    9.2.3if语句嵌套case语句的情况
    9.2.4case语句嵌套if语句的情况
    9.3提高设计性能的代码技巧
    9.3.1通过复制数据路径提高设计性能
    9.3.2如何更好地处理if条件语句中的算术操作
    9.4代码可综合常用指导原则
    9.4.1避免创建不必要的锁存器
    9.4.2进程中的敏感列表一定要完备
    9.4.3for循环的使用以及避免组合逻辑回环
    9.4.4阻塞和非阻塞赋值
    9.4.5可综合代码设计对时钟和复位的要求
    9.5小结

    第10章综合以及布局布线优化
    10.1综合级速度与面积优化设置
    10.2使用设计助手和优化顾问
    10.3对设计执行早期时序估算
    10.4综合网表优化
    10.5物理综合
    10.5.1物理综合概述
    10.5.2针对性能的物理综合优化选项
    10.5.3针对布局布线的物理综合优化选项
    10.6了解并理解布局布线工具及其对设计的优化
    10.6.1可以帮助布局布线的一些综合建议
    10.6.2时序约束及其优化
    10.6.3优化I/O时序
    10.6.4优化设计面积
    10.7了解逻辑单元所见即所得结构
    10.7.1逻辑单元结构
    10.7.2布线延时与布线距离以及布线规则的关系
    10.7.3综合网表建议
    10.7.4综合及优化
    10.8小结

    第11章预先布图规划
    11.1增量编译
    11.1.1增量编译简介
    11.1.2使用增量编译的设计流程
    11.2为何要对设计进行分区和布图规划
    11.3对设计进行分区划分
    11.3.1设计分区划分宏观考虑因素
    11.3.2设计分区划分指导原则
    11.3.3如何对第三方设计进行分区划分
    11.3.4检查设计分区的质量
    11.3.5从底层导入设计时如何导入SDC约束
    11.4对设计进行预先布图规划的危害
    11.5布图规划
    11.5.1布图规划简介
    11.5.2布图规划布局指导原则
    11.5.3实际应用实例推荐的设计流程
    11.6小结
    参考文献
查看详情
您可能感兴趣 / 更多