180 likes | 318 Views
学术报告. Low-area high-throughput Reed-Solomon decoder. 李雪梅 2014.03.21. 内容介绍. Part 1: 减少常数乘法器中异或门个数 Part 2 : 模块复用. Part 1: 减少常数乘法器中异或门个数. module mult_10(pro,a); output [4:0]pro; input [4:0]a; assign pro[4]= a[0]^a[3]^a[4]; assign pro[3]= a[2]^a[3]^a[4];
E N D
学术报告 Low-areahigh-throughput Reed-Solomon decoder 李雪梅 2014.03.21
内容介绍 Part 1: 减少常数乘法器中异或门个数 Part 2 :模块复用
Part 1: 减少常数乘法器中异或门个数 module mult_10(pro,a); output [4:0]pro; input [4:0]a; assign pro[4]= a[0]^a[3]^a[4]; assign pro[3]= a[2]^a[3]^a[4]; assign pro[2]= a[1]^a[2]^a[3]^a[4]; assign pro[1]= a[1]^a[2]; assign pro[0]= a[0]^a[1] ^a[4]; endmodule module mult_10(pro,a); output [4:0]pro; input [4:0]a; wire temp= a[3]^a[4]; assign pro[4]= a[0]^temp; assign pro[3]= a[2]^temp; assign pro[2]= a[1]^a[2]^temp; assign pro[1]= a[1]^a[2]; assign pro[0]= a[0]^a[1] ^a[4]; endmodule 10个XOR 8个XOR
Part 1: 减少常数乘法器中异或门个数 搜寻公共项或匹配对或共享子式(common subexpression, CSE)的算法 Four steps: Step1:For any column i and j in matrix, find all possible pairs with bit-wise matches great than 1 Step 2:Choose the pair with the maximum bit-wise matches; If there are multiple such pairs, it is sufficient to randomly select one pair Step 3:Eliminate the redundancy from the best match; append an additional column at the right of the matrix to hold the redundancy; append an additional row to the bottom of the matrix to represent the selected CSE Step 4:Repeat steps 1-3 for all the columns in the matrix including the appended rows and columns until no subexpression appearing more than once
Part 1: 减少常数乘法器中异或门个数 举例: 6个XOR 3个XOR
Part 1: 减少常数乘法器中异或门个数 1D optimization 并行钱搜索电路或多项式选择电路
Part 1: 减少常数乘法器中异或门个数 1D optimization 结果与分析 只能优化常数乘法器,不能优化加法器 6度并行的(31,25)码(t=3) 8度并行的(63,55)码(t=4) 16度并行的(255,239)码(t=8)
Part 1: 减少常数乘法器中异或门个数 2D optimization
Part 1: 减少常数乘法器中异或门个数 CSE算法的改进 多对匹配对均含有最大匹配数时,不采用随机挑选,选择重复性最小的那一对
不同方法的2D优化结果(均采用2t度并行) 采用repetitive方法的1D和2D结果(均采用2t度并行)
Part 1: 减少常数乘法器中异或门个数 1D,2D优化结论: 由于搜索面积比1D大,所以比1D 效果好。2D不仅可以减少乘法器中异或门个数,并且可以移除加法器。 无论是1D还是2D优化,搜索面积越大效果越好。相同码长,并行度越高,纠错能力越大,效果越好
Part 2: 模块复用 对syndrome、PS、CSFA进行模块复用,整个架构采用串行方式实现
Part 2: 模块复用 并行syndrome结构
Part 2: 模块复用 存在的问题: (1)CSFA都采用模块复用结构,需2t个周期用于钱搜索,还需2t个周期用于Forney计算,共需4t个周期求CSFA (2)钱搜索结束之后,需要用ram把钱搜索的结果存储起来,到求Forney时再把数取出来 (3)采用并行结构,每求一个error都需要一个inversion,共需p个inversion,占据较大面积 解决思路: 思路1:只把syndrome和PS进行模块复用,CSFA采用原始结构,需n个周期,避免ram或inversion带来面积的增加 思路2:把syndrome, PS, Chien Search进行模块复用,采用单独的结构求 ,就只需一个inversion,而不需要p个。但还是需要ram把对应的和存起来,Chien Search结束之后再求error值。
Part 2: 模块复用 存在的问题: (1)CSFA都采用模块复用结构,需2t个周期用于钱搜索,还需2t个周期用于Forney计算,共需4t个周期求CSFA (2)钱搜索结束之后,需要用ram把钱搜索的结果存储起来,到求Forney的时候再把数取出来,而ram占较大面积。 (3)采用并行结构,每求一个error都需要一个inversion,共需p个inversion,占据较大面积 解决思路: 思路1:只把syndrome和PS进行模块复用,CSFA采用原始结构,追求面积的减小 思路2:把syndrome, PS, Chien Search进行模块复用,采用单独的结构求, ,就只需一个inversion,而不需要p个。但还是需要ram把对应的和存起来,Chien Search结束之后再求error值。