VHDL__原码一位乘
摘要:记录用VHDL实现原码一位乘的过程,包括模块的分析以及给出端口定义,实体说明,因为比较简单,并未给出完整代码。另外,这篇文章在代码段的显示上有问题,好像识别不了代码段结束符,导致从第一段代码开始一直到文末我找不到原因,希望有大佬知道的告诉我一下。
自己琢磨的过程还是比较难受的,虽然是一个简单的知识点,但VHDL是一回事,原码一位乘的原理是一回事,用VHDL实现原码一位乘又是一回事,但是毕竟是基础,理解整个过程对以后都有好处,二位乘也只是选择的条件和选择相加的对象改一下,整体小改即可,后续会加入博客中供参考,废话少说,下面开始。
一、原码一位乘原理:
以8位相乘的过程为例,可能更好理解过程
乘数是 Y:1001 0101(95)
被乘数是 X:1111 0110(F6)
相乘结果是(1000 1111 0010 1110)(8f2e)
二、VHDL设计
移位寄存器设计
先从简单的开始,可以看到表格右侧的操作是对乘数作右移操作,然后根据移出位作判断下一步是作+X还是+0,这里可以设置移位模块,由时钟驱动,输入为乘数,乘法开始后进行n-1次右移操作 ...
DFT应用——快速卷积之重叠保留法理解
摘要:重叠保留法的一些简单理解,主要针对为什么移位长度为n-1作出讨论
一、重叠保留法介绍:
仍然采用分段求卷积再组合的方法。
该方法与重叠相加法的区别为:
ⅰ. 对序列x(n)以M为长度重叠分段为xi(n) ,其后段与前段有N-1个重叠点;
ⅱ. 每段以M为周期计算循环卷积 ;(用FFT)
ⅲ. 将每段得到的循环卷积结果的前N-1个点去掉(这是循环卷积中的混叠部分),然后将各段剩余部分(对应线性卷积结果)首尾衔接起来,即得到最终结果。
二、理解过程
下面结合课本第三章的一道课后题来解释清楚重叠保留法的过程
21.我们希望利用h(n)长度为N=50的FIR滤波器对一段很长的数据序列进行滤波处理,要求采用重叠保留法通过DFT(即FFT)来实现。所谓重叠保留法,就是对输入序列进行分段(本题设每段长度为M=100个采样点),但相邻两段必须重叠V个点,然后计算各段与h(n)的L点(本题取L=128)循环卷积,得到输出序列y(n),m表示第m段循环卷积计算输出。最后,从y(n)中选取B个样值,使每段选取的B个样值连接得到滤波输出y(n)。
(1)求V;(2)求B;
分析: ...
博文书写(markdown熟悉)
摘要:仅以此文作为我自己的模板,没有任何内容(> 后跟引用部分,例如代码,当然我觉得摘要这么写也不错)
以下部分只会在阅读全文后显现,相当于前面是简介
这是三级标题(注意空格)
$ hexo new "My New Post"(这是类似于引用的写法,实际和右边稍有不同,前面会自动加行号)
More info: Writing这里粘贴url,writing代表描述
这两个是无序列表
这两个是无序列表
下面是有序列表
有序列表1
有序列表2
会自动将下一行补全
注意以上四行字符缩进比无序列表大
这里放图片链接,中括号里面是描述
两对星号包起来加粗
例如这个
一对星号斜体
例如这个
换字号字体等复杂操作则需要html的标签
例如位置字体颜色和字号
之后的字体就
注意默认的hexo 自带的markdown渲染可能有问题,比如缩进可能直接显示   到网页上。这里做一个替换:
首先卸载自带的
npm un hexo-renderer-marked --save
安装 hexo-renderer-markdown-it 插件
npm i hexo-rend ...