找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5050|回复: 0
收起左侧

FPGA模拟MC8051—扩展ROM和RAM

[复制链接]
ID:244167 发表于 2017-11-17 15:03 | 显示全部楼层 |阅读模式
最近在搞一个测试板,用FPGA模拟MCU,当然,选用的是MC8051的内核,谁让人家是免费的呢。当然也有人说可以用NIOS II系统,仁者见仁,智者见智吧。

首先,我使用的是黑金系列的Demo板 (Cyclone IV系列的),接口足够丰富,实际上,我只需要一个核心板就可以了。

介绍一下这个FPGA,可以让大家直观的了解一下,该芯片型号:EP4CE15F256,64K 的RAM,因此,在MC8051分配内存的时候,选择32K ROM,16K的XRAM,以及128byte的RAM。应该足够放我的程序了,网上很多教程是2K的ROM,对于我而言,大小了。核心板上有50M和40M两个时钟,然后我分频至18M,也是足够了,已经比其他通用的51单片机快了。其他资源呢?目前还好,没啥特别的要求,只是跑个51系列的核而已,对FPGA来说小菜一碟。


大家都知道MC8051基本上没有额外的一些模块,比如ADC,DAC,IIC,定时器也是只有两个,这些模块呢,ADC和DAC没有办法,只能用外部器件,比较幸运的是,我目前用不到ADC和DAC,IIC可以用GPIO来模拟,定时器太少的话可以复用,当然这些涉及一些中断嵌套等技术问题。之后我们可以详细介绍。

上干货。关于如何配置FPGA,有一个网上的教程,我是按着这个来的,不过,我的一些需求和他的那个不一样,因此,在这里需要特别说明一下。
www点cnblogs点com/xiaomeige/p/6403094.html

干货一:如何扩展ROM和RAM,扩展至32K ROM,以及16K的XRAM。
首先用上面链接的MC8051源代码进行模块的扩展。大家可以尝试这先建立2K的ROM,这样熟悉一下流程,然后再来改ROM和RAM的大小也是可以的。
详细步骤见附件。。。

Quartus II软件版本为16.1。


首先,在下面链接中有详细的关于用 FPGA 模拟 MC8-51,先熟悉一下整个流程。


在已经有了一个小系统的基础上。


1. 点击左上角的 Project Navigator,选择 IP Components,然后你就可以看到我们自己新 加的 IP Core,一个 ROM,两个 RAM(内部 RAM 和外部 RAM),还有最后的锁相环(PLL)




2. 双击 ROM 的 IP 核, 然后将 ROM 的值改为 32K,其他选项维持不变。同理,将 RAM
的 IP 核的 RAM 值改为 16K,其他值保持不变,改完之后,系统可能要求你进行 IP core 的更 新,点击更新即可,可能需要几分钟,改过之后的样子还要维持图 1 所示。具体改动地方见 下图。





3. 点击左上角的 Project Navigator,选择 Files,你可以看到所有增加的源文件。
点击 ROM 的源文件 mc8051_rom.vhd,然后就可以看到 ROM 的相关信息。见下面两图。可 以发现,address 的大小是随着 ROM 的大小而变化,这个可以理解。如果是 1024byte,那就 是 2 的 10 次方,32KB 就是 2 的 15 次方,如果地址是从 0 到 14.这一步应该大家都明白吧。

看到这个有啥用呢,因为我们要改 TOP 层的设置信息。








4. 然后打开 mc8051_top_struc.vhd 文件,你可以看到下图的部分,其中 s_rom_adr_sml
是用来声明 ROM 的地址位数的,将其改为 14,和上面保持一致。注意,在这个文件中,有 两个地方需要修改。


5. 最后打开 mc8051_p.vhd 文件,找到下面图示的部分,那是各个模块的定义,同样将地址 信息改过来。


6. 关于 RAM 的修改,这个就不用我讲了吧,和 ROM 的一样,只是名字从 ROM 改成了 RAM。 注意这里的 RAM 是指外部 RAM,不要改片内的 RAM,有可能失败,我没试过,也没必要试。


7.最后的最后,编译就好了。然后一个 32K 的 ROM,16K 的片外 RAM 就搞定了,你可以随 意挥霍 8051 的存储资源了。


全部资料51hei下载地址:
FPGA模拟MC8051—扩展ROM和RAM.docx.pdf (291.37 KB, 下载次数: 19)

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表