fpga设计经验ppt课件

上传人:仙*** 文档编号:190259923 上传时间:2023-02-27 格式:PPT 页数:35 大小:695KB
收藏 版权申诉 举报 下载
fpga设计经验ppt课件_第1页
第1页 / 共35页
fpga设计经验ppt课件_第2页
第2页 / 共35页
fpga设计经验ppt课件_第3页
第3页 / 共35页
资源描述:

《fpga设计经验ppt课件》由会员分享,可在线阅读,更多相关《fpga设计经验ppt课件(35页珍藏版)》请在装配图网上搜索。

1、数字电路设计中的几个基本概念建立时间和保持时间建立时间和保持时间建立时间建立时间setup timesetup time是指在触发器的时钟信是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被建立时间不够,数据将不能在这个时钟上升沿被打入触发器;打入触发器;保持时间保持时间hold timehold time是指在触发器的时钟信号是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,上升沿到来以后,数据稳定不变的时间,如果保如果保持时间不够,数据同样不能被打入触发器。持时间不够,数据同样不能被打入

2、触发器。数字电路设计中的几个基本概念数字电路设计中的几个基本概念竞争和冒险现象竞争和冒险现象 信号在信号在FPGAFPGA器件内部通过连线和逻辑单元时,都器件内部通过连线和逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化素,多路信号的电平值发生变化时,在信

3、号变化的瞬间,组合逻辑的输出有先后顺序,并不是同的瞬间,组合逻辑的输出有先后顺序,并不是同时变化时变化,往往会出现一些不正确的尖峰信号,这些往往会出现一些不正确的尖峰信号,这些尖峰信号称为尖峰信号称为 毛刺毛刺。如果一个组合逻辑电路中。如果一个组合逻辑电路中有有 毛刺毛刺 出现,就说明该电路存在出现,就说明该电路存在 冒险冒险。为避免上述现象,输入和输出是尽量寄存器化为避免上述现象,输入和输出是尽量寄存器化例:例:A=B A=B 当当B B从从0000变化到变化到1111时,时,0 0、1 1位变化顺序位变化顺序未知则未知则A A输出可能为输出可能为0101或或1010数字电路设计中的几个基本

4、概念数字电路设计中的几个基本概念无法保证A,B,C,D变化同步,输出有可能出现毛刺数字电路设计中的几个基本概念冒险往往会影响到逻辑电路的稳定性。时钟端口、清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能会使系统出错,因此判断逻辑电路中是否存在冒险以及如何避免冒险是设计人员必须要考虑的问题。数字电路设计中的几个基本概念如何处理毛刺如何处理毛刺 是利用是利用D D触发器的触发器的D D输入端对毛刺信号不敏感的特输入端对毛刺信号不敏感的特点点常采用格雷码计数器取代普通的二进制计数器常采用格雷码计数器取代普通的二进制计数器数字电路设计中的几个基本概念清除和置位信号清除和置位信号 异步清异步清0 0

5、同步清同步清0 0数字电路设计中的几个基本概念触发器和锁存器触发器和锁存器触发器的语言描述:触发器的语言描述:always(posedge clk)always(posedge clk)beginbegin Q=d;Q=d;endend数字电路设计中的几个基本概念锁存器的语言描述always(posedge clk)begin if(en=1)Q=d;endFPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 FPGAFPGA设计中的同步设计设计中的同步设计 异步设计不是总能满足异步设计不是总能满足(它们所馈送的触发器的它们所馈送的触发器的)建立和保持时间的要求。因此,异步输入

6、常常会建立和保持时间的要求。因此,异步输入常常会把错误的数据锁存到触发器,或者使触发器进入把错误的数据锁存到触发器,或者使触发器进入亚稳定的状态亚稳定的状态,在该状态下,触发器的输出不能识在该状态下,触发器的输出不能识别为别为l l或或0 0。如果没有正确地处理,亚稳性会导致。如果没有正确地处理,亚稳性会导致严重的系统可靠性问题。严重的系统可靠性问题。FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 在FPGA的内部资源里最重要的一部分就是其时钟资源全局时钟网络),它一般是经过FPGA的特定全局时钟管脚进入FPGA内部,后经过全局时钟BUF适配到全局时钟网络的,这样的时钟网

7、络可以保证相同的时钟沿到达芯片内部每一个触发器的延迟时间差异是可以忽略不计的。在FPGA中上述的全局时钟网络被称为时钟树,无论是专业的第三方工具还是器件厂商提供的布局布线器在延时参数提取、分析的时候都是依据全局时钟网络作为计算的基准的。如果一个设计没有使用时钟树提供的时钟,那么这些设计工具有的会拒绝做延时分析有的延时数据将是不可靠的。FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 全局时钟全局时钟对于一个设计项目来说,全局时钟对于一个设计项目来说,全局时钟(或同步时钟或同步时钟)是最简是最简单和最可预测的时钟。在单和最可预测的时钟。在PLD/FPGAPLD/FPGA设计中

