您好,欢迎光临有路网!
FPGA现代数字系统设计教程——基于Xilinx可编程逻辑器件与Vivado平台
QQ咨询:
有路璐璐:

FPGA现代数字系统设计教程——基于Xilinx可编程逻辑器件与Vivado平台

  • 作者:孟宪元
  • 出版社:清华大学出版社
  • ISBN:9787302541097
  • 出版日期:2019年12月01日
  • 页数:391
  • 定价:¥69.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    遵循摩尔定律的发展规律,FPGA技术已经进入到异构多核处理器和异构并行计算的崭新阶段,本书以FPGA的发展阶段讲述器件的架构和特性,以Verilog语言作为硬件描述语言讲述数字系统的设计,保证设计功能通过仿真验证的正确性,在Vivado设计套件中通过RTL分析、综合和布局布线的实现等进程达到时序收敛,性能上满足设计要求,本书也介绍了有关同步设计的技巧和要点,**综合等特性。DSP系统和嵌入式系统的设计流程和方法也作了介绍,*后以多个设计实例对前述的设计方法作了详尽的说明。 内容全面 涵盖FPGA及Vivado的基本功能,及其在数字系统中的多种设计流程。 技术前沿 基于当前的Vivado设计套件版本,论述了FPGA主流设计技术。 易于实践 全书结合大量实例论述,图文并茂、操作性强,便于快速动手实践。
    文章节选
    第5章
    CHAPTER 5
    数字系统的**
    设计与综合
    从基于原理图的设计转到硬件描述语言设计是电子设计的一次变革,它允许一个设计者从理论上以工艺无关的行为方式来描述所设计的数字系统模型。随着设计要求不断提高,复杂性不断增加,用硬件描述语言的数字电路设计在很多方面已经变成单调和费时的事情,设计者迫切需要更高层次抽象的设计与综合技术,为了适应技术的发展,大量高层次的设计技术与综合工具可提供给设计工程师使用。
    对于结构比较清晰的数字系统,可以利用硬件描述语言(HDL)直接在寄存器传输级(即RTL级)对设计的系统进行描述,这种描述是对系统行为的描述,然后由综合��具进行综合,利用硬件来实现数字系统。
    在第3章介绍Verilog HDL的基础上,第4章结合Vivado设计软件介绍了如何将描述系统行为的设计程序进行硬件实现,并加载到目标器件进行调试和验证。由于设计者的程序的编码风格和采用的设计技术直接影响系统模型的建立和综合的结果,本章将讨论如何使编写的程序能够建立正确的系统模型,并被软件综合成设计者设想的结构,包括编码风格的影响、综合工具优化的使用,以及同步设计技术的概念和措施。*后,按照数字系统的层次结构简要介绍综合可能采用的一些方法,以便读者理解从语言描述到硬件实现的过程。
    5.1Verilog编程风格
    对于使用HDL编程的抽象级描述,综合优化技术仅能协助设计者满足设计要求。综合工具遵循编码构造和按照RTL中展开的结构在*基础的层次上映射逻辑。如果没有类似FSM和RAM等十分规则的结构,综合工具可以从代码中提取功能,识别可替代的结构,并相应地实现。
    除了优化之外,为综合编码时的基本指导原则是不减少功能而使所写的结构和伪指令*小化,但是这样可能在仿真和综合之间产生不一致的结果。一个好的编码风格一般要保证RTL仿真与可综合的网表具有相同的性能。一类偏差是厂商支持的伪指令,它可以按照专门注释的形式(不考虑仿真工具)加入RTL代码,并引起综合工具按RTL代码本身不明显的方式推演一个逻辑结构。
    由于综合工具只能对可综合的语句产生*终的硬件实现,如果设计者对语言规则和电路行为的理解不同,则可能使设计描述的编码风格直接影响EDA软件工具的综合结果。例如,描述同一功能的两段RTL程序可能产生出时序和面积上完全不同的电路。好的描述方式就是综合器容易识别并可以综合出所期望的电路,而电路的质量取决于工程师使用的描述风格和综合工具的能力。
    5.1.1逻辑推理
    1. ifelse和case结构——特权与并行性
    在FPGA设计的范围内,把一系列用来决定逻辑应该采取什么动作的条件称作一个判决树。通常,可以分类成ifelse和case结构。考虑一个十分简单的寄存器写入的示例(例51)。
    例51
    module regwrite(
    outputreg rout,
    input clk,
    input[3:0]in,
    input[3:0]sel);
    always @(posedge clk)
    if(sel[0])rout <=in[0];
    else if (sel[1])rout <=in[1];
    else if (sel[2])rout <=in[2];
    else if (sel[3])rout <=in[3];
    endmodule
    这类ifelse的结构可以推理成如图51所示的多路选择器的结构。
    这类判决结构可以按许多不同的方式来实现,取决于速度/面积的权衡和要求的特权。下面介绍如何针对不同的综合结构对各种判决树进行编码和约束。
    ifelse结构固有的性质是特权的概念。出现在ifelse语句的条件所给予的特权超过判决树中的其他条件。所以,上述结构中更高的特权将对应靠近链的末尾和更接近寄存器的多路选择器。
    在图51中,如果选择字的位0被设置,则不管选择字的其他位的状态,in0将被寄存; 如果选择字的位0没有被设置,则利用其他位的状态来决定通过寄存器的信号。通常,只有当某一位(在此情况是*低位LSB)前面的所有位均没有被设置时,则利用该位来选择输出。这个特权多路选择器的真正实现如图52所示。
    图51串行多路选择器结构的简单特权
    图52特权多路选择器
    无论ifelse结构*后如何实现,将赋予出现在任何给定的条件之前的条件语句更高的特权。所以,当判决树有特权编码时应该利用ifelse结构。
    另外,case结构通常(不总是)用于所有条件互不相容的情况。换言之,可以在任何时刻只有一个条件成立的情况下优化判决树。例如,根据其他多位网线或寄存器(例如加法器的译码器)进行判决时,在一个时刻只有一个条件成立。这与上述用ifelse结构实现的译码操作是一样的。为了在Verilog HDL中实现完全相同的功能,可以采用case语句,见例52。
    例52
    case(l)
    sel[0]:rout <=in[0];
    sel[1]:rout <=in[1];
    sel[2]:rout <=in[2];
    sel[3]:rout <=in[3];
    endcase
    由于case语句是ifelse结构的一种有效替代,许多初学者以为这是自动地无特权判决树的实现。对于更严格的VHDL,该想法恰巧是正确的; 但是对于Verilog语言,却不是这种情况,可以从图53中case语句的实现看出。
    图53特权译码逻辑
    如图53所示,缺省的部分是通过特权译码来设置多路选择器上相应的使能引脚,这导致许多设计者落入陷阱。如果综合工具报告case结构不是并行的,则RTL必须把它改变为并行的。如果特权条件是成立的,在相应的位置应该采用ifelse结构。
    ……
    目录
    目录
    第1章现代数字系统设计概论
    1.1概述
    1.2数字系统的层次化结构
    1.2.1开关电路级的基础——CMOS反相器
    1.2.2逻辑级的门电路
    1.2.3寄存器传输级的有限状态机
    1.2.4数字系统的系统级构成
    1.2.5复杂系统的算法级设计
    1.3数字系统设计的描述方法
    1.3.1原理图设计
    1.3.2程序设计法
    1.3.3IP模块的使用
    1.3.4基于模型的设计技术
    1.3.5高层次综合——HLS设计
    1.3.6脚本设计技术
    1.4IP技术
    1.4.1IP知识产权模块
    1.4.2IP模块的种类与应用
    1.4.3片上系统和IP核复用
    1.5全可编程FPGA/SoC实现智能化系统
    1.5.1软件智能化和硬件*佳化
    1.5.2在线可重构技术
    1.5.3可重配置加速堆栈
    1.5.4自适应计算加速平台
    本章小结
    习题
    第2章可编程逻辑器件
    2.1概述
    2.1.1可编程逻辑器件概述
    2.1.2可编程逻辑器件分类
    2.2CPLD的结构和工作原理
    2.2.1简单可编程逻辑器件原理
    2.2.2CPLD的结构和工作原理
    2.3FPGA的结构和工作原理
    2.3.1SRAM查找表类型
    2.3.2反熔丝多路开关类型
    2.4逻辑级FPGA的结构和工作原理
    2.4.1可编程逻辑
    2.4.2可编程互连线
    2.4.3可编程I/O
    2.5系统级FPGA的结构和工作原理
    2.5.1片上存储器及接口
    2.5.2数字时钟管理
    2.5.3时钟资源
    2.5.4系统级I/O
    2.6平台级FPGA的结构和工作原理
    2.6.1DSP模块
    2.6.2高速串行接口
    2.7全可编程FPGA的特性和结构
    2.7.1采用统一的7系列架构
    2.7.2高性能和低功耗结合的工艺
    2.8ASIC架构的UltraScale系列
    2.8.1UltraScale架构
    2.8.2SSI互连技术
    2.9FPGA的配置
    2.9.1编程原理简介
    2.9.2编程模式
    2.9.3典型的配置电路
    2.9.4编程流程
    2.9.5部分重配置
    本章小结
    习题
    第3章Verilog硬件描述语言
    3.1硬件描述语言概述
    3.1.1硬件描述语言特点
    3.1.2层次化设计
    3.2Verilog HDL程序的基本结构
    3.2.1模块结构分析
    3.2.2模块的实例化
    3.3Verilog HDL词法、数据类型和运算符
    3.3.1词法约定
    3.3.2数据类型
    3.3.3运算符
    3.4Verilog HDL行为语句
    3.4.1赋值语句
    3.4.2顺序块和并行块语句
    3.4.3结构说明语句
    3.4.4条件语句
    3.4.5循环语句
    3.4.6系统任务和系统函数
    3.4.7编译预处理命令
    3.4.8Verilog HDL可综合设计
    3.5Verilog HDL设计举例
    3.5.1组合电路设计
    3.5.2时序电路设计
    3.5.3数字系统设计
    3.5.4数码管扫描显示电路
    3.5.5LED通用异步收发电路设计
    3.6Testbench文件与设计
    本章小结
    习题
    第4章Vivado设计工具
    4.1Vivado工具概述
    4.1.1单一的、共享的、可扩展的数据模型
    4.1.2标准化XDC约束文件——SDC
    4.1.3多维度分析布局器
    4.1.4IP封装器、集成器和目录
    4.1.5Vivado HLS
    4.1.6其他特性
    4.1.7TCL特性
    4.1.8Vivado按键流程执行设计项目
    4.2Vivado设计流程
    4.2.1创建工程
    4.2.2功能仿真
    4.2.3RTL级分析
    4.2.4综合设计
    4.2.5分配引脚和时序
    4.2.6设计实现
    4.2.7生成bit文件
    4.2.8下载
    4.3产生IP集成器子系统设计
    4.3.1产生IP集成器模块设计
    4.3.2定制IP
    4.3.3完成子系统设计
    4.3.4产生IP输出产品
    4.3.5例示IP到设计中
    4.4硬件诊断
    4.4.1设计诊断概述
    4.4.2Vivado逻辑诊断IP核
    4.4.3HDL例示法添加ILA核
    4.4.4系统内诊断uart_led设计
    4.4.5网表插入法添加诊断核
    4.4.6添加VIO诊断核
    本章小结
    习题
    第5章数字系统的**设计与综合
    5.1Verilog编程风格
    5.1.1逻辑推理
    5.1.2陷阱
    5.1.3设计组织
    5.1.4针对Xilinx FPGA的HDL编码
    5.2综合优化
    5.2.1速度与面积
    5.2.2资源共享
    5.2.3流水线、重新定时和寄存器平衡
    5.2.4有限状态机编译
    5.3数字系统的同步设计
    5.3.1同步设计基本原理
    5.3.2建立和保持时间
    5.3.3时序例外约束
    5.3.4同步设计中的异步问题
    5.4数字系统的综合
    5.4.1数字系统综合概述
    5.4.2系统级综合
    5.4.3**综合
    5.4.4寄存器传输级综合
    5.4.5逻辑级综合
    本章小结
    习题
    第6章综合设计实例
    6.1实例一: 键盘输入电路设计
    6.1.1PS/2通信协议
    6.1.2PS/2接口设计
    6.1.3键盘输入程序
    6.2实例二: VGA显示电路设计
    6.2.1设计任务
    6.2.2原理分析与系统方案
    6.2.3彩条显示
    6.2.4Logo的VGA显示
    6.3实例三: 俄罗斯方块游戏设计
    6.3.1系统组成
    6.3.2数据通道
    6.3.3控制单元
    6.3.4按键输入处理模块
    6.3.5显示部分
    6.4实例四: 五子棋人机对弈游戏设计
    6.4.1gobang_top
    6.4.2gobang_datapath
    6.4.3gobang_logic
    6.4.4gobang_strategy
    6.4.5score_calculater
    6.4.6win_checker
    6.4.7输出显示
    习题
    附录AEGO1用户手册
    A.1概述
    A.2FPGA
    A.3板卡供电
    A.4系统时钟
    A.5FPGA配置
    A.6通用I/O接口
    A.6.1按键
    A.6.2开关
    A.6.3LED
    A.6.4七段数码管
    A.7VGA接口
    A.8音频接口
    A.9USBUART/JTAG接口
    A.10USB转PS2接口
    A.11SRAM接口
    A.12模拟电压输入
    A.13DAC输出接口
    A.14蓝牙模块
    A.15通用扩展I/O
    附录BVerilog HDL(IEEE 1364—2001)关键词表及说明
    参考文献
    编辑推荐语
    遵循摩尔定律的发展规律,FPGA技术已经进入到异构多核处理器和异构并行计算的崭新阶段,本书以FPGA的发展阶段讲述器件的架构和特性,以Verilog语言作为硬件描述语言讲述数字系统的设计,保证设计功能通过仿真验证的正确性,在Vivado设计套件中通过RTL分析、综合和布局布线的实现等进程达到时序收敛,性能上满足设计要求,本书也介绍了有关同步设计的技巧和要点,**综合等特性。DSP系统和嵌入式系统的设计流程和方法也作了介绍,*后以多个设计实例对前述的设计方法作了详尽的说明。 内容全面 涵盖FPGA及Vivado的基本功能,及其在数字系统中的多种设计流程。 技术前沿 基于当前的Vivado设计套件版本,论述了FPGA主流设计技术。 易于实践 全书结合大量实例论述,图文并茂、操作性强,便于快速动手实践。

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外