FPGA设计思想与技术

题记:那个笔记不是特权同学团结收拾的,特权同学只是对那一个笔记做了一晃到家,也忘了是从那DOWNLOAD来的,首先对整理者表示谢谢。那一个知识点确实都很实用,这个布署思想依然也足以说是涉世啊,是很值得每1个理想FPGA/CPLD方面发展的工程师学习的。

 

 

 

壹 、硬件设计为主标准

 

(1)、速度与面积平衡和交流原则:一个企划假如时序余量较大,所能跑的效能远高于设计须求,能得以通过模块复用来收缩整个安排消耗的芯片面积,那正是用速度优势换面积的节约;反之,倘使1个企划的时序要求很高,普通方法达不到设计频率,那么能够通过数据流串并更换,并行复制几个操作模块,对整个布置使用“乒乓操作”和“串并转移”的合计进行处理,在芯片输出模块处再对数码进行“并串转换”。从而达成了用面积复制换取速度的抓好。

 

(2)、硬件条件:精晓HDL本质

 

(3)、系统标准:全部把握

 

(4)、同步设计基准:设计时序稳定的基本标准

 

 

 

二 、Verilog作为一种HDL语言,对系统行为的建立模型格局是分层次的。相比主要的层次有系统级(system)、算法级(Algorithm)、寄存器传输级(奇骏TL)、逻辑级(Logic)、门级(Gate)、电路开关级(Switch)。

 

 

 

③ 、实际工作中,除了讲述仿真测试激励(Testbench)时利用for循环语句外,极少在途乐TL级编码中运用for循环,这是因为for循环会被综合器展开为具备变量情状的举行语句,每种变量独立占用寄存器资源,不可能有效的复用硬件逻辑财富,造成巨大的荒废。一般常用case语句代替。

 

 

 

肆 、if…else…和case在嵌套描述时是有十分的大分其余,if…else…是有优先级的,一般的话,第1个if的优先级最高,最后1个else的优先级最低。而case语句是平行语句,它是不曾先行级的,而建立优先级组织亟待消耗大量的逻辑财富,所以能用case的地点就绝不用if…else…语句。

 

补给:1.也足以用if…; if…; if…;描述不带事先级的“平行”语句。

 

 

 

⑤ 、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 和 Lattice
FPGA的LUT能够灵活配置成小的RAM、ROM、FIFO等储存结构,那种技能被叫作分布式RAM。

 

补充:可是在一般的宏图中,不提倡用FPGA/CPLD的片国内资本源配置成大气的存款和储蓄器,那是高居资金的考虑。所以尽量选择外接存款和储蓄器。

 

 

 

⑧ 、善用芯片内部的PLL或DLL能源形成时钟的分频、倍频率、移相等操作,不仅简化了规划,并且能使得地提高系统的精度和办事稳定性。

 

 

 

玖 、异步电路和协同时序电路的差别

 

异步电路:

 

电路宗旨逻辑有用组合电路完毕;

 

       异步时序电路的最大弱点是简单生出毛刺;

 

       不便于器件移植;

 

       不便宜静态时序分析(STA)、验证布置时序品质。

 

一同时序电路:

 

       电路宗旨逻辑是用各样触发器完结;

 

       电路首要信号、输出信号等都以在有个别时钟沿驱动触发器发生的;

 

       同步时序电路能够很好的幸免毛刺;

 

       利于器件移植;

 

便宜静态时序分析(STA)、验证安排时序品质。

 

 

 

10、同步规划中,稳定可信赖的数据采集样品必须遵守以下几个着力尺度:

 

(1)、在使得时钟沿到达前,数据输入至少曾经稳定了采集样品寄存器的Setup时间之久,那条规则简称满意Setup时间尺度;

 

(2)、在有效时钟沿到达后,数据输入至少还将平稳保持采集样品寄存器的Hold时钟之久,那条原则简称满足Hold时间尺度。

 

 

 

1① 、同步时序安顿注意事项:

 

异步时钟域的多寡转换。

 

重组逻辑电路的安排艺术。

 

手拉手时序电路的钟表设计。

 

一起时序电路的延迟。同步时序电路的延期最常用的规划艺术是用分频可能倍频的钟表只怕联合计数器完结所需的推迟,对相比较大的和异样定时供给的延时,一般用便捷时钟发生2个计数器,依照计数发生延迟;对于相比小的推移,能够用D触发器打一下,那样不仅能够使信号延时了二个时钟周期,而且做到了信号与时钟的第三同步。在输入信号采样和扩展时序约束余量中选取。此外,还有用行为级方法描述延迟,如“#5
a<=4’0101;”那种常用于仿真测试激励,可是在电路综合时会被忽略,并无法起到延迟成效。

 

Verilog 定义的reg型,不自然综合成寄存器。在Verilog代码中最常用的三种数据类型是wire和reg型,一般的话,wire型内定的数量和网线通过结合逻辑达成,而reg型内定的数目不自然正是用寄存器完毕。

 

 

 

1二 、常用设计思想与技术

 

(1)、乒乓操作;

 

(2)、串并转换;

 

(3)、流水生产线操作;

 

(4)、异步时钟域数据同步。是指什么在多少个时钟不联合的数据域之间可信赖地展开数据交流的题材。数据时钟域区别台首要有三种情景:

 

七个域的时钟频率相同,不过相差不定点,大概离开固定不过不可测,简称为同频异相难点。

 

多少个时钟频率根本区别,简称异频难点。

 

二种不推荐的异步时钟域操作方法:一种是因而扩充Buffer大概其余门延时来调动采集样品;另一种是盲目采纳时钟正负沿调整数据采集样品。

 

 

 

1叁 、模块划分基本标准:

 

(1)、对每一个一块时序安插的子模块的输出使用寄存器(用寄存器分割同步时序模块原则)。

 

(2)、将相关逻辑和可以复用的逻辑划分在同等模块内(呼应系统规范)。

 

(3)、将差别优化目的的逻辑分开。

 

(4)、将送约束的逻辑归到同一模块。

 

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

 

(6)、合适的模块规模。

 

(7)、顶层模块最好不开始展览逻辑设计。

 

 

 

1肆 、组合逻辑的注意事项

 

(1)、防止组合逻辑反馈环路(简单毛刺、振荡、时序违法等)。

 

解决:

 

A、牢记任何反馈回路必须包括寄存器;

 

B、检查综合、完毕报告的warning消息,发现报告回路(combinational
loops)后实行对应修改。

 

(2)、替换延迟链。

 

缓解:用倍频、分频或许联合计数器实现。

 

(3)、替换异步脉冲发生单元(毛刺生成器)。

 

杀鸡取卵:用联合时序安顿脉冲电路。

 

(4)、慎用锁存器。

 

解决:

 

A、使用全称的if…else语句;

 

B、检查安插中是否包含组合逻辑反馈环路;

 

C、对每一个输入条件,设计输出操作,对case语句设置default操作。尤其是在状态机设计中,最好有贰个default的处境转移,而且每种景况最好也有二个default的操作。

 

D、假使利用case语句时,尤其是在设计情状机时,尽量增大综合约束属性,综合为完全标准case语句。

 

小技巧:仔细检查综合器的综合报告,方今超过二分之一的综合器对所综合出的latch都会报“warning”,通过综合报告能够比较便宜地找出无意中变化的latch。

 

 

 

