【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

这篇具有很好参考价值的文章主要介绍了【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

IP核:89C51
FPGA芯片类型:EP4CE6E22CN8

FPGA_LED12 交替亮灭 灯

总体过程描述

先创建工程1 生成51IP核原理图符号,供工程2使用。再建另一个工程2 创建原理图,把所需要的符号都添加进来 或者 利用宏功能 生成添加。(除了51IP核,其余的都可以利用宏功能 生成添加)再将其烧录进FPGA,配合keil软件生成的.hex文件来调试。

1、下载文件—移动位置

把老师提供的资料中的mc8051文件夹下的vhdl文件夹【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试放在你自己新建的要用来烧录的my8051_test文件夹

其它文件我们本次是用不到的,不用管。

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

2、创建project1

这一步是 为了获取 51IP核的原理图符号
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

就是基本的新建工程嘛 【File】--【New Project ...】 基本操作啊
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

注意:不这样选的话后面的51IP核可能会通过不了哦,会报引脚数目不对的错误

2.1 添加文件

创建好了 是一个空的工程 点击【Assignments】--【setting】--【General】--找到右侧的【...】---找到你工程目录下刚刚添加的 vhdl文件夹--把文件添加进去

添加文件时候可以全选 【ctrl+A】 然后按住【ctrl】把带有cfg的文件 和 最底下的带有top的文件取消选择

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

2.2 重新设置顶层文件

找到mc8051_core.vhd 【右键】设置为顶层文件
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

2.3 编译

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试
然后就是等待了

2.4 生成符号

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试
生成完以后,你会发现在工程目录下多了一个.bsf文件

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

project1中的工作告一段落

3、创建project2

这一步是 为了获得单片机最小系统
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

就是基本的新建工程嘛 【File】--【New Project ...】 基本操作啊

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

此处的命名可以随意 别和上一个一样就行

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试
这里的芯片选型要和自己FPGA开发板上的一样了,因为我们是要烧录这个工程生成的文件的,型号必须适配。
!!!这也是project1的初始创建的唯一不同的地方!!!
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

3.1在新工程下创建原理图

【File】--【New】 创建一个空白的图
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

3.2 再次添加文件

重复project1的步骤即可
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

3.3 添加&宏功能模块_生成 符号

点开这个会发现,已经存在mc8051_core 这个就是你 project1中生成的
,先把它放在原理图中吧,随便放一个位置就行
其它的还没有,因为还需要我们自己弄

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

3.3.1 宏功能模块_生成计数器

看着符号图应该就能做出来的吧 基本操作哦!
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

3.3.2 宏功能模块_锁相环

看着符号图应该就能做出来的吧 基本操作哦!
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

3.3.3 宏功能模块_ROM

看着符号图应该就能做出来的吧 基本操作哦!
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

a. 注意点 导入.hex文件 & ROM ID的设置

生成这个要添加数据文件--我们可以用keil软件生成 .hex文件,不加会生成不了!!!
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

b. 生成.hex文件

把下面这段代码赋值到keil软件中 编译就可以生成.hex文件
不过记得要设置好 才能生成 .hex文件
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

#include <reg51.h>	   //此文件中定义了51的一些特殊功能寄存器
#define  LED1 P1
#define  LED2 P2
void Delayms(unsigned int cnt);		//@11.0592MHz

void main()
{ 
   while(1)
	 {
		LED1  = 0x00; //控制D2口 低亮高灭
		Delayms(500); 
		LED1  = 0xff; //置P1口为高电平
		Delayms(500); // 调用延时程序
		LED2  = 0x00; //置P2口为高电平 
		Delayms(500); // 调用延时程序
		LED2  = 0xff; //置P2口为高电平
		Delayms(500); // 调用延时程序
	 }
}

/*******延时函数*************/
void Delayms(unsigned int cnt)		//@11.0592MHz
{
	unsigned char i, j, k;
	while(cnt--)
	{
			i = 11;
		j = 190;
		do
		{
			while (--j);
		} while (--i);
	}
}
3.3.4 宏功能模块_RAM

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

3.4 原理图连线

图有点大 直接截 截不清楚 分部分来吧

3.4.1 左半部分

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

3.4.2 右半部分

此处将MCU
P2_OUT[0]设置为LED2的口 对应我们写keil程序的P2
P1_OUT[0]设置为LED1的口对应我们写keil程序的P1 (我下面有代码)
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

3.4.3 下半部分

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

整体原理图

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

编译原理图工程

project1一样的操作。。。静静等待。。。。
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

4、配置引脚

可以根据原理图来配置 或者 看老师给的表格
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试
!!!这样配置!!!
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

4.1 引脚仿真

看这样配IO 行不行
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

5、再次编译工程

project1一样的操作。。。静静等待。。。。

6、烧录原理图程序

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试

6.1 选择.sof文件

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试
烧录完以后可以看到 初始放进 ROM代码 产生的现象了

