


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、设计概念 1 .设计入口Quartus II支持原理图和HDL语言的输入。原理图更适合简单的设计,HDL语言适合复杂的设计。但要注意,如果想使用第三方的综合工具,就必须用HDL语言。Quartus II软件的文本编辑器,可以插入很多语言相关的模板,这个功能不错。选择综合工具:Altera支持很多第三方的综合工具,个人比拟喜欢用SynplifyPro。这些工具生成.edf或者.vqm文件,然后Quartusll再进行布局布线。SOP(生成:Altera的SOPC功能很强大。IP刁Itera和第三方合作伙伴提供了很多的IP,可以让设计变得更快捷。特别是 Altera 提供的,可以直接试用。对于
2、一些 FPGA内部的资源模块,通常既可以直接调用 Quartus II 的ip核,也可以用HDL语言来描述,比方RAM资源。宏功能(Megafunction): ALtera圭寸装了很多资源和模块,用 Megafunction的形式给用 户调用,只用设置一些参数,就可以正常使用这些模块了。2. 设计建议1) 同步设计:setup time和hold time的充分保证,能减少毛刺等的干扰。使用Cyclone III I/O的输入存放器(注意,不是普通的LE),这样芯片的输入信号能更好 的滤除毛刺。需要设置 Fast In put Rgediste,来使用该存放器。FPGA内部路径的延迟是不确定
3、的,会在设计中因为每次布局布线不同而改变,会在使 用中因为温度,电压等因素改变,还会因为工艺的差异而改变。为了增加设计的稳定性,尽 量提高时序分析时路径的余量。虽然时序分析已经是按芯片在最差状况下的时序特性来分 析,但多留一点余量还是有好处。2) 时钟:时钟在同步设计中是非常重要的。(a) 时钟当然得用专用时钟引脚输入,用普通I/O会导致更严重的时钟偏移。高时钟偏移 会导致hold time违规。时钟在芯片内部会使用全局时钟网络,全局异步复位信号也可以使用全局时钟网络。全局时钟网络能保证信号 1点到多点的相同延迟。也就是说,某个信号, 从输入引脚,通过全局时钟网络,到内部的各个存放器,虽然走的
4、是不同路径,但这些路径 的延迟是一样的。(b) 组合逻辑不能处理毛刺,对组合逻辑的输入信号,用高频时钟过滤毛刺,对组合逻辑 的输出信号,也可以用高频时钟过滤毛刺。(c) 使用PLL,可以对时钟分频。PLL还可以精确控制输出时钟的相位。(d) 使用PLL对时钟相位改变,比使用非门效果更好。(e) 对于一个PLL,可以设置一个主时钟和一个备用时钟。建议使用Altera提供的专门模块altclkcrtl来实现门控时钟。如果只是想控制输出的 稳态,可以对输入加上ena信号,这样还是保持了同步设计。门控时钟和非门控时钟之间是 非同步的。门控时钟的控制信号,必须滤除毛刺,否那么会影响输出的时钟。对时钟进行
5、门控 的位置尽量靠近时钟源,可以减少时钟延迟。3. 芯片级的复位Cyclone III芯片,支持芯片级的复位,包括去除M9K中的内容。需要开启DEV_CLRn引脚功能。该引脚默认为普通I/O。4 .存放器上电电平可以设置存放器上电时是咼电平还是低电平。当然默认是低电平。通过设置Power-UpLevel参数实现。5. 设计约束Quartus II提供了设计约束检查功能,通过该检查,能提高设计的可靠性。检查包括时 钟,复位,异步设计等。该项功能默认没有开启。6. 分层和基于团队的设计增量编译,可以减少设计迭代需要的时间,减少时序收敛需要的时间。对设计分区分 割,是增量编译的根底。如果用第三方的综
6、合工具,需要生成假设干独立的.vqm或者.edf文件。顶层的各个模块之间,最好只有互连线,而没有任何逻辑,逻辑都应包含在各个模块内 部。时序预算和资源分配:模块内部的时序路径可以单独优化好。但如果是跨分区的时序路 径,只能在集成后优化。这些时序路径可以通过加上约束来到达要求。资源的分配也要提前 计算好,以免集成后出现冲突。除了常见的资源,注意全局时钟资源也是有限的。方案从底向上和基于团队的流程:在进行底层设计前,必须要知道顶层的相关信息,包 括引脚分配,物理约束和时序要求等。Quartus II提供了一些脚本Generate bottom-up design partition scripts
7、来实现顶层信息向底层的传递。可以通过LogicLock实现对设计在物理上分区。通常对时序要求很难到达的模块,才进 行LogicLock。对一般模块进行 LogicLock反而降低了布局的灵活性。 Quartus II 的Chip Planner功能,可以精确到对存放器进行布局,估算物理延迟,观察模块间的连接。7、功耗优化时序约束比功耗优化的优先级要高,得先满足前者再考虑后者。软件包含了功耗优化的 向导,易于使用。DSE也是一个很好的优化工具。1时钟功耗管理。Quartus II会自动对时钟网络的功耗进行优化。也可以自己使用门控 时钟来减少功耗。2减少内存功耗的方法是,使用内存的门控时钟信号。3
8、决定I/O功耗的因素包括:负载电容,输出频率,输出电压摆幅。电压参考的I/O标准比方SSTL的电压摆幅比LVTTL和 LVCMO要低,因此动态功耗低一些。但静态功耗反 而高一些。4在复杂的组合逻辑中插入存放器,能减少毛刺带来的动态功耗,但也增 加了存放器功耗。5结构优化。使用DSP莫块进行数学计算,而不是使用LE。大的移位存放器使用ram资 源实现的FIFO,而不是使用LE。这样都能减少功耗。& I/O考虑I/O的设计流程包括:创立pin相关的配置,验证配置是否符合规那么。管脚分配工具Pin Planner : Package View默认视图:提供了可视化的芯片圭寸装,能 更直观的分
9、配管脚,防止拥挤。能用不同的方式显示芯片的封装,包括分bank,显示差分管脚,显示已分配管脚等。如果你分不清芯片的哪一边是TOP可以使用ShowEdges,然后你就知道了,bank12是 LEFT,bank34是 BOTTOM,bank5& RIGHT bank78是 TOPPad View :提供了芯片核心裸片的引脚分布顺序。注意某些引脚分布规那么,在芯片 圭寸装后比方BGA封装可能难以理解,但看看裸片的引脚分布就知道了。Pin Migrati on View :如果你设计时要考虑器件迁移兼容,那么用这个视图是最方便 的,选择好要兼容的器件,直接就会生成每个引脚的最终选择。按照这个视
10、图的结果做封装 就可以了。配置工具Assignment Editor,管脚相关的配置:1输出电流Current Strength:每个I/O标准都可以配置输出电流大小。注意增大电 流,会提高I/O性能,但也会提高噪声。电流过小也会有影响,特别是对输出的时钟信号。 因此选择适宜的电流大小很重要。2摆动变化速率控制slew rate control:对于高速的数据总线,Altera建议打开这项设置,用来降低SSO干扰。这项设置只支持单端的I/O标准,大于等于8mA以上的电 流。这项设置的具体使用,会再补充。3片内串行匹配OCT: OCTt两种模式,校准和非校准。在非校准的情况下,默认选择FPGA设
11、计根底2021-10-16 00:0725欧和50欧的电阻。校准模式下,RUP和RDNt脚需要连接25欧或者50欧的精密电阻,芯片 会在FPGA的配置时期,进行校准,设置更准确的 OCT值。4专用差分输出缓冲单元:left和right的I/O bank有此单元,最大LVDS俞出速率达 840Mbps且不需要外部的发送匹配电阻。这个单元还能对输出信号进行可选择的预加重。信 号在线缆中传输时,高频成分的衰减,相对于低频成分要大。因此在输出时,对高频成分适 当放大,这样能减少接收端的高频成分和低频成分的不平衡。注意配置选项的名称为Programmable Pre-emphasis 。9、PLL考虑C
12、yclone III 有4个独立的PLL单元EP3C和 EP3C1只有2个。PLL的输入时钟只能是 专用时钟输入或者是另一个 PLL的输出时钟。PLL的C0俞出到专用时钟输出脚,可以到达最 好的布线效果。PLL模块可以进行功能仿真和时序仿真。10、配置软件的设置1可选的配置管脚。En able user-supplied start-up clock CLKUSR,这个选项用来控制,是否使用外部时钟来初始化FPGA FPGA默认用10MHz的内部时钟来初始化。EnableINIT_DONE output,这个选项如果翻开,当 FPGA配置完成时,该管脚会由低变高。如果使 用,需要外部10K欧的
13、上拉。2自动重配。翻开 auto-restartcon figurationafter error option 这个选项,当 FPGA配置错误时,会自动重新配置。3估算配置文件大小。rbf格式的文件大小,最接近原始的未压缩文件大小。4转换配置文件的格式。可以把原始的sof文件转化为pof,hexout,rbf,ttf,rpd,jic这些格式。pof和jic是Quartus II烧写软件支持的格式,其它格式用于其它烧写软件。如 果要做到多器件配置,可以把多个 sof合在一起,转化为一个配置文件。合在一起的顺序需 要注意,和配置的顺序是相关的。11、有效pin的布局1 I/O配置检查。Start
14、 I/O Assignment Analysis命令,可以用来检查I/O配置有没 有违规的地方。2 直流相关。输入或者输出电流过大都会损坏芯片。每个I/O引脚,最大输出40mA输入25mA引脚如果要拉高或者拉低,一定要串联外部电阻。还要注意,连续引脚的总输出电 流是有限制的。因此,尽量分散管脚的使用,而且适当限制电流是有必要的FPGA/CPLD勺设计思想与技巧是一个非常大的话题,本文仅讨论的四种常用FPGA/CPLD设计思想与技巧:乒乓操作、串并转换、流水线操作、数据接口同步化,合理地采用这些设 计思想能在FPGA/CPL设计工作种取得事半功倍的效果。1. 乒乓操作“乒乓操作是一个常常应用于数
15、据流控制的处理技巧,典型的乒乓操作方法如图1所示。乒乓操作的处理流程为:输入数据流通过“输入数据选择单元将数据流等时分配到两个数据缓冲区,数据缓冲模块可以为任何存储模块,比拟常用的存储单元为双口RAM(DPRAM单口 RAM(SPRAM)FIFO等。在第一个缓冲周期,将输入的数据流缓存到“数据缓冲模块1 ;在第2个缓冲周期,通过“输入数据选择单元 的切换,将输入的数 据流缓存到“数据缓冲模块2 ,同时将“数据缓冲模块1 缓存的第1个周期数据 通过“输入数据选择单元的选择,送到“数据流运算处理模块 进行运算处理;在第3个缓冲周期通过“输入数据选择单元的再次切换,将输入的数据流缓存到“数据缓冲 模
16、块1 ,同时将“数据缓冲模块2 缓存的第2个周期的数据通过“输入数据选择 单元切换,送到“数据流运算处理模块 进行运算处理。如此循环。乒乓操作的最大特点是通过“输入数据选择单元 和“输出数据选择单元 按节拍、 相互配合的切换,将经过缓冲的数据流没有停顿地送到“数据流运算处理模块 进行运算与处理。把乒乓操作模块当做一个整体,站在这个模块的两端看数据,输入数据流和输出数 据流都是连续不断的,没有任何停顿,因此非常适合对数据流进行流水线式处理。所以乒乓 操作常常应用于流水线式算法,完成数据的无缝缓冲与处理。乒乓操作的第二个优点是可以节约缓冲区空间。比方在WCDM基带应用中,1个帧是由15个时隙组成的
17、,有时需要将1整帧的数据延时一个时隙后处理,比拟直接的方法是将这帧数据缓存起来,然后延时1个时隙进行处理。这时缓冲区的长度是 1整帧数据长,假设 数据速率是3.84Mbps,1帧长10ms,那么此时需要缓冲区长度是 38400位。如果采用乒乓操 作,只需定义两个能缓冲1个时隙数据的RAM单口 RAMP可)。当向一块RAM写数据的时候,从另一块RAM卖数据,然后送到处理单元处理,此时每块 RAM勺容量仅需2560 (38400/15) 位即可,2块RAM加起来也只有5120位的容量血 neata*元哙Q /审軽幢冲LMUX 2酊另外,巧妙运用乒乓操作还可以到达用低速模块处理高速数据流的效果。如图
18、2所示,数据缓冲模块采用了双口 RAM并在DPRA后引入了一级数据预处理模块,这个数据预处理可以根据需要的各种数据运算,比方在 WCDM设计中,对输入数据流的解扩、解扰、去旋转 等。假设端口 A的输入数据流的速率为100Mbps,乒乓操作的缓冲周期是10ms。以下分析 各个节点端口的数据速率。A端口处输入数据流速率为100Mbps,在第1个缓冲周期10ms内,通过“输入数据 选择单元,从B1到达DPRAM1 B1的数据速率也是100Mbps,DPRAM要在 10ms内写 入1Mb数据。同理,在第2个10ms数据流被切换到DPRAM2端口 B2的数据速率也是 100MbpsDPRAM在第2个10
19、ms被写入1Mb数据。在第3个10ms,数据流又切换到DPRAM,1 DPRAM被写入1Mb数据。仔细分析就会发现到第3个缓冲周期时,留给DPRAM读取数据并送到“数据预处理模 块1 的时间一共是20ms。有的工程师困惑于DPRAM的读数时间为什么是20ms,这个时 间是这样得来的:首先,在在第 2个缓冲周期向DPRAM写数据的10ms内,DPRAM可以进 行读操作;另外,在第1个缓冲周期的第5ms起(绝对时间为5ms时刻),DPRAM就可以 一边向500K以后的地址写数据,一边从地址0读数,到达10ms时,DPRAM刚好写完了 1Mb 数据,并且读了 500K数据,这个缓冲时间内DPRAM读
20、了 5ms;在第3个缓冲周期的第5ms 起(绝对时间为25ms时刻),同理可以一边向500K以后的地址写数据一边从地址 0读数, 又读取了 5个ms,所以截止DPRAM1第一个周期存入的数据被完全覆盖以前,DPRAM最多可以读取20ms时间,而所需读取的数据为1Mb,所以端口 C1的数据速率为: 1Mb/20ms=50Mbps因此,“数据预处理模块 1 的最低数据吞吐能力也仅仅要求为50Mbps同理,“数据预处理模块2 的最低数据吞吐能力也仅仅要求为 50Mbps。 换言之,通过乒乓操作,“数据预处理模块 的时序压力减轻了,所要求的数据处理速率 仅仅为输入数据速率的1/2。通过乒乓操作实现低速
21、模块处理高速数据的实质是:通过DPRAM这种缓存单元实现了数 据流的串并转换,并行用“数据预处理模块1 和“数据预处理模块2 处理分流的 数据,是面积与速度互换原那么的表达!2. 串并转换设计技巧串并转换是FPGA设计的一个重要技巧,它是数据流处理的常用手段,也是面积与速度互 换思想的直接表达。串并转换的实现方法多种多样,根据数据的排序和数量的要求,可以选用存放器、RAM等实现。前面在乒乓操作的图例中,就是通过DPRAMS现了数据流的串并转换,而且由于使 用了 DPRAM数据的缓冲区可以开得很大,对于数量比拟小的设计可以采用存放器完成串并 转换。如无特殊需求, 应该用同步时序设计完成串并之间的
22、转换。比方数据从串行到并行,数据排列顺序是高位在前,可以用下面的编码实现:prljemp<=prl Jomp;srlJn:其中,prl_temp是并行输出缓存存放器,srln 是串行数据输入。对于排列顺序有规 定的串并转换,可以用case语句判断实现。对于复杂的串并转换,还可以用状态机实现。3. 流水线操作设计思想流水线处理是高速设计中的一个常用设计手段。如果某个设计的处理流程分为假设干步骤, 而且整个数据处理是“单流向的,即没有反应或者迭代运算,前一个步骤的输出是下一 个步骤的输入,那么可以考虑采用流水线设计方法来提高系统的工作频率。流水线设计的结构示意图如图3所示。其根本结构为:将适
23、当划分的n个操作步骤单流 向串联起来。流水线操作的最大特点和要求是,数据流在各个步骤的处理从时间上看是连 续的,如果将每个操作步骤简化假设为通过一个 D触发器就是用存放器打一个节拍,那 么流水线操作就类似一个移位存放器组,数据流依次流经D触发器,完成每个步骤的操作。流水线设计时序如图4所示。流水线设计的一个关键在于整个设计时序的合理安排,要求每个操作步骤的划分合理。 如果前级操作时间恰好等于后级的操作时间,设计最为简单,前级的输出直接汇入后级的输 入即可;如果前级操作时间大于后级的操作时间,贝嚅要对前级的输出数据适当缓存才能汇 入到后级输入端;如果前级操作时间恰好小于后级的操作时间,那么必须通
24、过复制逻辑,将数 据流分流,或者在前级对数据采用存储、后处理方式,否那么会造成后级数据溢出。在WCDM设计中经常使用到流水线处理的方法,女口 RAKE接收机、搜索器、前导捕获等。 流水线处理方式之所以频率较高,是因为复制了处理模块,它是面积换取速度思想的又一种 具体表达。4. 数据接口的同步方法数据接口的同步是FPGA/CPLDS计的一个常见问题,也是一个重点和难点,很多设计不 稳定都是源于数据接口的同步有问题。在电路图设计阶段,一些工程师手工参加BUFT或者非门调整数据延迟,从而保证本级模块的时钟对上级模块数据的建立、保持时间要求。还有一些工程师为了有稳定的采样,生 成了很多相差90度的时钟
25、信号,时而用正沿打一下数据,时而用负沿打一下数据,用以调 整数据的采样位置。这两种做法都十分不可取,因为一旦芯片更新换代或者移植到其它芯片 组的芯片上,采样实现必须从新设计。而且,这两种做法造成电路实现的余量不够,一旦外 界条件变换比方温度升高,采样时序就有可能完全紊乱,造成电路瘫痪。下面简单介绍几种不同情况下数据接口的同步方法:1.输入、输出的延时芯片间、PCB布线、一些驱动接口元件的延时等不可测,或者有可能变动的条件下,如何完成数据同步。对于数据的延迟不可测或变动,就需要建立同步机制,可以用一个同步使能或同步指示信号。另外,使数据通过RAM或者FIFO的存取,也可以到达数据同步目的。把数据
26、存放在RAM或 FIFO的方法如下:将上级芯片提供的数据随路时钟作为写信号,将数据写入RAM或者FIFO,然后使用本级的采样时钟一般是数据处理的主时钟将数据读出 来即可。这种做法的关键是数据写入 RAM或者FIFO要可靠,如果使用同步RAM或者FIFO, 就要求应该有一个与数据相对延迟关系固定的随路指示信号,这个信号可以是数据的有效指示,也可以是上级模块将数据打出来的时钟。对于慢速数据,也可以采样异步RAM或者FIFO,但是不推荐这种做法。数据是有固定格式安排的,很多重要信息在数据的起始位置,这种情况在通信系统中非 常普遍。通讯系统中,很多数据是按照“帧组织的。而由于整个系统对时钟要求很高,
27、常常专门设计一块时钟板完成高精度时钟的产生与驱动。而数据又是有起始位置的,如何完 成数据的同步,并发现数据的“ 头呢?数据的同步方法完全可以采用上面的方法,采用同步指示信号,或者使用RAM FIFO缓存一下。找到数据头的方法有两种,第一种很简单,随路传输一个数据起始位置的指示信号 即可,对于有些系统,特别是异步系统,贝U常常在数据中插入一段同步码比方训练序列,接收端通过状态机检测到同步码后就能发现数据的 “头 了,这种做法叫做“盲检测 上级数据和本级时钟是异步的,也就是说上级芯片或模块和本级芯片或模块的时钟是异步时钟域的。前面在输入数据同步化中已经简单介绍了一个原那么:如果输入数据的节拍和本级
28、芯片的处理时钟同频,可以直接用本级芯片的主时钟对输入数据存放器采样,完成输入数据的同步 化;如果输入数据和本级芯片的处理时钟是异步的,特别是频率不匹配的时候,贝U只有用处 理时钟对输入数据做两次存放器采样,才能完成输入数据的同步化。需要说明的是,用存放 器对异步时钟域的数据进行两次采样,其作用是有效防止亚稳态 数据状态不稳定的传播, 使后级电路处理的数据都是有效电平。但是这种做法并不能保证两级存放器采样后的数据 是正确的电平,这种方式处理一般都会产生一定数量的错误电平数据。所以仅仅适用于对少 量错误不敏感的功能单元。FPGA设计根底 2021-10-16 00:07为了防止异步时钟域产生错误的
29、采样电平,一般使用 RAM FIFO缓存的方法完成异步时 钟域的数据转换。最常用的缓存单元是 DPRA M在输入端口使用上级时钟写数据,在输出端 口使用本级时钟读数据,这样就非常方便的完成了异步时钟域之间的数据交换。建议对于高速设计,一定要对周期、建立、保持时间等添加相应的约束。作用有两点:a. 提高设计的工作频率,满足接口数据同步要求。通过附加周期、建立时间、保持时间 等约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频 率满足接口数据同步要求。b. 获得正确的时序分析报告。几乎所有的FPGA设计平台都包含静态时序分析工具,利 用这类工具可以获得映射或布局布线后的
30、时序分析报告,从而对设计的性能做出评估。静态 时序分析工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入约束,以便静态时序分析工具输出正确的时序分析报告。Altera与数据接口相关的常用约束有 Period、tsu、tH、tco等。 三、FPGA设计流程FPGA设计人体分为设计输入、综合、功能仿真前仿真、实现、时序仿真后仿真、 配置下载等六个步骤,设计流程如图 2所示。下面分别介绍各个设计步骤。1. 设计输入设计输入包括使用硬件描述语言 HDL、状态图与原理图输入三种方式。HDL设计方式是 现今设计大规模数字集成电路的良好形式,除IEEE标准中VHDL与Verilog HDL
31、两种形式外,尚有各自FPGA厂家推出的专用语言,如Quartus下的AHDL HDL语言描述在状态机、 控制逻辑、总线功能方面较强,使其描述的电路能特定综合器如Synopsys公司的FPGACompiler II或FPGA Express 作用下以具体硬件单元较好地实现;而原理图输入在顶层设计、数据通路逻辑、手工最优化电路等方面具有图形化强、单元节俭、功能明确等特点,另外,在Altera 公司Quartus 软件环境下,可以使用 Momory Editor 对内部memory进 行直接编辑置入数据。常用方式是以HDL语言为主,原理图为辅,进行混合设计以发挥二者各自特色。通常,FPGA厂商软件与
32、第三方软件设有接口, 可以把第三方设计文件导入进行处理。如 Quartus与Foundation 都可以把EDIF网表作为输入网表而直接进行布局布线, 布局布线 后,可再将生成的相应文件交给第三方进行后续处理。2. 设计综合综合,就是针对给定的电路实现功能和实现此电路的约束条件,如速度、功耗、本钱及 电路类型等, 通过计算机进行优化处理,获得一个能满足上述要求的电路设计方案。也就是是说,被综合的文件是 HDL文件或相应文件等,综合的依据是逻辑设计的描述和 各种约束条件,综合的结果那么是一个硬件电路的实现方案,该方案必须同时满足预期的功能 和约束条件。对于综合来说,满足要求的方案可能有多个,综合
33、器将产生一个最优的或接近最优的结果。因此,综合的过程也就是设计目标的优化过程,最后获得的结构与综合器的工作性能有 关。FPGA Compiler II是一个完善的FPGA逻辑分析、综合和优化工具,它从 HDL形式未 优化的网表中产生优化的网表文件,包括分析、综合和优化三个步骤。其中,分析是采用 Synopsys标准的HDL语法规那么对HDL源文件进行分析并纠正语法错误;综合是以选定的 FPGA结构和器件为目标,对HDL和FPGA网表文件进行逻辑综合;而优化那么是根据用户的 设计约束对速度和面积进行逻辑优化,产生一个优化的FPGA网表文件,以供FPGA布局和布线工具使用,即将电路优化于特定厂家器
34、件库,独立于硅持性,但可以被约束条件所驱动。利用FPGA Compiler II进行设计综合时,应在当前 Project 下导入设计源文件,自动进 行语法分析,在语法无误并确定综合方式、目标器件、综合强度、多层保持选择、优化目标 等设置后,即可进行综合与优化。在此可以将两步独立进行,在两步之间进行约束指定,如 时钟确实定、通路与端口的延时、模块的算子共享、存放器的扇出等。如果设计模型较大, 可以采用层次化方式进行综合,先综合下级模块,后综合上级模块。在进行上级模块综合埋 设置下级模块为Don't Touch,使设计与综合过程合理化。综合后形成的网表可以以EDIF格 式输出,也可以以VH
35、DL或Verilog HDL 格式输出,将其导入FPGA设计厂商提供的可支 持第三方设计输入的专用软件中,就可进行后续的FPGA芯片的实现。综合完成后可以输出报告文件,列出综合状态与综合结果,如资源使用情况、综合后层次信息等。3. 仿真验证从广义上讲,设计验证包括功能与时序仿真和电路验证。仿真是指使用设计软件包对已 实现的设计进行完整测试,模拟实际物理环境下的工作情况。前仿真是指仅对逻辑功能进行 测试模拟,以了解其实现的功能否满足原设计的要求,仿真过程没有参加时序信息,不涉及 具体器件的硬件特性,如延时特性;而在布局布线后,提取有关的器件延迟、连线延时等时 序参数,并在此根底上进行的仿真称为后
36、仿真,它是接近真实器件运行的仿真。4. 设计实现实现可理解为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最正确布局,选择逻辑与输入输出功能连接的布线通道进行连线,并产生相应文件如配置文件与相关报 告。通常可分为如下五个步骤。1转换:将多个设计文件进行转换并合并到一个设计库文件中。2映射:将网表中逻辑门映射成物理元素,即把逻辑设计分割到构成可编程逻辑阵列内的可配置逻辑块与输入输出块及其它资源中的过程。3布局与布线:布局是指从映射取出定义的逻辑和输入输出块,并把它们分配到 FPGA内部的物理位置,通常基于某种先进 的算法,如最小分割、模拟退火和一般的受力方向张弛等来完成;布线是指利用自
37、动布线软件使用布线资源选择路径试着完成所有的逻辑连接。因最新的设计实现工具是时序驱动的, 即在器件的布局布线期间对整个信号通道执行时序分析,因此可以使用约束条件操作布线软件,完成设计规定的性能要求。在布局布线过程中,可同时提取时序信息形成报靠。4时序提取:产生一反标文件,供应后续的时序仿真使用。5配置:产生FPGA配置时的需要的位流文件。在实现过程中可以进行选项设置。因其支持增量设计,可以使其重复屡次布线,且每次 布线利用上一次布线信息以使布线更优或到达设计目标。在实现过程中应设置默认配置的下载形式,以使后续位流下载正常。5. 时序分析在设计实现过程中,在映射后需要对一个设计的实际功能块的延时
38、和估计的布线延时进 行时序分析;而在布局布线后,也要对实际布局布线的功能块延时和实际布线延时进行静态 时序分析。从某种程序来讲,静态时序分析可以说是整个FPGA设计中最重要的步骤,它允许设计者详尽地分析所有关键路径并得出一个有次序的报告,而且报告中含有其它调试信 息,比方每个网络节点的扇出或容性负载等。静态时序分析器可以用来检查设计的逻辑和时 序,以便计算各通中性能,识别可靠的踪迹,检测建立和保持时间的配合,时序分析器不要FPGA设计根底2021-10-16 00:07求用户产生输入鼓励或测试矢量。虽然 Xili nx 与Altera 在FPGA开发套件上拥有时序分 析工具,但在拥有第三方专门
39、时序分析工具的情况下,仅利用FPGA厂家设计工具进行布局布线,而使用第三方的专门时序分析工具进行时序分析,一般FPGA厂商在其设计环境下皆有与第三方时序分析工具的接口。Synopsys公司的PrimeTime是一个很好的时序分析工具, 利用它可以到达更好的效果。将综合后的网表文件保存为db格式,可在PrimeTime环境下 翻开。利用此软件查看关键路径或设计者感兴趣的通路的时序,并对其进行分析,再次对原来 的设计进行时序结束,可以提高工作主频或减少关键路径的跹时。与综合过程相似,静态时序分析也是一个重复的过程,它与布局布线步骤紧密相连,这个操作通常要进行屡次直到 时序约束得到很好的满足。在综合
40、与时序仿真过程中交互使用 PrimeTime进行时序分析,满足设计要求后即可进行 FPGA芯片投片前的最终物理验证。6. 下载验证下载是在功能仿真与时序仿真正确的前提下,将综合后形成的位流下载到具体的FPGA芯片中,也叫芯片配置。FPGA设计有两种配置形式:直接由计算机经过专用下载电缆进行 配置;由外围配置芯片进行上电时自动配置。因 FPGA具有掉电信息丧失的性质,因此可在 验证初期使用电缆直接下载位流,如有必要再将烧录配置芯片中如Xili nx 的XC18V系列, Altera的EPC2系列。使用电缆下载时有多种直载方式,如对 Xilinx公司的FPGA下载可以使用 JTAG Program
41、mer; Hardware Programmer; PROMProgrammer 三种方式,而对 Altera 公司的FPGA可以选择JTAG方式或Passive Serial 方式。因FPGA大多支持IEEE的 JTAG标准,所以使用芯片上的JTAG 口是常用下载方式。将位流文件下载到FPGA器件内部后进行实际器件的物理测试即为电路验证,当得到正 确的验证结果后就证明了设计的正确性。电路验证对FPGA投片生产具有较大意义。7. 基于多种EDAX具的FPGA设计仿真工具 Modelsim 与综合工具FPGACompiler II及布线工具Foundation Series 或 Quartus相
42、配合实现FPGA设计流程图如图3所示。HFJ'!1DL riMj口朋物真Iffl J采用峯种EIM工具窝現FPGA设计的胚理珂在设计输入阶段,因Modelsim仅支持VHDL或Verilog HDL,所以在选用多种设计输 入工具时,可以使用文本编辑器完成HDL语言的输入,也可以利用相应的工具以图形方式完成输入,但必须能够导出对应的 VHDL或Verilog HDL格式。近年来出现的图形化HDL设 计工具,可以接收逻辑结构图、状态转换图、数据流图、控制流程图及真值表等输入方式, 并通过配置的翻译器将这些图形格式转化为HDL文件,如 Mentor Graphics 公司的Renoir ,
43、Xilinx 公司的Foundation Series都带有将状态转换图翻译成 HDL文本的设计工具。在这方面,Summit公司现在已经合并为Innoveda 的图形化界面友好程度较高, 且可以导出相应的HDL格式。从图3中可以看到有三处可以由 Modelsim进行仿真:第一处是存放器传输级RTL 仿真,此级仿真是对设计的语法和根本功能进行验证不含时序信息;第二处是针对特定的FPGA厂有技术的仿真,此级伪真是在综合后、实现前而进行的功能级仿真,功能级 仿真一般验证综合后是否可以得到设计者所需要的正确功能;第三处仿真是门级仿真,此级 仿真是针对门级时序进行的仿真,门级仿真表达出由于布局布线而产生的实际延时。在RTL仿真阶段,应该建立一个测试台。此测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中音乐课堂多声部合唱教学策略与音乐教育改革研究论文
- 校本课程开发中的课程内容设计论文
- 绘画课程对学生视觉思维的影响论文
- 基于虚拟现实技术的初中地理教学情境创设与教学效果评价论文
- 艾伯森财务管理制度
- 苗圃地员工管理制度
- 茶牌坊人员管理制度
- 融资合同:流动资金贷款合同
- 评估指标体系和评估机制构建支撑工作竞争性磋商文件
- 财政学 期末考试复习重点总结
- 公路水运工程土工试验讲义二
- 四川省宜宾市高县2023年数学六年级第二学期期末联考试题含解析
- 大学《管理经济学》期末复习核心知识点及考试真题解析
- 第五章-不规则三角网TIN的建立课件
- 《刑法》讲座-课件
- 中级养老护理人员技能培训
- 第二单元第1课时《线的认识》示范课教学课件【北师大版四年级数学上册】
- 重庆市建设工程施工项目每日“防高坠三检”检查记录表
- 国开电大本科《人文英语4》机考总题库
- JJF 1059.1-2012测量不确定度评定与表示
- GB/T 6070-1995真空法兰
评论
0/150
提交评论