1⑤ 、时钟设计的注意事项

 

(1)、同步时序电路推荐的时钟设计方法:

 

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

 

FPGA设计者的5项基础

 

《佟林传》里,佟林练的底蕴是“绕大树、解皮绳”,然后才练成了怎么“鬼影随行、柳叶绵丝掌”。

 

    在作者眼里,成为一名说得过去的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设计四分之二的做事——设计编码。

 

    练好仿真、综合、时序分析那3项基础,对于学习“HDL语言的可综合子集”有如下援助:

 

    1. 通过虚假,能够观测HDL语言在FPGA中的逻辑行为。

 

    2. 通过综合,可以观测HDL语言在FPGA中的物理完结格局。

 

    3. 因此时序分析,可以分析HDL语言在FPGA中的物理达成特性。

 

    对于FPGA设计者来说,用好“HDL语言的验证子集”,能够完毕FPGA设计其它四分之二的办事——调节和测试验证。

 

    1. 搭建验证环境,通过虚假的手腕能够印证FPGA设计的正确。

 

    2. 到家的仿真验证能够削减FPGA硬件调节和测试的工作量。

 

    3. 把硬件调试与虚假验证格局结合起来,用调节和测试化解仿真未声明的题材,用虚伪保障已经缓解的标题不在调节和测试中复出,能够建立贰个回归验证流程,有助于FPGA设计项指标保卫安全。

 

    FPGA设计者的那5项基础不是孤立的,必须结合使用,才能一气浑成二个完好无缺的FPGA设计流程。反过来说,通过成就三个完好无损的规划流程,才能最实用地演习那5项基础。对那5项基础有了始于认识,就足以每种深入学习有些,然后把学到的知识重新用于完整的陈设性流程。如此反复,就可以稳步升高设计水平。选取那样的遵纪守法、螺旋式上涨的主意,只要透过培养入了门,就能够自学自练,自笔者升高。

 

市面上出售的关于FPGA设计的书本为了保险结构的完整性,对FPGA设计的每1个地点分别介绍,每一边纵然深刻,不过由于缺少任何有关地点的支撑,读者很难付诸实践,唯有通读完全书才能对FPGA设计赢得三个完好无损的认识。那样的书籍,作为工程培养和陶冶携带书不行,能够用作某八个地方进阶的参考书。

 

对于新入职的职工来说,他们多次对FPGA的一体化规划流程有了开首认识,5项基础的某多少个方面只怕很实在。可是出于有个别或某多少个方面能力的不足,限制了她们独立形成全体规划流程的力量。入职培养和演练的目标便是帮助他们控制完全设计流程,培育作者获打消息的能力,通过多少个规划流程来回的教练,形成自作者促进、自笔者发展的良性循环。在这一进程中,随着对工作提到的文化的广度和纵深的认识慢慢清晰,新职工的信心也会日趋坚实,对个人的开拓进取方向也会逐年分明,才能积极主动地插足到工程项目中来。

 

fpga设计思想

原文:http://blog.csdn.net/xiangyuqxq/article/details/7272072

本文探讨的三种常用 FPGA/CPLD
设计思想与技术:乒乓操作、串并转移、流水生产线操作、数据接口同步化,都以FPGA/CPLD 逻辑设计的内在规律的展现,合理地行使那么些规划思想能在FPGA/CPLD
设计工作种得到经济的功力。  
        FPGA/CPLD
的安顿性思想与技术是三个要命大的话题,由于篇幅所限,本文仅介绍部分常用的筹划思想与技术,包蕴乒球操作、串并转移、流水生产线操作和数量接口的一道方法。希望本文能唤起工程师们的小心,假诺能有发现地运用那些规范引导未来的布署性工作,将赢得一举两得的成效!  

乒乓操作  
“乒乓操作”是3个时不时使用于数据流控制的处理技术,典型的乒乓操作方法如图 1
所示。  
  
        
乒乓操作的拍卖流程为:输入数据流通过“输入数据接纳单元”将数据流等时分配到多少个数据缓冲区,数据缓冲模块能够为其余存款和储蓄模块,相比常用的存款和储蓄单元为双口
RAM(DPRAM)、单口 RAM(SPRAM)、FIFO
等。在第3个缓冲周期,将输入的多少流缓存到“数据缓冲模块 1”;在第 三个缓冲周期,通过“输入数据采取单元”的切换,将输入的数量流缓存到“数据缓冲模块
2”,同时将“数据缓冲模块 1”缓存的第①个周期数据通过“输入数据选拔单元”的取舍,送到“数据流运算处理模块”进行演算处理;在第四个缓冲周期通过“输入数据选择单元”的重复切换,将输入的数据流缓存到“数据缓冲模块
1”,同时将“数据缓冲模块 2”缓存的第 三个周期的数目通过“输入数据选择单元”切换,送到“数据流运算处理模块”进行演算处理。如此循环往复。  
        
乒乓操作的最大特点是透过“输入数据选取单元”和“输出数据采纳单元”按节拍、相互同盟的切换,将通过缓冲的数据流没有停顿地送到“数据流运算处理模块”实行演算与拍卖。把乒乓操作模块当做1个总体,站在这些模块的双面看数量,输入数据流和出口数据流都以
连天不停的,没有任何停顿,由此分外适合对数据流进行流水生产线式处理。所以乒乓操作平常使用于流水线式算法,实现数据的无缝缓冲与处理。  
        乒乓操作的第二个亮点是足以节省缓冲区空间。比如在 WCDMA
基带应用中,1 个帧是由 17个时隙组成的,有时须要将 1
整帧的数量延时3个时隙后处理,相比直接的措施是将那帧数据缓存起来,然后延时
1 个时隙进行处理。这时缓冲区的长度是1 整帧数据长,就算数据速率是
3.84Mbps,1 帧长 10ms,则此时急需缓冲乡长度是 38400
位。若是运用乒乓操作,只需定义五个能缓冲 1 个时隙数据的 RAM(单口 RAM
即可)。当向一块 RAM 写多少的时候,从另一块 RAM
读数据,然后送随处理单元处理,此时每块 RAM 的体积仅需 2560 位即可,
2 块 RAM 加起来也唯有 5120 位的体量。  
      
别的,巧妙利用乒乓操作还足以直达用低速模块处理火速数据流的效能。如图
2所示,数据缓冲模块选择了双口 RAM,并在 DPRAM
后引入了一级数据预处理模块,那么些数据预处理能够依照须求的各类数码运算,比如在
WCDMA 设计中,对输入数据流的解扩、解扰、去旋转等。假诺端口 A
的输入数据流的速率为 100Mbps,乒乓操作的缓冲周期是
10ms。以下分析各类节点端口的数额速率。 
  
         A 端口处输入数据流速率为 100Mbps,在第③ 个缓冲周期 10ms
内,通过“输入数据采取单元”,从 B1 到达 DPRAM1。B1 的数目速率也是
100Mbps,DPRAM1 要在 10ms 内写入 1Mb 数据。同理,在第 2 个
10ms,数据流被切换来 DPRAM2,端口 B2 的多寡速率也是 100Mbps,DPRAM2在第① 个 10ms 被写入 1Mb 数据。在第③ 个 10ms,数据流又切换来 DPRAM1,DPRAM1
被写入1Mb 数据。  
       