7、烧录.hex 替换原来ROM中的文件 观察现象

【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试
【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试文章来源地址https://www.toymoban.com/news/detail-416391.html


每天进步一点点 笔记仅供自学,用来回看复习,不一定适合你,如有错误请指出。

到了这里,关于【FPGA】51的IP核烧进FPGA,配合keil生成的.hex文件调试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Keil5如何生成反汇编文件

    在Keil5界面下点击选项,选择“User”,勾选“After Build/Rebuild”中“RUN #1”,复制 fromelf --text -a -c --output=xxx.dis xxx.axf 在Linker栏中找到“Linker Control string”里最后-o后的.axf文件,将其复制下来替换第一步语句中的xxx.axf,然后点击OK 再次编译生成xxx.dis反汇编文件

    2024年02月01日
    浏览(53)
  • Keil使用 fromelf 生成bin文件

    一、语法格式如下: fromelf    [options]    input_file [options] 选项如下,可以组合使用,两者之间用空格隔开: 二、在Keil中的使用过程 1、配置Output,生成可执行文件 aa即为可执行文件名,后缀为axf。即编译后会生成一个叫aa.axf的文件,然后再由这个文件生成bin文件。 2、配置

    2023年04月26日
    浏览(43)
  • keil设置程序起始地址及生成bin文件的方法

    1.1FLASH APP 的起始地址设置 随便打开一个之前的实例工程,点击 Options for Target→Target 选项卡 默认的条件下,图中 IROM1 的起始地址(Start)一般为 0X08000000,大小(Size)为 0X80000, 即从 0X08000000 开始的 512K 空间为我们的程序存储区。而图中,我们设置起始地址(Start) 为 0X0

    2024年02月09日
    浏览(49)
  • 关于Keil开发C51单片机的头文件“REGX52.H“问题。其他类型的warning C318:can‘t open fine头文件也可以按照这个步骤来

    我用的是宏晶STC的入门板子,最近在学习写代码的时候也是遇到了这个问题,这个\\\"REGX52.H\\\"是只能用大写的,我们也必须用大写。 其他类型的板子也可以按照最下面的步骤试试;    第一步,我们先点开魔法棒   第二步,我们点开魔法棒后按箭头步骤点击 第三步 :打开后新建,选择你

    2024年02月12日
    浏览(40)
  • 解决keil5无法生成axf文件(国信长天STM32G431R8)

    我安装了keil5和STM32cubemx,这两个软件都是从官网下载,速度挺快的,参考博文如下: 【STM32】STM32 CubeMx使用教程一--安装教程_Z小旋的博客-CSDN博客 这里需要注意的就是Java版本一定要选对,我一般的处理方式就是全都 下载最新 的,基本上就不会出错。  Keil

    2024年02月05日
    浏览(57)
  • axf文件、hex文件、bin文件区别

    axf文件、hex文件与bin文件都可以运行在stm32,都存储了源代码通过编译器生成的机器码。 axf文件:编译默认生成的文件,包含 代码数据和调试信息 ,在MDK里进行debug调试用的文件。 hex文件:使用十六进制符号表示的代码记录, 包含 代码数据和地址信息 ,下载器可以根据地

    2023年04月23日
    浏览(38)
  • Keil-51和keil-arm合并方法

    Keil-51和keil-arm都是keil公式针对51单片机和ARM内核单片机开发而推出的集成开发环境。由于两种类型的单片机非常常用,很多工程师电脑里面都会同时保留这两款软件。因为都是同一个厂家出的,并且界面也很相似,一不小心就开错软件,造成不必要的麻烦。以下介绍了一种将

    2024年02月15日
    浏览(36)
  • hex文件格式详解

    以*.hex为后缀的文件我们称之为HEX文件。hex是intel规定的标准,hex的全称是Intel HEX,此类文件通常用于传输将被存于ROM或EEPROM中的程序和数据。是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。 HEX的英语原始意思是16进制。这种文件格式主要用于保存单片机固件。

    2024年02月03日
    浏览(40)
  • Python生成十六进制数补零的方法:用format()取代hex()

    Python的hex函数可以将任意整数转换为十六进制数,而且以0x为头。 我在写一个代码需要处理ASCII字符,众所周知ASCII的范围是0~255(十六进制数为0x00~0xFF),我尝试去掉十六进制数最前面的0x,由于hex()返回的类型是字符串,因此加方括号[2:]去掉头两个字符,代码如: 但在后续

    2024年02月11日
    浏览(64)
  • BIN文件和HEX文件互转合并

    因需要使用阿莫脱机下载器制作STM32脱机下载文件,而配置文件部分只有bin格式的,整合不了,所以需要把bin文件转化为hex文件。 参考了:BIN 文件转换为 HEX 文件 - 何亚斌的博客 (go2aaron.com)的代码,写了个对话框的程序。共享出来,给有需要的人。 源代码很简单,不介绍了,

    2023年04月14日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包