设为首页 收藏本站 English

当前位置: 天易机械网 >> 最新文章

10年经验FPGA设计的经验技能计算器下

发布时间:2019-07-30 23:21:05

【10年经验】FPGA设计的经验技能计算器(下)

13、模块划分基本原则:

(1)对每一个同步时钢窗序设计的子模块的输出使用寄存器(用寄存器分割同步时序模块原则)。

(2)将相干逻辑和可以复用的逻辑划分在同1模块内(呼应系统原则)。

试验设备(3)将不同优化目塑胶材料标的逻辑分开。

(4)将送束缚的逻辑归到同1模块。

(5)将存储逻辑独立划分成模块。

(6)适合的模块范围。

(7)顶层模块最好不进行逻辑设计。

14、组合逻辑的注意事项

(1)避免组合逻辑反馈环路(容易毛刺、振荡、时序背规等)。

解决:A、牢记任何反馈回路必须包括寄存器;B、检查综合、实现报告的warning信息,发现反馈回路(combi分纸机national loops)落后行相应修改。

(2)替换延烧烤炉迟链。

解决:用倍频、分频或同步计数器完成。

(3)替换异步脉定子铁芯冲产生单元(毛刺生成器)。

解决:用同步时序设计脉冲电路。

(4)慎用锁存器。

解决:A、使用完备的if…else语句;B、检查设计中是不是含有组合逻辑反馈环路;C、对每一个输入条件,设计输出操作,对case语句设置default 操作。特别是在状态机设计中,最好有1个default的状态转移,而且每一个状态最好也有1个default的操作。D、如果使用case语句时,特别是在设计状态机时,尽可能附加综合链钩束缚属性,综合为完全条件case语句。

小技能:仔细检查综合器的综合报告,目前大多数的综合器对所综合出的latch都会报“warning”,通过综合报告可以较为方便地找出无意中生成的latch。

15、时钟设计的注意事项

1)同步时序豆制品电路推荐的时钟设计方法:

时钟经全局时钟输入引脚输入,通过FPGA内部专用的PLL或DLL进行分频/倍频、移相等调剂与运算,然后经FPGA内部全局时钟布线资源驱动到达芯片内所有寄存器和其他模块的时钟输入端。

FPGA设计者的5项基本功:仿真、综合、时序分析、调试、验证。

对FPGA设计者来讲,练好这5项基本功,与用好相应的EDA工具是同1进程,对应关系以下:

1. 仿真:Modelsim, Quartus II(Simulator Tool)

2. 综合:Quartus II (Compiler Tool, RTL Vie调味油wer, Technology Map Viewer, Chip Planner)

3. 时序:Quartus II (TimeQuest Timing Analyzer, Tech债券投资nology Map Viewer, Chip Planner)

4. 调试:Quartus II (SignalTap II L除尘设备ogic Analyzer, Virtual JTAG, Assignment Editor)

5. 验证:Modelsim, Quartus II(Test Bench Template Writer)

掌握HDL语言虽然不是FPGA设计的全部,但是HDL语言对FPGA设计的影响贯穿于全部FPGA设计流程中,与FPGA设计的5项基本功是相辅相成的。

对FPGA设计者来讲,用好“HDL语言的可综合子集”可以完成FPGA设计50%的工作——设计编码。

练好仿真、综合、时序分析这3项基本功,对学习“HDL语言的可综合子集”有以下帮助:

1. 通过仿真,可以视察HDL语言在FPGA中的逻辑行动。

滤色片

2. 通过综合,可以视察HDL语言在FPGA中的物理实现情势。

3. 通过时序分析,可以分析HDL语言在FPGA中的物理实现特性。

对FPGA设计者来讲,用好“HDL语言的验证子集”,可以完成FPGA设计另外50%的工作——调实验证。

1. 搭建验证环境,通过仿真的手段可以检验FPGA设计的正确性。

2. 全面的仿真验证可以减少FPGA硬件调试的工作量。

3. 把硬件调试与仿真验证方法结合起来,用调试解决仿真未热量计验证的问题,蓄电池用仿真保证已解决的问题不在调试中再现,可以建立1个回归验证流程,有助于FPGA设计项目的保护。

FPGA 设计者的这5项基本功不是孤立的,必须结合使用,才能完成1个完全的FPGA设计流程。反过来讲,通过完成1个完全的设计流程,才能最有效地练习这5项基本功。对这5项基本功有了初步认识,就能够逐一深入学习1些,然后把学到的知识再次用于完全的设计流程。如此反复,就能够逐渐提高设计水平。采取这样的按部就班、螺旋式上升的方法,只要通过培训入了门,就能够自学自练,自我脲醛树脂提高。

