广告

资深大牛分享FPGA设计的经验技巧

2019-12-13 12:54:56 阅读:
任何编程语言的学习都不是一朝一夕的事,经验技巧的积累都是在点滴中完成,FPGA设计也无例外。下面就以我的切身体会,谈谈FPGA设计的经验技巧。

从大学时代第一次接触FPGA 至今已有10多年的时间,至今记得当初第一次在EDA实验平台上完成数字秒表、抢答器、密码锁等实验时那个兴奋劲。iFMednc

当时由于没有接触到HDL硬件描述语言,设计都是在MAX+plus II原理图环境下用74系列逻辑器件搭建起来的。iFMednc

后来读研究生,工作陆陆续续也用过Quartus  II、FoundaTIon、ISE、Libero,并且学习了verilog HDL语言,学习的过程中也慢慢体会到verilog的妙用,原来一小段语言就能完成复杂的原理图设计,而且语言的移植性可操作性比原理图设计强很多。iFMednc

在学习一门技术之前我们往往从它的编程语言入手,比如学习单片机时,我们往往从汇编或者C语言入门。所以不少开始接触FPGA的开发人员,往往是从VHDL或者Verilog开始入手学习的。但我个人认为,若能先结合《数字电路基础》系统学习各种74系列逻辑电路 ,深刻理解逻辑功能,对于学习HDL语言大有裨益,往往会起到事半功倍的效果。iFMednc

当然,任何编程语言的学习都不是一朝一夕的事,经验技巧的积累都是在点滴中完成,FPGA设计也无例外。下面就以我的切身体会,谈谈FPGA设计的经验技巧。iFMednc

我们先谈一下FPGA的基础知识:

1.硬件设计基本原则。iFMednc

FPGA(Field-Program mable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。iFMednc

速度与面积平衡和互换原则:iFMednc

• 一个设计如果时序余量较大,所能跑的频率远高于设计要求,能可以通过模块复用来减少整个设计消耗的芯片面积,这就是用速度优势换面积的节约;iFMednc

反之,如果一个设计的时序要求很高,普通方法达不到设计频率,那么可以通过数据流串并转换,并行复制多个操作模块,对整个设计采用“乒乓操作”和“串并转换”的思想进行处理,在芯片输出模块处再对数据进行“并串转换”。从而实现了用面积复制换取速度的提高。iFMednc

• 硬件原则:理解HDL本质。iFMednc

• 系统原则:整体把握。iFMednc

• 同步设计原则:设计时序稳定的基本原则。iFMednc

2.Verilog作为一种HDL语言,对系统行为的建模方式是分层次的。iFMednc

比较重要的层次有系统级、算法级、寄存器 传输级、逻辑级、门级、电路开关级。iFMednc

3.实际工作中,除了描述仿真测试激励时使用for循环语句外,极少在RTL级编码中使用for循环。iFMednc

这是因为for循环会被综合器展开为所有变量情况的执行语句,每个变量独立占用寄存器资源,不能有效的复用硬件逻辑资源,造成巨大的浪费。一般常用case语句代替。iFMednc

4. if…else…和case在嵌套描述时是有很大区别的。iFMednc

if…else…是有优先级的,一般来说,第一个if的优先级最高,最后一个else的优先级最低。而case语句是平行语句,它是没有优先级的,而建立优先级结构需要耗费大量的逻辑资源,所以能用case的地方就不要用if…else…语句。iFMednc

补充:1.也可以用if…; if…; if…;描述不带优先级的“平行”语句。iFMednc

5.FPGA一般触发器资源比较丰富,而CPLD组合逻辑资源更丰富。iFMednc

6.FPGA和CPLD的组成。iFMednc

FPGA基本有可编程I/O单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等6部分组成。iFMednc

CPLD的结构相对比较简单,主要由可编程I/O单元、基本逻辑单元、布线池和其他辅助功能模块组成。iFMednc

7.Block RAM.iFMednc

3种块RAM结构,M512 RAM(512bit)、M4K RAM(4Kbit)、M-RAM(64Kbit)iFMednc

• M512 RAM:适合做一些小的Buffer、FIFO、DPRAM、SPRAM、ROM 等;iFMednc

• M4K RAM:适用于一般的需求;iFMednc

• M-RAM:适合做大块数据的缓冲区。iFMednc

Xlinx 和Lattice  FPGA的LUT可以灵活配置成小的RAM、ROM、FIFO等存储结构,这种技术被称为分布式RAM。iFMednc

补充:但是在一般的设计中,不提倡用FPGA/CPLD的片内资源配置成大量的存储器,这是处于成本的考虑。所以尽量采用外接存储器。iFMednc

8.善用芯片内部的PLL或DLL资源完成时钟的分频、倍频率、移相等操作。iFMednc

不仅简化了设计,并且能有效地提高系统的精度和工作稳定性。iFMednc

9.异步电路和同步时序电路的区别iFMednc

异步电路:iFMednc

• 电路核心逻辑有用组合电路实现;iFMednc

• 异步时序电路的最大缺点是容易产生毛刺;iFMednc

• 不利于器件移植;iFMednc

• 不利于静态时序分析(STA)、验证设计时序性能。iFMednc

同步时序电路:iFMednc

• 电路核心逻辑是用各种触发器实现;iFMednc

• 电路主要信号、输出信号等都是在某个时钟沿驱动触发器产生的;iFMednc

• 同步时序电路可以很好的避免毛刺;iFMednc

• 利于器件移植;iFMednc

• 利于静态时序分析(STA)、验证设计时序性能。iFMednc

10.同步设计中,稳定可靠的数据采样必须遵从以下两个基本原则iFMednc

1)在有效时钟沿到达前,数据输入至少已经稳定了采样寄存器的Setup时间之久,这条原则简称满足Setup时间原则;iFMednc

