上面是一段关于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核引发的关于定,浮点数的认识相关推荐

  1. Vivado IP核之复数浮点数累加 Floating-point

    Vivado IP核之复数浮点数累加 Floating-point 快速实现多个数据相加 目录 前言 一.Floating-point IP核配置步骤 二.仿真 1.顶层代码 2.仿真代码 三.仿真结 ...

  2. Vivado IP核之复数浮点数除法 Floating-point

    Vivado IP核之复数浮点数除法 Floating-point 目录 前言 一.复数浮点数除法示例 二.Floating-point IP核配置步骤 三.整体思路 四.仿真 1.顶层代码 2.仿真 ...

  3. Quartus II 13.1 调用NCO IP核无法生成终于搞定了

    Quartus II 13.1 NCO IP核无法生成终于搞定了 1.调用NCO IP核时遇到的问题 2.解决我的问题的方法 1.调用NCO IP核时遇到的问题 初学FPGA的一只菜鸟,在树(书)上看 ...

  4. FPGA设计心得(11)关于FIFO IP核使用的一点注意事项

    文章目录 前言 位宽转换 分布式ram资源的FIFO不能变换位宽 Block RAM资源可以变化位宽 Builtin FIFO资源不能变化位宽 FIFO 安全电路 FIFO消耗资源 输出延迟 Read ...

  5. FPGA设计心得(9)基于DDS IP核的任意波形发生器设计

    博文目录 写在前面 正文 设计要求 IP核配置 定制输出数据位宽 定制相位位宽(或频率分辨率) 输出频率 输出正余弦选择以及数据格式 其他设置 电路设计 行为仿真 参考资料 交个朋友 写在前面 数据手 ...

  6. verilog实现汉明权重_(学习Verilog)6. FIR IP核的基础功能使用总结

    滤波器是信号处理技术绕不过的内容,而在BSPK的实现框图(见 BPSK的Simulink仿真实现)中,也需要用到滤波器. m序列的时域波形是一个矩形,矩形在频谱上是所有奇次谐波之和,为了节省带宽资源, ...

  7. LabVIEW FPGA PCIe开发讲解-7.2节:目前主流的4大Xilinx FPGA PCIe DMA通信IP核讲解

    1.要开发一个带PCIe或者PXIe接口的FPGA板卡出来,除了硬件本身外,最重要的就是FPGA芯片里面的PCIe通信代码编写,俗称下位机FPGA编程:还有中间层的驱动文件编写以及上位机PC端的应用程 ...

  8. FPGA(五):Quartus II 调用Fir IP核使用说明

    这几天在忙着写通信原理的项目,其中用到了fir滤波器的部分,从最初的一脸懵逼到初步理解了该怎么去调用ip核以及参数设置,这其中的过程着实不易.这篇博客主要是为了记录自己的学习过程以便日后也可以回想起来 ...

  9. FPGA数字信号处理(八)Quartus FFT IP核实现

    本系列的2-7篇分别介绍了FIR和IIR滤波器的FPGA实现.除了数字滤波器外,快速傅里叶变换(FFT)也是DSP系统常用的运算单元,用于对信号进行频域分析.FFT算法的实现很复杂,但Altera和X ...

最新文章

  1. 30 段极简 Python 代码:这些小技巧你都 Get 了么?
  2. Java学习_day003:运算符
  3. 矩形内接任意多边形抠图(可以羽化边缘)
  4. python中 for ... else ... 的用法
  5. 一种提高单片机i/o口驱动能力的方法
  6. linux的“自动化”
  7. 4.聚合aggregate
  8. struts2.1笔记02:servlet简介
  9. Spring Boot 项目总是创建失败,这几个备选方案一定要收藏
  10. mysql 数字处理方法_mysql中保留字段中的数字的处理方法。
  11. 脑图管理项目很方便清晰!
  12. tomcat版本号进行隐藏或者删除
  13. 提高工作效率的软件推荐——我的ABC软件工具箱 6.0 最新版上线啦
  14. syntaxhighlighter高亮动态代码
  15. IT软件资产管理流程梳理介绍
  16. 计算机小写换大写函数,excel小写换大写函数的教程
  17. phpredis使用zadd批量添加到集合
  18. 牛客网在线编程——二维数组中的查找
  19. 全排列(下一个排列,算法)
  20. 【畅捷通T+】登录提示 列“MarketingCloudUserId”不属于表 。

热门文章

  1. STM32 RTC BKP备份数据区数据丢失问题的讨论
  2. keil 使用AC6 中文警告解决办法
  3. 单片机模块学习之键盘
  4. 1.2.2一个数可以有多少种用连续素数之和表示POJ 2739
  5. [转载]判断IE浏览器-世界上最短的代码
  6. BZOJ.3218.a + b Problem(最小割ISAP 可持久化线段树优化建图)
  7. mysql 主从单库单表同步 binlog-do-db replicate-do-db
  8. Hibernate HQL的update方法详解
  9. ninject 的 实现 的 理解
  10. zookeeper源码