IP核引发的关于定,浮点数的认识
上面是一段关于CORDIC_IP测试文件,用于计算给定角度的sin值和cos值,关于数值表示规则在此不再重复,仅仅说明以下3点:
1 数采用原码,反码,补码,本身并没有正确与否之分(这一点很重要,我们不能认为只有补码的表示是正确的),有的只是适用场合,采用补码的方式能够使得使得加法和减法变得统一,而采用原码自然也有它的好处。
2 在编写Verilog文件时,不管是源文件,还是测试文件,出现小数是一种错误的做法(准确的说直接将小数作为输入输出信号或者中间变量,或者作为测试信号)都是不正确的。永远需要记住的是,数的表示永远是 :位宽+'进制+相应进制下的数。这才是开发环境 以及FPGA本身所允许的数据格式。(否则会出现不太满意的数据)。
3 2说明了我们对于想要处理的小数,通常要通过某种规则转化成符合数表示方式的数,有定点表示和浮点表示两种方法,在FPGA中,更多的是定点数,因此更多的采用定点的转换方法。需要额外注意的是,这一步转换,需要我们自己完成,而不能够通过开发环境完成!
下面通过乘法器IP核进一步直观阐述上述3 :
上述图是乘法器IP核的验证代码,其中a和b作为输入,p作为输出.从图中看出来,本人想通过赋值小数给测试信号输入端,来验证小数相乘(其实已经违背了数据的表示格式),观察输出波形如下:
观察上图,发现,对于符号数(带符号整数)的计算是正确的,但是发现输入的小数被近似成了整数,实际上这并不是我们希望得到的,我们想要得到的是小数的结果(需要注意的是,尽管这里显示的是十进制,但也只能显示整数,不能显示小数),而且计算结果也不对。
这提示我们:当面临小数输入(不管是仿真,还是实际中需要把数据输入到模块中去),必须要通过某种手段将这些小数转化成整数,进行乘法计算,再通过某种手段将结果变成我们要的小数(虽然我们不能直观的在波形上看出来)。但是在实际的数据处理中要求我们要这儿做,而这种方式就是:小数定点化(再次强调FPGA中定点数使用的更多)
同时也额外的得到这样的信息:FPGA中乘法器的IP核是定点的,而不是浮点的。
关于对数本身的理解:
在计算机中,并没有类似于,整数,小数,正数,负数这些概念.实际上也并不存在诸如,反码,补码,这些概念。唯一有一个概念就是计数器。计数器反应了数的本质。
对于有符号数,应该有这样一个认识:比如4位计数器,当我们记到0111也就是7的时候,再加1变成了1000,也就是-8,即最大的正数加1变成了最小的负数,同样的,最小的负数减一变成了最大的正数,这个概念我们一定要十分的明确,在我们进行计数的时候,这一点要尤其明确!!!!!1关键在于计数本身就是一个轮回的概念!!!!!这也反应了计算机对于数理解的本质!!!
转载于:https://www.cnblogs.com/shaonianpi/p/8784610.html
IP核引发的关于定,浮点数的认识相关推荐
- Vivado IP核之复数浮点数累加 Floating-point
Vivado IP核之复数浮点数累加 Floating-point 快速实现多个数据相加 目录 前言 一.Floating-point IP核配置步骤 二.仿真 1.顶层代码 2.仿真代码 三.仿真结 ...
- Vivado IP核之复数浮点数除法 Floating-point
Vivado IP核之复数浮点数除法 Floating-point 目录 前言 一.复数浮点数除法示例 二.Floating-point IP核配置步骤 三.整体思路 四.仿真 1.顶层代码 2.仿真 ...
- Quartus II 13.1 调用NCO IP核无法生成终于搞定了
Quartus II 13.1 NCO IP核无法生成终于搞定了 1.调用NCO IP核时遇到的问题 2.解决我的问题的方法 1.调用NCO IP核时遇到的问题 初学FPGA的一只菜鸟,在树(书)上看 ...
- FPGA设计心得(11)关于FIFO IP核使用的一点注意事项
文章目录 前言 位宽转换 分布式ram资源的FIFO不能变换位宽 Block RAM资源可以变化位宽 Builtin FIFO资源不能变化位宽 FIFO 安全电路 FIFO消耗资源 输出延迟 Read ...
- FPGA设计心得(9)基于DDS IP核的任意波形发生器设计
博文目录 写在前面 正文 设计要求 IP核配置 定制输出数据位宽 定制相位位宽(或频率分辨率) 输出频率 输出正余弦选择以及数据格式 其他设置 电路设计 行为仿真 参考资料 交个朋友 写在前面 数据手 ...
- verilog实现汉明权重_(学习Verilog)6. FIR IP核的基础功能使用总结
滤波器是信号处理技术绕不过的内容,而在BSPK的实现框图(见 BPSK的Simulink仿真实现)中,也需要用到滤波器. m序列的时域波形是一个矩形,矩形在频谱上是所有奇次谐波之和,为了节省带宽资源, ...
- LabVIEW FPGA PCIe开发讲解-7.2节:目前主流的4大Xilinx FPGA PCIe DMA通信IP核讲解
1.要开发一个带PCIe或者PXIe接口的FPGA板卡出来,除了硬件本身外,最重要的就是FPGA芯片里面的PCIe通信代码编写,俗称下位机FPGA编程:还有中间层的驱动文件编写以及上位机PC端的应用程 ...
- FPGA(五):Quartus II 调用Fir IP核使用说明
这几天在忙着写通信原理的项目,其中用到了fir滤波器的部分,从最初的一脸懵逼到初步理解了该怎么去调用ip核以及参数设置,这其中的过程着实不易.这篇博客主要是为了记录自己的学习过程以便日后也可以回想起来 ...
- FPGA数字信号处理(八)Quartus FFT IP核实现
本系列的2-7篇分别介绍了FIR和IIR滤波器的FPGA实现.除了数字滤波器外,快速傅里叶变换(FFT)也是DSP系统常用的运算单元,用于对信号进行频域分析.FFT算法的实现很复杂,但Altera和X ...
最新文章
- 30 段极简 Python 代码:这些小技巧你都 Get 了么?
- Java学习_day003:运算符
- 矩形内接任意多边形抠图(可以羽化边缘)
- python中 for ... else ... 的用法
- 一种提高单片机i/o口驱动能力的方法
- linux的“自动化”
- 4.聚合aggregate
- struts2.1笔记02:servlet简介
- Spring Boot 项目总是创建失败,这几个备选方案一定要收藏
- mysql 数字处理方法_mysql中保留字段中的数字的处理方法。
- 脑图管理项目很方便清晰!
- tomcat版本号进行隐藏或者删除
- 提高工作效率的软件推荐——我的ABC软件工具箱 6.0 最新版上线啦
- syntaxhighlighter高亮动态代码
- IT软件资产管理流程梳理介绍
- 计算机小写换大写函数,excel小写换大写函数的教程
- phpredis使用zadd批量添加到集合
- 牛客网在线编程——二维数组中的查找
- 全排列(下一个排列,算法)
- 【畅捷通T+】登录提示 列“MarketingCloudUserId”不属于表 。
热门文章
- STM32 RTC BKP备份数据区数据丢失问题的讨论
- keil 使用AC6 中文警告解决办法
- 单片机模块学习之键盘
- 1.2.2一个数可以有多少种用连续素数之和表示POJ 2739
- [转载]判断IE浏览器-世界上最短的代码
- BZOJ.3218.a + b Problem(最小割ISAP 可持久化线段树优化建图)
- mysql 主从单库单表同步 binlog-do-db replicate-do-db
- Hibernate HQL的update方法详解
- ninject 的 实现 的 理解
- zookeeper源码