在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: tianyu751

[求助] 一个简单的verilog程序,小数能直接赋值吗

[复制链接]
 楼主| 发表于 2012-5-29 14:33:10 | 显示全部楼层
那不很容易溢出吗
发表于 2012-5-29 15:13:04 | 显示全部楼层
电路中都是0和1的序列 ,它是不会知道这是小数还是整数的。  
所以如果要处理小数,可以先对小数进行操作:比如0.25*2^8=100000000 ;
0.125*2^8=100000。
注意:1.这里前后两个数位数不同,所以扩展成相同的就可以了;2.这是原码,一般来说是处理成补码,正负也好加减;3.如果a*2^8后还是小数,就要截取或者round,这会引入误差。

总结: 对小数进行a*2^n的操作,自己心中知道数值变化,当输入结果到(比如matlab)后,再相应的操作就可以了
 楼主| 发表于 2012-5-29 15:35:47 | 显示全部楼层
可在最初时,比如2.5,乘2后为5,但这个乘2的过程是移位吗,那个2.5在乘之前怎么表示
发表于 2012-6-6 10:20:55 | 显示全部楼层
IEEE754标准~~
发表于 2012-6-6 10:25:10 | 显示全部楼层
本帖最后由 yucaoxilin 于 2012-6-6 10:38 编辑

回复 13# tianyu751


    有个统一标准,IEEE754!这是一个二进制浮点数体系,貌似是各种数学家、科学家、工程师合作十年的结晶 ,1985年被IEEE标准委员会和美国国家标准局采纳……
    Altera的浮点数运算IP核都是采用这个标准,所以要按IEEE754标准来看那个仿真数据!
发表于 2012-6-6 11:48:57 | 显示全部楼层
还不错。
 楼主| 发表于 2012-6-6 12:20:26 | 显示全部楼层
IEEE754标准看了,但最初时,这个数值能按照这个标准输入吗,在输入之前要进行计算,这个计算的过程在哪实现,在FPGA上吗,若在FPGA上,计算之前的那个数又怎么输呢。
这个弯我就是转不过去
发表于 2012-6-6 15:18:23 | 显示全部楼层
回复 27# tianyu751


    我一般用nios II里的C语言实现这个转换,C语言里是可以自动转换的,可以用联合体实现!转换后再送到FPGA,计算后再送回nios转换!

#include "stdio.h"
typedef union test1 //IEEE-754 Floating-Point Conversion 32
{        
   unsigned int intData; //unsigned int为两个字节,可以直接用于表示32位
   float floatData;
}Float_32;
typedef union test2 //IEEE-754 Floating-Point Conversion 64
{        
   unsigned char intData[8]; //unsigned char为一个字节,8个unsigned char表示64位
   double doubleData;
}Float_64;
void main()
{
Float_32 temp1;
Float_64 temp2;
int i;
temp1.floatData = 1.23456;
temp2.doubleData = 1.23456;
printf("%x\n",temp1.intData);
for(i=7;i>=0;i--){
  printf("%x",temp2.intData);
}
printf("\n");
}
发表于 2012-6-6 15:30:01 | 显示全部楼层
可以先给他放大,计算完,在缩小回来!!
 楼主| 发表于 2012-6-7 11:06:21 | 显示全部楼层
c语言忘得差不多了,看不大懂
我用verilog编了个整数转化为浮点小数的程序,小数的不知怎么编,
是放大2^n之后把其整数部分输入FPGA中,转化为浮点小数,再缩小2^(-n)?
那如果本来那个数就已经接近溢出了,放大的话不是一定溢出吗,这时是要把小数直接舍弃吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-2-9 07:22 , Processed in 0.025850 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表