- 博客(55)
- 资源 (5)
- 收藏
- 关注
原创 纸上谈芯博文目录
【HDL系列】进位旁边加法器原理与设计_纸上谈芯的专栏-CSDN博客【HDL系列】半加器、全加器和行波进位加法器原理与设计_纸上谈芯的专栏-CSDN博客_行波进位加法器原理学习开源硬件:开源IP,开源RISC-V与开源SoC等_纸上谈芯的专栏-CSDN博客...
2021-11-14 10:48:02 1219
原创 Turbo码(Turbo Codes)
Turbo码(Turbo Codes)作者:途次客 ============================================================== 目录结构: 1、分量码 2、交织器 3、归零处理 4、删余处理 5、LTE协议中的Turbo码编码器 6
2017-10-28 21:08:23 45015 8
原创 卷积码译码之维特比译码算法(Viterbi decoding algorithm)
卷积码译码之维特比译码算法(Viterbi decoding algorithm) 本文主要介绍了卷积码的一种译码方法——维特比译码(Viterbi decoding)。 关键词:卷积码译码 维特比译码算法 卷积码简介:点击打开链接 ==========================================================...
2017-10-18 21:40:58 64718 13
原创 卷积码(Convolutional Code)
卷积码(Convolutional Code)本文主要简单介绍了卷积码。关键词:卷积码 生成多项式 网格图 状态图============================================================== 目录结构:1、卷积码简介2、卷积码表示方法 2.1 生成多项式 2.2 状态图 2.3 网格图3、总结 =======...
2017-06-25 21:33:10 95541 16
原创 小记Matlab和C混合编程
小记Matlab和C混合编译使用1、一个简单的例子需要先确认电脑上安装有mex编译器,我安装的是MicrosoftVisual C++ 2012 (C)的编译环境,内含mex编译器。先看以下一个简单的例子:#include void mexFunction(int nlhs ,mxArray *plhs[] ,int nrhs, const mxArray *prhs[])
2015-11-06 16:51:17 854
原创 如何近似求模?
一、求模的方法在数字芯片设计中,求模是一种常见的操作,如已知直角三角形两个底边I,Q求斜边R。在数字信号处理中常见于复信号的求模,如求I+jQ的模值R。以上问题都是已知I,Q求R:所以求模的操作简单归结为以下三步:1. 求x和y的平方2. x和y的平方和3. 对x和y的平方和开方以上三步用到了2个乘法器和1个加法器,还有1个开方操作,但是开方怎么做呢?一般来说,开方有三类办法:(1)基于牛顿方法的迭代算法(2)基于数字集的算法(3)CORDIC算法以上三类办法
2021-10-07 17:10:41 1239
原创 Goldschmidt近似除法
本期要介绍的是Goldschmidt近似算法,该算法由Robert Elliott Goldschmidt在1964年的硕士论文中提出,其思想基于以下公式:其中x,d,q分别是除数,被除数和商。其核心思想为:如果迭代计算m使md趋于1,则mx将近似于商q。Goldschmidt算法是通过乘法迭代运算,得到商的近似算法。在以上的公式中,令1/d = 1/(1+y),将1/(1+y)通过麦克劳林公式展开(泰勒级数的特殊情况),可近似如下:所以每次迭代系数mk可表示为:将以上系
2021-08-28 22:50:45 2096 1
原创 Newton-Raphson Method
目录一、Newton-Rahpson原理二、Newton-Raphson方法求商一、Newton-Rahpson原理Newton-Raphson Method称牛顿-拉夫逊方法,又称牛顿迭代法。牛顿-拉夫逊方法是一种近似求解方程的根的方法。该方法使用函数f(x)的泰勒级数的前2项求解f(x)=0的根。将f(x)函数再点x0的某邻域内展开成n阶泰勒公式如下:其中Rn(x)为n阶泰勒余项。令f(x)=0,取泰勒多项式的前2项作为近似,也就是1阶泰勒多项式;则
2021-08-15 20:37:33 4918
原创 基4 SRT除法器
目录一、冗余数字集与冗余度二、QDS表三、被除数与除数归一化四、部分和表示五、On-the-Fly Conversion六、后处理七、Verilog设计终于有时间来更新基4 SRT算法了,很是抱歉,实在太忙了。在这之前已经有连续5篇分别对主要概念进行了说明,为了更好的了解,进行了先分后总的介绍,主要在以下五篇:冗余数字集与冗余度 Roberson图与overlap PD图 预移位与连“符号位”检测 On-the-Fly Conversion一、冗余数字集与冗
2021-08-08 14:02:22 3325 3
原创 On-the-Fly Conversion
On-the-Fly Conversion本文是介绍基4 SRT算法前的第五篇补充文章《On the fly conversion》。一、On-the-Fly Conversion 冗余数集表示的商集可以加快除法中商选择的递归速度,由于商由有符号的冗余数集组成,在迭代完成后需要将一连串的商数结果转换至二进制补码格式。比如基4的某个商商集为{-2,-1,0,1,2},迭代2次得到商值为{2,-1},其实际表示的数为2*4-1=7,所以,如何得到这个值呢?传统的方法即使用进位加法器实现,或者使用
2021-06-16 22:16:59 787 1
原创 预移位与连“符号位”检测
目录一、预移位二、连“符号位”检测本文是介绍基4 SRT算法前的第四篇补充文章《预移位与连符号检测》。一、预移位对于基 4 SRT除法,位宽固定的情况下来说,其迭代周期是固定的。但是对于除数和被除数来说,大多数情况下高位只是符号位的扩展,所以为了减少迭代周期,节省功耗,加快计算速度,需要将除数与被除数预移位。SRT除法专用于浮点数计算的除法算法,在很多论文里可以看到除数d将归一化至[1/2, 1),也就是最高位为1。因为被除数和除数的符号位个数不一致,导致预移位个数不一致,势必导致不
2021-03-27 18:58:33 448
原创 PD图
目录一、PD图二、PD图例子本文是介绍基4 SRT算法前的第三篇补充文章《PD图》。一、PD图PD图是早期用于QDS(商数选择)函数中确认部分和rw[j]和除数d精度的一种图形化方法。PD图以部分和P为纵坐标,以除数D为横坐标。先回顾下往期中的公式:其中,wj+1为下个部分和;r为基;wj为当前部分和;d为除数;qj+1为某次迭代产生的商数;以上描述了迭代过程中下个部分和与当前部分和的关系式,在上期文章《Roberson图与overlap》里介绍了
2021-03-13 21:57:14 2059
原创 Roberson图与overlap
目录一、Roberson图二、Overlap本文是介绍基4 SRT算法前的第二篇补充文章《Roberson图与overlap》。一、Roberson图J.E.Robertson是SRT算法中的“R”,Roberson图是其在最先发表的论文中描述以下公式的表示方法图:其中,wj+1为下个部分和;r为基;wj为当前部分和;d为除数;qj+1为某次迭代产生的商数;具体公式可参考之前文章:《除法器(3)——基2 SRT算法》假设rw(j)=x,w(j+1.
2021-01-16 15:20:57 630
原创 冗余数字集与冗余度
目录一、冗余数字集二、冗余度本文是SRT算法的第一篇补充文章《冗余数字集与冗余度》。基于数字递归的除法算法会从不同的数字集中选择不同的商数。选择合适的数字集对于实现除法算法尤为重要。为什么需要要选择合适数字集?在前期文章中已经提到:(1)二进制恢复算法的数字集为{0,1};(2)二进制非恢复算法的数字集为{-1,1},相比于二进制恢复算法,不必进行“恢复”操作,加快了算法的迭代,提升了算法的性能;(3)二进制SRT算法的数字集为{-1,0,1},在二进制非恢复算法的数字集
2021-01-03 19:51:36 1579 1
原创 【HDL系列】除法器(3)——基2 SRT算法
目录一、除法表示二、数字递归算法基础公式三、QDS(Quotient Digit Selection)函数四、基2 SRT算法一、除法表示除法被定义如下:其中,x是被除数,d是除数,q是商,rem是余数。商的精度由ulp(unit of last position)来决定: 如果ulp=1, 商q则是整数; 如果ulp=r^(-n),n是商数个数,r是所有输入操作数的基,此时商为小数。二、数字递归算法基础公式在使用数字递归算法(Digit Re...
2020-11-01 20:41:32 7210 5
原创 【HDL系列】除法器(2)——不恢复余数法
上期我们介绍了二进制除法器中的恢复余数法,本期介绍不恢复余数法。一、不恢复余数法(Non-Restoring Division Algorithm)不恢复余数法商数的选择使用{-1,1}代替{0,1}。虽然相比于不恢复余数法算法复杂一些,但是硬件实现上更有优势,每产生一个商的比特位只需要一次加或减操作,并且在减法操作后不需要进行余数恢复,使得执行的速度更快。不恢复余数法其算法如下,参考wiki:其中,N为被除数,D为除数。R为余数,Q为商。商比特位-1一般存储映射为0
2020-08-30 18:30:25 5265 1
原创 【HDL系列】除法器(1)——恢复余数法
目录一、Paper-Pencil Division Algorithm二、恢复余数法(Restoring Division Algorithm)三、Verilog设计本期介绍二进制除法器中的恢复余数法(Restoring Division Algorithm)。一、Paper-Pencil Division Algorithm在小学的时候,我们已经掌握了通过除法列式求出商和余数,也就是长除法,如果除数为一位数,则可简化为短除法。又因为可以用纸笔计算,很多外文中称之为Paper-Pen
2020-07-27 23:06:23 4497 1
原创 【HDL系列】乘法器(7)——Booth中的符号位扩展技巧
目录一、无符号乘法符号位扩展原理二、有符号位乘法符号位扩展原理三、Verilog设计文介绍了基4 Booth乘法器,并且设计了具有基本功能的Booth乘法器,其中在文末留下了几个有待优化的问题,本文将优化“生成部分和”与“符号位扩展”两部分,参考:https://zhuanlan.zhihu.com/p/143802580本文原理部分意译自《Sign Extension in Booth Multipliers》,需要说明的是其中的表述存在多处歧义,且Booth编码表负数认定有误,请注意
2020-06-14 22:00:36 6145 17
原创 【HDL系列】乘法器(6)——Radix-4 Booth乘法器
目录一、Radix-4 Booth乘法器原理二、Verilog设计一、Radix-4 Booth乘法器原理上文中介绍了基2 Booth乘法器,本文继续介绍基4 Booth乘法器。对于N比特数B来说:N比特数B,将其展开,其中B-1=0:基2 Booth表示为:其基系数为:基4 Booth乘法器的基系数为:所以,上式B可以重写为如下式(位宽为偶数):将A与B相乘,则:以下是基4 Booth编码表,其中A为被乘数,B为乘数。以下
2020-05-26 22:08:04 15686 16
原创 【HDL系列】乘法器(5)——Radix-2 Booth乘法器
一、Booth乘法器原理Booth算法可以减少乘法运算中加法/减法次数,是二进制乘法补码运算的高效算法。我们已经很熟悉,在乘法运算中包含2部分:(1):生成部分和;(2)部分和累积而Booth算法可以减少部分和个数和加速累积,在连续比特“0”或“1”将产生更少的部分和。在介绍Booth算法前,我们来重新回忆下往期中数的表示:N比特数B,将其展开,其中B-1=0:...
2020-04-24 23:25:58 4934 1
原创 【HDL系列】乘法器(4)——图解Wallace树
目录一、Wallace树二、Verilog设计一、Wallace树1963年,C.S.Wallace提出的一种高效快速的加法树结构,被后人称为Wallace树。其基本思想如下在其文章中描述如下:Assuming that all summands are generated simultaneously the best possible first step is to gr...
2020-04-15 20:25:13 8779 3
原创 【HDL系列】乘法器(3)——Baugh-Wooley乘法器
目录一、Baugh-Wooley算法二、Verilog设计一、Baugh-Wooley算法Baugh-Wooley算法是由Baugh和Wooley于1973年提出的二进制补码并行阵列相乘算法。该算法转化为等效并行阵列相加,其中每个部分和为乘数和被乘数比特相与,并且所有的部分和符号位为“+”。将n比特X,Y,乘法结果2n比特的P表示如下:从上式看出,XY相乘,结果P=XY...
2020-04-07 22:21:16 4363
原创 【HDL系列】乘法器(2)——阵列乘法器
目录一、阵列乘法器二、Verilog设计一、阵列乘法器将上文中的AB两数相乘的例子:4比特的AB两数相乘的竖式计算表示成如下,为了区分,方便在阵列格式中看出差异,图中标记了不同的颜色,每组颜色表示一组部分和:竖式计算图例其中ai,bi表示A和B的某个比特,aibi表示ai与bi相与,使用与门电路生成,aibi的值只有0和1。S表示AB相乘的结果。每一列将使用半...
2020-03-28 22:04:20 12668 1
原创 【HDL系列】乘法器(1)——乘累加乘法器
目录一、数的表示及乘法的范围二、乘法竖式计算三、乘累加乘法器一、数的表示及乘法的范围对于n比特数B,其二进制数转换为有符号十进制整数的公式如下:当B>=0,B的第n-1比特为0,则B可用下式表示:设n=4,“5”的二进制位为0101,则5 = 1*4 + 1*1。当B<0时,B的第n-1比特为1,B已为补码表示。所以-|B|表示如...
2020-03-21 13:05:48 4915
原创 【HDL系列】半减器、全减器和减法器原理和设计
目录一、半减器二、全减器三、减法器四、Verilog设计减法器可由基础的半减器和全减器模块组成,或者基于加法器和控制信号搭建。定义N比特被减数X,减数Y,差为D(difference);来自低比特借位Bi,向高比特借位Bi+1,i为比特序号;所以,有以下结论:一、半减器半减器用于计算两比特Xi和Yi的减法,输出结果Di和向高位的借位Bo(Borrow o...
2020-03-12 12:38:12 54464 1
原创 【HDL系列】硬件加法器原理与设计小结
目录一、半加器、全加器和行波进位加法器二、超前进位加法器三、进位旁边加法器四、进位选择加法器五、进位保存加法器六、Sklansky加法器七、Kogge-Stone加法器八、Brent-Kung加法器硬件加法器种类繁多,对于不同的设计,加法器的需求也不一样。在前端设计中,使用符号“+”便可轻而易举地实现加法器。只是在特殊的情况下,指定选择加法器类型,或许可以用到。...
2020-03-01 12:40:50 2138 3
原创 【HDL系列】Sklansky加法器原理与设计
目录一、进位选择加法器二、Sklansky加法器三、Verilog设计Sklansky加法器是另一种并行高速的树形加法器,由Sklansky于1959年发表,该加法器对比特位进位层级分组,根据对不同比特组所有可能的进位计算所有可选的和与进位,所以也叫Conditional-Sum Addition。一、进位选择加法器Sklansky加法器使用了进位选择加法器:进位选择加...
2020-02-21 23:03:12 2655
原创 【HDL系列】Kogge-Stone加法器原理与设计
目录一、Kogge-Stone并行算法二、Kogge-Stone加法器三、Verilog设计Kogge-Stone加法器是利用Peter M. Kogge和Harold S.Stone于1972年提出的一种并行算法生成的一种树形加法器。一、Kogge-Stone并行算法Kogge和Stone根据一般m阶递归问题提出一种并行算法。本文介绍其一阶递归问题的并行结构,详细请阅读其...
2020-02-09 10:04:41 6143 1
原创 【HDL系列】Brent-Kung树形加法器原理与设计
目录一、并行加法器基本方法二、进位链计算重构原理三、Brent-Kung加法器四、Verilog设计在超前进位加法器中,其进位可以并行计算出,打破了进位链传播中当前的进位依赖于前一级的进位的关系,使得第n位进位只与输入有关。但是,对于大位宽加法器,其每一个进位生成的逻辑面积耗费大,芯片造价成本上升,在前几期中已有介绍。很多研究者致力于在时间延迟与逻辑门数之间寻找平衡点,却极...
2020-01-18 22:37:43 6374 2
原创 【HDL系列】进位保存加法器原理与设计
目录一、进位保存加法器二、3:2 Compressors一、进位保存加法器进位保存加法器(Carry Save Adder,CSA)终于开启了读者见面会。在之前介绍的众多加法器的缩写中,CSA众多。比较广为人知的CSA可能是进位保存加法器,所以它是怎样的存在呢?使用进位保存加法器在执行多个数加法时具有极小的进位传播延迟,它的基本思想即将3个加数的和减少为2个加数的和,将进位c和...
2020-01-12 16:57:29 13851 3
原创 【HDL系列】进位选择加法器原理与设计
目录一、进位选择加法器二、Verilog设计前期已介绍了行波进位加法器(Ripple Carry Adder, RCA)依赖于低位进位,所以具有超长的进位链和关键路径。对于RCA的改进中,进位选择加法器(Carry Select Adder)是比较特别的一种,鉴于有太多的加法器缩写是CSA,此处使用全称。一、进位选择加法器进位选择加法器由2个行波进位加法器和1个选择器构成,其中...
2020-01-10 22:27:08 8736 2
原创 【HDL系列】进位旁边加法器原理与设计
一、进位旁边加法器进位旁路加法器(Carry Skip Adder,CSA),也称Carry Bypass Adder。需要注意的是,CSA也是另外一种加法器——进位保存加法器(Carry Save Adder)的简称,关于这种加法器后期会介绍。此前介绍了行波进位加法器RCA,第k位的进位Ck必须等待之前的Ck-1的结果才能计算出来,如下图进位c16必须等到前一级全加器的c15输出才可以计...
2020-01-08 22:14:45 7264 6
原创 【HDL系列】超前进位加法器原理与设计
目录一、行波进位加法器关键路径分析二、超前进位加法器三、超前进位加法器关键路径分析四、Verilog描述上期介绍了半加器、全加器以及行波进位加法器(RCA),本文介绍超前进位加法器(Lookahead Carry Adder,简称LCA)。在介绍超前进位加法器前,我们先来分析下行波进位加法器的关键路径。一、行波进位加法器关键路径分析N比特行波进位加法器可由N个全加器级联...
2020-01-06 22:07:27 6001
原创 【HDL系列】半加器、全加器和行波进位加法器原理与设计
目录一、半加器二、全加器三、行波进位加法器加法器是算术运算的一种,在计算机和一些处理器中被运用于算术逻辑单元ALU中或者处理器的其他部分如计算地址,加减操作等类似操作。今天。我们来重温下数字电路中的加法器。一、半加器半加器用于计算2个单比特二进制数a与b的和,输出结果sum(s)和进位carry(c)。在多比特数的计算中,进位c将作为下一相邻比特的加法运算中。单个半加器的计...
2020-01-04 16:01:14 12016 1
原创 学习开源硬件:开源IP,开源RISC-V与开源SoC等
目录开源IP开源RISC-V开源SoC当下,“开源”已经变得越来越普遍,越来越深入人心。各行各业开源项目如火如荼,无论是个人还是企业都在积极参与。各路好汉踊跃地分享自己的劳动成果,公布源代码,开放指令集或有更宏大的愿景来建立新的生态及建设产业链。在这其中,“开源硬件”对于集成电路从业人员来说无疑是一缕清泉。对于软件来说,开源项目之多,开源规模之大,开源方面之广,硬件显然是难以比...
2020-01-01 15:17:11 3600
原创 卷积神经网络中卷积的OpenCL实现
卷积神经网络中卷积的OpenCL实现 ==============================================================目录1、卷积2、卷积与图像处理3、卷积的OpenCL实现4、总结 ==============================================================本文主要介绍深度...
2018-07-21 12:35:15 5213
原创 理解OpenCL中的工作组、工作项的索引
理解OpenCL中的工作组、工作项的索引 ==============================================================目录结构1、工作组和工作项2、一维数据的工作组和工作项3、深度学习中二维图像的池化(Pooling)4、参考 ==============================================================...
2018-05-24 22:51:15 7292 1
原创 如何并行化OpenCL程序:一个数据处理的例子
如何并行化程序:一个数据处理的例子 ==============================================================目录结构1、滑动平均滤波器C程序2、滑动平均滤波器OpenCL程序3、滑动平均滤波器OpenCL程序向量操作(Vector Operations)4、滑动平均滤波器OpenCL程序——基于向量操作5、滑动平均滤波器OpenCL程序——数据并...
2018-05-20 15:15:51 1700
原创 OpenCL程序启动流程
OpenCL程序启动流程 ==============================================================目录结构1、OpenCL设备整体连接图2、OpenCL基本点与Host主机引导流程图 2.1 OpenCL设备 2.2 OpenCL编译方式 2.3 调用核函数方式 2.4 Host程序启动流程3、参考 ===========...
2018-04-22 11:25:53 3187 1
原创 OpenCL并行加减乘除示例——数据并行与任务并行
OpenCL并行加减乘除示例——数据并行与任务并行 ==============================================================目录结构1、数据并行2、任务并行3、参考 ============================================================== 关键词:OpenCL; data parallel; t...
2018-04-15 15:07:22 3862 4
硬件加法器原理与设计小结.pdf
2020-03-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人