优化设计方法_FPGA可编程逻辑器件的优化设计方法编订

优化设计方法_FPGA可编程逻辑器件的优化设计方法汇报人:xxx..优化设计方法_FPGA可编程逻辑器件的优化设计方法2019-07-06摘要:硬件描述语言HDL是基于行为级描述的语言,用HDL设计开发的FPGA芯片,由于FPGA器件自身的结构特点,使得FPGA器件在生成的电路结构、电路性能、内部资源的消耗及器件的运行速度等方面存在一定的缺陷。分析探讨了优化FPGA芯片设计,改进用VHDL语言描述电路结构的几种方法。关键词:FPGAHDL优化设计:TP302文献标识码:A:16727800(2012)008002102作者简介:朱三妹(1974-),女,武汉铁路职业技术学院讲师,研究方向为EDA电子设计自动化。1优化设计的几种方法1.1时钟控制在复杂的数字电路系统中,常常会出现这种情况:一个数字系统有时会需多个时钟信号,为了保证不同时序模块时钟的同步,系统的外部只能提供一个基准时钟源,如在设计数字钟时,数字钟的计数时钟和控制LED数码管位扫描的时钟就是两个不同的时钟信号,前者的频率是1Hz,后者的频率要求50~100Hz之间,而系统外部只提供一个基准时钟信号。对于这种情况,可以选一个合适高频的基准时钟,对此时钟进行分频,分别得到两个不同的时钟信号。当出现设计系统需要多个时钟,而且,各时钟频率之间没有整数倍关系时,可以选一个2倍于最高频率的时钟,并对此时钟进行采样,再分别得到所需的各时钟频率。而且此时得到的各时钟频率能满足系统设计要求,相位还同步。此方法能有效增强设计系统的稳定性。对于多时钟数字系统,在设计时要正确处理时钟域之间的接口,不使用FPGA内部组合逻辑产生的信号作为时钟,以降低功耗需求。VHDL语言的代码描述为:门控时钟描述的代码:GateClkProcess(GateClk)BeginIf(GateClk’eventandGateClk=’1’)thenIf(load=’1’)thenOut_dataEndif;Endif;Endprocess;时钟使能描述的代码:enableProcess(enable,clk)BeginIf(clk’eventandclk=’1’)thenIf(enable=’1’)thenOut_dataEndif;Endif;Endprocess;1.2异步/同步时序逻辑在时序逻辑电路设计时,可以采用同步电路和异步电路两种设计方法。同步时序电路使用组合逻辑和触发器实现电路功能,电路的主要信号和输出信号都由统一的基准时钟驱动触发器产生,可以避免毛刺与竞争冒险。而异步电路采用组合逻辑,没有统一的时钟信号,容易产生毛刺和竞争冒险,电路不稳定。从电路延迟方面考虑,异步电路是通过逻辑门电路来实现的,延迟难以预测,而同步设计使用计数器或触发器实现延时的,用于计数器和触发器的时钟稳定性决定了同步时序电路的性能,现在FPGA内部有专用的时钟资源,如专用的时钟管理模块、全局时钟布线资源等其时钟的质量与性能是可以得到保障的。从资源使用方面考虑,FPGA是以逻辑单元衡量电路面积的,所以同步设计并不比异步设计浪费资源。目前,商用的FPGA都是面向同步的电路设计而优化的,同步时序电路可以很好地避免毛刺,提倡在设计中采用同步逻辑电路。特别注意,不同的时钟域的接口需要进行同步。1.3寄存器/锁存器寄存器是由具有存储功能的触发器组合起来构成,用来存放二进制数据或代码的电路,任何现代数字系统都必须把需要处理的数据和代码先寄存起来,以便随时取用。对于边沿触发存储单元,在基于寄存器的设计里,竞争冒险情况较少甚至不存在,控制信号和寄存器输入信号上的毛刺不易造成影响,信号可在一个周期里准确寄存。锁存器是电平敏感存储单元,它不象寄存器数据存储控制在一个时钟周期内完成,电路稳定性差。在FPGA器件中集成了很多的寄存器,相对于利用寄存器完成的设计,利用锁存器来完成,这不但逻辑复杂,而且性能较差。因此,当设计一个组合逻辑时,设计者要避免由于VHDL设计风格的问题,无意识形成一个锁存器。例如,当case或者if语句不能完全覆盖所有可能的条件时,组合反馈可能形成一个锁存器。VHDL语言的代码描述为:异步复位的寄存器代码:libraryieee;useieee.std_logic_1164.all;entityregisterAsynisport(reset,clk,data:instd_logic;data_out:outstd_logic);endregisterAsyn;architecturebehaveofregisterAsynisbeginprocess(clk,reset,data)beginif(reset="1")thenqelseif(clk"eventandclk="1")thendata_outendif;endif;endprocess;endbehave;异步复位锁存器代码:libraryieee;useieee.std_logic_1164.all;entitylatchAsynisport(reset,enable,data:instd_logic;书山有路勤为径,学海无涯苦作舟!

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?