引言:不管你是一名逻辑设计师、硬件工程师或系统工程师,甚或拥有所有这些头衔,只要你在任何一种高速和多协议的复杂系统中使用了fpga,你就很可能需要努力解决好器件配置、电源管理、ip集成、信号完整性和其他的一些关键设计问题。
不过,你不必独自面对这些挑战,因为在当前业内领先的fpga公司里工作的应用工程师每天都会面对这些问题,而且他们已经提出了一些将令你的设计工作变得更轻松的设计指导原则和解决方案。掌握fpga设计的三大黄金法则,让你设计更轻松。
一.面积与速度的平衡互换原则
这里的面积指的是fpga的芯片资源,包括逻辑资源和i/o资源等;这里的速度指的是fpga工作的最高频率(和dsp或者arm不同,fpga设计的工作频率是不固定的,而是和设计本身的延迟紧密相连)。 在实际设计中,使用最小的面积设计出最高的速度是每一个开发者追求的目标,但是“鱼和熊掌不可兼得”,取舍之间展示了一个开发者的智慧。
1.速度换面积
速度优势可以换取面积的节约。面积越小,就意味着可以用更低的成本来实现产品的功能。速度换面积的原则在一些较复杂的算法设计中常常会用到。在这些算法设计中,流水线设计常常是必须用到的技术。在流水线的设计中,这些被重复使用但是使用次数不同的模块将会占用大量的fpga资源。对fpga的设计技术进行改造,将被重复使用的算法模块提炼出最小的复用单元,并利用这个最小的高速代替原设计中被重复使用但次数不同的模块。当然,在改造的过程中必然会增加一些其他的资源来实现这个代替的过程。但是只要速度具有优势,那么增加的这部分逻辑依然能够实现降低面积提高速度的目的。
可以看到,速度换面积的关键是高速基本单元的复用。
2.面积换速度
在这种方法中面积的复制可以换取速度的提高。支持的速度越高,就意味着可以实现更高的产品性能。一些注重产品性能的应用领域可以采用并行处理技术,实现面积换速度。
二.硬件可实现原则
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的环境下编译就会导致综合后的资源严重浪费。
三.同步设计原则
同步电路和异步电路是fpga设计的两种基本电路结构形式。
异步电路的最大缺点是会产生毛刺。同步设计的核心电路是由各种触发器构成的。这类电路的任何输出都是在某个时钟的边沿驱动触发器产生的。所以,同步设计可以很好地避免毛刺的产生。
三星Neo QLED 8K标牌三大亮点引领行业风向
电蚊拍改装特斯拉线圈方法介绍
压敏电阻器的工作原理及特性
智能家庭应用之语音识别系统
简述MATLAB中传统信号如何处理
FPGA工程师手记:FPGA系统设计黄金法则
英特尔发布从云到边缘的多项创新技术,驱动数字化转型
大厂产品经理常用的原型工具有哪些?
什么是矩阵切换器
建立FPGA深度学习加速生态圈,为人工智能赋能
红外接收头详细介绍
变压器室内通风的探讨
!供应Agilent 3499A/HP3499A/Agile
华灿光电拟19.6亿元出售和谐光电100%股权 本次交易将改善公司的流动性
小数分频技术与ADF4193快速开关频率合成器的研究
爱克莱特过会,募资8.4亿元加码景观照明
5-100V内置MOS低成本汽车摩托车车灯的做法
iPhone8Plus最新消息:iPhone8Plus爆裂问题大揭秘,四点设计缺陷露真相
火箭灯的制作教程
5G有望在2025年占全球移动连接的15%