IP核:89C51
FPGA芯片类型:EP4CE6E22CN8
FPGA_LED12 交替亮灭 灯
先创建
工程1生成51IP核的原理图符号,供工程2使用。再建另一个工程2创建原理图,把所需要的符号都添加进来 或者 利用宏功能生成添加。(除了51IP核,其余的都可以利用宏功能生成添加)再将其烧录进FPGA,配合keil软件生成的.hex文件来调试。
把老师提供的资料中的mc8051文件夹下的vhdl文件夹,
放在你自己新建的要用来烧录的my8051_test文件夹下
其它文件我们本次是用不到的,不用管。
这一步是 为了获取 51IP核的原理图符号

就是基本的新建工程嘛
【File】--【New Project ...】基本操作啊
不
51IP核可能会通过不了哦,会报引脚数目不对的错误创建好了 是一个空的工程 点击【Assignments】--【setting】--【General】--找到右侧的【...】---找到你工程目录下刚刚添加的 vhdl文件夹--把文件添加进去
添加文件时候可以全选
【ctrl+A】然后按住【ctrl】把带有cfg的文件 和 最底下的带有top的文件取消选择

找到mc8051_core.vhd 【右键】设置为顶层文件


然后就是等待了

生成完以后,你会发现在工程目录下多了一个.bsf文件

这一步是 为了获得单片机最小系统

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

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

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

【File】--【New】 创建一个空白的图

重复project1的步骤即可

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


看着符号图应该就能做出来的吧 基本操作哦!

看着符号图应该就能做出来的吧 基本操作哦!

看着符号图应该就能做出来的吧 基本操作哦!

.hex文件 & ROM ID的设置生成这个要添加数据文件--我们可以用keil软件生成 .hex文件,不加会生成不了!!!
.hex文件把下面这段代码赋值到keil软件中 编译就可以生成.hex文件
不过记得要设置好 才能生成 .hex文件

#include //此文件中定义了51的一些特殊功能寄存器
#define LED1 P1
#define LED2 P2
void Delayms(unsigned int cnt); //@11.0592MHzvoid 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);}
}

图有点大 直接截 截不清楚 分部分来吧
此处将
MCU的
P2_OUT[0]设置为LED2的口 对应我们写keil程序的P2
P1_OUT[0]设置为LED1的口对应我们写keil程序的P1(我下面有代码)


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

可以根据原理图来配置 或者 看老师给的表格

!!!这样配置!!!


看这样配IO 行不行

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

.sof文件

烧录完以后可以看到 初始放进 ROM代码 产生的现象了




