《深入浅出玩转FPGA》笔记

关于这本书,算是囫囵吞枣地读完了。网上很多人推荐这本书,评价很不错。以我的观点来看,确实是本不错的关于FPGA方面的书,作者确实经验丰富,书中有很多值得学习的东西,但是可能不是很适合初学者看,比较适合有一定项目经验的人读。因为这本书本身就是将作者许多自己的亲身经历总结出来的经验编纂出来的,可能作者也是看烦了市面上一众读物都秉持着介绍某类知识一定要事无巨细地从头说到尾的风格,所以作者对基础的介绍非常少。初学者学习FPGA的开发和调试去看作者另一本《FPGA/CPLD边练边学--快速入门Verilog/VHDL》比较好。

说到底,我作为菜鸟,这本书很多内容我也还是一知半懂,可能还需要更多的积累。在这里记录一下这本书给我的新收获。

一、关于时钟的设计要点:

(1)避免使用门控时钟或系统内部逻辑产生的时钟,多用使能时钟去替代。

门控时钟指的是在数据无效时,将寄存器时钟关闭的技术,能够有效降低功耗,是低功耗设计的重要方法之一。组合逻辑中多用门控时钟,一般驱动门控时钟的逻辑都是只包含一个与门(或门)。如果有其它的附加逻辑,容易因竞争产生不希望的毛刺。

(2)对于需要分频或倍频的时钟,用器件内部的专用时钟管理(如PLL或DLL)单元去生成。

我的理解是FPGA内部逻辑资源宝贵,用来做时钟管理太浪费,而且有专用的干嘛不用呢。

(3)尽量对输入的异步信号用时钟进行锁存。

所谓异步信号,是指两个处于不同时钟频率或相位控制下的信号。这样的信号在相互接口的时候如果没有可靠的同步机制,则存在很大的隐患,甚至极有可能导致数据的误采集。所以需要学习一些异步信号的同步机制。

(4)避免使用异步信号进行复位或置位控制。

这一点很显然,异步信号会增加毛刺出现的可能性。

 

二、提升系统性能的代码风格

(1)减少关键路径的逻辑等级

很多时候时序不达要求是因为有几条关键路径内部逻辑门延时太长,可以通过修改代码减少某些路径的层级,但通常会导致其他路径多出一个或几个逻辑门,“面积换速度”。

(2)逻辑复制(减少重载信号的散出)与资源共享

如果某个信号扇出比较大,插入buffer可以解决,但是会增加延时。通过逻辑复制,即复制产生这个信号的逻辑来驱动后续电路,既使平均扇出降低又不增加延时,但面积会增大。

资源共享是逻辑复制的逆过程,可以节省面积,但以牺牲速度为代价。

(3)消除组合逻辑的毛刺

引入时序逻辑,即添加寄存器来锁存输出结果,在时钟有效沿再输出。

 

三、异步复位、同步释放

异步复位不稳定,同步复位消耗额外资源。这种异步复位、同步释放的双缓冲电路根本思想是将异步信号同步化。

综合后的电路:

四、乒乓操作及串并转换设计

FPGA设计的重要思想有:面积换速度、乒乓操作及串并转换设计、流水线设计、逻辑复制和模块复用、模块化设计等。

乒乓操作:一种数据流控制的处理技巧。

第一个周期,数据进入缓冲区1;第二个周期,数据进入缓冲区2,同时输出数据选择控制将缓冲区1内的数据送出去;第三个周期,数据进入缓冲区1,缓冲区2内的数据被送出。如此循环,可以实现数据的无缝缓冲和处理。

串并转换:高速数据流处理的重要技巧之一。

串行输入的数据通过FPGA内部的n个移位寄存器后,最后并行输出的是一个n位宽的并行总线数据。

 

五、同步设计的好处:

  1. 有效避免异步信号通信产生的冲突;
  2. 便于时序约束、时序分析及时序仿真;
  3. 便于板级时序问题定位;
  4. 有利于同器件间的代码移植,减少重复设计;
  5. 最小化器件升级对同一工程带来的影响。

目前经验尚浅,很多体会不是很深。

 

六、专用握手信号

握手通信原理,即通信双方使用了专用控制信号进行状态指示,是一种常用的跨时钟域信号处理方式。

使用握手协议方式处理跨时钟域数据传输时,只需要双方的握手信号(req和ack)分别使用脉冲检测法进行同步。具体实现:发送域先将数据放入总线,然后发送req有效信号给接收域;接收域收到req有效信号后锁存数据总线,然后回送ack有效信号给发送域;发送域接收到ack有效信号后撤销当前req信号,接受域再检测到req信号撤销后也撤销ack信号,此时完成一次正常握手通信。

 

七、关于变量的定义

在编写testbench时,关于变量的定义一个常犯的错误就是将一个定义好的全局变量应用到了两个不同的always块中(如EX1C),由于两个always独立并行工作,会产生意想不到的后果。

解决方法是可以在begin...end之间定义always的块名,这样两个always块中的变量i就互不相关了。

八、HDL的三个最基本思想

连通性(Connectivity)、时间性(Time)和并行性(Concurrency)。

 

九、Testbench书写技巧

  1. 封装有用的子程序;
  2. 结构化Testbench;
  3. 防止对同一个寄存器同时进行读写操作;(使用非阻塞语句可以解决)
  4. 防止同时调用task。(可以在task中引入检错机制,检查task当前是否被调用)