仔细分析就会发觉到第①个缓冲周期时,留给DPRAM1读取数据并送到“数据预处理模块1”的日子累计是
20ms。有的工程师猜忌于 DPRAM1 的读数时间为啥是
20ms,那个小时是那样得来的:首先,在在第 2 个缓冲周期向 DPRAM2 写多少的
10ms 内,DPRAM1 能够展开读操作;其它,在第 1 个缓冲周期的第 5ms
起(相对时间为 5ms 时刻),DPRAM1 就足以单方面向 500K
现在的地址写多少,一边从地方 0 读数,到达 10ms 时,DPRAM1 刚好写完了 1Mb
数据,并且读了 500K 数据,那些缓冲时间内 DPRAM1 读了 5ms;在第 2个缓冲周期的第 5ms 起(相对时间为 35ms 时刻),同理能够单方面向 500K
未来的地点写多少一边从地址0 读数,又读取了5 个ms,所以截至 DPRAM1
第三个周期存入的数目被统统覆盖从前,DPRAM1 最多能够读取
20ms时间,而所需读取的数额为 1Mb,所以端口 C1
的数额速率为:1Mb/20ms=50Mbps。由此,“数据预处理模块
1”的最低数额吞吐能力也只有供给为 50Mbps。同理,“数据预处理模块 2”
的最低数量吞吐能力也无非须要为
50Mbps。换言之,通过乒乓操作,“数据预处理模块”的时序压力减轻了,所供给的多寡处理速率仅仅为输入数据速率的
3/6。  
       通过乒乓操作达成低速模块处理高速数据的本来面目是:通过 DPRAM
那种缓存单元实现了数据流的串并转换,并行用“数据预处理模块
1”和“数据预处理模块 2”处理分流的数目,是面积与进度调换原则的呈现!  

串并转移设计技术  
         串并更换是 FPGA
设计的一个重点技术,它是数据流处理的常用手法,也是面积与进度交流思想的一贯呈现。串并转移的落实情势两种各个,依照数量的排序和数码的渴求,能够采取寄存器、RAM
等实现。后边在乒乓操作的图例中,就是通过 DPRAM
完结了数据流的串并更换,而且由于应用了
DPRAM,数据的缓冲区能够开得十分大,对于数据相比较小的宏图能够选用寄存器达成串并更换。如无特需,应该用一道时序安插成就串并之间的转换。比如数据从串行到互相,数据排列顺序是高位在前,能够用下边包车型地铁编码完结:  
prl_temp<={prl_temp,srl_in};  
其中,prl_temp 是互为输出缓存寄存器,srl_in
是串行数据输入。对于排列顺序有鲜明的串并转移,能够用 case
语句判断实现。对于复杂的串并更换,还足以用状态机达成。串并转换的形式相比简单,在此不必赘述。  

流程操作设计思想  
       
首先供给评释的是,那里所描述的流水生产线是指一种处理流程和顺序操作的规划思想,并非FPGA、ASIC
设计中优化时序所用的“Pipelining”。  
       
流水生产线处理是急速陈设中的二个常用设计手法。倘诺有个别设计的拍卖流程分为若干手续,而且整个数据处理是“单流向”的,即没有上报恐怕迭代运算,前3个手续的出口是下一个手续的输入,则可以设想动用流水线设计艺术来增强系统的工作频率。  
766游戏网官网,  
       流水线设计的布局示意图如图 3 所示。其基本协会为:将方便划分的 n
个操作步骤单流向串联起来。流水线操作的最大特点和需求是,数据流在挨家挨户步骤的处理从岁月上看是连连的,假诺将种种操作步骤简化假诺为通过2个D
触发器(就是用寄存器打一个旋律),那么流水生产线操作就类似1个活动寄存器组,数据流依次流经
D 触发器,完结各类步骤的操作。流水线设计时序如图 4 所示。  
 
 
         流水生产线设计的多个关键在于整个规划时序的合理布署,须要各种操作步骤的分割合理。纵然前级操作时间刚刚等于后级的操作时间,设计极端简单,前级的输出直接汇入后级的输入即可;假如前级操作时间超越后级的操作时间,则要求对前级的出口数据适当缓存才能汇入到后级输入端;假设前级操作时间正巧小于后级的操作时间,则必须通过复制逻辑,将数据流分流,或然在前级对数码运用储存、后处理格局,不然会造成后级数据溢出。  
        在 WCDMA 设计中时时利用到流水线处理的形式,如 RAKE
接收机、搜索器、前导捕获等。流水生产线处理方式之所以频率较高,是因为复制了处理模块,它是面积换取速度思想的又一种具体展现。  

数码接口的一起方法  
        数据接口的联合是 FPGA/CPLD
设计的2个广泛难点,也是八个关键和难题,很多规划不稳定都以来源于数据接口的联手有标题。   
       在电路图设计阶段,一些工程师手工业出席 BUFT
大概非门调动数据延迟,从而有限支撑本级模块的钟表对上边模块数据的确立、保持时间供给。还有部分工程师为了有稳定的采集样品,生成了重重距离
90
度的时钟信号,时而用正沿打一下数目,时而用负沿打一下数码,用以调整数
据的采样地方。那二种做法都相当不可取,因为假若芯片更新换代只怕移植到其余芯片组的芯片上,采集样品完毕必须从新设计。而且,这三种做法造成都电子通信工程高校路实现的余量不够,一旦外界条件转移(比如温度升高),采集样品时序就有只怕完全紊乱,造成都电子通信工程高校路瘫痪。  
下边简单介绍二种分歧意况下多少接口的协同方法: 
 
 1.
输入、输出的延时(芯片间、PCB布线、一些使得接口元件的延时等)不可测,或许有只怕更改的尺度下,如何实现多少同步?  
        
对于数据的延迟不可测或改动,就必要建立一起机制,可以用3个联合举行使能或共同提示信号。其它,使数码通过
RAM 可能 FIFO 的存取,也足以达到规定的标准数据同步指标。  
       
把数据存放在RAM或FIFO的不二法门如下:将上边芯片提供的数量随路时钟作为写信号,将数据写入
RAM 或然FIFO,然后选择本级的采集样品时钟(一般是数额处理的主时钟)将数据读出来即可。这种做法的第②是多少写入
RAM 恐怕 FIFO 要可信赖,假设选拔同步 RAM 或许 FIFO,
就必要相应有三个与数据相对延迟关系一定的随路提醒信号,那个信号能够是数额的管用提醒,也得以是上边模块将数据打出来的时钟。对于慢速数据,也可以采集样品异步
RAM 或许 FIFO,可是不推荐那种做法。  
       
数据是有固定格式安顿的,很多主要新闻在数额的开头地方,这种情景在通讯系统中尤其广泛。通信系统中,很多数目是遵照“帧”组织的。而出于整个系统对时钟供给很高,平日专门布署一块时钟板完成高精度时钟的产生与驱动。而数据又是有伊始地点的,怎么着成功数据
的一块儿,并发现数指标“头”呢?  
        数据的同台方法完全能够行使地方的章程,采纳一块提醒信号,只怕应用
