2013/04/01Leedzn-1-MC8051IP移植详细步骤一、首先用访问,到上面下载MC8051IP的VHDL源码。2013/04/01Leedzn-2-二、用文件解压具工打开“mc8051_design.zip”文件。1.进入“mc8051_design”文件夹,而“__MACOSX”文件夹里面应该是些例子,没研究过,不用管它。2.进入“mc8051_design”文件夹后,我们只提取“vhdl”文件夹(里面就是MC8051IP的VHDL源代码)到不含有中文字符、空格以及括号的文件路径里(不然QuartusII建立的工程会有问题。)2013/04/01Leedzn-3-3.解压出来后就像这样子,注意上面的文件路径是符合要求的。2013/04/01Leedzn-4-三、新建QuartusII工程。1.打开“QuartusII”后,依次单击“File”-“NewProjectWizart...”就可以打开新建工程的向导了。这里是一个简单的介绍,我们直接“Next”。2.第一行是当前新建工程要保存的路径,这里选择刚解压出来的“vhdl”文件夹所在的路径;第二行是工程的名称,这里填和工程所在文件夹一样的名称“mc8051_new”;第三行是顶层文件的名称,它会自动填成与工程名一样的名字,这里为“mc8051_new”。接着“Next”。2013/04/01Leedzn-5-3.单击“...”打开添加文件的对话框,添加MC8051IP的VHDL源码到工程中,添加细节看下图。4.找到MC8051IP的VHDL源码所在的文件夹。2013/04/01Leedzn-6-5.右键单击将“mc8051_core_.vhd”重命名为“mc8051_core.vhd”,就是删掉后面的“_”。6.按住键盘上的“Ctrl”键,用鼠标左键,逐个选中文件名中不是以“_cfg.vhd”结尾和含有“_top_”的文件。然后“打开”。2013/04/01Leedzn-7-7.打开后如图,接着“Next”。8.这里是选择所使用目标芯片的型号,这里用的是CycloneII下的EP2C8Q208C8。接着“Next”。2013/04/01Leedzn-8-9.这里是添加第三方工具,这里不添加,直接“Next”。10.这里是查看报告,没有问题。直接“Finish”。2013/04/01Leedzn-9-11.工程建好后单击这里的“Files”,找到上面的“mc8051_p.vhd”文件,双击打开。12.找到“mc8051_top”,将这段删除!2013/04/01Leedzn-10-13.找到“mc8051_ram”,“mc8051_ramx”“mc8051_rom”将这段三段也删除!14.删除后如这样。单击“保存”保存这个文件。2013/04/01Leedzn-11-15.继续在“ProjectNavigator”中找到|“mc8051_core.vhd”文件,就是刚刚重命名了的那个文件,双击打开。16.在菜单栏中的“File”的下拉菜单中找到“Create/Update”-“CreateSymbolFilesforCurrentFile”,单击它,经过几秒后,就可以生成mc8051IP的核了。2013/04/01Leedzn-12-17.单击新建文件,找到“BlockDiagram/SchematicFile”。新建一个原理图式的顶层文件。18.在菜单栏中的“File”的下拉菜单中找到“SaveAs...”,单击它。弹出下面的对话框,文件名不要去更改,它默认为顶层文件名。直接“保存”。2013/04/01Leedzn-13-19.在刚新建的原理图的空白处双击,打开这个对话框。从左侧的“Project”下找到刚生成的mc8051IP核。选中,单击右下角“OK”就可以添加到顶层文件中。20.这就生成了mc8051IP核。但这个IP核只包含51单片机内的很少的资源,只有两个定时器,一个串口,两个外部中断。没有用于程序运行的ram和存储程序的rom,也没有时钟产生单元。接下来就要基于宏功能模块生成相应的ram和rom以及PLL。2013/04/01Leedzn-14-四、基于宏功能模块生成rom。1.从菜单栏中的“Tools”的下拉菜单中单击“MegaWizardPlug-InManager”打开宏功能模块生面向导。这里选择第一个生成新的功能模块。然后“Next”。2.在“MemoryCompiler”下找到“ROM:1-PORT”,选中它。3.选择“VerilogHDL”。4.在后面加上“mec8051_rom”。其它地方不要修改。“Next”2013/04/01Leedzn-15-5.将原来的“256”改成“4069”。给51单片机4KB的rom。其它如图设置不变。“Next”。6.将这里的勾去掉。其它如图。“Next”。2013/04/01Leedzn-16-7.这里随便找一个51单片机的程序。只要是hex文件在工程目录下就行。其它如图。“Next”。8.直接“Next”。2013/04/01Leedzn-17-9.勾选“mc8051_rom.bsf”。其它如图。“Finish”。10.单击“Yes”。这就生成了rom模块。下面继续生成ram模块。2013/04/01Leedzn-18-五、基于宏功能模块生成ram。1.从菜单栏中的“Tools”的下拉菜单中单击“MegaWizardPlug-InManager”打开宏功能模块生面向导。这里选择第一个生成新的功能模块。然后“Next”。2.在“MemoryCompiler”下找到“RAM:1-PORT”,选中它。3.选择“VerilogHDL”。4.在后面加上“mec8051_ram”。其它地方不要修改。“Next”。2013/04/01Leedzn-19-5.将原来的“256”改成“128”。51单片机内部ram为128字节。其它如图设置不变。“Next”。6.将这里勾选。7.将这里的勾去掉。其它如图。“Next”。2013/04/01Leedzn-20-8.如图设置。“Next”。9.如图设置。“Next”。2013/04/01Leedzn-21-9.勾选“mc8051_ram.bsf”。其它如图。“Finish”。10..单击“Yes”。这就生成了ram模块。下面继续生成ramx模块,即51单片机外部扩展ram。2013/04/01Leedzn-22-六、基于宏功能模块生成ramx。1.从菜单栏中的“Tools”的下拉菜单中单击“MegaWizardPlug-InManager”打开宏功能模块生面向导。这里选择第一个生成新的功能模块。然后“Next”。2.在“MemoryCompiler”下找到“RAM:1-PORT”,选中它。3.选择“VerilogHDL”。4.在后面加上“mec8051_ramx”。其它地方不要修改。“Next”。2013/04/01Leedzn-23-5.将原来的“256”改成“4069”。将外扩的ram设为4KB。其它如图设置不变。“Next”。6.将这里的勾去掉。其它如图。“Next”。2013/04/01Leedzn-24-7.如图设置。“Next”。8.直接“Next”。2013/04/01Leedzn-25-9.勾选“mc8051_ramx.bsf”。其它如图。“Finish”。10..单击“Yes”。这就生成了ramx模块。下面继续生成锁相环PLL模块,用于给51单片机工作提供时钟。2013/04/01Leedzn-26-七、基于宏功能模块生成PLL。1.从菜单栏中的“Tools”的下拉菜单中单击“MegaWizardPlug-InManager”打开宏功能模块生面向导。这里选择第一个生成新的功能模块。然后“Next”。2.在“I/O”下找到“ALPLL”,选中它。3.选择“VerilogHDL”。4.在后面加上“pll12MHz”。其它地方不要修改。“Next”。2013/04/01Leedzn-27-5.这里要根据FPGA芯片外部连的时钟的频率填,这里连的是50MHz有源晶振。其它如图。“Next”。6.将这里所有的勾都去掉。我们不需要锁相环的控制端和输出指示端。“Next”。2013/04/01Leedzn-28-7.如图设置。“Next”。8.先选择上面这项。9.在这里填入你想输出的时钟频率,这里设成12MHz。而右边显示的是能输出的实际频率。10.单击它。11.其它如图设置。“Next”。2013/04/01Leedzn-29-12.直接“Next”。不需要输出第2个时钟c1。13.直接“Next”。也不需要输出第3个时钟c2。2013/04/01Leedzn-30-14.直接“Next”。15.勾选“pll12MHz.bsf”。其它如图。“Finish”。2013/04/01Leedzn-31-16..单击“Yes”。这就生成了PLL模块。下面要做的只是在原理图上将各个模块连接起来。2013/04/01Leedzn-32-八、在顶层文件原理图上将各个模块连接起来。1.在原理图的空白处双击,打开这个对话框。从左侧的“Project”可以看到有mc8051IP核。以及刚刚生成的各个模块。2.将它们都添加到原理图上,如图所示。下面将用网络标号的方法将它们连接起来。也可以直接用线连。2013/04/01Leedzn-33-3.mc8051上的网络标号。注意这里的IO口输入输出是分开的。4.没有引出线的IO口可以引到FPGA的引脚上。5.这是锁相环,上面这个引脚要连到FPGA芯片时钟的输入脚。6.这是存储程序用的4KBrom的网络标号。2013/04/01Leedzn-34-7.这里程序运行时要用到的51单片机的内部128字节ram的网络标号。7.这里程序运行时要用到的51单片机的外扩4KBramx的网络标号。8.用网络标号连接好的各个模块。2013/04/01Leedzn-35-9.最后是综合,时间可能会长一些,不要以为是程序卡死了。剩下的就和其它的FPGA工程一样了。2013/04/01Leedzn-36-九、下载单片机的程序到mc8051IP中。所用工具:(1):QuartusII11.064-Bit(ServicePackInstalled:1)(2):MC8051IPcore(version:1.5)主要参考资料:8051IPCore=96在FPGA中嵌入8051核的详细方法与步骤实验教程双击原理图上的这个rom模块。2.直接点“Next”来到这个界面。3.这里更改成你要下载的程序。最后“Finish”。根据提示完成更新和综合。