8、最好的时钟方设计中最好的时钟方案是:由专用的全局时钟输入引脚驱动的单个主时钟去案是:由专用的全局时钟输入引脚驱动的单个主时钟去钟控设计项目中的每一个触发器。只要可能就应尽量在钟控设计项目中的每一个触发器。只要可能就应尽量在设计项目中采用全局时钟。设计项目中采用全局时钟。PLD/FPGAPLD/FPGA都具有专门的全局都具有专门的全局时钟引脚,它直接连到器件中的每一个寄存器。这种全时钟引脚,它直接连到器件中的每一个寄存器。这种全局时钟提供器件中最短的时钟到输出的延时。局时钟提供器件中最短的时钟到输出的延时。FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 FPGA/CPLDF

9、PGA/CPLD中的一些设计方法中的一些设计方法 (最好的方法是用全局时钟引脚去钟控PLD内的每一个寄存器,于是数据只要遵守相对时钟的建立时间tsu和保持时间th)FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 门控时钟门控时钟在许多应用中,整个设计项目都采用外部的全局时钟是在许多应用中,整个设计项目都采用外部的全局时钟是不可能或不实际的。不可能或不实际的。如果符合下述条件,门控时钟可以象全局时钟一样可靠如果符合下述条件,门控时钟可以象全局时钟一样可靠地工作:地工作:驱动时钟的逻辑必须只包含一个驱动时钟的逻辑必须只包含一个“与门或一个与门或一个“或或门。如果采用任何附加逻

10、在某些工作状态下,会出现门。如果采用任何附加逻在某些工作状态下,会出现竞争产生的毛刺。竞争产生的毛刺。逻辑门的一个输入作为实际的时钟,而该逻辑逻辑门的一个输入作为实际的时钟,而该逻辑门的所有其它输入必须当成地址或控制线,它们遵守相门的所有其它输入必须当成地址或控制线,它们遵守相对于时钟的建立和保持时间的约束。对于时钟的建立和保持时间的约束。FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 我们往往可以将门控时钟转换成全局时钟以改善设计项目的可靠性。FPGA/CPLDFPGA/CPLD中的一些设计方法中的一

11、些设计方法 FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 多级逻辑时钟多级逻辑时钟 当产生门控时钟的组合逻辑超过一级当产生门控时钟的组合逻辑超过一级(即超过单个的即超过单个的“与与门或门或“或门或门)时,证设计项目的可靠性变得很困难。时,证设计项目的可靠性变得很困难。即使样机或仿真结果没有显示出静态险象,但实际上仍即使样机或仿真结果没有显示出静态险象,但实际上仍然可能存在着危险。通常,我们不应该用多级组合逻辑然可能存在着危险。通常,我们不应该用多级组合逻辑去钟控去钟控PLDPLD设计中的触发器。设计中的触发器。FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些

12、设计方法 行波时钟行波时钟即一个触发器的输出用作另一个触发器的时钟输即一个触发器的输出用作另一个触发器的时钟输入。如果仔细地设计,行波时钟可以象全局时钟入。如果仔细地设计,行波时钟可以象全局时钟一样地可靠工作。然而,行波时钟使得与电路有一样地可靠工作。然而,行波时钟使得与电路有关的定时计算变得很复杂。行波时钟在行波链上关的定时计算变得很复杂。行波时钟在行波链上各触发器的时钟之间产生较大的时间偏移,并且各触发器的时钟之间产生较大的时间偏移,并且会超出最坏情况下的建立时间、保持时间和电路会超出最坏情况下的建立时间、保持时间和电路中时钟到输出的延时,使系统的实际速度下降。中时钟到输出的延时,使系统的

13、实际速度下降。多时间之间会发生数据交换多时间之间会发生数据交换 FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 Eg:在我们日常的设计中很多情形下会用到需要分频的情形,好多人的做法是先用高频时钟计数,然后使用计数器的某一位输出作为工作时钟进行其他的逻辑设计。其实这样的方法是不规范的。always(posedge clk)begin counter=counter+1;endalways(posedge counter1)a=b;FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 多时钟系统多时钟系统 当系统中有两个或两个以上非同源时钟的时候,当系统中有两

14、个或两个以上非同源时钟的时候,数据的建立和保持时间很难得到保证,我们将面数据的建立和保持时间很难得到保证,我们将面临复杂的时间问题。最好的方法是将所有非同源临复杂的时间问题。最好的方法是将所有非同源时钟同步化。时钟同步化。FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 如果时钟间存在着固定的频率倍数,这种情况下它们的相位一般具有固定关系,可以采用下述方法处理;使用高频时钟作为工作时钟,使用低频时钟作为使能信号,当功耗不作为首要因素时建议使用这种方式;在仔细分析时序的基础上描述两个时钟转换处的电路;FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 如果电