RAM、FIFO
缓存一下。找到数据头的艺术有二种,第①种相当粗略,随路传输二个数码开始地点的提醒信号即可,对于有个别系统,尤其是异步系统,则平常在数量中插入一段同步码(比如磨练种类),接收端通过景况计算机检索查和测试到同步码后就能觉察数指标“头”了,那种做法叫做“盲检测”。 
上级数据和本级时钟是异步的,也等于说上级芯片或模块和本级芯片或模块的钟表是异步时钟域的。  
       
后边在输入数据同步化中早就简单介绍了贰个标准:借使输入数据的节拍和本级芯片的处理时钟同频,能够向来用本级芯片的主时钟对输入数据寄存器采集样品,完毕输入数据的同步化;假诺输入数据和本级芯片的处理时钟是异步的,越发是成效不合营的时候,则只有用处理时
钟对输入数据做一遍寄存器采集样品,才能成就输入数据的同步化。供给表明的是,用寄存器对异步时钟域的多少开始展览三回采集样品,其效用是实用幸免亚稳态(数据状态不平稳)的传遍,使后级电路处理的数量都以有效电平。不过那种做法并不能够确定保证两级寄存器采集样品后的数码是没错
的电平,那种办法处理一般都会发出一定数量的荒唐电平数据。所以只是适用于对少量破绽百出不灵活的法力单元。 
为了制止异步时钟域产生错误的采集样品电平,一般接纳 RAM、FIFO
缓存的法子成功异步时钟域的数量转换。最常用的缓存单元是
DPRAM,在输入端口使用上级时钟写多少,在输出端口使用本级时钟读数据,那样就可怜方便的到位了异步时钟域之间的数据交流。  

  1. 安插数据接口同步是还是不是需求添加约束?  
            
    提议最好增加适当的牢笼,尤其是对此快速陈设,一定要对周期、建立、保持时间等丰硕相应的自律。 
    此间附加约束的成效有两点:  
    a.
    升高规划的工作频率,满足接口数据同步供给。通过附加周期、建立刻间、保持时间等约束可以操纵逻辑的归咎、映射、布局和布线,以减小逻辑和布线延时,从而坚实工作频率,满意接口数据同步需要。  
    b. 获得不错的时序分析报告。大致拥有的 FPGA
    设计平台都富含静态时序分析工具,利用那类工具得以博得映射或布局布线后的时序分析报告,从而对规划的属性做出评估。静态时序分析工具以约束作为判断时序是否满意设计须求的正儿八经,由此要求设计者正确输入约束,以便静态时序分析工具输出正确的时序分析报告。  
             Xilinx 和数目接口相关的常用约束有
    Period、OFFSET_IN_BEFORE、OFFSET_IN_AFTER、OFFSET_OUT_BEFORE和OFFSET_OUT_AFTE路虎极光等;Altera与数量接口相关的常用约束有Period、tsu、tH、tco

 

fpga结构:

原文:http://blog.csdn.net/superuser007/article/details/5884373

1.2.1 FPGA工作规律与简介

如前所述,FPGA是在PAL、GAL、EPLD、CPLD等可编制程序器件的根底上越来越升华的产物。它是作为ASIC领域中的一种半定制电路而出现的,即化解了定制电路的阙如,又克制了本来面目可编制程序器件门电路有限的弱项。 


于FPGA要求被一再烧写,它达成组合逻辑的主导构造不或许像ASIC那样通过稳定的与非门来形成,而只好动用一种易于反复配置的构造。查找表能够很好地
满意这一供给,最近主流FPGA都接纳了基于SRAM工艺的查找表结构,也有一部分物资和宇航级FPGA选择Flash或然熔丝与反熔丝工艺的查找表结构。
通过烧写文件改变查找表内容的法门来兑现对FPGA的重新配置。 

遵照数字电路的基本知识能够精晓,对于一个n 输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只恐怕存在2n 种结果。所以一旦事先将相应的结果存放于三个储备单元,就一定于贯彻了与非门电路的效益。FPGA的规律也是那样,它经过烧写文件去安插查找表的剧情,从而在同一的电路景况下达成了不相同的逻辑作用。 


找表(Look-Up-Table)简称为LUT,LUT本质上便是一个RAM。近来FPGA中多使用4输入的LUT,所以每二个LUT能够作为二个有3个人地址线的 的RAM。
当用户通过原理图或HDL语言描述了三个逻辑电路未来,PLD/FPGA开发软件会自行测算逻辑电路的富有或许结果,并把真值表(即结果)事先写入
RAM,那样,每输入贰个信号举行逻辑运算就相当于输入二个地方举行查表,找出地点对应的内容,然后输出即可。 

上边给出3个4与门电路的事例来表明LUT达成逻辑功用的法则。

例1-1 :给出二个应用LUT完结4输入与门电路的真值表。

表1-1 4输入与门的真值表

从中能够观察,LUT具有和逻辑电路相同的成效。实际上,LUT具有更快的履行进程和更大的局面。 


于基于LUT的FPGA具有很高的集成度,其器件密度从数万门到数千万门不等,能够完毕最好错综复杂的时序与逻辑组合逻辑电路功用,所以适用于飞速、高密度的
高端数字逻辑电路设计领域。其组成都部队分首要有可编制程序输入/输出单元、基本可编制程序逻辑单元、内嵌SRAM、丰裕的布线财富、底层嵌入功用单元、内嵌专用单元
等,首要设计和生产厂家有Xilinx、Altera、Lattice、Actel、Atmel和QuickLogic等营业所,个中最大的是
Xilinx、Altera、Lattice三家。

如前所述,FPGA是由存放在片内的RAM来安装其行事情景的,因而工作时索要对片内RAM进行编制程序。用户可根据不相同的安插格局,选取区其余编制程序格局。FPGA有如下三种配备情势:

  • 互动格局:并行PROM、Flash配置FPGA;
  • 主导形式:一片PROM配置多片FPGA;
  • 串行情势:串行PROM配置FPGA;
  • 外设形式:将FPGA作为微处理器的外设,由计算机对其编制程序。

最近,FPGA市场占有率最高的两大集团Xilinx和Altera生产的FPGA都以基于SRAM工艺的,供给在动用时外接二个片外存款和储蓄器以保留程序。上
电时,FPGA将表面存款和储蓄器中的数据读入片内RAM,完毕布局后,进入工作处境;掉电后FPGA恢复生机为白片,内部逻辑消失。那样FPGA不仅能屡屡使用,
还无需尤其的FPGA编制程序器,只需通用的EPROM、PROM编制程序器即可。Actel、QuickLogic等商行还提供反熔丝技术的FPGA,只可以下载
二回,具有抗辐射、耐高低温、低功耗和速度快等优点,在生资和航空航天领域中采用较多,但那种FPGA不可能重新擦写,开发初期相比辛劳,开销也正如值钱。
Lattice是ISP技术的发明者,在小范围PLD应用上有一定的性格。早期的Xilinx产品一般不关乎军用产品和宇宙航行级市镇,但最近曾经有Q
Pro-普拉多等多款产品进入该类领域。

 

1.2.2 FPGA芯片结构

时下主流的
FPGA仍是依据查找表技术的,已经远远出乎了以前版本的为主质量,并且结合了常用功效(如RAM、时钟管理和DSP)的硬核(ASIC型)模块。如图
1-1所示(注:图1-一只是2个示意图,实际上每三个多重的FPGA都有其对应的内部结构),FPGA芯片首要由6有的成就,分别为:可编制程序输入输出单
元、基本可编制程序逻辑单元、完整的时钟管理、嵌入块式RAM、丰硕的布线财富、内嵌的平底效率单元和内嵌专用硬件模块。

