工程设计中的问题.ppt

上传人:小飞机 文档编号:6277976 上传时间:2023-10-12 格式:PPT 页数:30 大小:1.08MB
返回 下载 相关 举报
工程设计中的问题.ppt_第1页
第1页 / 共30页
工程设计中的问题.ppt_第2页
第2页 / 共30页
工程设计中的问题.ppt_第3页
第3页 / 共30页
工程设计中的问题.ppt_第4页
第4页 / 共30页
工程设计中的问题.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《工程设计中的问题.ppt》由会员分享,可在线阅读,更多相关《工程设计中的问题.ppt(30页珍藏版)》请在三一办公上搜索。

1、工程设计中的问题,水声工程学院,优秀的FPGA设计不仅仅是要求和设计要求相符合。因为这仅仅是一个优秀的FPGA设计所必须要达到的基本要求,更重要的是,FPGA设计需要有以下三个重要的特征:程序设计具有可读性;可重复性;可测性。,6.1 优秀FPGA设计的重要特征,可读性好要求:1、FPGA设计的原理图和硬件描述语言设计应该包含有足够详细的注释;2、每张原理图之间的关系以及硬件描述的模块之间的互连关系的详细说明;3、各个模块的详细说明。4、程序语言要规范。,程序设计具有可读性,程序设计具有可读性,例如,状态机的文档应当包含状态图或功能描述。布尔方程的实现过程也应该写在文档中,甚至应当写在源代码里

2、面,包括简化前的或简化后的布尔方程。FPGA的设计文档也应该包含用户自己创建的约束文件,还应该说明在设计、实现和验证阶段使用的各个输出文件。实践表明:投入一定的时间写好文档,可以在调试、测试和维护设计过程中节省大量的时间。一个具有好文档的和经过验证的电路设计,可以很容易地被重用,可以大大的节省开发时间。,可重复性要求:FPGA设计应该保证如果不同的设计者从不同部位开始,并重新进行布局布线等,应该可以得到同样的结果。没有这个保证,验证以及其他形式的设计测试就毫无价值。因为设计师显然不希望在设计里出现这样的情况,器件具有相同的输入输出管脚和功能,但是由于布局布线的差异,最后时序却不一样。但是如果在

3、实现的过程中,没有让系统设计软件的参数或选项保持一致,这种情况就会发生。因此FPGA的文档就应包括必要的信息,即软件开发系统的版本号、软件的各个选项及参数设置。,可重复性,关于FPGA设计的可重复性,有两点应该注意:一是随机数种子,二是布局布线编辑情况。随机数种子是一个由系统时钟生成的n位随机数,用来初始化自动布局布线进程(APR,Automatic Place and Route).如果在执行 APR过程前没有指定这个随机数种子,那么每次运行 APR就会得到不同的结果。同样,在APR之后,可能需要人工进行修改或完善,这些人工修改的过程或参数都应该以文档的方式记录下来,包括布局布线编辑器的选项

4、和参数设置。如果不这样做,最终的实现就会因人而异,整个系统的性能也变得不稳定,甚至无法评估。,可重复性,可测性也是优秀的FPGA设计的一个重要特征。FPGA的开发商以及系统工程师都应该考虑这个因素。从 FPGA厂商的角度来看,由于 FPGA是基于静态RA M来研制的,加上专为测试而开发的专用功能,通常可以保证FPGA本身100的故障覆盖率。系统级的测试要求工程师对整个设计流程以及系统架构都要很清楚。,可测性,6.2 设计误区(1)器件资源利用率要合理,6.2 设计误区(2)FPGA设计要重视仿真分析,错误:模块太简单不仿真直接上板子调试。正确:任何模块都要经过仿真调试,即使不仿真,在进行直接调

5、试的构成中也要通过片内逻辑分析仪进行分析测试,以避免不可预知的错误发生。对于CPLD器件,模块一定要进行仿真分析。,6.2 设计误区(3)设计要重视综合和优化,错误:程序设计完成后进行综合,简单武断的认为器件资源不够、速度过慢等,就要求硬件设计过程中更换器件。正确:对于资源不足或速度不够这些关键问题,一定要查找原因,针对程序的结构进行代码级别的优化(不建议进行综合布线优化)来解决问题。,错误:仿真就是看波形。正确:要结合仿真波形输出与程序打印输出、条件判断输出、警告输出等方式相结合来分析仿真结果,甚至可以通过良好的仿真模块和检查模块实现自动检查。,6.2 设计误区(4)掌握合理的仿真分析方法,

6、错误:有些模块比较简单,自己编和使用IP模块的时间差不多,干脆自己编还锻炼编程水平了。正确:IP模块是经过专业的编译设计的,其对底层硬件的使用更为合理,尤其是各个公司的IP模块更适合自己的硬件系统,因此综合错误更少。在软件系统设计过程,要尽量使用IP模块,以避免小差错带来大问题。,6.2 设计误区(5)对于简单的模块不愿意使用IP模块,6.3 设计相关问题(1)数字电路中的毛刺产生原因和机理,半导体二极管和三极管的开关特性,TTL反相器的典型电路,返回,TTL反相器的电压传输特性,1、01和10的转换时间不一样;2、由此引起的逻辑电路产生时延;3、逻辑分析中毛刺产生的原因,建立时间和保持时间,