十、建立时间、保持时间

建立时间满足:

[公式] 即 [公式]

保持时间满足:

[公式]

时钟满足: [公式] 由此可以计算FPGA的最大频率,系统时序优化主要是对传输路径延时 [公式] 做文章。

 

十一、逻辑仲裁设计要点

  1. 复位状态;
  2. 切换时序;当前状态执行完可以通过仲裁直接进入另一状态或者维持现有状态,不必一定要返回中间状态。
  3. 轮流响应;防止某一状态长期霸占总线。
  4. 超时退出。

十二、FPGA+CPU

  • 潜在优势:
  • 更易于满足大多数系统的功能性要求;
  • 潜在的改善了系统的性能;
  • 在某些应用中的灵活性和可升级性大大提高;
  • 处理器连接到外设的接口能够得到优化;
  • 软硬件互联的接口性能获得极大的提升;
  • 有利于设计的重用和新设计的快速成型;
  • 简单化芯片甚至整板的PCB布局布线。

 

其实这本书我还有很多地方没看明白,应该需要多看几遍。

参考文献:

《深入浅出玩转FPGA》第三版,吴厚航编著

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《深入浅出玩转FPGA随书光盘》是一本关于FPGA(现场可编程门阵列)的应用指南和教程。FPGA是一种灵活的可编程硬件设备,具有广泛的应用领域,在电子设计和嵌入式系统开发中起着重要的作用。 这本书将FPGA的基本原理和使用方法进行了深入浅出的介绍。它采用了实例驱动的方法,通过一系列具体的项目案例来引导读者逐步了解FPGA的设计流程和工具chain. 光盘是这本书的补充材料,其中包含了与书中案例相关的源代码和设计示例。通过光盘上的项目文件,读者可以简单地运行和验证FPGA的设计。 此外,这本书还提供了一些实用的技巧和经验,帮助读者更好地理解和使用FPGA。它详细介绍了FPGA的各个组成部分和相关工具的使用,包括VHDLVerilog等硬件描述语言的基础知识。 总体而言,《深入浅出玩转FPGA随书光盘》是一本适合初学者和有一定基础的读者的实用指南。它通过简单易懂的语言和具体的案例,帮助读者快速上手FPGA的设计和开发,为进一步深入学习和应用提供了良好的基础。无论是对于从事电子设计的工程师,还是对于对FPGA感兴趣的爱好者,这本书都是一本不可多得的参考书。 ### 回答2: 《深入浅出玩转FPGA》是一本专门介绍FPGA(现场可编程门阵列)的书籍,它以深入浅出的方式帮助初学者快速上手FPGA的相关知识和应用。 该书的随书光盘是一份很有价值的附赠物。光盘上面收录了与书籍内容相对应的实践项目、案例、实验代码等资源。通过光盘中的这些实践资源,读者可以动手实践,并深入理解书中所讲述的理论知识,以及应用FPGA的方法和技巧。 FPGA是一种灵活可编程的集成电路技术,能够实现各种数字电路功能。而光盘中的实践项目则提供了一系列的实验,通过这些实验,读者能够亲自动手设计和实现数字电路,并通过FPGA进行验证和调试。这样一来,读者不仅可以更深入地了解FPGA的原理和工作方式,还能够掌握常用的开发工具和编程语言。 除了实验项目,光盘还提供了一些案例,这些案例展示了FPGA在各个领域的应用,比如音视频处理、图像识别、通信系统等。通过了解这些实际应用案例,读者可以更好地理解FPGA的潜力和广泛应用的可能性。 光盘中的实验代码也是读者学习的重要资源。这些代码可以直接在FPGA开发平台上运行,帮助读者理解和实践书中所讲述的概念和原理。这样一来,读者可以通过实验代码的修改和调试,自己设计和优化数字电路,提高自己的实践能力和创新能力。 总的来说,随书光盘从实践的角度帮助读者更好地理解和应用FPGA技术。通过实验项目、案例和实验代码的使用,读者可以真正做到“深入浅出”,轻松玩转FPGA。 ### 回答3: 《深入浅出玩转FPGA》随书光盘是一本与FPGA相关的学习资料,为读者提供了深入学习和实践FPGA的机会。 首先,该光盘提供了一系列的实例和项目,让读者能够直接在FPGA上进行实践。通过这些实践,读者能够加深对FPGA的理解,并且能够将所学知识应用到实际项目中。这种实践式的学习方法使得读者可以更快地掌握FPGA的原理和应用。 其次,光盘中还包含了丰富的学习资源,如视频教程、电子书等。这些资源能够帮助读者从多个角度了解FPGA的各个方面。通过观看视频教程,读者可以直观地观察到FPGA的工作原理和实验现象,加深对FPGA的认识。电子书则提供了更为详细和全面的知识,对于理论知识的学习非常有帮助。 最后,该光盘还提供了交流和互动的平台。读者可以通过光盘中的论坛、在线问答等方式与其他学习者交流心得和问题。这种交流平台能够让读者在学习过程中得到更多的支持和帮助,解决遇到的困惑和难题。 综上所述,《深入浅出玩转FPGA》随书光盘是一本值得推荐的学习资料。通过实践、多媒体资源和交流平台的支持,读者可以很好地掌握FPGA的知识和技能,提升自己在FPGA领域的能力。希望读者能够充分利用该光盘提供的资源,全面深入地学习和玩转FPGA

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值