图1-1 FPGA芯片的内部结构

各样模块的成效如下:
1. 可编制程序输入输出单元(IOB)


编制程序输入/输出单元简称I/O单元,是芯片与外场电路的接口部分,完毕不一致电气性子下对输入/输出信号的驱动与同盟供给,其表示结构如图1-2所示。
FPGA内的I/O按组分类,每组都能够独立地支撑差异的I/O标准。通过软件的灵巧配置,可适配差其余电气专业与I/O物理个性,能够调动驱动电流的大
小,能够变动上、下拉电阻。最近,I/O口的成效也愈加高,一些高端的FPGA通过DDPAJERO寄存器技术能够补助高达2Gbps的多少速率。

图1-2 典型的IOB内部结构示意图

外部输入信号可以经过IOB模块的存款和储蓄单元输入到FPGA的里边,也能够一向输入FPGA
内部。当外部输入信号通过IOB模块的存款和储蓄单元输入到FPGA内部时,其保持时间(Hold
Time)的要求可以降低,经常私下认可为0。 


了便于管理和适应各个电器专业,FPGA的IOB被分开为几个组(bank),每一个bank的接口标准由其接口电压VCCO决定,三个bank只好有一
种VCCO,但区别bank的VCCO能够不一样。唯有相同电气专业的端口才能三番五次在联合署名,VCCO电压相同是接口标准的中坚尺度。 

2. 可配备逻辑块(CLB) 

CLB
是FPGA内的基本逻辑单元。CLB的骨子里多少和个性会依器件的不等而各异,不过各类CLB都带有二个可安顿开关矩阵,此矩阵由4或陆个输入、一些选型电
路(多路复用器等)和触发器组成。
开关矩阵是可观灵活的,可以对其展开配备以便处理组合逻辑、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB由五个(一般为伍个或三个)
相同的Slice和叠加逻辑构成,如图1-3所示。种种CLB模块不仅能够用于落到实处组合逻辑、时序逻辑,还足以布署为分布式RAM和分布式ROM。

 

图1-3 典型的CLB结构示意图

Slice
是Xilinx公司定义的骨干逻辑单位,其内部结构如图1-4所示,三个Slice由八个4输入的函数、进位逻辑、算术逻辑、存款和储蓄逻辑和函数复用器组成。
算术逻辑包蕴二个异或门(XO奥迪Q3G)和3个专用与门(MULTAND),三个异或门可以使一个Slice达成2bit全加操作,专用与门用于提升乘法器的
效用;进位逻辑由专用进位信号和函数复用器(MUXC)组成,用于落到实处急迅的算术加减法操作;4输入函数产生器用于落到实处4输入LUT、分布式RAM或16
比特移位寄存器(Virtex-5层层芯片的Slice中的四个输入函数为6输入,可以达成6输入LUT或64比特移位寄存器);进位逻辑包蕴两条急速进
位链,用于升高CLB模块的处理速度。

图1-4 典型的4输入Slice结构示意图

3. 数字时钟管理模块(DCM) 

正式大部分FPGA均提供数字时钟管理(Xilinx的凡事FPGA均拥有那种特征)。Xilinx推出初叶进的FPGA提供数字时钟管理和相位环路锁定。相位环路锁定能够提供高精度的钟表综合,且可以下落抖动,并落到实处过滤效果。 

4. 嵌入式块RAM(BRAM) 

大多数FPGA都抱有内嵌的块RAM,那大大拓展了FPGA的行使范围和灵活性。块RAM可被布署为单端口RAM、双端口RAM、内容地址存款和储蓄器(CAM)
以及FIFO等常用存款和储蓄结构。RAM、FIFO是相比较普及的概念,在此就不冗述。CAM存储器在其里面包车型客车种种存款和储蓄单元中都有1个相比逻辑,写入CAM中的
数据会和在这之中的每1个数量进行相比,并赶回与端口数据一致的保有数据的地点,由此在路由的地点调换器中有普遍的选用。除了块RAM,还足以将FPGA中的
LUT灵活地陈设成RAM、ROM和FIFO等结构。在事实上行使中,芯片内部块RAM的数目也是采用芯片的四个首要因素。 

单片块RAM
的容积为18k比特,即位宽为18比特、深度为1024,能够根据须求转移其位宽和深度,但要满意五个标准:首先,修改后的容积(位宽
深度)不可能当先18k比特;其次,位宽最大不可能超越36比特。当然,能够将多片块RAM级联起来形成更大的RAM,此时只受限于芯片内块RAM的多少,而
不再受地点两条原则约束。 

5. 加上的布线能源 

布线能源对接FPGA内部的装有单元,而连线的尺寸和工艺控制着信号
在连线上的驱动能力和传输速度。FPGA芯片里面有着丰盛的布线能源,依据工艺、长度、宽度和散布地点的分歧而分开为4类差其余项目。第①类是大局布线财富,用于芯片里面全局时钟和全局复位/置位的布线;第2类是长线财富,用以实现芯片Bank间的长足信号和第贰大局时钟信号的布线;第①类是短线财富,用
于完毕宗旨逻辑单元之间的逻辑互连和布线;第伍类是分布式的布线财富,用于专有时钟、复位等决定信号线。

在实际中设计者不须要一分区直属机关接大选择布线财富,布局布线器可自动地遵照输入逻辑网表的拓扑结构和束缚原则选拔布线能源来连接各种模块单元。从本质上讲,布线能源的施用方法和布署的结果有细致、直接的关联。 

6. 平底内嵌效率单元 

内 嵌效能模块首要指DLL(Delay Locked Loop)、PLL(Phase Locked
Loop)、DSP和CPU等软处理核(Soft
Core)。以后愈来愈丰裕的内嵌功效单元,使得单片FPGA成为了系统级的安插性工具,使其有着了软硬件联合设计的力量,稳步向SOC平台过渡。 
DLL
和PLL具有类似的成效,能够成功时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等职能。Xilinx集团生产的芯片上并轨了
DLL,Altera公司的芯片集成了PLL,Lattice公司的最新芯片上还要并入了PLL和DLL。PLL
和DLL能够透过IP核生成的工具方便地拓展田管和布局。DLL的结构如图1-5所示。

图1-5 典型的DLL模块示意图

  1. 内嵌专用硬核 

内 嵌专用硬核是相持底层嵌入的软核而言的,指FPGA处理能力强大的硬核(Hard
Core),等效于ASIC电路。为了增加FPGA质量,芯片生产商在芯片内部集成了一部分专用的硬核。例如:为了增强FPGA的乘法速度,主流的FPGA
中都集成了专用乘法器;为了适用通讯总线与接口标准,很多高端的FPGA内部都集成了串并收发器(SE奥迪Q7DES),能够达到规定的标准数十Gbps的收发速度。 
Xilinx 公司的高端产品不仅集成了Power PC种类CPU,还内嵌了DSP
Core模块,其对应的系统级设计工具是EDK和Platform
Studio,并依此提议了片上系统(System on
Chip)的概念。通过PowerPC、Miroblaze、Picoblaze等平台,可以开发规范的DSP处理器及其相关应用,达到SOC的支出目的。

