您的位置 首页 汽车

FPGA牛人的多年经验总结,很值得沉思

这里我谈谈我的一些经验和大家分享,希望能对IC设计的新手有一定的帮助,能使得他们能少走一些弯路!在IC工业中有许多不同的领域,IC设计者的特征也会有些不同。在A领域的一个好的IC设计者也许会花很长时间

这儿我谈谈我的一些经历和咱们共享,期望能对IC规划的新手有必定的协助,能使得他们能少走一些弯路!

IC工业中有许多不同的范畴,IC规划者的特征也会有些不同。在A范畴的一个好的IC规划者或许会花很长时刻去了解B范畴的常识。在咱们职业生涯的开端,咱们应该问咱们自己一些问题,咱们想要成为怎样的IC规划者?消费?PC外围?通讯?微处理器或DSP?等等?

IC规划的根本规矩和流程是相同的,不管啥样的都会加到其间。HDL,FPGA和软件等是协助咱们了解芯片的最好东西。IC的魂灵是常识。因而咱们遇到的第一个应战将是取得规划的相关信息,然后了解信息并运用它。

可是有些信息不是免费的,咱们需求参加一些协会或从如IEEE/ISO等那些安排购买一些文档。规划者应该有很强的布景常识来很快的了解他们,乃至能改善存在的标准或。一个好的规划者应该应该有满意的规划技能和东西运用常识而且不断的堆集他们。

例如:8口以太网转化HUB控制器

需求常识:IEEE802.3标准,包含10MHZ以太网和100MHZ快速以太网。

相关范畴:异步传输形式(ATM),IEEE802.11无限局域网,IEEE1394,USB等。

HDL,核算机仿真和只能处理ASIC规划流程的数字部分。假如在IC中有任何模仿部分,他将依托模仿规划者或从别的的厂家购买。乃至一些纯数字部分也能从别的一些厂家购买以加快上市时刻。那些不是被咱们规划的部分称为IP,包含HDL代码,网表,硬核。关于咱们规划的技能取决于硬核。一些IP是十分贵的,如在USB2.0中的 PHY。一些小的公司没有满意的人力和软件资源来完结有些作业,乃至他们不能在缺货期预订满意的晶原,因而触及服务公司替代了他们的作业。但并不是每个 IP都满意咱们的需求,有时咱们需求在购买后作一些批改。咱们要在规划前决议所要用到的IPs。

在规划开端,规划者有必要了解一切相关的标准、标准和算法。可是有许多办法来运用这些标准和算法。最好的结构是快速和最小芯片尺寸的结合。不幸的是,快速的需求常常和最小芯片尺寸的需求是敌对的。因而,在HDL编码作业前规划一个最优的结构也是一个重要的问题。

例如:

1:除法器

除数被固定。最快的办法是查表,可是这个办法需求大的内存。咱们可以可以从被除数中不断的减去除数直到新的被除数比除数小。它会花更多的时刻但用最少的硬件。还有许多的办法来构建除法器,每种办法都有他自己的长处和缺陷。

2:图画处理的动态评估器

早年一个图片中发现最类似的8×8模块,在整个电影编排中。最根本的有全查找和三步查找的办法。许多的论文现已讨论过优化硬件杂乱度和速度的结构,这儿我不再祥解说。

一个好的规划者应该要被实践经历训练和不断的。咱们要在每个规划作业中十分当心和耐性。由于一个NRE将会耗费许多的金钱和数周的时刻,假如他不当心犯错,规划者将会对金钱和方案失利担任。经历和当心或许是来完结一个成功的规划项目最好的办法。

以下条款是一些对一个稳步的和成功的规划的主张:(或许有些朋友也指出了其间的部分,我这儿只作扼要阐明,或许稍有不同)

命名风格:

1不要用关键字做信号名;

2不要在顶用VERILOG关键字做信号名;

3命名信号用意义;

4命名I/O口用尽量短的姓名;

5不要把信号用高和低的状况混合命名;

6信号的第一个字母有必要是A-Z是一个规矩;

7使模块名、实例名和文件名相同;

编码风格:

记住,一个好的代码是其他人可以很简略阅览和了解的。

1尽或许多的添加阐明句子;

2在一个规划中固定编码格局和共同一切的模块,根从项目领导者界说的格局;

3把悉数规划分红合适数量的不同的模块或实体;

4在一个always/process中的一切信号有必要相关;

5不要用关键字或一些经常被用来安全归纳的语法;

6不要用杂乱逻辑;

7在一个if句子中的一切条件有必要相关;

规划风格

1强烈主张用同步规划;

2在规划时总是记住时序问题;

3在一个规划开端就要考虑到地电平或高电平复位、同步或异步复位、上升沿或下降沿触发等问题,在一切模块中都要恪守它;

4在不同的状况下用if和case;

5在锁存一个信号或总线时要当心;

6坚信一切寄存器的输出信号可以被复位/置位;

7永久不要再写入之前读取任何内部存储器(如SRAM)

8从一个时钟到另一个不同的时钟传输数据时用数据缓冲,他作业像一个双时钟FIFO;

9在VHDL中二维数组可以运用,它是十分有用的。在VERILOG中他只是可以运用在测验模块中,不能被归纳;

10恪守register-in register-out规矩;

11像synopsys的DC的归纳东西是十分安稳的,任何bugs都不会从归纳东西中发生;

12确保FPGA版别与ASIC的版别尽或许的类似,特别是SRAM类型,若版别共同是最理想的;

13在嵌入式存储器中运用BIST;

14虚单元和一些批改电路是必需的;

15一些简略的测验电路也是需求的,经常在一个芯片中有许多测验模块;

16除非低功耗不要用门控时钟;

17不要依托脚原本确保规划。可是在脚本中的一些好的束缚可以起到更好的功能(例如前向加法器);

18假如时刻富余,经过时钟做一个多锁存器来替代用MUX;

19不要用内部tri-state, ASIC需求总线坚持器来处理内部tri-state;

20在top level中作pad insertion;

21挑选pad时要当心(如上拉才能,施密特触发器,5伏耐压等);

22当心由时钟误差引起的问题;

23不要试着发生半周期信号;

24假如有许多函数要批改,请一个一个地作,批改一个函数查看一个函数;

25在一个核算等式中摆放每个信号的位数是一个好习惯,即便归纳东西能做;

26不要运用HDL供给的除法器;

27减少不必要的时钟。它会在规划和布局中引起许多费事,大多数FPGA有1-4个专门的时钟通道;

以上是咱们在规划中最好恪守的关键,它可以使你的规划更好。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/288411.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部