在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3726|回复: 3

关于oregano的MC8051 ip core的仿真

[复制链接]
发表于 2007-6-18 10:25:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
有没有人做过 oregano的MC8051 ip core的仿真?
mc8051_rom.dua怎么用呀?
 楼主| 发表于 2007-6-20 08:41:27 | 显示全部楼层

搞明白了

在tb\mc8051_rom_.vhd中定义实体
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;

在tb\mc8051_rom_sim.vhd中 ,将mc8051_rom.dua内容读入到v_rom_data
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
  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;
发表于 2013-4-8 12:38:27 | 显示全部楼层
Mark for the future reference
发表于 2020-1-13 18:01:16 | 显示全部楼层
写得挺好,谢谢,关于oregano的MC8051 ip core的仿真
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-27 03:53 , Processed in 0.017610 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表