首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

向高手请教maxplus2的问题

向高手请教maxplus2的问题

一个rom程序,编译时总说"std_logic_textio"denoted by prefix"IEEE"must exist in the library,请高手指教


library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_textio.all;
library STD;
use STD.textio.all;


------------------------ ENTITY DECLARATION -------------------------
entity mc8051_rom is


  generic (c_init_file : string := "mc8051_rom.dua");


  port (clk        : in  std_logic;       -- clock signal
        reset      : in  std_logic;       -- reset signal
        rom_data_o : out std_logic_vector(7 downto 0);    -- data output
        rom_adr_i  : in  std_logic_vector(15 downto 0));  -- adresses


end mc8051_rom;
architecture sim of mc8051_rom is


   type   rom_type is array (65535 downto 0) of bit_vector(7 downto 0);
   signal s_init : boolean := false;


begin


------------------------------------------------------------------------------
-- rom_read
------------------------------------------------------------------------------
 
  p_read : process (clk, reset, rom_adr_i)
      variable v_loop : integer;   
      variable v_line : line;
      variable v_rom_data : rom_type;
      file f_initfile : text is in c_init_file;
  begin
    if (not s_init) then
      v_loop := 0;
      while ((not endfile(f_initfile) and (v_loop < 65535))) loop
        readline(f_initfile,v_line);
        read(v_line,v_rom_data(v_loop));
        v_loop := v_loop + 1;       
      end loop;
      s_init <= true;
    end if;
    if (clk'event and (clk = '1')) then  -- rising clock edge
      rom_data_o <= to_stdlogicvector(v_rom_data(conv_integer(unsigned(rom_adr_i))));
    end if;
  end process p_read;


end sim;

返回列表