




已阅读5页,还剩60页未读, 继续免费阅读
(计算机科学与技术专业论文)fpga的低功耗设计技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 f p g a 在设计上的高度灵活性 使其现场可编程性获得了越来越 多的人的青睐 f p g a 的集成度越来越高 设计的功能不断增多 应 用日趋复杂 运行频率也越来越高 设计的功耗问题变得越来越突出 成为限制设计研发的瓶颈 流水线能提高系统的性能 本文的设计研 究在保持系统性能不降低的情况下 尽量降低设计系统的功耗 本文首先在介绍了国内外相关的降低f p g a 静态功耗和动态功 耗的研究现状的基础上 针对多余的信号翻转也就是信号毛刺是产生 了多余的动态功耗主要原因 通过流水线来平衡组合逻辑路径过滤多 余的信号翻转 使用了总线编码 总线翻转和逻辑片紧凑等方法减少 输入端口数量 并对逻辑进行优化减少使用的资源数目和设计的逻辑 层次 提出了基本流水线和带使能流水线的数学模型 设计了基于 o 一1 背包问题的在组合逻辑路径中加入同步时序元件形成组合逻辑段 的算法 最后阐明了测试样例电路的选取原则和测试激励信号的产生 规则与意义 使用三种不同类型的翻转率信号对设计进行验证 并让 设计使用d s p 进行实现和不使用d s p 进行实现 通过对实验结果的横向和纵向比较发现 基本流水线设计尽管增 加了设计中使用的资源数 但能极大的提高设计的性能并降低设计的 功耗 带使能的流水线能在基本流水线的基础上进一步降低设计的功 耗 关键词f p g a 低功耗 流水线 a bs t r a c t f p g a sh i g hf l e x i b i l i t ya n df i e l dp r o g r a m m i n ga t t r a c t sm o r ea n d m o r ea t t e n t i o n i t sd e n s i t yi n c r e a s ea l o n gw i t hi t sf u n c t i o na n ds y s t e m i j r e q u e n c y s p e c i f i ca p p l i c a t i o ni nf p g ag e tc o m p l e xd a yb yd a y p o w e r c o n s u m p t i o nb e c o m e sb o t t l e n e c ko fr e s e a r c ha n dd e s i g n p i p e l i n ec a nb e u s e dt os u r g es y s t e mp e r f o r m a n c e g o a lo ft h i sp a p e ri st od e c r e a s ep o w e r c o n s u m p t i o nw h i l em a i n t a i nt h es a m es y s t e mp e r f o r m a n c e t h i sp a p e rf i r s ti n t r o d u c e ss o m er e l a t e dr e s e a r c hc o n c e r n i n gs t a t i c a n dd y n a m i cp o w e rd e c r e a s i n g b e c a u s eg l i t c hi st h em a i ns o u r c et h a t c a u s e sr e d u n d a n ts i g n a lt r a n s i t i o n r e d u c eg l i t c hc a nd r a m a t i cr e d u c e s y s t e mp o w e rc o n s u m p t i o n u s i n gp i p e l i n et od e c r e a s er e d u n d a n ts i g n a l t r a n s i t i o ni sag o o dw a yt or e d u c ep o w e rc o n s u m p t i o n i no r d e rt o d e c r e a s ei n p u tp o r ta n do p t i m i z el o g i c b u se n c o d i n g b u ss w i t c h i n ga n d l u t c o m p a c ti su s e d g i v eam a t h e m a t i cm o d e lf o rb a s i cp i p e l i n ed e s i g n a n de n a b l e dp i p e l i n ed e s i g n k n a p s a c kp r o b l e ma l g o r i t h mi sa l s or e f e r r e d t od e c r e a s ep o w e rc o n s u m p t i o nw h i l em a i n t a i na tl e a s te q u a lp e r f o r m a n c e f o rd e m o n s t r a t i o n u s eb a s i cm a cw i t hm u xc i r c u i tf o re x p e r i m e n ta n d a n a l y z et h i sc h o i c e a n dl a t e rt h r e ed i f f e r e n tp r o b a b i l i t ys i g n a l sa r eu s e d t ot e s tt h eb e n c h m a r kc i r c u i t i no r d e rt of u l lt e s tt h eb e n c h m a r k d e s i g n u s i n gd s p a n dw i t h o u ti ta r ec o n c e r n e d a f t e rh o r i z o n t a lc o m p a r i s o na n dv e r t i c a lc o m p a r i s o n o ft h e b e n c h m a r kr e s u l t s c o m et ot h ec o n c l u s i o nt h a tt h o u g hp i p e l i n ec a n i n c r e a s er e s o u r c e su s e d b u ti tc a ni n c r e a s ep e r f o r m a n c ea n dd e c r e a s e p o w e rc o n s u m p t i o n a n dp i p e l i n ew i t he n a b l es i g n a lc a nf u r t h e rd e c r e a s e p o w e rc o n s u m p t i o n k e yw o r d s f p g a l o wp o w e r p i p e l i n e 硕士学位论文第一章绪论 1 1 研究背景 第一章绪论 嵌入式领域常用的有三种不同类型的芯片 a s i c c p u 和f p g a a s i c 使用 固定的逻辑功能电路来实现功能 可以对特定的功能应用获得较好的性能提升 面积和功耗的降低 但a s i c 一旦设计完毕就只能完成特定的功能 并且开发周 期长 前期投入成本高 c p u 是基于指令和时钟节拍的 它可以使用不同指令集 合来完成不同的功能 是指令密集型的通用性器件 现场可编程逻辑阵y l j f p g a f i e l dp r o g r a m m a b l eg a t ea r r a y 是在p a l g a l p l d 等可编程器件的基础上又一个大的进步 是集成电路中集成度最高的一种 它在投片生产完成之后还可以根据用户特定的需求编程 它具有大量的可编程逻 辑 使用基本的逻辑单元电路和通用的布线资源来实现不同的逻辑功能 不同的 逻辑功能对应着不同的配置电路内容和基本逻辑块之间的物理连线 与f p g a 一 起可以被灵活编程的是c p l d c o m p l e xp r o g r a m m a b l el o g i cd e v i c e 它矛i f p g a 最大的区别是f p g a 有更多的用于实现时序逻辑的触发器 和更多的异构的内嵌 的资源女i r a m 和时钟等 而c p l d 一般多见用于组合逻辑实现 根据集成电路的发展规律 可以估算出商业的f p g a 芯片在不同工艺阶段的 逻辑容量 运行最高频率和功耗 制程工艺的提升 可以做出更小的集成电路 这样就增加了芯片的集成度 可以在一块硅片上集成更多的逻辑门 未来的晶圆 尺寸至少会维持在现在的水平 工艺技术的改进减少了芯片的内部延迟 也就提 升了设计的系统频率 f p g a 的逻辑门数可以使用其等价的系统门数来衡量 主要是由其中的资源 数目决定的 在现在主流的f p g a 中 使用的是静态r a m 来存储配置信息 由计 算机组成原理知识可知 一个一位的静态r a m 存储单元 使用的基本晶体管为6 个 x i l i n x 和他的合作伙伴们在1 9 8 5 年生产出第一块f p g ax c 2 0 6 4 当时该芯片 只有6 4 个c l b s 每个c l b 有两个三输入的l u t s 最初的数字电路使用晶体管进 行搭建 最后的数字电路使用c m o s 管进行搭建 门长度也极大的下降 供电电 压也在不断的降低 下表1 1 显示t f p g a 的制造工艺与设计性能的发展历程l l j 硕士学位论文第一章绪论 表1 1 芯片门长度和供电电压发展规律 l o n gt e r m n e a rt e r my e a r s y e a r v e a r s 1 9 9 71 9 9 81 9 9 92 0 0 02 0 0 l2 0 0 22 0 0 32 0 0 42 0 0 52 0 0 82 0 l l2 0 1 4 g a t e 3 5 02 5 01 8 01 6 51 5 01 3 01 2 0l l o1 0 07 05 03 5 l e n g t h n m s u p p l y 3 32 51 81 81 51 51 51 21 20 90 60 6 v o l t a g e v s y s t e m 1 01 52 02 53 03 54 04 55 01 0 02 6 0l o o o f r e q u e n c y m h z 当进入深亚微米时候以后 每个晶体管变得只有几十个原子那么厚 当把如 此小的晶体管生产出来 即使能保证产品的良率 其成本也极其高昂 同时一小 片芯片上的晶体管同时开关效应s s o s i m u l t a n e o u ss w i t c h i n go u t p u t 也足以使芯 片功耗增大 温度急剧上升 最终烧毁整个芯片 现在流行的多核处理器一个驱 动因素就是当把所需数量的晶体管封装在一个芯片内部会导致芯片散热问题重 重 而并排放置多颗核 可以有效缓解这个问题还能利用并行编程获得性能的提 升 1 2 研究现状 对于f p g a 的低功耗设计研究 国内外研究出现参差不齐的现状 国外对于 f p g a 的功耗的研究 包含的范围比较广 论文比较多 研究的方面比较全面 形成了比较完整的体系结构 由于f p g a 的容量大要求可靠性高 加之国内芯片 发展水平 目前国内还没有像国外那样形成丰富完善的研究体系结构 尽管也有 内嵌c p u 核的f p g a 功耗分析 但所做的研究更多的是基于一些特定的f p g a 应用 来降低功耗 在本章中 将首先从f p g a 的功耗组成来进入相关的降低各个功耗 组成部分的一些国内外研究现状 1 2 1f p g a 的功耗组成 如公式1 1 所示 f p g a 的总功耗包含启动功耗 静态功耗和动态功耗三个 个部分 2 1 p t o t a 2p h h p 嘶m 电 p 嘶唰 c 咐 i 甑c e p s h o n c i 吣峨 p s t a l c y d d il 商呔 y d d i 印 公式1 1 公式1 2 硕士学位论文第一章绪论 公式1 3 只恸d 打 二1 3 一2 r f 公式1 4 1 二 t rr 其中 d d 是供电电压 1 l e a k 是泄露电流 1 咖是输入电压的直接电流通路电流 l c 是负载电容 d y 是平均信号翻转率 是依赖于晶体管尺寸的一个参数 y r 是门限电压 f 是平均的上升沿时间 f 是时钟频率 前两项构成了f p g a 的 静态功耗 后两项构成f p g a 的动态功耗 f p g a 的功耗一般只考虑后面的两部分 静态功耗和动态功耗 因为设计人员无法控制启动功耗 它是在芯片设计的时候 都被决定的 静态功耗就是指逻辑门存没有开关活动时候的功耗 包括泄露电流 和导电电流两部分 静态功耗主要取决于所选的f p g a 产品 f p g a 的动态功耗 是所有电容性节点充放电产生的组合功耗和电路转换过程中的短路电流形成的 功耗 因此它跟信号的翻转有密切的关系 短路功耗来源于在信号翻转过程中从 电源到地的直接电流通路带来的功耗 短路功耗可以被认为是动态功耗的1 0 引 根据f p g a 功耗的组成部分 降低f p g a 功耗的技术主要也就包含两大类 第 一类就是降低f p g a 的静态功耗 这可以使用更好的架构如三层氧化物防泄露 更低的或根据不同性能要求对电路不同模块提供不同的供电电压 合适的c m o s 门限电压等一些电路基本组成结构上的调整来减少泄露电流 4 或对输入进行重 组获得泄露电流降低垆刮 第二类是降i l 乇f p g a 的动态功耗 主要是在保证设计满 足应用要求的情况下 通过降低设计中的有效信号翻转率 减少毛刺无效信号的 产生和传播 降低动态功耗的方法包括优化代码的r t l 级设计 使用流水线 门控电路等更好的逻辑设计方法 使用内嵌的定制功能块 能减少平均布线长度 和平均节点负载电容的更好的自适应探索布局布线算法 更好的适合于f p g a 逻 辑实现的设计算法等 7 1 1 2 2 降低静态功耗的研究 由前面的静态功耗的公式可以直观的得出 降低芯片的供电电压可以线性的 降低静态功耗 所以又研究通过降低供电电压来达到降低功耗的目的 但由最大 时钟频率与供电电压和晶体管门限电压之间的关系公式可知 o 厶 v 删 么 公式1 5 所以简单的通过降低电压的方法降低功耗会降低系统的设计性能 而供电电 压的同时 也降低芯片的门限电压 这个需要使用更好的工艺 可以获得性能的 提高 而又由公式可知 f d 憎 缈 甜c 伽 蔺 纽 一 硕士学位论文 第一章绪论 k e x p 叫p 椭础 丁 公式1 6 随着门限电压的降低 泄露电流也在增加 所以在不影响性能的情况下 通 过降低供电电压来降低动态功耗 会带来静态功耗的增加 因此降低电压不是一 个好的减少f p g a 功耗的方法 同时芯片的标准供电电压在芯片设计完成之后就 因体系结构和制造工艺被固定下来 而实际能有更大灵活性的方案就是降低设计 的动态功耗 1 2 3 降低动态功耗的研究 现在的f p g a 一般都使用l u t s r a m 结构 四输入或者五输入能够获得更好 的性能提升f l 使用动态的l u t 宽度可以更好的满足各种差别很大的应用的要 求 减少逻辑资源的使用与布线拥挤 1 2 l 为了连接各个逻辑单元组成一个完整的 系统 使用更好的交换矩阵来减少交换节点的电容 从而降低功耗 1 2 为实现系 统功能的动态变化 f p g a 的功能可以使用在线编程的方法在线重构 为降低动 态可重构时候的功率消耗 可以使用处理器本地高速总线来传输重构数据 l 引 为 了获得f p g a 设计中最佳的翻转率估算方法 有多种估算方法 1 4 圳j 这些方法包 括基于仿真的翻转率估算方法 基于概率论的估算方法 2 2 2 5 基于现存的翻转率 估算工具的方法等 也有一些基于某些特定应用的低功耗研究 选择合适的电源 f p g a 与存储 器 可以建立一个低功耗的图象融合的f p g a 硬件系统 2 6 在通信系统中 数字 滤波器是一个很常用的功能部件 也可以对其中大量的数学运算进行低功耗的处 押 2 7 3 5 j i o 在算法研究与改进方面 可以通过使用对诸如遗传算法 模拟退火算法 蚁 群算法 3 6 均改进来合理的布局各种资源与其之间的连线 从而达到降低功耗的目 的 使用改进的算法对时钟这种关键的资源的布线进行优化 可以极大的降低时 钟的动态消耗 3 7 在传统退火算法的基础上 利用统计分布 对f p g a 进行布线 轨道分布的研究 利用布线轨道在f p g a 内部的不同分布 考察对于f p g a 实现逻 辑占用面积的影响 可以得到不均匀的分布可以提高面积的利用率 由此带来了 f p g a 使用的低功耗 3 8 j 对使用了f p g a 内部专用模块的应用使用专门的布线算 法 3 9 1 基于功耗模型对布局布线算法进行修改 4 0 1 基于时序驱动的布局布线算 法 4 1 1 通过多次迭代布局布线从而获得更低的功耗 4 2 1 现在的f p g a 一般都使用 l u t s r a m 的结构 对紧凑型的l u t 拆分 4 3 这样可以减少一个逻辑元素的扇 出 同时也减少了因为紧凑而带来的布线拥挤 也可以通过使用改进算法来减少 毛刺的发生概率 4 4 1 对于实时的系统也可以比较好的功耗降低 4 5 1 除使用更好结 4 硕士学位论文 第一章绪论 构的芯片与更好的布局布线算法外 分层次的设计方法也可以降低功耗m 7 状态机是设计中常用的一个功能模块 对它的功耗的降低也可以降低系统的 功耗 状态机表示为一个六元组 d s 孝 痧 其中的 表示输入 o 表示输 出 s 表示状态 靠是开始的复位状态 孝 i xs 专s 是状态转换函数 而 矽 i xs 一0 是输出结果函数 格雷码任意两个相邻的状态之间只有一位发生变 化 即曼哈顿距离恒为1 所以使用这种编码方式可以降低功耗 但同时对状态 的解码也会占用更多的逻辑资源 因此会带来功耗的提高 4 8 1 因为f p g a 中一般 都有一部分内嵌的块r a m 因此使用系统设计空闲的块r a m 实现的状态机 可 以减少布线资源的消耗与逻辑单元节点的使用 同时通过优化掉无关的状态机输 入 对f s m 的输入与输出进行编码 可以减少状态机设计中对块r a m 的使用一j 这在一定程度上也是通过减少资源的使用来降低功耗的方法 系统设计中的容错 也会对功耗带来影响 5 0 在设计中使用动态的时钟管理来降低系统的功耗 5 在任何电子系统中 毛刺波都会是系统的不利因素 它对有区域限制的布局 布线的功耗与性能也会产生影响 5 2 5 3 1 也会导致系统处于不稳定状态 并且使设 计产生很多不必要的信号翻转 毛刺波可以分为产生的毛刺波与传播的毛刺波两 种 除了从硬件设计的角度使用路径平衡 5 4 l 来减少毛刺的产生与减少使用可以传 播毛刺的反向器来减少毛刺的传播 5 5 l 的可能外 也可以在逻辑设计的时候减少毛 刺产生与传播的可能 比如对状态机的设计 在提高性能的同时也降低毛刺的传 播 5 6 1 从减少毛刺的传播的角度 使用寄存器对结果进行打点 尽管使用节拍加 大了延迟 却可以过滤毛刺波 5 7 因为流水线可以分割关键路径 减少毛刺的产 生与传输距离 限制毛刺的扩散 因此可以使用寄存器结点来过滤毛刺波 从而 减少了虚假的转换的影响 达到降低功耗的目的 5 8 因为同步逻辑在一个时钟周 期内最多仅翻转变化一次 所以在设计的时候多使用同步设计可以减少设计的无 效翻转降低功耗 通过流水线设计降低f p g a 的功耗 主要包括两大类研究 一 种是在保证性能的情况下使用更低的供电电压或对于不同性能要求的流水线使 用不同的电压 5 9 1 第二种是在不改变电压的情况下 使电路的时序余量最大 性 能最好 本文主要针对第二种类型 从逻辑设计的角度分析了流水线对功耗的影 响 1 3 研究的目标与意义 信号毛刺是产生多余动态功耗的主要原因 流水线能过滤大部分多余的毛刺 信号 同时流水线设计能分割组合逻辑计算路径 有着更短的布线长度 所以也 就把布线最大限度的限制在局部范围内 所以可以获得更好的功耗降低 同时流 水线还可以获得更好的时序性能 5 硕士学位论文第一章绪论 近年来 便携式产品设备市场不断的以阶梯式的跳跃发展 其处理能力大大 提升 所支持的应用越来越多 不断有新兴公司加入 市场的竞争也越来越激烈 价格竞争白热化 同时消费类电子产品更新换代速度也越来越快 新产品的上市 时间会直接影响到产品的市场份额 新兴便携式产品设备市场还有一个趋势即一 个系列中的每种设备的出货量减少 但不同系列设备间的定制功能却增多了 这 样 市场窗口就越来越小 每个产品的销量也在变小 且每个产品的生命周期也 在变小 要想在不断更新的市场中推出高价值的差异化产品 a s i c 或者是a s s p 的更新是来不及的 因此必须借助一种更快速和更具有成本效益的方式来推出具 有最新功能的时尚产品 获得市场先机 f p g a 就成了这样系统设计的一个好选 择 但这样同时研发者也必须面对速度 面积和功耗的多重挑战 f p g a 设计可能会因为功耗问题未很好的解决而增加了芯片散热设计难度 延长了研发周期以及散热和封装成本的明显增加 芯片的可靠性也明显下降 电 参数的漂移 甚至导致器件的失效 系统的崩溃等 因此设计低功耗的f p g a 减 少功耗可带来许多好处 低功耗设计将决定一个系统的集成能力有多强 有时候 因为经济低迷不景气使用f p g a 设计还可以作为一种降低风险的保守的做法 随 着一片f p g a 上可以集成的逻辑门数与日俱增 现在f p g a 可以竞争过去只有 a s i c 才能完成的任务 有研究表明温度降低2 0 可以使芯片的总体寿命延长 1 0 倍 6 0 1 1 4 论文的工作与结构安排 本文提出了基本流水线和带使能流水线的数学模型 然后使用逻辑优化方法 降低流水线设计的功耗 并实现了从组合逻辑到流水线的类背包问题求解算法 为了深入 对基本流水线加入使能信号进一步降低设计功耗 本论文共分为六章 第一章介绍了课题的背景与国内外低功耗设计的研究现 状 第二章介绍了f p g a 的体系结构和后续章节会使用的功耗模型 第三章提出 自己的将一个非流水线的组合逻辑设计变换为流水线的设计的一个数学模型 并 使用背包问题求解算法 该算法保证在设计性能不降低的同时 使设计的逻辑深 度最少 同时最大限度的减少毛刺信号带来的冗余功耗增加 第四章讲述论文中 功耗的评估方法与流程 并分析了测试样例的选取原则及验证方法和最终的实验 结果 实验证明流水线比非流水线设计能较大的降低设计的功耗 第五章对第四 章的基本流水线设计进行扩展 使用带使能的流水线设计来进一步降低设计的功 耗 结果表明使能能进一步降低设计功耗 第六章对整个论文进行总结 并提出 自己将来可能的研究方向与计划 6 硕士学位论文第二章f p g a 低功耗设计背景知识 第二章f p g a 低功耗设计背景知识 2 1f p g a 的结构 f p g a 内部资源排列成一系列的二维阵列 阵列中包含函数发生器c l b 和各 种宏单元数学运算模块 最常用的f p g a 架构有以下四个部分组成 可配置逻辑 块c l b c o n f i g u r a b l el o g i cb l o c k s 布线资源 交换矩f 乍 i o 块 其中的可编程 逻辑c l b 主要用于逻辑函数生成 主要的逻辑功能都需要使用它实现 布线资源 有各种不同的长度 它用于连接两个或多个可编程逻辑块 当垂直和水平的布线 资源相交的时候就需要一个交换矩阵 而i o 块则主要是作为系统的i o 输入输出用 于与片外上下游端口进行连接 在f p g a 约束文件编写的时候 特定的c l b 块也 被以坐标的形式表现出来 实现的时候特定的逻辑会被实现到特定的物理坐标位 置 2 1 1 可配置逻辑块 主流的f p g a 配置单元编程技术包括s r a m 反熔丝 和e p r o m 结构 本文 主要涉及基于s r a m 的f p g a 该类f p g a 的逻辑电路的功能一般是使用查找表 l u t 来实现的 每个l u t 可以产生一个输出 通过一个选择器可以让输出连接寄 存器f d 用于实现时序电路 两个查找表l u t 和两个寄存器f d 组成一个配置单元 c l b 然后两个c l b 可以组合成一个s l i c e 很多个s l i c e 排列成规整的行和列 形 成规则的排列结构 当电路逻辑功能比较简单的时候可以使用一个l u t 就可以实 现 当功能比较复杂的时候就需要使用更多的l u t 组合形成复杂的功能运算 7 硕士学位论文第二章f p g a 低功耗设计背景知识 c 1 b s 1 i c e 0 x 1 l c e l l u t 一进位链 一d 阶 日l u t 1 进位链卜 j1 p o 一疆 jc e 啼c l r专c 1 r j 一 h 一 j 二2 一 二 一 j1 p r ool u t q 进位链卜 jd 口l l l t 进位链l 一靠 一c e 书c l h 1 h 书c l r 丁一 图2 1c l b 基本结构 一个v i r t e x4f p g as l i c e 包含以下各个部分 两个四输入的l u t s 1 0 0 k u p t a b l e s 可以用来实现任意的四输入的布尔函数 一般用作组合逻辑函数发生器 两个l u t 一个n f 一个叫g 两个用户控制的组合逻辑选择器 m u x f 5 和 m u x f x m u x f 5 可连接两个l u t s 然后实现任意的9 输入函数 而m u x f x 连 接两个f 5 可以产生多达1 9 个输入的函数 两个一位加法和用于快速进位的精致 算术逻辑单元 其中的进位链只能在垂直方向进行传输 两个可以用来实现一位 的触发器或锁存器的寄存器 由结构可知 一个l u t 可以看做是宽度为1 深度为 16 的存储器 里面存储着算术逻辑运算的的真值表 2 1 2 互联资源 f p g a 内部的交换矩阵包围着可编程逻辑块 交换矩阵内部含交换开关连接 各个逻辑模块 f p g a 内部的可编程连线有单长度 双长度 和长线连接三种不 同类型 单长度线连接的任意两个可编程逻辑块之间 都要通过交换矩阵 它有 利于相邻的可编程逻辑块之间的快速或复杂互联 这样的布线延迟具有很大的不 稳定性 与特定的设计与芯片有关 单长度线包含互联两个相邻的交换矩阵的连 接金属段 用于相邻可编程逻辑块或可编程逻辑块与输入输出块之间的连接 双 长度线与单长度线平行 但它的长度是单长度线的二倍 用于互联两个不相邻接 可可编程逻辑块 它在互联两个不相邻接的可编程逻辑块的时候不需要经过交换 矩阵 而长线则是水平或垂直地贯穿于整个芯片的互联线段 长线互联的优点是 不需要经过交换矩阵 信号延迟小 主要用于长距离或多分支信号 比如控制信 号 使能信号 时钟信号和复位信号的互联 6 1 1 8 硕士学位论文第二章f p g a 低功耗设计背景知识 在f p g a 内部 用于互联不同可编程逻辑块的是交换矩阵 交换矩阵是一系 列的能连接两个互联线段的晶体管 布局和布线工具 p a r 使用这些交换矩阵来 互联不同的可编程逻辑块的输入和输出 这些交换矩阵能一定程度的减少布线网 络的延迟 它们可以连接三个不同的方向上的逻辑块 上方的 下方的和左方的 可编程矩阵不具有向右连接右边的逻辑块的功能 有四种不同结构的交换矩阵 d i s j o i n t u n i v e r s a l w i l t o n 和i m r a n 类型的1 6 2 砖 一 i产 j k 囊广1 0l 23 a d i s j o i n t j h o l 23 b u n i v e r s a l 彩 匿 念 一 z 飞 又入麓 义 尺 心 垂形 飞 爻x w i l t o n d i r a r a n 图2 2 四种不同类型的交换矩阵内部结构 i 一 鼍 i l 1 疆 球 奚 7掣 菸 0l2 3 c 霄i l t o n r g强x 仅7 妒 7双 火 心 圹 x h 气 k z k 蒡萋 心 7 j t 厂 c l k 图3 2 流水线基本单元 流水线的数学模型可以表述为 有三个集合 d s 其中的 i j l 1 29o o l 公式3 一1 o o l 0 2 q 公式3 2 s s s 2 s 公式3 3 对于任意的f l 咒 都存在一组函数 q 只 墨 i i 公式3 4 在流水线中 组合逻辑充当着逻辑函数发生器的作用 而同步时序元件则对 信号进行暂存 并在下一个时钟上升沿的时候将数据送出 该级的输出会作为下 一级的输入 最后一级的输出即为整个流水线的输出 而第一级流水线的输入为 整个流水线的输入 3 1 3 概念定义 在后文的描述中 涉及到的一些离散数学的专业术语在下面予以定义 1 4 硕士学位论文第三章基本流水线的低功耗设计 命题变项 一个函数所依赖的所有变量称为该函数的命题变项 比如 厂 i 则 j 都为厂的命题变项 文字 命题变项及其否定都被称为文字 合式公式 由有限的命题变项通过与 或 非这样的完备集连接而成的有限 表达式叫合式公式 也叫函数 用厂来表示 约束变量 一个合式公式所依赖的那些文字叫该合式公式的约束变量 自由变量 一个合式公式所不依赖的那些文字叫该合式公式的自由变量 基数 一个合式公式中约束变量的个数 n 可达的 如果一个合式公式的基数不大于n 则说该合式公式是n 可达的 逻辑深度 一个合式公式使用组合逻辑来实现需要的逻辑层次称为该合式公 式的逻辑深度 一个合式公式所包含的命题变项使用t y f 来表示 而其对应的基数表示为 j 仃 厂 j 从1 开始 假定合式公式厂 彳 b c d 一般有如下的两种实现形 式 左边对应的是链式实现方式 右边对应的足树状实现方式 不同的实现方式 对应着不同的深度 d d a b 图3 3 加法的两种不同实现方式 在上图3 3 中的 a 公式的逻辑深度为3 而 b 的逻辑深度为2 3 2 逻辑优化 对于同样一个逻辑功能描述 可以有不同的实现方式 最高级的是算法上的 优化 不同算法在性能 占用资源和功耗都会有差别 甚至是较大的差别 但这 种方法往往依赖于特定的具体问题 不同问题优化方法差别迥异 为了获得较好 的通用性 进行一些能降低功耗的底层优化 一般有两类优化方法 减少输入数 据端口的数量 这是最直接的方法 因为端口数量减少了使用的资源数会线性的 减少 输入端口去除包括两个方面 第一是如果存在变量的冗余 则直接去掉该 硕士学位论文 第三章基本流水线的低功耗设计 变量 冗余变量的去除方法可以使用对所有变量进行检查当约去该变量的时候逻 辑功能不变 第二种是如果一段逻辑的输出既没有被下游的逻辑使用 又没有作 为输出信号被输出 则去掉该段逻辑 如果该段逻辑的输入没有被其它的逻辑所 使用 同时也去除该优化掉逻辑的输入变量 还有一类对输入变量进行优化的方 法 就是分析逻辑表达式功能 充分结合设计的目标芯片内部的可编程资源情况 对表达式进行重组优化 将某些输入信号作为其它逻辑资源的控制或使能信号而 减少需要使用l u t 来实现逻辑的输入端口数量的需求 在x i l i n x 的f p g a 中 同步时序元件f f 是可以带有复位与预置的选项的 这 些复位与预置可以使同步的 也可以是异步的 因为芯片是基于同步设计进行优 化的 异步的需要使用外加组合逻辑来达到异步的功能 同步则可以直接利用内 部的原语就可以实现 所以使用同步的复位与预置功能可以获得更好的效率 可 以充分利用这个特点 设计出逻辑层次少 占用资源少的逻辑电路 同时功耗也 可以有效的减低 也因为逻辑层次减少了 所以设计的局部性能也可以得到提高 比如对于合式公式厂 ai b c d e 因为其是五输入的 对应的二进制 状态有2 5 个 如果不对其进行分析优化 需要两个四输入l u t 来实现逻辑 则一 种可能的实现示意图为图3 4 图3 4f a l b c d e 的两种实现方式 同样对于上面的合式公式 如果使用x i l i n x 芯片内部的f d r s e 该原语对应 的是带时钟使能 复位置位的同步时序元件 则可以使其逻辑层次减少一级 实 现示意图见图3 4 b 对于合式公式f fg1 日 ai b c d e 因为其是八输入在一 个合式公式中 使用四输入的l u t 时候需要级联才能完整实现这个八可达的公 式 如果不对其进行分析优化 则一种可能的实现示意图为图3 5 a 1 6 硕士学位论文 第三章基本流水线的低功耗设计 图3 5f f l g i h a i b c d e 的两种实现方式 当考虑其实现功能并充分利用芯片内部时序资源f d r s e 的时候 可以获得 的一种可能实现方式为图3 5 b 这样可以减少一个l u t 使用也一级逻辑层次 3 2 1 总线编码 总线编码最常见的地方是地址总线的编码 在使用的地方需要对被编码的信 号进行解码 使用总线编码可以使用较少的可编程连线表示更多的状态 对于一 个有n 个的独立状态的信号线如果使用二进制编码编码的方法 可以使其使用的 总线宽度为 w l 0 9 2 公式3 5 当然这样需要在输出时对信号进行编码 在信号输入处理的时候进行解码 这样也增加了设计中需要的逻辑资源数目 但如果n 很大并且能正好是2 的整数 次幂的话 能获得比较好的总线数目降低 相应的两个模块之间的可编程连线数 目也就减少了 总线编码一般使用在模块与模块之间进行数据传输或比较多的控 制信号传输的时候 因为各个综合工具一般都是以模块为单位进行综合 所以不 同的模块会被综合成互相独立的部分 在布局布线的时候使用可编程连线对这些 不同的模块进行连接 如果两个模块之间交换的数据或控制信号比较多 比如相 互之间有关联的状态机中 则可以考虑使用这种方法能减少设计的功耗 一个比 较常用的总线编码技术就是对地址总线的编码 这个也是个典型的应用 当前后 两个模块中要依次的对同一片内存区域进行处理的时候 如果地址空间是连续 的 则可以直接给下游模块一个地址的自增或自减有效信号 然后下游模块在寄 存的上次处理地址的基础上加上或减去一个事先约定好的固定值就可以达到要 求 如果地址不是按照递增或递减的顺序 那只需禁能地址自增或自减有效信号 然后传输相应的地址即可 这种方法仅仅在传输的信号线中增加了一位地址自增 或自减有效信号即可达到 1 7 硕十学位论文第三章基本流水线的低功耗设计 c w 删 书 b b 一1 s 其它 在没有对总线进行操作的时候 总线上的数据保持不变 一般接收者也会保 存最后一次使用的地址数据 所以可以利用这一点对递增的地址总线只需附加一 个地址增加信号 就可以提醒接受者在下一个地址空间操作 否则需要给完整的 地址 上面的一个地址自增或自减信号只能实现事先约定好的一个方向的地址操 作 可以在此基础上在加上一个信号 能够灵活的控制设计的地址做自增还是自 减操作 3 2 2 总线翻转 由前面的第二章中的动态功耗的组成司以知道 如果信号的翻转率很高 对 应的动态功耗也会增加 对宽度为n 的总线w o w w 在第 个时钟周期 总 线上的数值为 a a o a a 2 a 川 而在第t 1 个时钟周期 总线上的数值为 b b o b b 易川 对应的信号的曼哈顿距离为 d i s t a n c e 口l b 2 公式3 7 为了降低信号的翻转 额外的增加一个标志信号线f l a g 如果a f l l b 对应位 不同的信号位置为i if 则标志信号f l a g 的数学定义可以表示为 他 o篙k n 2 2 c 啪固 带标志信号位以后传输的总数据定义为 删 憾 溉k 根据这样的总线翻转编码以后 所有的 1 8 硕士学位论文第三章基本流水线的低功耗设计 一次总线翻转信号总数量将不会超过暖j l 3 2 3 逻辑片紧凑 在具体的设计应用中 为了实现完整的功能 一个设计模块往往包含很多的 合式公式 而对于每个合式公式 都可以使用上面提出的方法单独计算他所使用 的l u t 资源数目 但因为在一个c l b 内的所有l u t 都共享同样的控制信号和时钟 信号 所以一般在整个c l b 内部都只会用来实现一个合式公式 对于使用l 个l u t 的逻辑而言 其实际占用的c l b 数目n 为 闰 i 4i 公式3 1 0 也即为使用的c l b 数目向上取整 因为流水线可以提高设计的性能 所以可 以对这些被不完全占用的c l b 进行合并 以便充分利用资源 节约资源的使用同 时降低系统的功耗 但这样是以系统的性能为代价的 所以在具体的使用的时候 需要进行迭代以便获得在系统性能不降低的情况下使用更少的资源 使用更少的 功耗 3 3 基本流水线设计 由计算机原理的知识可以知道 除法可以转换为乘法 而乘法和减法都可以 转换为与其等价的加法 而数字电路告诉我们 加法可以转换为等价的逻辑运算 这个也是计算机存在能正常工作的原理 所以对组合逻辑的讨论 可以有一般意 义的共同性 3 3 1 加法到组合逻辑的转换 多位数相加可以使用半加器和全加器级联实现 半加器有两个输入 用于产 生没有进位的输出 而全加器有三个输入 除了两个一位加数以外还有一个低级 进位输入 可以产生有进位的输出 当两个数相加 可以对两个数据对应的每一 位 使用半加器或全加器来实现 两个都是n 位的数据相加 需要使用的半加器 数目为 z 个 全加器的个数为刀 刀叫么个 但半加器只有两个输入 如果加法运 厶 算全部使用l u t 来实现 对f p g a 的四个输入l u t 而言会造成比较大的资源浪费 所以最好结合每个s l i c e 内部专用的算术运算单元 对于四位的两个数据口 口 口 1 q 硕士学位论文第三章基本流水线的低功耗设计 和b 3 b b b 进行相加 输出结果为五位的d 4 d 3 d 2 q q 为了方便后面的讨论可以 将他转化为组合逻辑的实现方式 以便更方便的使用f p g a 中的资源 其原理图 为 销 图3 6 两个四位加法原理图 具体转换方法如下 o o a o b o l a o b o o i 6 0 a l b 1 i a o a 1 b i i 1 6 0 口l b 1 i 1 1 口l b 1 i a o b o a l b 1 i a o b o 1 q 1 6 1 c y l 口l b 1 i 口o 6 0 饥 a l b o 0 2 h a 2 b 2 1 y 1 i 1 口2 1 6 2 1 l a 2 b 2 c y i 10 2 6 2 1 i c y 2 b 2 a 2 i c y l a 2 i b 2 c y l 0 3 1 口3 也 1 c y 2 i 1 口3 玩 c y 2 i 口3 6 3 c y 2 i 口3 1 如 1 2 q 6 3 口3 i c y 2 a 3 i 6 3 2 对于上面的任何一个表达式都可以使用一个两输入或三输入或四输入的 l u t 来实现 而不同的输入最终也都会被映射为四输入的l u t 来实现 其中的 9 1 和 2 需要是进位逻辑 可以利用f p g a 内部的快速进位链来实现 将上述 硕士学位论文 第三章基本流水线的低功耗设计 各个输出与进位综合和对应的一种r t l 实现示意图为 图3 7 带快速进位链的两个四位加法的综合后r t l 图 对于图3 7 中的标记符 i b u f 和o b u f 表示输入输出缓存 标记符 l u t nx x x x 中的1 1 表示输入个数 而短横线以后的十六进制数字表示n 输入对应 的真值表 从左往右 第一位代表输入为全零时候的结果 最后一位代表输入为 全1 时候对应的真值 中间依次是二进制数字递增方式对应的真值 其中的 l u t 4 e a 8 0 对应快速进位逻辑9 1 而l u t 3 e 8 对应快速进位逻辑c y 2 3 3 2 逻辑级数划分 由第二章f p g a 的结构和实现逻辑电路的原理可以得到 一般而言 对于一 个具有n 个命题变项的合式公式 使用四输 入 l u t 来实现的时候需要的l u t 数目 为阱 而结合f p g a 的s l i c e 块内部的额外的逻辑资源可以在一个s l i c e 块里面实 现9 输入的函数 而在一个c l b p 勺部可以实现最大高达1 9 输入的函数 通过归纳 总结可以知道 使用的l u t 数目三与可以实现的最大输入数目 之间的关系为 i 5 l 一1 公式3 1 1 硕士学位论文第三章基本流水线的低功耗设计 因此由这个关系可以得出具有任意个输入的组合逻辑使用的l u t 数目的个 数 也就是说 如果实现一个基数为i 的合式公式 使用的四输入l u t 数目也可 以由此公式计算出 工 f 孚 公船功 也就是实际使用的l u t 数目是计算结果的对上取整 3 3 3 时钟周期的计算 时钟周期是同步时序设计中的关键概念 是评价设计系统性能的重要指标 它定义为两个相邻的时钟上升沿之间的时间差值 一个设计内部电路所能达到的 最高运行频率取决于同步时序元件本身的建立与保持时间 以及同步时序元件之 间的逻辑和布线延迟 图3 8 时钟周期的计算原理图 对于两个同步时序元件之间的时钟周期的最小值为 乙删 缸 乙 乙卸一 一蜘 公式3 1 3 t 骺s k e w 丁c d l 一丁c d 2 l c l k l i t n 醴 t w i 七t m m r 旺 公式3 1 4 公式3 1 5 其中 为时钟输出时间 互 缸为同步元件之间的组合逻辑传输延迟 瓦 为 可编程的互联资源传输延迟 瓦 为可编程互联连线的传输延迟 乙咖为可编 程交换矩阵的传输延迟 k 为同步元件也就是同步时序元件f f 的建立时间 乏雎一s k e w 为时钟信号偏斜 而对于有n 个流水段的流水线而言 所能承受的稳定时钟周期为t 则 乙删 m a x 互 疋 瓦 公式3 1 6 也就是一个流水线稳定运行所能承受的最大时钟周期为所有流水段中最大 硕士学位论文 第三章基本流水线的低功耗设计 的时钟周期 而流水线能稳定运行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运输合同变更协议模板
- 理疗馆的加盟合同范本
- 电脑硬件维修合同范本
- 矿山承包复垦合同范本
- 电表电路改造合同范本
- 进口木材采购合同范本
- 物流专线租赁合同范本
- 道路沥青招标合同范本
- 酒店临时租凭合同范本
- 租车配送货的合同范本
- 弱电维护保养合同
- GB/T 41972-2022铸铁件铸造缺陷分类及命名
- YY/T 0471.3-2004接触性创面敷料试验方法 第3部分:阻水性
- GB/T 3871.9-2006农业拖拉机试验规程第9部分:牵引功率试验
- PEP小学英语五年级上册第四单元全国优质课赛课一等奖《思维导图在小学英语复习课的应用》精品课件
- 新闻传播中的媒介素养课件
- 超疏水材料课件
- 中医刮痧法诊疗操作评分标准
- 腧穴定位法课件
- 社会体育导论PTPPT课件讲义
- 学校体育学(第三版)ppt全套教学课件
评论
0/150
提交评论