2)在有效时钟沿到达后,数据输入至少还将稳定保持采样寄存器的Hold时钟之久,这条原则简称满足Hold时间原则。iFMednc

11.同步时序设计注意事项iFMednc

• 异步时钟域的数据转换。iFMednc

• 组合逻辑电路的设计方法。iFMednc

• 同步时序电路的时钟设计。iFMednc

同步时序电路的延迟。同步时序电路的延迟最常用的设计方法是用分频或者倍频的时钟或者同步计数器完成所需的延迟,对比较大的和特殊定时要求的延时,一般用高速时钟产生一个计数器,根据计数产生延迟;对于比较小的延迟,可以用D触发器打一下,这样不仅可以使信号延时了一个时钟周期,而且完成了信号与时钟的初次同步。iFMednc

在输入信号采样和增加时序约束余量中使用。iFMednc

另外,还有用行为级方法描述延迟,如“#5 a《=4’0101;”这种常用于仿真测试激励,但是在电路综合时会被忽略,并不能起到延迟作用。iFMednc

Verilog 定义的reg型,不一定综合成寄存器。在Verilog代码中最常用的两种数据类型是wire和reg型,一般来说,wire型指定的数据和网线 通过组合逻辑实现,而reg型指定的数据不一定就是用寄存器实现。iFMednc

12.常用设计思想与技巧iFMednc

1)乒乓操作;iFMednc

2)串并转换;iFMednc

3)流水线操作;iFMednc

4)异步时钟域数据同步。是指如何在两个时钟不同步的数据域之间可靠地进行数据交换的问题。数据时钟域不同步主要有两种情况:iFMednc

①两个域的时钟频率相同,但是相差不固定,或者相差固定但是不可测,简称为同频异相问题。iFMednc

②两个时钟频率根本不同,简称异频问题。iFMednc

