打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在FPGA中嵌入51单片机内核的中文教程
此教程使用的是http://www.oreganosystems.at/网站提供的开源8051内核。Altera自带的8051内核并不是免费的。

打开后的文件有上面这些文件夹。其中就一个最重要的就是8051核的源码,全部放在vhdl这个文件夹里面。那个pdf文档是这个IP核的使用教程,是官方标配的使用文档,也是纯英文的,对于英语四级没过的我下定决心花了大力气看最后只是一场空。。这问文档写的是用Synplify Pro这个综合软件综合的,虽然据说用这个软件进行综合可以节约FPGA的很多逻辑单元,但是对于我们这些初学者来讲,真的又麻烦又不适用,我们还是直接用QuartusII 来进行综合好了。
51IP核的源码全部在都在vhdl 这个文件夹中,打开是一大堆的源文件。

对于这么多的文件该怎么用,该如何使用,这是本文的重点。
首先用QuartusII建立一个工程,这这里先提醒下,文件目录最好不要包含中文,空格,不然会有些无法理解的错误。
然后将 vhdl 整个文件夹复制到工程目录下(个人习惯,等下添加进工程里面的时候方便点)。下面是添加8051核文件的步骤。


选择文件添加进工程。这里注意下
后面拖着_cfg 的这种文件不要添加进工程里面,还有就是含有_top_的文件也不要添加到里面。
然后双击打开mc8051_p.vhd 这个文件。把下面这些模块的例化语句全部删掉,这点非常重要!!
  component mc8051_top
    port (clk         : in  std_logic;
          reset       : in  std_logic;
          int0_i      : in  std_logic_vector(C_IMPL_N_EXT-1 downto 0);
          int1_i      : in  std_logic_vector(C_IMPL_N_EXT-1 downto 0);
          all_t0_i    : in  std_logic_vector(C_IMPL_N_TMR-1 downto 0);
          all_t1_i    : in  std_logic_vector(C_IMPL_N_TMR-1 downto 0);
          all_rxd_i   : in  std_logic_vector(C_IMPL_N_SIU-1 downto 0);
          p0_i        : in  std_logic_vector(7 downto 0);
          p1_i        : in  std_logic_vector(7 downto 0);
          p2_i        : in  std_logic_vector(7 downto 0);
          p3_i        : in  std_logic_vector(7 downto 0);
          p0_o        : out std_logic_vector(7 downto 0);
          p1_o        : out std_logic_vector(7 downto 0);
          p2_o        : out std_logic_vector(7 downto 0);
          p3_o        : out std_logic_vector(7 downto 0);
          all_rxd_o   : out std_logic_vector(C_IMPL_N_SIU-1 downto 0);
          all_txd_o   : out std_logic_vector(C_IMPL_N_SIU-1 downto 0);
          all_rxdwr_o : out std_logic_vector(C_IMPL_N_SIU-1 downto 0));

  end component;
  -----------------------------------------------------------------------------
  -- START: Component declarations for simulation models
  -----------------------------------------------------------------------------
  component mc8051_ram
    port (clk        : in  std_logic;
      reset      : in  std_logic;
      ram_data_i : in  std_logic_vector(7 downto 0);
          ram_data_o : out std_logic_vector(7 downto 0);
          ram_adr_i  : in  std_logic_vector(6 downto 0);
          ram_wr_i   : in  std_logic;
          ram_en_i   : in  std_logic);

  end component;

  component mc8051_ramx
    port (clk        : in  std_logic;
      reset      : in  std_logic;
      ram_data_i : in  std_logic_vector(7 downto 0);
          ram_data_o : out std_logic_vector(7 downto 0);
          ram_adr_i  : in  std_logic_vector(15 downto 0);
          ram_wr_i   : in  std_logic);

  end component;

  component mc8051_rom
    port (clk        : in  std_logic;
      reset      : in  std_logic;
      rom_data_o : out std_logic_vector(7 downto 0);
          rom_adr_i  : in  std_logic_vector(15 downto 0));

  end component;
  -----------------------------------------------------------------------------
  -- END: Component declarations for simulation models
  -----------------------------------------------------------------------------
然后双击打开mc8051_core.vhd 这个文件。

这样就可以生成mc8051核的原理图模块了。

当然光有这个核,它还不是完整的51核,还需要给它添加ram和rom
Ram是必须的,ramx是扩展的,rom也是必须的,是用来放所需运行的51单片机程序的,大小可以根据需要定制。但是推荐ram的大小用固定的以下配置。

三个存储单元都有一点需要注意,就是不能寄存输出。

就是在ram和rom配置的时候都要把 ‘q‘output port 前面的勾去掉!这点也很重要。
rom配置的时候需要加入.hex文件,就是keilc51 编译好的平时下载到单片机实验板上的那个程序文件,初始的时候可以随便添加一个就可以了,待程序写好后,就重新把它添加要rom里面,注意,如果改变了rom的程序文件,那么要重新完整编译一次下载到板子上才是更新后的程序噢。

然后就按照固定的格式将他们连接起来就可以了。可以发现,有些线是断开的通过标号来连接的,跟protel里的网络标号差不多。一般的数据宽度不匹配的时候就用这种方式来连接,如果直接连接,编译会报错的。

这里面我添加了锁相环,这个最好加上,因为我在测试的时候发现同样的时钟频率下,加了锁相环才能工作,不加就不工作。
Ok 编译下载就成功了。不过从编译报告来看,这个东西的确占逻辑单元比较多,我的板子是EP2C8Q208C8的芯片,用了一半的逻辑单元去。。。电脑CPU差,编译时间又挺漫长的。。
嗯,总结一下嵌入51核要注意的点
1、添加文件进工程时,有些是必要的,有些是不能加的。
2、有个文件要进行一下修改
3、配置ram和rom的时候,不要寄存器输出。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
直接数字频率合成器DDS的优化设计
《数字系统设计》第四章 组合逻辑电路
「学习笔记」带干货的数字滤波器设计(三)
基于VHDL仿真实现x86版CPU(数字逻辑)
VHDL宏功能模块应用
七段显示译码器(when-else实现)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服