可编程逻辑设计指导原则_第1页
可编程逻辑设计指导原则_第2页
可编程逻辑设计指导原则_第3页
可编程逻辑设计指导原则_第4页
可编程逻辑设计指导原则_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、可编程逻辑设计指导原则可编程逻辑设计指导原则 概要概要 n面积和速度的平衡与互换原则 面积优化 速度优化 n硬件原则 n系统原则 n同步设计原则 异步电路和同步电路比较 同步设计的注意事项 nAltera推荐的代码风格 面积和速度的平衡与互换原则面积和速度的平衡与互换原则 n面积:指一个设计所消耗FPGA/CPLD的逻辑资源数量。 n速度:指设计在芯片上稳定运行时所能达到的最高频率。 n面积和速度是一对对立统一的矛盾体。要求一个设计同时具 备面积最小、速度最高是不现实的。科学的设计目标应该是: 在满足时序要求的前提下,占用最小的芯片面积。或者: 在所规定的面积下,使设计的时序余量更大。 面积和

2、速度要求冲突时,采用速度优先的原则。 面积优化面积优化 n模块复用 n串行化 模块复用模块复用 n如果同样结构的模块需要被重复调用,且该模块占用资 源很多,如多位乘法器、快速进位加法器等,可通过选 择、复用的方式共享该模块。 串行化串行化 n把原来耗用资源巨大、单时钟周期内完成的并行执行逻 辑块分割开来,提取相同的逻辑模块(一般为组合逻辑 模块),在时间上复用该逻辑模块,用多个时钟周期完 成相同的功能,代价是工作速度大为减低。 串行化串行化 n例:设计乘法累计器 yout=a0*b0+a1*b1+a2*b2+a3*b3 采用并行逻辑设计,需4个8位乘法器和1个4输入16位加法 器,共耗用576

3、个LC。 串行化串行化 采用并行逻辑设计,需4个8位乘法器和1个4输入16位加法 器,共耗用576个LC。 串行化串行化 采用串行逻辑设计,只需1个8位乘法器和1个2输入16位加 法器,共耗用203个LC。 速度优化速度优化 n面积复制 n乒乓操作 n香农扩展运算 n流水线设计 n寄存器配平 n优化关键路径 面积复制面积复制 n通过复制模块,并行处理来提高速度。 乒乓操作乒乓操作 n利用乒乓操作可以达到用低速模块处理高速数据流的效果, 实现数据流的无缝缓冲和处理。 香农扩展运算香农扩展运算 n香农扩展即布尔逻辑扩展,是卡诺逻辑化简的反向运 算: n例:F=(8late|in0)+in1)=in

4、2) Always (cond_1,data_in) begin if(cond_1) data_out=data_in; end 慎用锁存器慎用锁存器 n防止产生非目的性Latch的方法: 使用完备的条件判断语句。 为每个输入条件,设计输出操作。 检查设计中是否含有组合逻辑反馈环路。 用case语句设计状态机时,在综合约束属性中,设置综合为 完全条件case语句(full case)。 时钟设计的注意事项时钟设计的注意事项 n同步时序电路推荐的时钟设计方法 n内部逻辑产生的时钟 n行波时钟 n门控时钟 n时钟同步使能端 同步时序电路推荐的时钟设计方法同步时序电路推荐的时钟设计方法 n时钟经全

5、局时钟输入引脚输入,通过FPGA内部专用PLL (Altera、Lattice多为PLL)或DLL(Xilinx多为DLL)进 行分频或倍频(一般可实现小数分频倍频)、移相等调整 与运算,然后经FPGA内部全局时钟布线资源(一般为全 铜工艺)驱动到达芯片内所有寄存器和其他模块的时钟输 入端。 内部逻辑产生的时钟内部逻辑产生的时钟 n如果需要内部逻辑产生的时钟,必须要在组合逻辑产生的 时钟后插入寄存器,以过虑毛刺。如果直接使用组合逻辑 产生的信号作为时钟信号或异步置位/复位信号,由于组 合逻辑难免产生毛刺,会使设计不稳定。 行波时钟行波时钟 n一组寄存器级连,每个寄存器的输出端接到下一寄存器的

6、时钟输入端。这种计数翻转型异步计数器常被用于异步分 频电路。 行波时钟行波时钟 n同步计数器通常是代替异步计数器实现分频的更好方案, 因为同步计数器有较快的时钟到输延时。 门控时钟门控时钟 n门控时钟是设计中一种常用的减少功耗的手段。通过门控 信号可以控制门后端的所有寄存器不再翻转,从而有效地 节约功耗。 n门控逻辑会污染时钟质量,时钟通过控制门后会产生毛刺, 并使时钟的Skew、Jitter等指标恶化。 时钟同步使能端时钟同步使能端 条件语句条件语句case和和ifelse的优先级的优先级 n一般来说,case语句是平行的结构,所有的case的条件和 执行都没有优先级;而ifelse在多数情

7、况下是有优先级的。 n建立优先级结构会消耗大量的组合逻辑。 n补充:ifelse也可以写出不带优先级的平行结构的条件判 断语句。随着综合工具的优化能力越来越强,多数情况下 可以将不必要的优先级树优化掉。 操作进程操作进程always的信号敏感表的信号敏感表 n时序逻辑的信号敏感表: 只需写明时钟信号的正负触发沿即可。 n组合逻辑的信号敏感表: 正确的信号敏感表设计方法是将操作进程(Verilog的always block或VHDL的process block)中使用到的所有输入信号和条 件判断信号都列在信号敏感表中。 不完整的信号敏感表会造成前仿真结果和综合实现后仿真结果 不一致。 一般综合工

8、具对于不完整的信号敏感表的做法是,将处理进程中用 到的所有输入和条件判断信号都默认添加到综合结果的信号敏感表 中,并对原设计代码敏感表中遗漏的信号报警告信息。而大多数仿 真器是数据流和时钟周期驱动的,如果信号敏感表中没有某个信号, 则无法触发和该信号相关的仿真进程,从而导致仿真结果不同。 希望通过信号敏感表的增减完成某项逻辑功能是大错特错的! 状态机设计的一般原则状态机设计的一般原则 n选择状态机的编码方式 Binary、gray-code编码:使用最少的触发器,较多的组 合逻辑,适合CPLD。 Onehot编码:使用最多的触发器,较少的组合逻辑, 适合FPGA。 n两段式状态机设计方法 将状

9、态转移单独写成一个模块; 将状态转移的条件判断逻辑,以及状态的操作写到另一 个模块。 n初始化状态和默认状态 n指定默认输出值 n状态机输出逻辑复用 Altera Megafunction资源的使用资源的使用 nMegafunction是基于Altera底层硬件结构最合理的成熟应用 模块,在代码中尽量使用Megafunction这类IP资源,不但 能将设计者从烦琐的代码编写中解脱出来,更重要的是在 大多数情况下Megafunction的综合实现结果比用户编写的 代码更优。 三态信号的使用三态信号的使用 nAltera推荐在顶层设计中将所有的双向总线定义为三态信 号。但须注意的是禁止在除顶层以外的其他子层次定义双 向端口,除非是顶层中直接驱动双向端口的,禁止赋值高 阻态Z。 n三态信号范例:

温馨提示

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

评论

0/150

提交评论