




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六讲 FPGA设计中的基本问题数字电路设计的基本概念时钟问题如何提高系统速度四种基本思想信息与通信学院:谢跃雷2022/8/171第1页,共49页。6.1 数字电路设计基本概念 建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;一、建立时间和保持时间图1数据稳定传输必须满足建立和保持时间的要求。保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间, 如果保持时间不够,数据同样不能被打入触发器。2022/8/172第2页,共49页。二、FPGA中的冒险现象信号在F
2、PGA器件内部通过连线和逻辑单元时,都有一定的延时。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为“毛刺”。如果一个组合逻辑电路中有“毛刺”出现,就说明该电路存在“冒险”。(与分立元件不同,由于PLD内部不存在寄生电容电感,这些毛刺将被完整的保留并向下一级传递,因此毛刺现象在PLD、FPGA设计中尤为突出)2022/8/173第3页,共49页。图2给出了一个逻辑冒险的例子, 从图2的仿真波形可以看出, “A、 B、 C、 D”四个输入信号的高低
3、电平变换不是同时发生的, 导致输出信号“OUT”出现了毛刺。 由于信号路径长度的不同, 译码器、 数值比较器以及状态计数器等器件本身容易出现冒险现象.2022/8/174第4页,共49页。冒险往往会影响到逻辑电路的稳定性, 时钟端口、 清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能会使系统出错, 因此判断逻辑电路中是否存在冒险以及如何避免冒险是设计人员必须要考虑的问题2022/8/175第5页,共49页。三、消除毛刺 可以通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生。一般情况下有两种去除毛刺的方法,采样法和滤波法。 1、采样法a.一种方法是在输出信号的保持时间内,用一定宽度的高电平
4、脉冲与输出信号做逻辑与运算,由此获取输出信号的电平值2022/8/176第6页,共49页。b.另一种更常见的方法是利用D触发器的D输入端对毛刺信号不敏感的特点,在输出信号的保持时间内,用触发器读取组合逻辑的输出信号,这种方法类似于将异步电路转化为同步电路。2022/8/177第7页,共49页。2022/8/178第8页,共49页。 2、滤波法 在仿真时,我们也可能会发现在FPGA器件对外输出引脚上有输出毛刺,但由于毛刺很短,加上PCB本身的寄生参数,大多数情况下,毛刺通过PCB走线,基本可以自然被虑除,不用再外加阻容滤波。2022/8/179第9页,共49页。四、清除和置位信号在FPGA的设计
5、中,全局的清零和置位信号必须经过全局的清零和置位管脚输入,因为他们也属于全局的资源,其扇出能力大,而且在FPGA内部是直接连接到所有的触发器的置位和清零端的,这样的做法会使芯片的工作可靠、性能稳定,而使用普通的IO脚则不能保证该性能。 在FPGA的设计中,除了从外部管脚引入的全局清除和置位信号外在FPGA内部逻辑的处理中也经常需要产生一些内部的清除或置位信号。清除和置位信号要求象对待时钟那样小心地考虑它们,因为这些信号对毛刺也是非常敏感的。 2022/8/1710第10页,共49页。在同步电路设计中,可以用同步置位的办法来替代异步清0。在用硬件描述语言的设计中可以用如下的方式来描述: 异步清零
6、process(rst,clk)beginif rst=1 thencount0);elsif clkevent and clk=1 thencount=count+1;end if;end process;同步清零processbeginwait until clkevent and clk=1;if rst=1 thencount0);elsecount=count+1;end if;end process;2022/8/1711第11页,共49页。五、触发器与锁存器 我们知道,触发器是在时钟的沿进行数据的锁存的,而锁存器是用电平使能来锁存数据的。所以触发器的Q输出端在每一个时钟沿都会被更
7、新,而锁存器只能在使能电平有效器件才会被更新。 在FPGA设计中建议如果不是必须那么应该尽量使用触发器而不是锁存器。 那么在使用硬件描述语言进行电路设计的时候如何区分触发器和锁存器的描述方法哪?其实有不少人在使用的过程中可能并没有特意区分过,所以也忽略了二者在描述方法上的区别。下面是用verilog语言描述的触发器和锁存器。2022/8/1712第12页,共49页。触发器的语言描述:module d_ff(clk,data,q)input clk,data;output q;reg q;always (posedge clk)q=data;endmoduleD锁存器module latchin
8、f (enable, data, q);input enable, data;output q;reg q;always (enable or data)if (enable)q = data;endmodule 2022/8/1713第13页,共49页。六、FPGA中的延时设计当需要对电路中的某一信号作一段延时时,可在信号后串接一些“非门”或其它门电路。但在FPGA中,开发软件会在综合设计时将这些门当作冗余逻辑去掉,达不到延时的效果。可以通过插入原语或调用延时线模块来产生一定的延时。但这样形成的延时在FPGA芯片中并不稳定,会随温度等外部环境的改变而改变,这样会影响FPGA的性能。因此,可以
9、用高频时钟来驱动一移位寄存器,需要延时的信号作为数据输入,按所需延时正确设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。此方法产生的延时信号有误差,误差大小由高频时钟的周期来决定。对于数据信号的延时,在输出端用数据时钟对延时后的信号重新采样,就可以消除误差。当然,当所需延时较长时,这样做比较浪费资源。此外,用语言进行FPGA设计时,不能用语句来实现延时,因为目前的综合工具还不能做到如此精确的延时,即程序中的语句不能被综合。 2022/8/1714第14页,共49页。6.2 时钟问题 无论是用离散逻辑、可编程逻辑,还是用全定制硅器件实现的任何数字设计,为了成功地操作,可靠的时钟是非常关键
10、的。设计不良的时钟在极限的温度、电压或制造工艺的偏差情况下将导致错误的行为,并且调试困难、花销很大。 在设计PLD/FPGA时通常采用几种时钟类型。时钟可分为如下四种类型:全局时钟、门控时钟、多级逻辑时钟和波动式时钟。多时钟系统能够包括上述四种时钟类型的任意组合。1全局时钟 对于一个设计项目来说,全局时钟(或同步时钟)是最简单和最可预测的时钟。在PLD/FPGA设计中最好的时钟方案是:由专用的全局时钟输入引脚驱动的单个主时钟去钟控设计项目中的每一个触发器。2022/8/1715第15页,共49页。只要可能就应尽量在设计项目中采用全局时钟。PLD/FPGA都具有专门的全局时钟引脚,它直接连到器件
11、中的每一个寄存器。这种全局时钟提供器件中最短的时钟到输出的延时。2022/8/1716第16页,共49页。2门控时钟 在许多应用中, 整个设计项目都采用外部的全局时钟是不可能或不实际的, 所以通常用阵列时钟构成门控时钟。 每当用组合逻辑来控制触发器时, 通常都存在着门控时钟。 在使用门控时钟时, 应仔细分析时钟函数, 以避免毛刺的影响。 如果设计满足下述两个条件, 则可以保证时钟信号不出现危险的毛刺, 门控时钟就可以像全局时钟一样可靠工作: 1.驱动时钟的逻辑必须只包含一个“与门”或一个“或门”, 如果采用任何附加逻辑, 就会在某些工作状态下出现由于逻辑竞争而产生的毛刺。 2. 逻辑门的一个输
12、入作为实际的时钟, 而该逻辑门的所有其它输入必须当成地址或控制线, 它们遵守相对于时钟的建立和保持时间的约束。2022/8/1717第17页,共49页。与门门控时钟2022/8/1718第18页,共49页。或门门控时钟波形图显示出有关的建立时间和保持时间的要求。这两个设计项目的地址线必须在时钟保持有效的整个期间内保持稳定(nWR和nWE是低电平有效)。如果地址线在规定的时间内未保持稳定,则在时钟上会出现毛刺,造成触发器发生错误的状态变化。另一方面,数据引脚D1n只要求在nWR和nWE的有效边沿处满足标准的建立和保持时间的规定 2022/8/1719第19页,共49页。我们往往可以将门控时钟转换
13、成全局时钟以改善设计项目的可靠性。图4 示出如何用全局时钟重新设计 图2 的电路。地址线在控制D触发器的使能输入,许多PLD设计软件,如MAX+PLUSII软件都提供这种带使能端的D触发器。当ENA为高电平时,D输入端的值被钟控到触发器中:当ENA为低电平时,维持现在的状态。2022/8/1720第20页,共49页。3. 多时钟系统 许多系统要求在同一个PLD内采用多时钟。最常见的例子是两个异步微处理器器之间的接口,或微处理器和异步通信通道的接口。由于两个时钟信号之间要求一定的建立和保持时间,所以,上述应用引进了附加的定时约束条件。它们也会要求将某些异步信号同步化。2022/8/1721第21
14、页,共49页。图12 具有同步寄存器输出的多时钟系统在许多应用中只将异步信号同步化还是不够的,当系统中有两个或两个以上非同源时钟的时候,数据的建立和保持时间很难得到保证,我们将面临复杂的时间问题。最好的方法是将所有非同源时钟同步化。使用PLD内部的锁项环(PLL或DLL)是一个效果很好的方法,但不是所有PLD都带有PLL、DLL,而且带有PLL功能的芯片大多价格昂贵,所以除非有特殊要求,一般场合可以不使用带PLL的PLD。 这时我们需要使用带使能端的D触发器,并引入一个高频时钟。2022/8/1722第22页,共49页。图13 不同源时钟图13 同步化任意非同源时钟稳定可靠的时钟是系统稳定可靠
15、的重要条件,我们不能够将任何可能含有毛刺的输出作为时钟信号,并且尽可能只使用一个全局时钟,对多时钟系统要注意同步异步信号和非同源时钟。2022/8/1723第23页,共49页。4.时钟歪斜 电路中控制各元件同步运行的时钟源到各元件的距离相差很大,时钟歪斜就是在系统内不同元件处检测到有效的时钟跳变沿所需的时间差异。若歪斜的程度大于从一边缘敏感存储器的输出到下一级输入的延迟时间,就能使移位寄存器的数据丢失,使同步计数器输出发生错误,故必须设法消除时钟歪斜。 减少时钟歪斜的方法有以下几种: ()采用适当的时钟缓冲器,或者在边缘敏感器件的输出与其馈给的任何边缘敏感器件输入端之间加入一定的延迟以减小歪斜
16、。 ()严重的时钟歪斜往往是由于在FPGA内的时钟及其它全局控制线(如复位线)使负载过重造成的,在信号线上接一串线形缓冲器,使驱动强度逐步增大,可以消除时钟歪斜。2022/8/1724第24页,共49页。()在受时钟控制的部件之后分别接入缓冲器,并在两个缓冲器输出端之间接一平衡网络。()采用FPGA内的模块可以对输入时钟进行很好的分频和倍频,从而使时钟歪斜减到最低程度。2022/8/1725第25页,共49页。6.3 FPGA系统速度 同步电路的速度是指同步时钟的速度。同步时钟愈快,电路处理数据的时间间隔越短,电路在单位时间处理的数据量就愈大。我们先来看一看同步电路中数据传递的一个基本模型:如
17、下图Tco是触发器时钟到数据输出的延时Tdelay是组合逻辑的延时Tsetup是触发器的建立时间2022/8/1726第26页,共49页。假设数据已经被时钟的上升沿打入D触发器,那么数据到达第一个触发器的Q端需要Tco,再经过组合逻辑的延时Tdelay到达的第二个触发器的D端,要想时钟能在第二个触发器再次被稳定的锁入触发器,则时钟的延迟不能晚于Tco+Tdelay+Tsetup,由以上分析可知:最小时钟周期:T=Tco+Tdelay+Tsetup 最快时钟频率 F= 1/T PLD开发软件也正是通过这个公式来计算系统运行速度Fmax 注:在这个逻辑图中有个参数:Tpd ,即时钟的延时参数,我们
18、在刚才做时间分析的时候,没有提这个参数,(如果使用PLD的全局时钟型号,Tpd可以为0,如果是普通时钟,则不为0)。所以如果考虑到时钟的延时,精确的公式应该是T=Tco+Tdelay+Tsetup-Tpd。当然以上全部分析的都是器件内部的运行速度,如果考虑芯片I/O管脚延时对系统速度的影响,那么还需要加一些修正。 2022/8/1727第27页,共49页。由于Tco、Tsetup是由具体的器件和工艺决定的,我们设计电路时只可以改变Tdelay。所以缩短触发器间组合逻辑的延时是提高同步电路速度的关键。由于一般同步电路都不止一级锁存(如图13),而要使电路稳定工作,时钟周期必须满足最大延时要求,缩
19、短最长延时路径,才可提高电路的工作频率。 图13 转移组合逻辑 2022/8/1728第28页,共49页。如图14所示:我们可以将较大的组合逻辑分解为较小的几块,中间插入触发器,这样可以提高电路的工作频率。这也是所谓“流水线”(pipelining)技术的基本原理。 图14 分割组合逻辑 2022/8/1729第29页,共49页。6.4 FPGA设计的基本思想FPGA/CPLD 的设计思想与技巧是一个非常大的话题,由于篇幅所限,这里介绍一些常用的设计思想与技巧,包括乒乓球操作、串并转换、流水线操作和数据接口的同步方法。希望有意识地利用这些原则指导日后的设计工作,将取得事半功倍的效果! 一、乒乓
20、操作 “ 乒乓操作 ” 是一个常常应用于数据流控制的处理技巧,典型的乒乓操作方法如图 1 所示。 2022/8/1730第30页,共49页。乒乓操作的处理流程为:输入数据流通过 “ 输入数据选择单元 ” 将数据流等时分配到两个数据缓冲区,数据缓冲模块可以为任何存储模块,比较常用的存储单元为双口 RAM(DPRAM) 、单口 RAM(SPRAM) 、 FIFO 等。在第一个缓冲周期,将输入的数据流缓存到 “ 数据缓冲模块 1” ;在第 2 个缓冲周期,通过 “ 输入数据选择单元 ” 的切换,将输入的数据流缓存到 “ 数据缓冲模块 2” ,同时将 “ 数据缓冲模块 1” 缓存的第 1 个周期数据通
21、过 “ 输入数据选择单元 ” 的选择,送到 “ 数据流运算处理模块 ” 进行运算处理;在第 3 个缓冲周期通过 “ 输入数据选择单元 ” 的再次切换,将输入的数据流缓存到 “ 数据缓冲模块 1” ,同时将 “ 数据缓冲模块 2” 缓存的第 2 个周期的数据通过 “ 输入数据选择单元 ” 切换,送到 “ 数据流运算处理模块 ” 进行运算处理。如此循环。 2022/8/1731第31页,共49页。乒乓操作的最大特点是通过 “ 输入数据选择单元 ” 和 “ 输出数据选择单元 ” 按节拍、相互配合的切换,将经过缓冲的数据流没有停顿地送到 “ 数据流运算处理模块 ” 进行运算与处理。把乒乓操作模块当做一
22、个整体,站在这个模块的两端看数据,输入数据流和输出数据流都是连续不断的,没有任何停顿,因此非常适合对数据流进行流水线式处理。所以乒乓操作常常应用于流水线式算法,完成数据的无缝缓冲与处理。 乒乓操作的第二个优点是可以节约缓冲区空间。比如在 WCDMA 基带应用中, 1 个帧是由 15 个时隙组成的,有时需要将 1 整帧的数据延时一个时隙后处理,比较直接的办法是将这帧数据缓存起来,然后延时 1 个时隙进行处理。这时缓冲区的长度是 1 整帧数据长,假设数据速率是 3.84Mbps , 1 帧长 10ms ,则此时需要缓冲区长度是 38400 位。如果采用乒乓操作,只需定义两个能缓冲 1 个时隙数据的
23、 RAM( 单口 RAM 即可 ) 。当向一块 RAM 写数据的时候,从另一块 RAM 读数据,然后送到处理单元处理,此时每块 RAM 的容量仅需 2560 位即可, 2 块 RAM 加起来也只有 5120 位的容量。 2022/8/1732第32页,共49页。另外,巧妙运用乒乓操作还可以达到用低速模块处理高速数据流的效果。如图 2 所示,数据缓冲模块采用了双口 RAM ,并在 DPRAM 后引入了一级数据预处理模块,这个数据预处理可以根据需要的各种数据运算,比如在 WCDMA 设计中,对输入数据流的解扩、解扰、去旋转等。假设端口 A 的输入数据流的速率为 100Mbps ,乒乓操作的缓冲周期
24、是 10ms 。以下分析各个节点端口的数据速率。 2022/8/1733第33页,共49页。A 端口处输入数据流速率为 100Mbps ,在第 1 个缓冲周期 10ms 内,通过 “ 输入数据选择单元 ” ,从 B1 到达 DPRAM1 。 B1 的数据速率也是 100Mbps , DPRAM1 要在 10ms 内写入 1Mb 数据。同理,在第 2 个 10ms ,数据流被切换到 DPRAM2 ,端口 B2 的数据速率也是 100Mbps , DPRAM2 在第 2 个 10ms 被写入 1Mb 数据。在第 3 个 10ms ,数据流又切换到 DPRAM1 , DPRAM1 被写入 1Mb 数
25、据。 仔细分析就会发现到第 3 个缓冲周期时,留给 DPRAM1 读取数据并送到 “ 数据预处理模块 1” 的时间一共是 20ms 。这个时间是这样得来的: 2022/8/1734第34页,共49页。首先,在在第 2 个缓冲周期向 DPRAM2 写数据的 10ms 内, DPRAM1 可以进行读操作;另外,在第 1 个缓冲周期的第 5ms 起 ( 绝对时间为 5ms 时刻 ) , DPRAM1 就可以一边向 500K 以后的地址写数据,一边从地址 0 读数,到达 10ms 时, DPRAM1 刚好写完了 1Mb 数据,并且读了 500K 数据,这个缓冲时间内 DPRAM1 读了 5ms ;在第
26、 3 个缓冲周期的第 5ms 起 ( 绝对时间为 35ms 时刻 ) ,同理可以一边向 500K 以后的地址写数据一边从地址 0 读数,又读取了 5 个 ms ,所以截止 DPRAM1 第一个周期存入的数据被完全覆盖以前, DPRAM1 最多可以读取 20ms 时间,而所需读取的数据为 1Mb ,所以端口 C1 的数据速率为: 1Mb/20ms=50Mbps 。2022/8/1735第35页,共49页。因此, “ 数据预处理模块 1” 的最低数据吞吐能力也仅仅要求为 50Mbps 。同理, “ 数据预处理模块 2” 的最低数据吞吐能力也仅仅要求为 50Mbps 。换言之,通过乒乓操作, “ 数
27、据预处理模块 ” 的时序压力减轻了,所要求的数据处理速率仅仅为输入数据速率的 1/2 。通过乒乓操作实现低速模块处理高速数据的实质是:通过 DPRAM 这种缓存单元实现了数据流的串并转换,并行用 “ 数据预处理模块 1” 和 “ 数据预处理模块 2” 处理分流的数据,是面积与速度互换原则的体现! 2022/8/1736第36页,共49页。二、串并转换设计技巧串并转换是 FPGA 设计的一个重要技巧,它是数据流处理的常用手段,也是面积与速度互换思想的直接体现。串并转换的实现方法多种多样,根据数据的排序和数量的要求,可以选用寄存器、 RAM 等实现。前面在乒乓操作的图例中,就是通过 DPRAM 实
28、现了数据流的串并转换,而且由于使用了 DPRAM ,数据的缓冲区可以开得很大,对于数量比较小的设计可以采用寄存器完成串并转换。如无特殊需求,应该用同步时序设计完成串并之间的转换。 对于排列顺序有规定的串并转换,可以用 case 语句判断实现。对于复杂的串并转换,还可以用状态机实现。串并转换的方法比较简单,在此不必赘述。 2022/8/1737第37页,共49页。三、流水线操作设计思想流水线处理是高速设计中的一个常用设计手段。如果某个设计的处理流程分为若干步骤,而且整个数据处理是 “ 单流向 ” 的,即没有反馈或者迭代运算,前一个步骤的输出是下一个步骤的输入,则可以考虑采用流水线设计方法来提高系
29、统的工作频率。 流水线设计的结构示意图如图 3 所示。其基本结构为:将适当划分的 n 个操作步骤单流向串联起来。流水线操作的最大特点和要求是,数据流在各个步骤的处理从时间上看是连续的,如果将每个操作步骤简化假设为通过一个 D 触发器 ( 就是用寄存器打一个节拍 ) ,那么流水线操作就类似一个移位寄存器组,数据流依次流经 D 触发器,完成每个步骤的操作。流水线设计时序如图 4 所示。 2022/8/1738第38页,共49页。流水线设计的一个关键在于整个设计时序的合理安排,要求每个操作步骤的划分合理。如果前级操作时间恰好等于后级的操作时间,设计最为简单,前级的输出直接汇入后级的输入即可;如果前级
30、操作时间大于后级的操作时间,则需要对前级的输出数据适当缓存才能汇入到后级输入端;如果前级操作时间恰好小于后级的操作时间,则必须通过复制逻辑,将数据流分流,或者在前级对数据采用存储、后处理方式,否则会造成后级数据溢出。 2022/8/1739第39页,共49页。四、数据接口的同步方法 数据接口的同步是 FPGA/CPLD 设计的一个常见问题,也是一个重点和难点,很多设计不稳定都是源于数据接口的同步有问题。 在电路图设计阶段,一些工程师手工加入 BUFT 或者非门调整数据延迟,从而保证本级模块的时钟对上级模块数据的建立、保持时间要求。还有一些工程师为了有稳定的采样,生成了很多相差 90 度的时钟信
31、号,时而用正沿打一下数据,时而用负沿打一下数据,用以调整数据的采样位置。这两种做法都十分不可取,因为一旦芯片更新换代或者移植到其它芯片组的芯片上,采样实现必须从新设计。而且,这两种做法造成电路实现的余量不够,一旦外界条件变换 ( 比如温度升高 ) ,采样时序就有可能完全紊乱,造成电路瘫痪。 2022/8/1740第40页,共49页。下面简单介绍几种不同情况下数据接口的同步方法: 输入、输出的延时 ( 芯片间、 PCB 布线、一些驱动接口元件的延时等 ) 不可测,或者有可能变动的条件下,如何完成数据同步? 对于数据的延迟不可测或变动,就需要建立同步机制,可以用一个同步使能或同步指示信号。另外,使
32、数据通过 RAM 或者 FIFO 的存取,也可以达到数据同步目的。 把数据存放在 RAM 或 FIFO 的方法如下:将上级芯片提供的数据随路时钟作为写信号,将数据写入 RAM 或者 FIFO ,然后使用本级的采样时钟 ( 一般是数据处理的主时钟 ) 将数据读出来即可。这种做法的关键是数据写入 RAM 或者 FIFO 要可靠,如果使用同步 RAM 或者 FIFO ,就要求应该有一个与数据相对延迟关系固定的随路指示信号,这个信号可以是数据的有效指示,也可以是上级模块将数据打出来的时钟。对于慢速数据,也可以采样异步 RAM 或者 FIFO ,但是不推荐这种做法。 2022/8/1741第41页,共4
33、9页。数据是有固定格式安排的,很多重要信息在数据的起始位置,这种情况在通信系统中非常普遍。通讯系统中,很多数据是按照 “ 帧 ” 组织的。而由于整个系统对时钟要求很高,常常专门设计一块时钟板完成高精度时钟的产生与驱动。而数据又是有起始位置的,如何完成数据的同步,并发现数据的 “ 头 ” 呢? 数据的同步方法完全可以采用上面的方法,采用同步指示信号,或者使用 RAM 、 FIFO 缓存一下。找到数据头的方法有两种,第一种很简单,随路传输一个数据起始位置的指示信号即可,对于有些系统,特别是异步系统,则常常在数据中插入一段同步码 ( 比如训练序列 ) ,接收端通过状态机检测到同步码后就能发现数据的
34、“ 头 ” 了,这种做法叫做 “ 盲检测 ” 上级数据和本级时钟是异步的,也就是说上级芯片或模块和本级芯片或模块的时钟是异步时钟域的。 2022/8/1742第42页,共49页。为了避免异步时钟域产生错误的采样电平,一般使用 RAM 、 FIFO 缓存的方法完成异步时钟域的数据转换。最常用的缓存单元是 DPRAM ,在输入端口使用上级时钟写数据,在输出端口使用本级时钟读数据,这样就非常方便的完成了异步时钟域之间的数据交换。 设计数据接口同步是否需要添加约束? 建议最好添加适当的约束,特别是对于高速设计,一定要对周期、建立、保持时间等添加相应的约束 这里附加约束的作用有两点: a. 提高设计的工
35、作频率,满足接口数据同步要求。通过附加周期、建立时间、保持时间等约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率,满足接口数据同步要求。2022/8/1743第43页,共49页。b. 获得正确的时序分析报告。几乎所有的 FPGA 设计平台都包含静态时序分析工具,利用这类工具可以获得映射或布局布线后的时序分析报告,从而对设计的性能做出评估。静态时序分析工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入约束,以便静态时序分析工具输出正确的时序分析报告。 2022/8/1744第44页,共49页。()所有的状态机输入,包括复位、置位信号,都要用同步信号。所有的状态机输出都要用寄存器寄存输出。注意在状态机设计中不要出现死锁状态。()要用寄存器和触发器设计电路,尽量不要用锁存器,因它对输入信号的毛刺太敏感。如果坚持用锁存器设计必须保证输入信号绝对没有毛刺,且满足保持时间。6.5 FPGA设计的注意问题202
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- “双新”及“双减”背景下学校有效开展教研工作的策略
- 系统掌握CPSM试题及答案
- 无懈可击的CPSM考试试题及答案
- 2024年CPSM难点突破试题及答案
- 仓储管理中的成本控制方法试题及答案
- 2024年湖南省株洲市天元区群丰镇招聘社区工作者考前自测高频考点模拟试题(共500题)含答案
- 国际物流师人才评估考题讨论试题及答案
- 专业考试:CPMM试题及答案概论
- 2025届浙江省源清中学高三第五次模拟考试化学试卷含解析
- 2024年CPMM重点理解试题及答案
- 机电一体化专业课程改革调研报告及改革建议
- 新生儿各种导管的护理
- 《天津天狮奖金制度》课件
- 2025年中远海运投资控股有限公司招聘笔试参考题库含答案解析
- 人力资源内部培训课件
- 医院临床医学带教老师培训
- 2024年03月浙江南浔银行春季招考笔试历年参考题库附带答案详解
- HPE-DL380-Gen10-服务器用户手册
- Unit6Beautifullandscapes-Reading教学设计译林版七年级英语下册
- 金刚石行业分析报告
- 中间人协议书范本(2025年)
评论
0/150
提交评论