1.2.3 软核、硬核以及固核的概念

IP(速龙ligent
Property)核是具有文化产权核的集成都电子通信工程大学路芯核总称,是通过再三验证过的、具有一定效率的宏模块,与芯片成立工艺非亲非故,能够移植到不相同的半导体收音机工艺
中。到了SOC阶段,IP核设计已成为ASIC电路设计公司和FPGA提供商的根本任务,也是其实力突显。对于FPGA开发软件,其提供的IP核越丰富,
用户的筹划就越方便,其市集占用率就越高。近期,IP核已经济体改成系统规划的骨干单元,并视作单身设计成果被换到、转让和销售。 

从IP核的提供格局上,平时将其分成软核、硬核和固核那3类。从不辱义务IP核所开销的资金来讲,硬核代价最大;从使用灵活性来讲,软核的可复用使用性最高。 

1. 软核 

核在EDA设计领域指的是综合从前的寄存器传输级(奥迪Q5TL)模型;具体在FPGA设计中指的是对电路的硬件语言叙述,包涵逻辑描述、网表和支援文档等。软
核只经过功用仿真,必要经过综合以及布局布线才能使用。其优点是看人下菜高、可移植性强,允许用户自配置;缺点是对模块的预测性较低,在一而再规划中存在产生错误的大概,有一定的设计风险。软核是IP核应用最常见的款型。

2. 固核 
固核在EDA设计领域指的是包罗平面设计新闻的
网表;具体在FPGA设计中得以看做带有布局设计的软核,日常以卡宴TL代码和对应具体育工作艺网表的交集情势提供。将逍客TL描述结合具体规范单元库实行归结优
化设计,形成门级网表,再经过布局布线工具即可使用。和软核比较,固核的计划性灵活性稍差,但在可相信性上有较大增加。目前,固核也是IP核的主流格局之一。 

3. 硬核 
硬核在EDA设计领域指通过认证的设计领域;具体在FPGA设计中指布局和工艺固定、经过前端和后端验证的安插性,
设计人士不能对其修改。不能够改改的由来有八个:首先是系统规划对一一模块的时序供给很严峻,不容许打乱已有些物理领域;其次是珍爱知识产权的渴求,不允许
设计职员对其有别的变动。IP硬核的不能够修改特点使其复用有必然的勤奋,因而不得不用于有些特定应用,使用限制较窄。

 

第①节 基于FPGA的开销流程

1.3.1 FPGA设计艺术概论
FPGA是可编制程序芯片,由此FPGA的安顿性艺术包罗硬件设计和软件设计两部分。硬件包含FPGA芯片电路、存款和储蓄器、输入输出接口电路以及
其余设备,软件就是相应的HDL程序以及新型才流行的嵌入式C程序。硬件设计是基础,但其方法相比固化,本书将在第⑤节对其展开详尽介绍,本节主要介绍软
件的布置性情势。

日前微电子技术一度迈入到SOC阶段,即集成系统(Integrated
System)阶段,绝对于集成都电子通信工程大学路(IC)的规划思想有着革命性的变化。SOC是3个犬牙相错的系统,它将三个完完全全产品的效果集成在2个芯片上,包罗核心处
理器、存款和储蓄单元、硬件加速单元以及无数的外部设备接口等,具有设计周期长、完毕资金财产高等特点,由此其安顿方法自然是自顶向下的从系统级到作用模块的软、硬
件协同安顿,达到软、硬件的无缝结合。 

那般高大的工作量明显超出了单个工程师的能力,因而须求依照层次化、结构化的安插艺术来推行。首
先由总设计师将全部软件开发职务划分为多少个可操作的模块,并对其接口和财富开始展览评估,编写制定出相应的一言一动或组织模型,再将其分配给下一层的设计师。那就允
许八个设计者同时设计1个硬件系统中的不相同模块,并为自个儿所布置的模块负责;然后由上层设计师对下层模块进行作用验证。

自顶向下的统一筹划流程从系统级设计伊始,划分为多少个二级单元,然后再把各种二级单元区划为下一层次的基本单元,一直下去,直到能够利用基
本模块只怕IP核直接完毕告竣,如图1-6所示。流行的FPGA开发工具都提供了层次化管理,能够使得地梳头错综复杂的层系,能够有利于地翻看某一层次模块
的源代码以修改错误。 

 

图1-6 自顶向下的FPGA设计开发流程


工程执行中,还设有软件编写翻译时长的题材。由于大型设计带有五个复杂的效能模块,其时序收敛与虚假验证复杂度很高,为了满意时序指标的渴求,往往须求频仍修
改源文件,再对所修改的新本子实行双重编写翻译,直到满意要求结束。那些中存在四个难题:首先,软件编写翻译2遍索要长达数时辰甚至数周的光阴,那是支付所无法容
忍的;其次,重新编写翻译和布局布线后结果差距非常的大,会将已满意时序的电路破坏。因而必须建议一种有效增进统一筹划个性,继承已有结果,便于团队化设计的软件工
具。FPGA厂商意识到那类必要,由此开发出了相应的逻辑锁定和增量设计的软件工具。例如,Xilinx公司的化解方案正是PlanAhead。 

Planahead
允许高层设计者为差异的模块划分相应FPGA芯片区域,并允许底层设计者在在所给定的区域内独立地展开规划、实现和优化,等次第模块都不错后,再开始展览规划
整合。要是在规划结合中出现错误,单独修改即可,不会潜移默化到其余模块。Planahead将结构化设计方法、共青团和少先队化合营规划艺术以及重用继承设计格局三者
完美地组合在联合,有效地升高了设计效用,缩小了安排周期。

而是从其描述能够观察,新型的安插方法对系统顶层设计师有很高的渴求。在规划初期,他们不仅要评估每一种子模块所开销的能源,还必要提交相应的时序关系;在布置前期,供给遵照底层模块的兑现动静形成相应的改正。

 

1.3.2 典型FPGA开发流程

FPGA的安排流程正是使用EDA开发软件和编制程序工具对FPGA芯片实行支付的进度。FPGA的开销流程一般如图1-7所示,包含电路设计、设计输入、功用仿真、综合优化、综合后仿真、实现、布线后仿真、板级仿真以及芯片编制程序与调节等关键步骤。

 

图1-7 FPGA开发的相似流程

1. 电路设计
在系统规划前面,首先要举办的是方案论证、系统规划和FPGA芯片采用等准备干活。系统工程师依据职务要求,如系统的指标和复杂度,对工作速度和芯片自身的各样能源、费用等地点开始展览衡量,选取合理的设计方案和适量的零部件类型。一般都选用自顶向下的宏图艺术,把系统一分配为若干个为主单元,然后再把每种宗旨单元
划分为下一层次的核心单元,一直这么做下来,直到可以一向利用EDA元件库甘休。 