两种不推荐的异步时钟域操作方法:一种是通过增加Buffer或者其他门延时来调整采样;另一种是盲目使用时钟正负沿调整数据采样。iFMednc

  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 商务部暂停天然砂对台湾地区出口,台积电难受了 据EDN电子技术设计了解,商务部网站8月3日早晨8点发布最新消息,表示将从即日起暂停天然砂对台湾地区出口。不少网友认为暂停天然砂对台湾地区的出口,此举将严重影响台湾的建筑业,实则影响不仅仅如此。台湾地区天然砂进口量的90%以上来自大陆,而台湾芯片占台湾2021年出口额的34.8%。网友称商务部暂停天然砂对台湾地区出口是捏到了台湾半导体制造业的七寸。
  • Nothing Phone 1 官方承认品控缺陷,但拆解后有新发现 前一加手机联合创始人裴宇创立的 Nothing 公司在国外备受关注,但Nothing Phone 1发布之后却被网友爆料大量翻车现场。目前官方也已承认了Nothing Phone 1 在前摄开孔位置附近出现了坏点或绿晕的问题。但Nothing Phone 1也并非一无是处,著名的 JerryRigEverything 耐用性测试就称其“超级坚固”。
  • 美国参议院批准价值2460亿美元的芯片法案 美国参议院周三通过立法,以超过 750 亿美元支持国内半导体产业。GlobalFoundries、英特尔、三星代工厂、德州仪器、台积电和其他在美国建立半导体制造设施的公司或将受益。
  • 空调也“怕热”?空调工作临界点到底是什么? 深圳最高气温突破40℃!很多网友戏称:这条命是空调给的,不敢走出空调房。但同时,这两天明显感觉空调动力不足了,以为家里的空调坏了。与此同时,关于格力空调“怕热”遭遇“空调工作临界点”罢工的成了网友关注的热点。
  • 拆解一个中国产的“树莓派”开发笔记本,售价279美元值 “树莓派”在全球市越来越受欢迎,甚至有家长开始让孩子用树莓派学习开发产品。有中国厂商嗅到,率先开发出了基于“树莓派”笔记本——CrowPi L ,外观看和普通笔记本差不多, 但却是基于树莓派Raspberry Pi 4B 开发板的套件,专为 STEM 教育而设计,带有可选的电子模块和教程。EDN发现有外媒对其进行了拆解,接下来将这篇拆解文章分享给大家:
  • 林志颖驾特斯拉出车祸:特斯拉回应起火原因不明,网友质疑 据EDN电子技术设计了解,7月22日上午10时50分左右,林志颖驾驶特斯拉Model X,在路口处掉头后加速向前行驶,但在前方道路分叉口处,因不明原因突然偏离车道自撞指示杆,整辆车陷入火海。此事引起网友关注热议,特斯拉客服表示,暂不清楚起火原因,但车身没有特别容易起火的材质。但有台媒指出,林志颖最爱特斯拉的自动驾驶功能,这也引起了网友对事故是否与自动驾驶有关的猜测。
  • 售价将超50万美元,乔布斯的Apple-1原型机电路板长什么 这块在 1976 年由史蒂夫-沃兹尼亚克手工焊接的 Apple Computer A 印刷电路板被史蒂夫-乔布斯用来向保罗-特雷尔演示 Apple-1 电脑,后者是加州山景城 The Byte Shop 的老板。这台原型机在“苹果车库”里保存了很多年,然后在大约 30 年前由史蒂夫-乔布斯交给了它现在的主人。当时,乔布斯已被苹果公司赶走。乔布斯当时认为这个原型不是要供奉的东西,而是要被重新利用的东西。
  • 利用反极性MOSFET帮助555振荡器忽略电源和温度变化 恒定频率振荡器是555定时器的经典应用之一。然而,由于所用二极管的特性不理想,占空比的间隔会随着温度和V+电源的变化而变化。本设计实例给出了一种解决方法:利用反极性P沟道MOSFET引导电容的充电电流而不产生任何明显压降。
  • iFixit 拆解M2 MacBook Ai:没有散热器,但有用途不明的加 日前,iFixit发表了M2 MacBook Air的拆解视频,表示在M2 MacBook Air 中发现了新增的端口,以及加速度计。
  • 高通发布4nm骁龙W5+骁龙W5芯片,专为可穿戴设计 据EDN电子技术设计报道,高通7月20日正式发布了全新4nm制程的骁龙可穿戴平台W5 Gen1和骁龙W5+ Gen。与两年前的上一代产品骁龙wear 4100相比,骁龙W5与W5+采用了全新的命名方式,整体功耗降低超50%。SoC工艺从12nm提升到4nm,协处理器使用22nm制程工艺。
  • M2 Pro 和 M2 Max 或是苹果首款采用台积电3nm 工艺的 M1 Pro 和 M1 Max 最多可配置 10 核 CPU 和 32 核 GPU。借助 M2 Pro 和 M2 Max,Apple 有望突破这一门槛,为这两个领域带来更多的核心数量。目前M2 Pro相关的爆料很少,但据称M2 Max 有12 核 GPU 和 38 核 GPU。12 核 CPU 将包括 10 个性能核心和两个能效核心。
  • 华为鸿蒙3.0即将发布,首款新品是一款11英寸高端旗舰平 据EDN电子技术设计报道,终端官方微博昨天正式宣布,将于7月27日正式发布Harmony OS 3.0手机操作系统,新系统重点升级了流畅度、万物互联,以及鸿蒙车机等功能。此外,还将带来的首款新品:华为MatePad Pro 11,从宣传海报来看这是一款11英寸高端旗舰平板.
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了