分享

Xilinx Spartan

 追逐四叶 2016-05-04


    感谢EEWORLD给了我这样一个机会,板子到了很多天了,一直都没时间写东西,觉得有点对不起大家,今天正好大运放假期间,补上相关资料。

    由于microblaze资料相对比较少,加上大部分硬件和相关驱动安装sdjntl都已经贴出,我也就不详加介绍了,我介绍的都是与MICROBLAZE有关的东西。

    一。驱动安装,具体可以参考官方网站的指导文档,分别到Digilent公司下载USB JTAG软件和Silicon Labs网站下载USB TO UART装好,就可以开始下面的MICROBLAZE之旅了。

    二。microbalze开发环境的搭建 

          点击setup.exe一路下去,到这里选择时候需要注意一下

      

因为microblaze的开发一定需要包含EDK那个套件,所以这里只能选择如图所示或者system那个选项,具体可看下面那个图

 

装好后,然后利用ID可以到官网申请一年的正式版本期限,下面就可以开始microblaze的开发了

 

第一步,硬件系统构建,在XPS 集成开发环境下,利用BSP(Base System Builder ) 向导自动创建一个以Mi2croBlaze 处理器为核心的简单硬件系统,

设置处理器时钟频率为50 MHz ,总线时钟频率为50 MHz ,设置片上读/写调试模块为调试接口,在处理器IP 中,只加入MDM 和GPIO。根据向导逐步

操作,即可完成硬件系统的构建。

      具体如下图所示:

      一。打开EDK下的XPS平台

    




spartan6 51内核试用

       时间过得真快,最近很忙,不好意思,这块板子的pico,microblaze,51内核我都玩过了,项目也完成了,一直没时间传,下面传点51内核的建立的东西 相信很多人都很喜欢51,因为很多人都从那里走过来,那么我们的板子能不能用51的程序驱动呢,下面就此展开讨论 目前网上公开发布的几个比较典型的805l IP核,如DW8051核.OpenCore组织的0C8051核及T51核,MC805l核等。这些IP核都是采用HDL语言描述的软MCU内核,其与工艺无关,能够在多种FPGA上进行逻辑综合及实现。

      我使用的是Oregano公司开发的1.5版本免费的MC8051 IP核,它具有如下特点:

     1)完全同步的设计;

     2)指令集与标准的8051 MCU完全兼容;

    3)采用优化的内核结构,指令周期较原MCS-51系列大幅提高,每一个指令仅占用1~4个时钟周期;

    4)256字节内部的RAM,最大可提供64KB的ROM和64KB的RAM资源。

     在FPGA中嵌入的8051内核,具有与51单片机类似的存储器结构,这些存储器的设计均使用FPGA芯片中的Block RAM资源,通过Xilinx提供的Core Generator工具实现。Core Generator是一个完整的设计工具,用来生成设计所需要的IP核,它既可以单独运行,也可以在ISE设计工具内执行。在设计中,要用到单片机中的三种存储区,分别为DATA,XDATA和CODE,这些存储区都是通过配置RAM & ROM中的单端口Block RAM(Single-Port Block RAM)IP核实现的。

     MC8051 IP核的设计过程共包括如下5个步骤:

    1)用Keil 编译8051的代码。

    2)将生成的hex文件用hex->bin工具转成bin文件;

   3)用bin->coe工具将hex文件转成coe文件;

   4)在core generator 生成的ROM中指明coe文件的位置;

   5)编译、下载到FPGA芯片。

       这个是别人的步骤,下面我写下整体步骤首先,从mc官网下载51内核vhdl版本,然后解压缩到一个文件夹然后用ise新建一个工程,把刚才下载的文件里面所有vhd的文件拷贝到你工程目录下,然后把mc51内核top文件加入工程中,修改该工程文件的元件声明,包括rom,ram和时钟设计声明你会发现会出现很多的?号在工程下面,你根据提示添加各种文件在该工程下有一个ram和rom,必须用core generator来生成,需要注意点的是版本不同,生成以后需要修改相关目录下的定义,例如clk需要改为clka等等,改完后编译在生成ram时候,有一个地方需要注意点,有一个好像是we的,需要改成wea std_logic_vector(0 downto 0)等等,也要勾上前面51程序编译出来的东西hex文件转换成的coe文件,有一个init file的,然后建一个ucf文件,51程序用到的引脚定义一下,再加上时钟,复位按键就可以了,另外要加一个CONFIG VCCAUX='3.3';定义最大电压,定义输出引脚如下所示NET 'p1_o<0>' LOC = 'P4' | IOSTANDARD = LVCMOS18; ,输入为p1_i,大家自己慢慢去体会,弄这个我只用了几个小时,所以相对还是很简单的,呵呵下面贴点图片,没图没真相

 别人文章

 

1 Keil编译8051的代码

这里的8051程序与普通的8051程序一样。由于是用keil编译,所以只能生成hex文件,如果使用其他编译器,如伟福,能直接生成bin文件,就能省略第二步。

 

 

2 将生成的hex文件用hex->bin工具转成bin文件
             

点击重新加载

 

也可以用另一个hex->bin工具转换。

 

3 bin>coe工具转成coe

 

   


     输入文件(二进制)在:D:\工作文档\电子设计基本\数字电子电路\......

     输出文件(*.coeoutput.coeD:\根目录下,而不在原来bin文件所在目录下。

 

4 core generate生成的rom中指明coe文件的位置

ISE中打开8051 for Xilinx中的mc8051.ise(不能直接双击打开mc8051.ise

 

点击重新加载

  

打开i_mc8051_rom,在romload入刚才生成的coe文件

 


 

5、编译、下载到spartan-3e starter kit板上,你将会看到流水灯的效果

     Synthesize(综合)、Translate(翻译)map(映射)Place&Route(布局布线)和Generate Programming File,这几步都需要很长时间(大约20~30分钟),最后可以看到整个MC8051所消耗的资源

 

 


 



spartan6 pico试用

  Xilinx公司的嵌入式解决方案已三类RISC结构的微处理器为核心可裁剪的软核处理器(PicoBlazeMicroBlaze)硬核处理器(PowerPC)

 

  MicroBlaze采用功能强大的32位流水线RISC结构,包含3232位通用寄存器和一个可选的32位移位寄存器,时钟可达150MHz。占用资源不到1000Silice

 

PicoBlaze是由VHDL语言在早期开发的小型8位软处理器内核包,其汇编器是简单的DOS可执行文件KCPSM6.exe,用汇编语言编写的程序经过编译后放入FPGA的块RAM存储器区。

PicoBlaze是的程序使用汇编来编程的,不过有个小小问题呵呵,汇编器最新版本不支持EDK12.4,所以要下载以前版本的,这个大家注意了,否则会出错,hoho

首先新建一个工程文件和一个vhdl文件,然后从xilinx提供的pico下载文件的例程中拷贝相关元件和声明定义文件到该文件下,主要一个主体和编程两部分的声明

然后下面就会出现一些?号,这时侯把从xilinx下载的pico包中各东西拷贝过来,然后添加相应的源码,就可以了,添加后如下图所示

相应元器件例化

添加后,然后用记事本打开一个txt文件,相关汇编指令在xilinx下载的包中有指导文件

保存为psm文件,用汇编器编译,最终会生成vhd文件,加载到程序中,编译下载,就可以看到

你的汇编代码作用了,具体我就不说了,以后有空再更新,今天先到这里,呵呵,这些都是之前

的经验,板子已经不在我这里了,所以叙述不详之处敬请谅解.

web服务器和linux还有ucosII移植的下次再更新,下面留几个标题。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多