2. 企划输入 
规划输入是将所安排的系统或
电路以开发软件供给的某种格局表示出来,并输入给EDA工具的进度。常用的措施有硬件描述语言(HDL)和法则图输入方法等。原理图输入情势是一种最直白
的叙述格局,在可编制程序芯片发展的初期采用相比较宽泛,它将所需的零件从元件库中调出来,画出原理图。那种办法尽管直观并不难仿真,但作用很低,且不易维护,
不便利模块构造和录取。更注重的败笔是可移植性差,当芯片升级后,全数的原理图都急需作早晚的变动。如今,在实质上支出中选择最广的就是HDL语言输入法,
利用文本描述设计,能够分为一般HDL和作为HDL。普通HDL有ABEL、CU智跑等,支持逻辑方程、真值表和状态机等表明格局,主要用来简单的微型设
计。而在中山大学型工程中,首要接纳行为HDL,其主流语言是Verilog
HDL和VHDL。那三种语言都以United States电气与电子工程师组织(IEEE)的正经,其伙同的崛起特色有:语言与芯片工艺非亲非故,利于自顶向下统一筹划,便于模块的
划分与移植,可移植性好,具有很强的逻辑描述和虚伪功效,而且输入效率很高。

3. 效率仿真 
功能仿真,也称之为前仿真,是在编译此前对用户所安插的电路举办逻辑效能验证,此时的虚伪没有延迟音讯,仅对先河的功用举办检查和测试。仿真前,要先采纳波形编辑器和HDL等建立波形文件和测试
向量(即将所关怀的输入信号组合成体系),仿真结果将会扭转报告文本和输出信号波形,从中便得以考察各种节点信号的变更。假如发现错误,则赶回设计修改逻
辑设计。常用的工具有Model
Tech集团的ModelSim、Sysnopsys集团的VCS和Cadence公司的NC-Verilog以及NC-VHDL等软件。 

4. 归纳优化 

谓综合正是将较高级抽象层次的描述转化成较低层次的叙述。综合优化依照目的与供给优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件实行实现。就当下的层次来看,综合优化(Synthesis)是指将统一筹划输入编写翻译成由与门、或门、非门、RAM、触发器等宗旨逻辑单元构成的逻辑连接网表,而并
非真实的门级电路。真实具体的门级电路需求选用FPGA创建商的布局布线成效,依照综合后变卦的正儿八经门级结构网表来产生。为了能转换到标准的门级结构网
表,HDL程序的编纂必须符合一定综合器所供给的品格。由于门级结构、奥德赛TL级的HDL程序的汇总是很干练的技术,全体的综合器都得以帮衬到那顶级其余综
合。常用的总结工具有Synplicity公司的Synplify/Synplify
Pro软件以及种种FPGA厂家协调生产的汇总开发工具。 

5. 总结后仿真 

合后仿真检查综合结果是或不是和原规划相同。在虚假时,把综合变化的科班延时文件反标注到综合仿真模型中去,可推断门延时带来的熏陶。但这一步骤无法估摸线延
时,因而和布线后的其实际情况况还有一定的差异,并不13分标准。如今的总结工具较为成熟,对于一般的设计可以不难这一步,但要是在布局布线后发现电路结构和设
计意图不符,则须求回溯到综合后仿真来认同难题之四海。在效劳仿真中介绍的软件工具一般都帮助综合后仿真。

 

6. 落到实处与布局布线 
兑现是将汇总变化的逻辑网表配置到具体的FPGA芯片上,布局布线是中间最要紧的历程。布局将逻辑网表中的硬件原语和底部单元合理地布署到芯片内部的固有硬件结构上,并且屡屡必要在速度最优和面积最优之间作出抉择。布线遵照布局的拓扑结构,利用芯片里面包车型大巴各样连线财富,合理
正确地接连各种部件。近来,FPGA的布局卓殊复杂,特别是在有时序约束条件时,须求动用时序驱动的引擎举办布局布线。布线甘休后,软件工具会自动生成报
告,提供关于铺排中各部分财富的选用情状。由于唯有FPGA芯片生产商对芯片结构最为领会,所以布局布线必须选择芯片开发商提供的工具。 

7. 贯彻与布局布线 

序仿真,也号称后仿真,是指将布局布线的延时音讯反标注到设计网表中来检查和测试有无时序违法(即不知足时序约束规范或机件固有的时序规则,如成马上间、保持时
间等)现象。时序仿真包涵的推移新闻最全,也最纯正,能较好地展示芯片的骨子里工作景况。由于分裂芯片的中间延时不雷同,不一样的布局布线方案也给延时带来差别的影响。由此在布局布线后,通过对系统和一一模块实行时序仿真,分析其时序关系,猜度系统品质,以及检查和排除竞争冒险是极度有供给的。在功效仿真中介
绍的软件工具一般都援助综合后仿真。 

8. 板级仿真与验证 
板级仿真首要利用于高效电路设计中,对高速系统的信号完整性、电磁干扰等特色进行分析,一般都以第叁方工具实行虚假和表达。 

9. 芯片编制程序与调节和测试 

计的最后一步正是芯片编制程序与调节。芯片编制程序是指发生使用的数据文件(位数据流文件,Bitstream
Generation),然后将编制程序数据下载到FPGA芯片中。个中,芯片编制程序必要知足一定的规则,如编制程序电压、编制程序时序和编制程序算法等方面。逻辑分析仪
(Logic
Analyzer,LA)是FPGA设计的首要性调节和测试工具,但须求引出多量的测试管脚,且LA价格昂贵。近期,主流的FPGA芯片生产商都提供了内嵌的在线
逻辑分析仪(如Xilinx ISE中的ChipScope、Altera
QuartusII中的SignalTapII以及SignalProb)来消除上述争辨,它们只供给占用芯片少量的逻辑财富,具有很高的实用价值。

1.3.3 基于FPGA的SOC设计格局

据悉FPGA的SOC设计意见将FPGA可编制程序的亮点带到了SOC领域,其系统由嵌入式处理器内核、DSP单元、大容积处理器、吉比特收发器、混合逻辑、IP以及原来的设计有个别组成。相应的FPGA规模大都在百万门以上,适合于广大世界,如邮电通讯、总结机等行业。 

系统规划艺术是SOC常用的方历史学,其优势在于,可开始展览反复修改并对系统架构达成实行认证,??? 包涵SOC集成硬件和软件组件之间的接口。然则,近期仍存在很多难点,最大的题材尽管没有通用的体系描述语言和系统级综合工具。随着FPGA平台的融入,将
SOC稳步地拉动了实用。SOC平台的为主部分是内嵌的处理内核,其硬件是确定地点的,软件则是可编制程序的;外围电路则由FPGA的逻辑财富整合,大都是IP
的款型提供,例如存款和储蓄器接口、USB接口以及以太网MAC层接口等,用户依据本人必要在内核总线上加上,并能本人订制相应的接口IP和外围设备。 

依照FPGA的高人一头SOC开发流程为: 

1.芯片内的考虑 

设计划生育成初步,设计人士供给从硬件/软件同步验证的思绪入手,以找出只幸而系统合两为一阶段才会被发现的软、硬件缺陷。然后选拔稳妥的芯片以及开发工具,在综
合进程获得优化,随后展开规范的落到实处,以满意实际需求。由于规划范围越来越大,工作频率也到了数百兆赫兹,布局布线的延迟将变得不行重庆大学。为了确认保证满意时
序,要求在布局布线后实行静态时序分析,对安插进行验证。

