阅读:1160回复:2
减法器的问题
设计个运算器程序大体如下:
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; ............. 但这种程序占用的资源明显多,各位大虾帮帮我. |
|
沙发#
发布于:2004-06-29 17:31
减法器比比较器更占资源吧
|
|
|
板凳#
发布于:2004-06-30 09:16
减法器比比较器更占资源
我的程序里比较之后要进行减法运算,所以我先减然后和0比较 再进行相应的运算. 和零比较应该比14位比较器占用的资源少多了 |
|