打印
[Verilog HDL]

求助VHDL中的运算

[复制链接]
2464|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shbguo|  楼主 | 2007-2-1 21:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大侠,您好!
      我是一个大学生,电子专业,我对FPGA很感兴趣,现在用VHDL进行编写一些小的逻辑功能程序,可是,最近我要编写一个带有算法的程序,而且还是小数和负数的运算,我不知道该怎么办.
    下面简单说明一下我要实现的功能:
             din1: in   std_logic_vector(7 downto 0);
             din2: in   std_logic_vector(9 downto 0); 
              led: out   std_logic_vector(1 downto 0); 
 
             constant :x= -10.078812453;
             constant :y= 3.80764200637;
 
             A=x*din1;
             B=y*din2;
          
           if (A+B) <-1024 then 
             led<="00";
           elsif (A+B) <0 then 
             led<="01";
          elsif (A+B) <512 then 
             led<="10";
          else 
             led<="11";
 
          end
 
以上是功能描述,不是原代码,
其中din1和din2是外部输入的数据,led是输出指示灯.
在VHDL中不支持小数和实数,那怎么进行运算呢?

非常感谢,

相关帖子

沙发
Allen_Lu| | 2007-2-2 17:07 | 只看该作者

re

一般综合软件的综合支持以2为系数的乘除运算(就是左移右移),可以尝试以这种方式分解下乘法的系数

使用特权

评论回复
板凳
feele| | 2007-2-8 13:46 | 只看该作者

re

负数和小数必须表示成二进制浮点数 (格式看明白就没问题了)

然后参考浮点数做四则运算的快速方法(以二进制为基础)就可以了吧?然后用VHDL写出来 。这方面有很多** 比方说开根号之类。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

8

帖子

0

粉丝