1、硬件规划底子准则
(1)速度与面积平衡和交换准则:一个规划假如时序余量较大,所能跑的频率远高于规划要求,能能够经过模块复用来削减整个规划消耗的芯片面积,这便是用速度优势换面积的节省;反之,假如一个规划的时序要求很高,一般办法达不到规划频率,那么能够经过数据流串并转化,并行仿制多个操作模块,对整个规划选用“乒乓操作”和“串并转化”的思维进行处理,在芯片输出模块处再对数据进行“并串转化”。然后完结了用面积仿制交换速度的进步。
(2)硬件准则:了解HDL实质;
(3)体系准则:全体把握;
(4)同步规划准则:规划时序安稳的底子准则。
2、Verilog作为一种HDL言语,对体系行为的建模办法是分层次的。比较重要的层次有体系级(system)、算法级(Algorithm)、寄存器传输级(RTL)、逻辑级(Logic)、门级(Gate)、电路 开关级(Switch)。
3、实践作业中,除了描绘仿真 测验鼓励(Testbench)时运用for循环句子外,很少在RTL级编码中运用for循环,这是因为for循环会被归纳器打开为一切变量状况的履行句子,每个变量独立占用寄存器资源,不能有用的复用硬件逻辑资源,构成巨大的糟蹋。一般常用case句子替代。
4、if…else…和case在嵌套描绘时是有很大差异的,if…else…是有优先级的,一般来说,第一个if的优先级最高,最终一个else的优先级最低。而case句子是平行句子,它是没有优先级的,而树立优先级结构需求消耗很多的逻辑资源,所以能用case的当地就不要用if…else…句子。
弥补:1.也能够用if…; if…; if…;描绘不带优先级的“平行”句子。
5、FPGA 一般触发器资源比较丰厚,而CPLD组合逻辑资源更丰厚。
6、FPGA和CPLD的组成:
FPGA底子有可编程I/O单元、底子可编程逻辑单元、嵌入式 块RAM、丰厚的布线资源、底层嵌入功用单元和内嵌专用硬核等6部分组成。
CPLD的结构相比照较简单,首要由可编程I/O单元、底子逻辑单元、布线池和其他辅佐功用模块组成。
7、Block RAM:
3种块RAM结构,M512 RAM(512bit)、M4K RAM(4Kbit)、M-RAM(64Kbit)。
M512 RAM:适合做一些小的Buffer、FIFO、DPRAM、SPRAM、ROM等;
M4K RAM:适用于一般的需求
M-RAM:适合做大块数据的缓冲区。
Xlinx 和 LatTI ce FPGA的LUT能够灵敏装备成小的RAM、ROM、FIFO等存储结构,这种技能被称为分布式RAM。
弥补:可是在一般的规划中,不发起用FPGA/CPLD的片内资源装备成很多的存储器,这是处于本钱的考虑。所以尽量选用外接存储器。
8、善用芯片内部的PLL或DLL资源完结时钟的分频、倍频率、移持平操作,不只简化了规划,并且能有用地进步体系的精度和作业安稳性。
9、异步电路和同步时序电路的差异
异步电路:
电路中心逻辑有用组合电路完结;
异步时序电路的最大缺陷是简单发生毛刺;
不利于器材移植;
不利于静态时序剖析(STA)、验证规划时序功能。
同步时序电路:
电路中心逻辑是用各种触发器完结;
电路首要信号、输出信号等都是在某个时钟沿驱动触发器发生的;
同步时序电路能够很好的防止毛刺;
利于器材移植;
利于静态时序剖析(STA)、验证规划时序功能。
10、同步规划中,安稳牢靠的数据采样有必要遵照以下两个底子准则:
(1)在有用时钟沿抵达前,数据输入至少现已安稳了采样寄存器的Setup时刻之久,这条准则简称满意Setup时刻准则;
(2)在有用时钟沿抵达后,数据输入至少还将安稳坚持采样寄存器的Hold时钟之久,这条准则简称满意Hold时刻准则。
11、同步时序规划注意事项:
异步时钟域的数据转化。
组合逻辑电路的规划办法。
同步时序电路的时钟规划。
同步时序电路的推迟。同步时序电路的推迟最常用的规划办法是用分频或许倍频的时钟或许同步计数器完结所需的推迟,比照较大的和特别守时要求的延时,一般用高速时钟发生一个计数器,依据计数发生推迟;关于比较小的推迟,能够用D触发器打一下,这样不只能够使信号延时了一个时钟周期,并且完结了信号与时钟的初度同步。在输入信号采样和添加时序束缚余量中运用。别的,还有用行为级办法描绘推迟,如“#5 a<=4’0101;”这种常用于仿真测验鼓励,可是在电路归纳时会被疏忽,并不能起到推迟效果。
Verilog 界说的reg型,不一定归纳成寄存器。在Verilog代码中最常用的两种数据类型是wire和reg型,一般来说,wire型指定的数据和网线经过组合逻辑完结,而reg型指定的数据不一定便是用寄存器完结。
12、常用规划思维与技巧
(1)乒乓操作;
(2)串并转化;
(3)流水线操作;
(4)异步时钟域数据同步。是指如安在两个时钟不同步的数据域之间牢靠地进行数据交换的问题。数据时钟域不同步首要有两种状况:
两个域的时钟频率相同,可是相差不固定,或许相差固定可是不可测,简称为同频异相问题。
两个时钟频率底子不同,简称异频问题。
两种不引荐的异步时钟域操作办法:一种是经过添加Buffer或许其他门延时来调整采样;另一种是盲目运用时钟正负沿调整数据采样。
13、模块区分底子准则:
(1)对每个同步时序规划的子模块的输出运用寄存器(用寄存器切割同步时序模块准则)。
(2)将相关逻辑和能够复用的逻辑区分在同一模块内(照应体系准则)。
(3)将不同优化方针的逻辑分隔。
(4)将送束缚的逻辑归到同一模块。
(5)将存储逻辑独立区分红模块。
(6)适宜的模块规划。
(7)顶层模块最好不进行逻辑规划。
14、组合逻辑的注意事项
(1)防止组合逻辑反应环路(简单毛刺、振动、时序违规等)。
处理:
A、紧记任何反应回路有必要包括寄存器;
B、查看归纳、完结陈述的warning信息,发现反应回路(combinaTIonal loops)后进行相应修正。
(2)替换推迟链。
处理:用倍频、分频或许同步计数器完结。
(3)替换异步脉冲发生单元(毛刺生成器)。
处理:用同步时序规划脉冲电路。
(4)慎用锁存器。
处理:
A、运用齐备的if…else句子;
B、查看规划中是否含有组合逻辑反应环路;
C、对每个输入条件,规划输出操作,对case句子设置default操作。特别是在状况机规划中,最好有一个default的状况搬运,并且每个状况最好也有一个default的操作。
D、假如运用case句子时,特别是在规划状况机时,尽量附加归纳束缚特点,归纳为彻底条件case句子。
小技巧:仔细查看归纳器的归纳陈述,现在大多数的归纳器对所归纳出的latch都会报“warning”,经过归纳陈述能够较为方便地找出无意中生成的latch。
15、时钟规划的注意事项
同步时序电路引荐的时钟规划办法:
时钟经大局时钟输入引脚输入,经过FPGA内部专用的PLL或DLL进行分频/倍频、移持平调整与运算,然后经FPGA内部大局时钟布线资源驱动抵达芯片内一切寄存器和其他模块的时钟输入端。
FPGA规划者的5项底子功:仿真、归纳、时序剖析、调试、验证。
关于FPGA规划者来说,练好这5项底子功,与用好相应的EDA东西是同一进程,对应联系如下:
1. 仿真:Modelsim, Quartus II(Simulator Tool)
2. 归纳:Quartus II (Compiler Tool, RTL Viewer, Technology Map Viewer, Chip Planner)
3. 时序:Quartus II (TImeQuest TIming Analyzer, Technology Map Viewer, Chip Planner)
4. 调试:Quartus II (SignalTap II Logic 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. 把硬件调试与仿真验证办法结合起来,用调试处理仿真未验证的问题,用仿真确保现已处理的问题不在调试中再现,能够树立一个回归验证流程,有助于FPGA规划项意图保护。
FPGA规划者的这5项底子功不是孤立的,有必要结合运用,才干完结一个完好的FPGA规划流程。反过来说,经过完结一个完好的规划流程,才干最有用地操练这5项底子功。对这5项底子功有了开始知道,就能够逐一深化学习一些,然后把学到的常识再次用于完好的规划流程。如此重复,就能够逐渐进步规划水平。选用这样的按部就班、螺旋式上升的办法,只需经过练习入了门,就能够自学自练,自我进步。
市面上出售的有关FPGA规划的书本为了确保结构的完好性,对FPGA规划的每一个方面分隔介绍,每一方面尽管深化,可是因为短少其他相关方面的支撑,读者很难付诸实践,只要通读彻底书才干对FPGA规划取得一个全体的知道。这样的书本,作为工程练习指导书不可,能够作为某一个方面进阶的参考书。
关于新入职的职工来说,他们往往对FPGA的全体规划流程有了开始知道,5项底子功的某几个方面或许很厚实。可是因为某个或某几个方面才干的短缺,约束了他们单独完结整个规划流程的才干。
入职练习的意图便是协助他们把握全体规划流程,培育自我获取信息的才干,经过几个规划流程来回的练习,构成自我促进、自我发展的良性循环。在这一进程中,跟着对作业触及的常识的广度和深度的知道逐渐明晰,新职工的自信心也会逐渐增强,对个人的发展方向也会逐渐清晰,才干积极主动地参加到工程项目中来。