市面上出售的有关排气扇FPGA设计的书籍为了保证结构的完全性,对 FPGA设计的每个方面分开介绍,每方面虽然深入,但是由于缺少其他相干方面的支持,读者很难付诸实践,只有通读完全书才能对FPGA设计取得1个整体的认识。这样的书籍,作为工程培训指点书不行,可以作为某1个方面进阶的参考书。

对新入职的员工来讲,他们常常对F喷油器PGA的整体设计流程有了初步认识,5项基本功的某几个方面可能很扎实。但是由于某个或某几个方面能力的欠缺,限制了他们独自完成全部设计流程的能力。入职培训的目的就是帮助他们掌握整体设计流程,培养自我获得信息的能力,显示芯片通过几个设计流程来回的训练,构成自我增进、自我发展的良性循环。在这1进程中,随着对工作触及的知识的广度和深度的认识逐渐清晰,新员工的自信心也会逐渐增强,对个人的发展方向也会逐渐明确,才能积极主动地参与到工程项目中来。

最后总结几点:

1)看代码,建模型

只有在脑海中建立了1个个逻辑模型,理解FPGA内部逻辑结构实现的基础,才能明白为何写Verilog和写C整体思路是不1样的,才能理解顺序履行语言和并行履行语言的设计方法上的差异。在看到1段简单程序的时候应当想到是甚么样的功能电路。

2)用数学思惟来简化设计逻辑

学习FPGA不但逻辑思惟很重要,好的数学思惟也能让你的设计化繁为简,所以啊,那些看见高数就头疼的童鞋需要重视1下这门课哦。举个简单的例子,比如有两个32bit的数据X[31:0]与Y[31:0]相乘。固然,不管Al模具tera还是Xilinx都有现成的乘法器IP核可以调用,这也是最简单的方法,但是两个32bit的乘法器将耗费大量的资源。那末有无节省资源,又不太复杂的方式来实现呢?我们可以稍做修改:

将X[31:0]拆成两部份X1[15货运站:0]和X2[15:0],令X1[15:0]=X[31:16],X2[15:0]=X[15:0],则X1左移16位后与X2相加可以得到X;一样将Y[31:0]拆成两部份Y1[15:0]和Y2[15:0],令 Y1[15:0]=Y[31:16],Y2[15:0]=Y[15:0],则Y1左移16位后与Y2相加可以得到Y;则X与Y的相乘可以转化为X1和X2 分别与Y1和Y2相乘,这样1个32bit*32bit的乘法运算转换成了4个16bit*16bit的乘法运算和3个32bit的加法运算。转换后的占用资源将会减少很多,有兴趣的童鞋,无妨综合1下看看,看看二者差多少。

3)时钟与触发器的关系

“时钟是时序电路的控制者” 这句话太经典了,可以说是FPGA设计的圣言。FPGA的设计主要是以时序电路为主,由于组合逻辑电路再怎样复杂也变不出太多花样,理解起来也不没太多困难。但是时序电路就不同了,它的所有动作都是在时钟1拍1拍的节奏下转变触发,可以说时钟就是全部电路的控制者,控制不好,电路功能就会混乱。

打个比方,时钟就相当于人体的心脏,它每次的跳动就是触发1个 CLK,向身体的各个器官供血,保持着机体的正常运作,每个器官体统正常工作少不了组织细胞的构成,那末触发器就能够比作基本单元组织细胞。时序逻辑电路的时钟是控制时序逻辑电路状态转换的“发动机”,没有它时序逻辑电路就不能正常工作,由于时序逻辑电路主要是利用触发器存储电路的状态,而触洗衣粉发器状态变换需要时钟的上升或降落沿!因而可知时钟在时序电路中的核心作用专业教育!

最后简单说1下体会吧,归结起来就多实践、多思考、多问。

实践出真知,看 100遍他人的方案不如自己去实践1下。实践的动力1方面来自兴趣,1方面来自压力,我个人觉得后者更重要。有需求会容易构成压力,也就是说最好能在实际的项目开发中锻炼,而不是为了学习而学习。在实践的进程中要多思考,多想一想问题出现的缘由,问题解决后要多问几个为何,这也是经验积累的进套圈程,如果有写项目日志的习惯更好,把问题及专业功放缘由、解决的办法都写进去。最后还要多问,遇到问题思索后还得不到解决就要问了,毕竟个人的气力是有工业空调限的,问同学同事、问搜索引擎、问网友都可以,1篇文章、朋友们的点拨都可能帮助自己快速解决问题。

友情链接