专栏首页数字芯片FPGA设计三大法则

FPGA设计三大法则

01

面积与速度互换

这里的面积指的是FPGA的芯片资源,包括逻辑资源和I/O资源等;这里的速度指的是FPGA工作的最高频率(和DSP或者ARM不同,FPGA设计的工 作频率是不固定的,而是和设计本身的延迟紧密相连)。

在实际设计中,使用最小的面积设计出最高的速度是每一个开发者追求的目标,但是“鱼和熊掌不可兼得”,取舍之间展示了一个开发者的智慧。

1.速度换面积

速度优势可以换取面积的节约。面积越小,就意味着可以用更低的成本来实现产品的功 能。速度换面积的原则在一些较复杂的算法设计中常常会用到。在这些算法设计中,流水线设计常常是必须用到的技术。在流水线的设计中,这些被重复使用但是使 用次数不同的模块将会占用大量的FPGA资源。对FPGA的设计技术进行改造,将被重复使用的算法模块提炼出最小的复用单元,并利用这个最小的高速代替原 设计中被重复使用但次数不同的模块。当然,在改造的过程中必然会增加一些其他的资源来实现这个代替的过程。但是只要速度具有优势,那么增加的这部分逻辑依 然能够实现降低面积提高速度的目的。

可以看到,速度换面积的关键是高速基本单元的复用。

2.面积换速度

在这种方法中面积的复制可以换取速度的提高。支持的速度越高,就意味着可以实现更高的产品性能。一些注重产品性能的应用领域可以采用并行处理技术,实现面积换速度。

02

硬件可实现原则

FPGA设计通常会使用HDL语言,比如Verilog HDL或者VHDL。当采用HDL语言来描述一个硬件电路功能的时候,一定要确保代码描述的电路是硬件可实现的。Verilog HDL语言的语法与C语言很相似,但是它们之间有着本质的区别。C语言是基于过程的高级语言,编译后可以在CPU上运行。而Verilog HDL语言描述的本身就是硬件结构,编译后是硬件电路。因此,有些语句在C语言的环境中应用是没有问题的,但是在HDL语言环境下就会导致结果不正确或者不理想。

如:for(i=0;i<16;i++)DoSomething();

在C语言中运行没有任何问题,但是在Verilog HDL的环境下编译就会导致综合后的资源严重浪费。

03

同步设计原则

同步电路和异步电路是FPGA设计的两种基本电路结构形式。

异步电路的最大缺点是会产生毛刺。

同步设计的核心电路是由各种触发器构成的。这类电路的任何输出都是在某个时钟的边沿驱动触发器产生的。所以,同步设计可以很好地避免毛刺的产生。

END

本文分享自微信公众号 - 数字ICer(Studying_Times),作者:数字ICer

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • DC的逻辑综合与优化

    对进行时序路径、工作环境、设计规则等进行约束完成之后,DC就可以进行综合、优化时序了,DC的优化步骤将在下面进行讲解。然而,当普通模式下不能进行优化的,就需要我...

    数字芯片社区
  • 硬件工程师面试题【1】

    答:Setup/Hold Time 用于测试芯片对输入信号和时钟信号之间的时间要求。建立时间(Setup Time)是指触发器的时钟信号上升沿到来以前,数据能...

    数字芯片社区
  • 两态数据类型

    Verilog有两种基本数据类型:变量(reg)和网线(wire),这是四态的数据类型(0、1、X、Z)。

    数字芯片社区
  • 以 B 站为例,聊聊站内消息系统的设计

    使用过简书,知乎或 b 站的小伙伴应该都有这样的使用体验:当有其他用户关注我们或者私信我们的行为时,我们会收到相关的消息。 虽然这些功能看上去简单,但其背后的设...

    Guide哥
  • Oracle表级备份

    计划任务:为避免数据库压力,设定在每天凌晨1点执行脚本进行备份。一个root用户、一个oracle用户。

    院长技术
  • Kafka Consumer 的 Rebalance 机制

    如上图所示,Consumer 使用 Consumer Group 名称标记自己,并且发布到主题的每条记录都会传递到每个订阅消费者组中的一个 Consumer 实...

    haifeiWu
  • 【电工与电子技术A】一:电路及其基本物理量

    一类电路用以实现电能的生产,传输,转换和分配,如店里供电设备与各用电设备组成的电力系统。

    周旋
  • 实现与优化深度神经网络

    全连接神经网络 辅助阅读:TensorFlow中文社区教程 - 英文官方教程(http://www.tensorfly.cn/tfdoc/tutorials/m...

    用户1332428
  • TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络

    全连接神经网络 辅助阅读:TensorFlow中文社区教程 - 英文官方教程 代码见:full_connect.py Linear Model 加载lesso...

    梦里茶
  • 理解 C# 项目 csproj 文件格式的本质和编译流程

    发布于 2018-05-10 00:13 更新于 2018-08...

    walterlv

扫码关注云+社区

领取腾讯云代金券