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

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

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

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

1优化设计的几种方法

1.1时钟控制

在复杂的数字电路系统中,常常会出现这种情况:一个数字系统

有时会需多个时钟信号,为了保证不同时序模块时钟的同步,系统的

外部只能提供一个基准时钟源,如在设计数字钟时,数字钟的计数时

钟和控制LED数码管位扫描的时钟就是两个不同的时钟信号,前者

的频率是1Hz,后者的频率要求50~100Hz之间,而系统外部只提供

一个基准时钟信号。对于这种情况,可以选一个合适高频的基准时钟,

对此时钟进行分频,分别得到两个不同的时钟信号。当出现设计系统

需要多个时钟,而且,各时钟频率之间没有整数倍关系时,可以选一

个2倍于最高频率的时钟,并对此时钟进行采样,再分别得到所需的

各时钟频率。而且此时得到的各时钟频率能满足系统设计要求,相位

还同步。此方法能有效增强设计系统的稳定性。

对于多时钟数字系统,在设计时要正确处理时钟域之间的接口,

不使用FPGA内部组合逻辑产生的信号作为时钟,以降低功耗需求。

VHDL语言的代码描述为:

门控时钟描述的代码:

GateClk=input1andclk;

Process(GateClk)

Begin

If(GateClk’eventandGateClk=’1’)then

If(load=’1’)then

Out_data=data;

Endif;

Endif;

Endprocess;

时钟使能描述的代码:

enable=input1andload;

Process(enable,clk)

Begin

If(clk’eventandclk=’1’)then

If(enable=’1’)then

Out_data=data;

Endif;

Endif;

Endprocess;

1.2异步/同步时序逻辑

在时序逻辑电路设计时,可以采用同步电路和异步电路两种设计

方法。同步时序电路使用组合逻辑和触发器实现电路功能,电路的主

要信号和输出信号都由统一的基准时钟驱动触发器产生,可以避免毛

刺与竞争冒险。而异步电路采用组合逻辑,没有统一的时钟信号,容易

产生毛刺和竞争冒险,电路不稳定。

从电路延迟方面考虑,异步电路是通过逻辑门电路来实现的,延

迟难以预测,而同步设计使用计数器或触发器实现延时的,用于计数

器和触发器的时钟稳定性决定了同步时序电路的性能,现在FPGA内

部有专用的时钟资源,如专用的时钟模块、全局时钟布线资源等,其时

钟的质量与性能是可以得到保障的。从资源使用方面考虑,FPGA是以

逻辑单元衡量电路面积的,所以同步设计并不比异步设计浪费资源。

目前,商用的FPGA都是面向同步的电路设计而优化的,同步时序电

路可以很好地避免毛刺,提倡在设计中采用同步逻辑电路。特别注意,

不同的时钟域的接口需要进行同步。

1.3寄存器/锁存器

寄存器是由具有存储功能的触发器组合起来构成,用来存放二进

制数据或代码的电路,任何现代数字系统都必须把需要处理的数据和

代码先寄存起来,以便随时取用。对于边沿触发存储单元,在基于寄

存器的设计里,竞争冒险情况较少甚至不存在,控制信号和寄存器输

入信号上的毛刺不易造成影响,信号可在一个周期里准确寄存。锁存

器是电平敏感存储单元,它不象寄存器数据存储控制在一个时钟周期

内完成,电路稳定性差。在FPGA器件中集成了很多的寄存器,相对

于利用寄存器完成的设计,利用锁存器来完成,这不但逻辑复杂,而且性

能较差。因此,当设计一个组合逻辑时,设计者要避免由于VHDL设计

风格的问题,无意识形成一个锁存器。例如,当case或者if语句不能完

全覆盖所有可能的条件时,组合反馈可能形成一个锁存器。VHDL语言

的代码描述为:

异步复位的寄存器代码:

libraryieee;

useieee.std_logic_1164.all;

entityregisterAsynis

port(reset,clk,data:instd_logic;

data_out:outstd_logic);

endregisterAsyn;

文档评论(0)

177****7360 + 关注
官方认证
内容提供者

中专学生

认证主体宁夏三科果农牧科技有限公司
IP属地宁夏
统一社会信用代码/组织机构代码
91640500MABW4P8P13

1亿VIP精品文档

相关文档