2.板级验证 
在芯片设计实现后,需求再拓展板级验证,以便在印刷电
路板(PCB)上保证与早期设计功效雷同。因此,PCB布局以及信号完整性测试应被纳入统一筹划流程。由于芯片内设计所做的别的改动都将映未来下游的规划流程
中,各样进程里面包车型大巴数额接口和管理也亟须是不易的。估量SOC系统以及所不可不的附加进度将使数据的大大小小成指数提高,由此,管理各样数码集作者是能够挑衅性
的天职

 

备注:

DD汉兰达是双倍数量速率(Double Data
Rate)。DD劲客与常见同步动态随机存款和储蓄器(DRAM)分外相象。普通同步DRAM(以后被称之为SDLX570)与标准DRAM有所不一样。
标准的DRAM接收的地方命令由2个地点字组合。为接省输入管脚,选取了多路传输的方案。第二地址字由原有地址选通(RAS)锁存在DRAM芯片。紧随RAS命令之后,列地址选通(CAS)锁存第②地址字。经过RAS和CAS,存储的数额足以被读取。
同步动态随机存款和储蓄器(SDTucsonDRAM)由3个标准DRAM和时钟组成,RAS、CAS、数据有效均在时钟脉冲的升高边沿被运维。遵照时钟提示,能够预测数据和剩下指令的地方。因此,数据锁存选通能够精分明位。由于数量有效窗口的可测度性,所以可将存储器划分成五个区实行内部单元的预充电和预获取。通过脉冲串方式,可举办连续地址获取而不必重复RAS选通。连续CAS选通可对来源相同源的数据开始展览再次出现。
DDENCORE存款和储蓄器与SD哈弗存款和储蓄器工作规律基本相同,只然则DDHighlander在时钟脉冲的上升和降落沿均读取数据。新一代DDOdyssey存款和储蓄器的工作频率和数量速率分别为200MHz和266MHz,与此对应的钟表频率为100MHz和133MHz。

 

原文:http://blog.sina.com.cn/s/blog_5985062d01013fcx.html

一.查找表(Look-Up-Table)的原理与布局

 

利用那种布局的PLD芯片大家也能够称呼FPGA:如altera的ACEX,APEX种类,xilinx的Spartan,Virtex体系等。

查找表(Look-Up-Table)简称为LUT,LUT本质上便是贰个RAM。近来FPGA中多应用4输入的LUT,所以每2个LUT能够看作叁个有三位地址线的16×1的RAM。当用户通过原理图或HDL语言描述了3个逻辑电路现在,PLD/FPGA开发软件会自行测算逻辑电路的具有大概的结果,并把结果事先写入RAM,那样,每输入三个信号举行逻辑运算就相当于输入1个地点举行查表,找出地址对应的内容,然后输出即可。

下面是三个4输入与门的例证,

实则逻辑电路

LUT的落到实处际情况势

a,b,c,d 输入

逻辑输出

地址

RAM中存款和储蓄的内容

0000

0

0000

0

0001

0

0001

0

….

0

0

1111

1

1111

1

 

 

二.基于查找表(LUT)的FPGA的结构

 

作者们看一看xilinx Spartan-II的内部结构,如下图:

xilinx Spartan-II 芯片内部结构
Slices结构

Spartan-II首要包罗CLBs,I/O块,RAM块和可编制程序连线(未表示出)。在spartan-II中,2个CLB包涵二个Slices,每种slices包蕴八个LUT,八个触发器和有关逻辑。
Slices能够作为是SpartanII达成逻辑的最宗旨构造
(xilinx其余一体系,如SpartanXL,Virtex的结构与此稍有例外,具体请参阅数据手册)

altera的FLEX/ACEX等芯片的结构如下图:

altera FLEX/ACEX 芯片的内部结构

 

逻辑单元(LE)内部结构

FLEX/ACEX的结构首要包罗LAB,I/O块,RAM块(未表示出)和可编制程序行/列连线。在FLEX/ACEX中,三个LAB包罗九个逻辑单元(LE),每一个LE包罗2个LUT,二个触发器和相关的相关逻辑。LE是FLEX/ACEX芯片完毕逻辑的最核心构造(altera其他一体系,如APEX的协会与此基本相同,具体请参阅数据手册)

 

二.查找表结构的FPGA逻辑完成原理

 

大家依然以这些电路的为例:

A,B,C,D由FPGA芯片的管脚输入后进入可编制程序连线,然后作为地方线连到到LUT,LUT中早已先期写入了有着只怕的逻辑结果,通过地方查找到相应的数量然后输出,那样组合逻辑就达成了。该电路中D触发器是从来运用LUT后边D触发器来贯彻。时钟信号CLK由I/O脚输入后进入芯片内部的钟表专用通道,直接连接到触发器的时钟端。触发器的输出与I/O脚相连,把结果输出到芯片管脚。那样PLD就到位了图3所示电路的效率。(以上这一个步骤都以由软件自行完毕的,不供给人工干预)

其一电路是2个很简短的例子,只必要二个LUT加上三个触发器就足以做到。对于二个LUT无法完结的的电路,就须求通过进位逻辑将四个单元相连,那样FPGA就足以达成复杂的逻辑。

鉴于LUT主要适合SRAM工艺生产,所以近年来多数FPGA都是根据SRAM工艺的,而SRAM工艺的芯片在掉电后新闻就会丢掉,一定须求增大学一年级片专用配置芯片,在上电的时候,由那个专用配置芯片把多少加载到FPGA中,然后FPGA就能够符合规律工作,由于配备时间相当的短,不会潜移默化系统健康办事。也有少数FPGA采纳反熔丝或Flash工艺,对这种FPGA,就不需求增大专用的安顿芯片。

 

三.其余类型的FPGA和PLD

   随着技术的上扬,在二〇〇二年从此,一些厂家生产了有的新的PLD和FPGA,那个产品模糊了PLD和FPGA的区分。例如Altera最新的MAXII类别PLD,那是一种基于FPGA(LUT)结构,集成配置芯片的PLD,在本质上它就是一种在里头集成了布署芯片的FPGA,但由于配备时间极短,上电就足以干活,所以对用户来说,感觉不到安插进度,能够守旧的PLD一样选择,加上体量和历史观PLD类似,所以altera把它归作PLD。还有像Lattice的XP体系FPGA,也是应用了一如既往的原理,将表面配置芯片集成到个中,在利用方法上和PLD类似,不过因为容量大,品质和历史观FPGA相同,也是LUT架构,所以Lattice仍把它归为FPGA。

 

四.选择PLD还是FPGA?

 

依据上一篇PLD的构造和法则能够清楚,PLD分解组合逻辑的功能很强,三个宏单元就能够分解贰10个甚至20-30四个组成逻辑输入。而FPGA的3个LUT只可以处理4输入的组成逻辑,由此,PLD适合用来设计译码等繁杂组合逻辑。但FPGA的营造工艺分明了FPGA芯片中涵盖的LUT和触发器的数额非凡多,往往都以几千上万,PLD一般只好完毕511个逻辑单元,而且只要用芯片价格除以逻辑单元数量,FPGA的平分逻辑单元费用大大低于PLD。所以只要规划中选取到大方触发器,例如规划二个扑朔迷离的时序逻辑,那么使用FPGA正是多少个很好选取。同时PLD拥有上电即可工作的特色,而当先52%FPGA要求二个加载进度,所以,假设系统要可编制程序逻辑器件上电就要工作,那么就应有选用PLD。

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注