15、路中存在两个不同频率的时钟,并且频率无关,可以采用如下策略:利用高频时钟采样两个时钟,在电路中使用高频时钟作为电路的工作时钟,经采样后的低频时钟作为使能;在时钟同步单元中采用两次同步法 使用握手信号;关键在什么时候设置标志位 使用双时钟FIFO进行数据缓冲 FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 FPGAFPGA设计中的延时电路的产生设计中的延时电路的产生首先在首先在FPGAFPGA中要产生延时,信号必须经过一定的物理资中要产生延时,信号必须经过一定的物理资源。在硬件描述语言中有关键词源。在硬件描述语言中有关键词Wait for xx nsWait for xx

16、ns,需要,需要说明的是该语法是仅仅用于仿真而不能用于综合的,可说明的是该语法是仅仅用于仿真而不能用于综合的,可综合的延时方法有:综合的延时方法有:使信号经过逻辑门得到延时如非门);使信号经过逻辑门得到延时如非门);使用器件提供的延时单元如使用器件提供的延时单元如AlteraAltera公司的公司的LCELLLCELL,XilinxXilinx公司的);公司的);FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 当需要对某一信号作一段延时时,初学者往往在此信号后串接一些非门或其它门电路,此方法在分离电路中是可行的。但在中,开发软件在综合设计时会将这些门当作冗余逻辑去掉,达不

17、到延时的效果。用ALTERA公司的MaxplusII开发时,可以通过插入一些原语来产生一定的延时,但这样形成的延时在芯片中并不稳定,会随温度等外部环境的改变而改变,因此并不提倡这样做。FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 引荐:可以用高频时钟来驱动一移位寄存器,待延时信号作数据输入,按所需延时正确设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。此方法产生的延时信号与原信号比有误差,误差大小由高频时钟的周期来决定。对于数据信号的延时,在输出端用数据时钟对延时后信号重新采样,就可以消除误差;FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法

18、 如何提高系统的运行速度如何提高系统的运行速度 同步电路的速度是指同步时钟的速度。同步时钟愈快,同步电路的速度是指同步时钟的速度。同步时钟愈快,电路处理数据的时间间隔越短,电路在单位时间处理的电路处理数据的时间间隔越短,电路在单位时间处理的数据量就愈大数据量就愈大.FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 我们可以将较大的组合逻辑分解为较小的几块,中间插入触发器,这样可以提高电路的工作频率。这也是所谓“流水线”(pipelining技术的基本原理。FPGA/CPLDFPGA/CPLD中的一些设计方

19、法中的一些设计方法 FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 信号输出信号输出 当你需要将当你需要将FPGA/CPLDFPGA/CPLD内部的信号通过管脚输出给外部相内部的信号通过管脚输出给外部相关器件的时候,如果不影响功能最好是将这些信号通过关器件的时候,如果不影响功能最好是将这些信号通过用时钟锁存后输出。用时钟锁存后输出。因为通常情况下一个板子是工作于一种或两种时钟模式因为通常情况下一个板子是工作于一种或两种时钟模式下,与下,与FPGA/CPLDFPGA/CPLD相连接的芯片的工作时钟大多数情形下相连接的芯片的工作时钟大多数情形下与与FPGAFPGA的时钟同源,

20、如果输出的信号经过时钟锁存可以的时钟同源,如果输出的信号经过时钟锁存可以起到如下的作用:起到如下的作用:容易满足芯片间信号连接的时序要求;容易满足芯片间信号连接的时序要求;容易满足信号的建立保持时间;容易满足信号的建立保持时间;FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 FPGA/CPLDFPGA/CPLD中的一些设计方法中的一些设计方法 寄存异步输入信号寄存异步输入信号 我们在日常的设计工作中,我们在日常的设计工作中,FPGA/CPLDFPGA/CPLD总是要与别的芯片总是要与别的芯片相连接的,相连接的,FPGA/CPLDFPGA/CPLD会给别的芯片输出信号,同时也要会给别的芯片输出信号,同时也要处理别的芯片送来的信号,这些信号往往对处理别的芯片送来的信号,这些信号往往对FPGA/CPLDFPGA/CPLD内内部的时钟系统而言是异步的,为了可靠的采样到这些输部的时钟系统而言是异步的,为了可靠的采样到这些输入信号,建议将这些输入信号使用相应的时钟锁存后在入信号,建议将这些输入信号使用相应的时钟锁存后在处理,这样做:处理,这样做:将原来的异步信号转化成同步来处理;将原来的异步信号转化成同步来处理;去除输入信号中的毛刺特别是对于数据总线);去除输入信号中的毛刺特别是对于数据总线);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!