7、建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。如图1。数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时间和保持时间的值可以为零。PLD/FPGA开发软件可以自动计算两个相关输入的建立和保持时间(如图2),由门电路引起的竞争冒险,消除由门电路引起的竞争冒险,消除由门电路引起的竞争冒险的方法,1.在数字电路设计中,可以采用格雷码计数器取代普通的二进制

8、计数器,这是因为格雷码计数器的输出每次只有一位跳变,消除了竞争冒险的发生条件,避免了毛刺的产生。2.毛刺并不是对所有的输入都有危害,例如D触发器的D输入端,只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间,就不会对系统造成危害。根据这个特性,我们应当在系统中尽可能采用同步电路,这是因为同步电路信号的变化都发生在时钟沿,只要毛刺不出现在时钟的沿口并且不满足数据的建立和保持时间,就不会对系统造成危害。,6.3 设计相关问题(2)可编程逻辑器件的输入输出管脚,1、推拉式输出级并联的情况。2、一般CPLD、FPGA的IO输入输出的能力比较弱,最大电流约为8mA左右。3、设计过程中必须考虑输入输

9、出的冲突,过流保护。4、对于较重的负载,要加上拉电阻,增加带负载能力。,用接入上拉电阻提高TTL电路输出的高电平,通过电流放大器驱动TTL电路,6.3 设计相关问题(3)要重视逻辑化简与逻辑冲突,6.3 设计相关问题(4)清除和置位信号,在FPGA的设计中,全局的清零和置位信号必须经过全局的清零和置位管脚输入,因为他们也属于全局的资源,其扇出能力大,而且在FPGA内部是直接连接到所有的触发器的置位和清零端的,这样的做法会使芯片的工作可靠、性能稳定,而使用普通的IO脚则不能保证该性能。在FPGA的设计中,除了从外部管脚引入的全局清除和置位信号外在FPGA内部逻辑的处理中也经常需要产生一些内部的清

10、除或置位信号。清除和置位信号要求象对待时钟那样小心地考虑它们,因为这些信号对毛刺也是非常敏感的。在同步电路设计中,有时候可以用同步置位的办法来替代异步清0。,清除和置位信号,异步清0的描述方法:process(rst,clk)begin if rst=1 then count0);elsif clkevent and clk=1 then count=count+1;end if;end process;,同步清0的描述方法:process begin wait until clkevent and clk=1;if rst=1 then count0);else count=count+1;

11、end if;end process;,6.3 设计相关问题(4)清除和置位信号,在FPGA的设计中,全局的清零和置位信号必须经过全局的清零和置位管脚输入,因为他们也属于全局的资源,其扇出能力大,而且在FPGA内部是直接连接到所有的触发器的置位和清零端的,这样的做法会使芯片的工作可靠、性能稳定,而使用普通的IO脚则不能保证该性能。在FPGA的设计中,除了从外部管脚引入的全局清除和置位信号外在FPGA内部逻辑的处理中也经常需要产生一些内部的清除或置位信号。清除和置位信号要求象对待时钟那样小心地考虑它们,因为这些信号对毛刺也是非常敏感的。在同步电路设计中,有时候可以用同步置位的办法来替代异步清0。

12、,6.4 硬件设计及调试方法和技巧(1)硬件测试和仿真工具调试相结合,(1)重要的信号放置专用的测试点,如INT,WR,RD信号等;(2)FPGA上没有用到的I/O管脚,引出并放置23个焊点(焊点要使用较大的过孔,以方便焊接飞线),既可以作为临时的测试点,也可以方便硬件设计的改动。,6.4 硬件设计及调试方法和技巧(2)电源要进行抗干扰处理,6.4 硬件设计及调试方法和技巧(3)数据引线要考虑电磁干扰的影响,(1)数据线要避免长距离小间距平行布线。(2)引出的用来连接开关等器件的数据线要加限流电阻,最好使用三极管电路或者专用的缓冲器(74HC245等)进行缓冲,避免短路过流和电磁辐射损坏或者干

13、扰FPGA器件的正常工作。(3)数据线连接排线时,最好在输入输出靠近FPGA的引脚附近加排阻,进行限流保护。同时也可起到不同逻辑电平相互兼容的作用。,6.4 硬件设计及调试方法和技巧(4)时钟电路的设计和使用,(1)对于较低频率的系统(时钟速率小于20MHz)则不需要一般使用PLL锁相环,直接选用合适频率的有源晶振即可;而对于较高频率的系统(时钟频率大于20MHz),建议使用较低频率的晶振,通过片内锁相环倍频至所需的频率,尽量不要使用高频率的晶振(100MHz以上),以减少对电磁兼容特性的要求。(2)对于DSP和FPGA组合的系统,尽量使所有的时钟系统都使用同一个时钟,以避免时钟不同步引起的时

14、序逻辑错误。,6.4 硬件设计及调试方法和技巧(5)低功耗设计,(1)对于同一个芯片,较低的时钟频率会降低系统的功耗,因此从程序设计的角度出发,要设计合理的时序和程序结构,降低对频率的要求,例如使用并行结构处理数据。(2)当必须使用高速时钟时,合理设计锁相环程序,在空闲时间把系统主频降低下来,以节省功耗。(3)尽可能选择容量合适的芯片,比较理想的FPGA利用率是6075,如果确实改进不大,可以提高到8090,以避免空闲资源对功耗的消耗。(4)相同规格的FPGA,要考虑使用较低内核电压的芯片,因为内核电压越低,功耗越小。(5)尽量采用较新型的具有低功耗特性的器件,因为技术的进步,使得这些器件功耗的消耗越来越小。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号