lec6 折叠

本题的目的是用图6-28 所描述的折叠集,对该图 中的格型滤波器进行折叠。 假设乘法运算映射为2级流 水线乘法硬件,加法运算 映射为1级流水线加法器。 硬件架构需用周期为1u.t.的 时钟定时

image.png
  • 进行折叠重定时,使得所有折叠后的边延迟非负

    N = 2

    PA = 1, PM = 2

    SA1 = {A2, A1}, SA2 = {A3, A4}, SM1 = {M1, M2}, SM2 = {M3, M4}, SM3 = {空, M5}

    折叠方程
    A2 -> M2 DF(A2 -> M2) = 2(0) -1 + 1 -0 = 0
    A2 -> M5 DF(A2 -> M5) = 2(0) -1 + 1 - 0 = 0
    A2 -> M4 DF(A2 -> M4) =2(1) - 1 + 1 - 0 = 2
    A2 -> M1 DF(A2 -> M1) =2(2) - 1 + 0 - 0 = 3
    A2 -> A1 DF(A2 -> A1) =2(2) - 1 + 1 - 0 = 4
    M1 -> A2 DF(M1 -> A2) =2(0) - 2 + 0 - 0 = -2
    M2 -> A1 DF(M2 -> A1) = 2(0) - 2 + 1 - 1= -2
    A1 -> M3 DF(A1 -> M3) = 2(0) - 1 + 0 - 1 = -2
    M3 -> A3 DF(M3 -> A3) = 2(0) - 2 + 0 - 0 = -2
    M4 -> A3 DF(M4 -> A3) =2(0) - 2 + 0 - 1 = -3
    M5 -> A4 DF(M5 -> A4) =2(0) - 2 + 1 - 1 = -2
    A3 -> A4 DF(A3 -> A4) = 2(0) - 1 + 1 - 0 = 0

    根据上表可知,为了消除为负的折叠方程,可以通过重定时技术,将负的转化为正的,可得下图重定时DFG

    image.png

根据割集,可得到新的DFG如下图所示

image.png

通过上图可得新的折叠方程如下表所示

折叠方程
A2 -> M2 DF(A2 -> M2) = 2(0) -1 + 1 -0 = 0
A2 -> M5 DF(A2 -> M5) = 2(0) -1 + 1 - 0 = 0
A2 -> M4 DF(A2 -> M4) =2(1) - 1 + 1 - 0 = 2
A2 -> M1 DF(A2 -> M1) =2(2) - 1 + 0 - 0 = 1
A2 -> A1 DF(A2 -> A1) =2(3) - 1 + 1 - 0 = 6
M1 -> A2 DF(M1 -> A2) =2(1) - 2 + 0 - 0 = 0
M2 -> A1 DF(M2 -> A1) = 2(1) - 2 + 1 - 1= 0
A1 -> M3 DF(A1 -> M3) = 2(1) - 1 + 0 - 1 = 0
M3 -> A3 DF(M3 -> A3) = 2(1) - 2 + 0 - 0 = 0
M4 -> A3 DF(M4 -> A3) =2(3) - 2 + 0 - 1 = 3
M5 -> A4 DF(M5 -> A4) =2(3) - 2 + 1 - 1 = 4
A3 -> A4 DF(A3 -> A4) = 2(0) - 1 + 1 - 0 = 0
  • 折叠重定时后的DFG

根据重定时方程,可得折叠后的DFG如下图所示。

微信图片_20200412002956

考虑习题7中折叠后的格形滤波器。由于习题7所得折叠边的延时,通过寿命分析,确定为了存储每个功能单元的输出所需要的最小寄存器数,然后用前后项寄存器分配为每个功能单元综合出一个存储单元。用这些最小寄存器存储单元画出完整的折叠架构。将架构中的寄存器与习题7中的寄存器数量比较

第七题图如下所示,将计算节点从上到下,从左到又进行进行编号,A2节点编号1,A4节点编号9

1586612967

根据之前计算出的折叠方程,以及上图的折叠集合

折叠方程
A2 -> M2 DF(A2 -> M2) = 2(0) -1 + 1 -0 = 0
A2 -> M5 DF(A2 -> M5) = 2(0) -1 + 1 - 0 = 0
A2 -> M4 DF(A2 -> M4) =2(1) - 1 + 1 - 0 = 2
A2 -> M1 DF(A2 -> M1) =2(2) - 1 + 0 - 0 = 1
A2 -> A1 DF(A2 -> A1) =2(3) - 1 + 1 - 0 = 6
M1 -> A2 DF(M1 -> A2) =2(1) - 2 + 0 - 0 = 0
M2 -> A1 DF(M2 -> A1) = 2(1) - 2 + 1 - 1= 0
A1 -> M3 DF(A1 -> M3) = 2(1) - 1 + 0 - 1 = 0
M3 -> A3 DF(M3 -> A3) = 2(1) - 2 + 0 - 0 = 0
M4 -> A3 DF(M4 -> A3) =2(3) - 2 + 0 - 1 = 3
M5 -> A4 DF(M5 -> A4) =2(3) - 2 + 1 - 1 = 4
A3 -> A4 DF(A3 -> A4) = 2(0) - 1 + 1 - 0 = 0

加法器流水为1,乘法器流水为2,可以得出寿命表如下所示

节点 Tinput - > Toutput
1 1 -> 7
2 3 -> 3
3 2 -> 2
4 2 -> 2
5 2 -> 2
6 3 -> 6
7 3 -> 7
8 1 -> 1
9 -

根据寿命表画出寿命图如下所示


image.png

由上图可知需要7个寄存器

周期 输入 R1 R2 R3 R4 R5 R6 R7 输出
0
1 n1
2 n1
3 n6,n7 n1
4 n6 n1 n7
5 n6 n1 n7
6 n6 n1 n7 n6
7 n7 n1 n1,n7
8

根据上表可得出新得DFG如下所示

0daa936044a8564ea459588c523a5c8
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写了一段时间的代码之后,会觉得,读源码是了解一个东西最好的途径。对于 haskell 暂时没有找到特别好的,可以...
    secwang阅读 1,514评论 0 1
  • Scala的集合类可以从三个维度进行切分: 可变与不可变集合(Immutable and mutable coll...
    时待吾阅读 11,084评论 0 4
  • 1.编制一份有用的财报,财务人员必须懂业务,不务正业,跨出财务 2.财务分析报告,针对使用人不同,编制所呈现的板块...
    sunshine_c2f6阅读 3,523评论 0 1
  • 他和曼桢认识,已经是多年前的事了。算起来倒已经有十四年了——真吓人一跳!马上使他连带地觉得自己已老了许多。日子过得...
    花吃不吃了阅读 4,562评论 1 6
  • 向来有动笔恐惧症,觉得豆瓣上的精彩影评都写的那么好,有些怯,想想李笑来所说的,没有谁是天生就会写的,都是由会到...
    Jessie_Jerry妈妈阅读 3,308评论 0 1