luhuajun9999
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2005-08-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1136回复:2

减法器的问题

楼主#
更多 发布于:2004-06-28 08:39
设计个运算器程序大体如下:
   library ieee;
   use ieee.std_logic_1164.all;
   use ieee.std_logic_arith.all;
   use ieee.std_logic_unsigned.all;

entity ALU  is
 port (
          Q1,Q2: in std_logic_vector(15 downto 0);
                 D: out std_logic_vector(7 dowto 0)
         );
end ALU;

architecture behavioral of ALU is
  signal sum: std_logic_vector(15 downto 0);
 process(...)
   begin
      sum<=Q1-Q2;
      if  (sum<0) then
       sum<=16200+sum;
        ......

想通过sum的正负来判断Q1和Q2的大小,但当Q1<Q2时仿真结果不对;
因为在我的设计里面要通过判断Q1和Q2的大小,来进行相应的运算.想省掉14位比较器直接通过减法来判断;
若把use.std_logic_unsigned.all改成use.std_logic_signed.all
当Q1<Q2时仿真波形一直闪动,数据紊乱.

   若程序改成如下仿真正确:
     ....
   process(...)
    begin                          ---Q1,Q2的大小不超过16200

        if(Q1>=Q2)  then
           sum<=Q1-Q2;
        elsif(Q1<Q2)  then          
           sum<=16200+Q1-Q2;
 .............
     但这种程序占用的资源明显多,各位大虾帮帮我.


atuhappy
驱动老牛
驱动老牛
  • 注册日期2002-03-15
  • 最后登录2009-09-09
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-29 17:31
减法器比比较器更占资源吧
在一回首间,才忽然发现,原来,我一生的种种努力,不过只是为了要使周遭的人都对我满意而已。为了要博得他人的称许和微笑,我战战兢兢得将自己套入所有得模式,所有的桎梏。走到中途,才忽然发现,我只剩下一副模糊得面目,和一条不能回头的路...
luhuajun9999
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2005-08-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-30 09:16
减法器比比较器更占资源
我的程序里比较之后要进行减法运算,所以我先减然后和0比较
再进行相应的运算.
和零比较应该比14位比较器占用的资源少多了
游客

返回顶部