FPGA在进行数字信号处理时会涉及到很多的截位扩位操作,如FFT/IFFT,FIR滤波等。一般的位宽操作主要有扩高位,扩低位,截高位,截低位。

扩高位

在信号的高位填补多个符号位,信号的幅值不会发生变化。

reg [3:0] data;
reg [5:0] data_exp;data_exp <= {2{data[3]},data};

扩低位

在信号的低位填补多个0比特。信号的幅值会等比例放大,信号精度不会发生变化。

reg [3:0] data;
reg [5:0] data_exp;data_exp <= {data, 2'b00};

截高位

截取过多的符号位,如果截位前的数据大于截位后的最大值,则做饱和处理,避免溢出。

parameter Inwidth = 6;
parameter Outwidth = 4;if ( &dataIn[Inwidth-1 : Outwidth-1] = 1'b1 ) | (|dataIn[Inwidth-1 : Outwidth-1] = 1'b0 ) dataOut_f3 <= {dataIn[Inwidth-1] , dataIn[Outwidth-2 : 0]};
elsedataOut_f3 <= {dataIn[Inwidth-1], (Outwidth-1)(~dataIn[Inwidth-1])};

截低位

直接截低位,这种方法虽然不会溢出,但会损失信号精度,且会导致信号整体幅度向下偏移,易产生直流分量

reg [5:0] data;
reg [3:0] data_trunc;data_trunc <= data[5:2]; 

常用FPGA截位扩位方法及代码相关推荐

  1. html截取字符串的第4位,三种常用JS截取字符串方法 JS截取几位后字符串方法

    JS提供了三个常用的截取字符串的方法,分别是:slice(),substring()和substr(),它们都可以接受一个或两个参数: var stmp = "bnxb.com"; ...

  2. 【FPGA】定点数 数据位宽 运算 位宽截取

    在FPGA中,经常使用定点数表示小数,在进行各种运算时,定点数的位宽会发生变化,并且需要在适当地时候对数据的位宽进行截取. 运算要求和引起的位宽变化 假设存在两个数A.B,假定A位宽为m,小数位宽为a ...

  3. 计算机组成原理认识fpga,计算机组成原理课程设计-基于EDA和FPGA技术的8位模型计算机的设计与实现_精品.doc...

    计算机组成原理课程设计-基于EDA和FPGA技术的8位模型计算机的设计与实现_精品 目录 前言2 第一章 课程设计内容2 1.1 实验要求2 1.2 实验目的2 第二章 实验原理及方案2 2.1 实验 ...

  4. 罗克韦尔AB PLC RSLogix5000中的位指令使用方法介绍

    罗克韦尔AB PLC RSLogix5000中的位指令使用方法介绍 位指令是PLC中最基本的指令之一. 以下为大家介绍几种常用的位指令及其使用方法. 位指令1:检查位是否闭合 XIC 图标如下: 执行 ...

  5. js保留两位小数的方法

    js保留两位小数的方法 js保留两位小数的方法如下 1.toFixed()方法 需注意,保留两位小数,将数值类型的数据改变成了字符串类型 2.Math.floor(),不四舍五入 ,向下取整 注意,不 ...

  6. python得到一个10位随机数的方法及拓展

    无意中看到一个写10位随机数的方法,很有想法,然后就从学了一下随机数,相关东西都记一下 直接上代码 import random print ''.join(str(random.choice(rang ...

  7. Mac技巧之查看苹果电脑 Mac OS X 系统是否开启 64 位运算,以及设置 32/64 位模式的方法

    Mac技巧之查看苹果电脑 Mac OS X 系统是否开启 64 位运算,以及设置 32/64 位模式的方法 引用功能被关闭了. 苹果电脑 Mac OS X 10.6 雪豹系统同时支持 32 位和 64 ...

  8. java中保留小数位_Java中保留两位小数的方法

    Java中保留4位小数的方法: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.Number ...

  9. (10)FPGA面试题多位信号同步问题

    1.1 FPGA面试题多位信号同步问题 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题多位信号同步问题: 5)结束语. 1.1.2 本节引言 " ...

最新文章

  1. control.add()
  2. OpenBSD 6.0 将移除 Linux 子系统以改进安全
  3. 为什么6lowpan 要有四个地址_为什么你打玻尿酸,能被人一眼看出来?这四个地方要谨慎注射!...
  4. VR+监狱,分分钟让犯罪分子重新做人
  5. python 导包语法 import package as name 和 from package import name 的区别
  6. 中文信息匮乏年代,新媒体粉墨登场
  7. 信息奥赛一本通(1231:最小新整数)
  8. 移动端实时3D目标检测,谷歌开源出品,安卓下载就能用
  9. gx works2 存储器空间或桌面堆栈不足_2020福清市gx螺旋输送机价格厂家发货-衡泰...
  10. 屏幕为什么要正负压供电_焦炉煤气脱硫为什么要选择负压脱硫工艺?
  11. 不同调制方式性能优劣指标
  12. 《站在巨人的肩膀上-英语交流会有感》
  13. Selenium WebDriver使用IE浏览器
  14. 完全不用递归解汉诺塔(65个盘子——VC6代码)
  15. 赵小楼《天道》《遥远的救世主》深度解析(114)时刻要认清自己的本位
  16. 2020诺贝尔文学奖得主,死亡的诗歌
  17. Win10备份错误代码0x800700e1怎么解决?
  18. 在pycharm中绘制正太分布图
  19. 《惢客创业日记》2018.12.18(周二)创业者从0到1的10个阶段(五)
  20. 安徽理工大学计算机创新大赛,2017年安徽理工大学大学生机械创新设计大赛决赛成功举办...

热门文章

  1. 炼丹侠必知的11大神经网络结构​汇总!
  2. 2017-9-8 - A - WebServer项目
  3. js技巧 console.log使用
  4. android 多个折线图 最佳视野,自定义View_撸一个多层折线图
  5. Call of Overloaded Function is ambiguous
  6. 20190429马士兵
  7. 简单理解Java中的面向对象
  8. 【R作图基本图形 - 核密度图,箱线图,点图】
  9. 错误:shell执行脚本时报bad interpreter: Text file busy的解决办法
  10. vue+elementUI 后台管理极简模板