|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
文件ahb_func.vhd的内容如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
package ahb_funct is
function nb_bits (A : INTEGER) return NATURAL;
end ahb_funct;
package body ahb_funct is
function nb_bits (A : INTEGER) return NATURAL is
variable logres : NATURAL ;
begin
logres := 1;
for i in 0 to 30 loop
if 2**i <= A then
logres := i+1;
end if;
end loop;
return logres;
end nb_bits;
end ahb_funct;
文件tb.vhd的内容如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use work.ahb_funct.all;
library novas;
use novas.pkg.all;
entity tb is
generic (
fifo_length: in integer:= 4);
end
architecture rtl of tb is
signal count: std_logic_vector(nb_bits(fifo_length)-1 downto 0);
begin
dump_pr: process
begin
fsdbDumpfile("tb.fsdb");
fsdbDumpvars(0, "tb");
wait;
end process;
end rtl;
仿真后用Debussy查看count信号,为什么是count[-1:0]?正确的应该是count[2:0]。
函数nb_bits哪里有错误么?
望高手指正! |
|