Microblaze入门

Microblaze入门首先例化一个 Microblaze http www eeboard com evaluation digilent cmod a7 fpga 6 这是一个简单的例子 http blog csdn net duinodu article details 详细介绍了 Vivado 设置 http blog csdn net duinodu article details 问题汇总 Xilinx 提供了官方的 GPIO 和 BRAM 操作代码 可以参考在 SDK 界面可以看

首先例化一个Microblaze:

http://www.eeboard.com/evaluation/digilent-cmod-a7-fpga/6/这是一个简单的例子

http://blog.csdn.net/duinodu/article/details/详细介绍了Vivado设置

http://blog.csdn.net/duinodu/article/details/问题汇总

Xilinx提供了官方的GPIO和BRAM操作代码,可以参考

在SDK界面可以看到参考文档的选项:

Microblaze入门

最好还是使用IP Integer生成,然后用verilog包裹起来最佳,不然会很麻烦

设置为Area优先,则为三级流水线

设置为Performance优先,则为五级流水线

设置为Frequency优先,则为八级流水线

 

在可添加的IP库里:

MicroBlaze MCS   例化一个Microblaze核和LMB存储器等各个模块的集合

一个简单的Microblaze系统:

1. Microblaze核

2. 时钟产生模块、重置信号产生模块

3. LMB模块 局部存储模块,分为ILMB(指令)和DLMB(数据)

该模块用来作为CPU的内存,可以分成指令和数据两块内存,也可以共享一块内存

现假设指令和数据内存控制器是分开的,那么LMB模块由如下几个模块组成

两个LMB总线模块,两个LMB内存控制器,一个BRAM模块

其中LMB内存控制器的 SLMB Adrress Decode Mask指定了内存哪一位作为LMB解码器需要考虑地址解码的位,比如0x010,那么第5位就是被看作是否进行地址解码的位数

 

MicroBlaze可以直接操作GPIO、BRAM等模块而不使用API接口,使用”xil_io.h”头文件的如下函数:

Xil_Out32(REG_ADDR, Value);

Value = Xil_In32(REG_ADDR, Value);

 

Xilinx提供了xil_printf函数,比起printf函数少了浮点数的支持,程序小很多

在Xilinx提供UART调试窗口(相当于串口调试助手): https://blog.csdn.net/lzy/article/details/

 

关于双浮点数:

MB可以处理双浮点数,但是MB硬件本身不支持双浮点数,它是在软件上模拟双浮点数,如果要用printf输出双浮点数,那么MB需要更大的内存,但是可以不需要Cache。

与FPGA的通信:

可以使用BRAM,GPIO、AXI协议和FPGA通信,支持异步通信。

本人已经给出一个详细的工程配置过程供大家参考,配置的工程可以打印出双浮点数并操作BRAM。


下面是我的个人微信公众号,关注【一个早起的程序员】精彩系列文章每天不断。

Microblaze入门

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212594.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午7:42
下一篇 2026年3月18日 下午7:42


相关推荐

  • 大数的阶乘算法

    大数的阶乘算法用data数组来存放阶乘的每一位数字,首先令第一位的数值为1,位数为1,然后将每次相乘的乘积存回数组,并循环处理每个数组中超过10的数,若数值超过10,则需要进位,将位数加1,原来的数除以10,商数加前一位数的数值后存回前一位数的数组中,再将余数存回原来位数的数组中。例如求5!的值步骤一:1!=1位数1数组内容0     0     0     1步骤二:2!=2

    2022年7月24日
    8
  • 用vc2010怎么编译运行C语言,怎么用vc++2010学c语言程序设计?如何像vc6.0一样运行cpp文件?…「建议收藏」

    用vc2010怎么编译运行C语言,怎么用vc++2010学c语言程序设计?如何像vc6.0一样运行cpp文件?…「建议收藏」我简单做了一下,基本实现你要的功能,事件响应代码在下面得到路径之后,然后对文件进行文件内容的读取,读取到一个缓冲区内,然后用setwindowtext函数将内容显示在下面的空间上即可voidctest2dlg::onbutton1(){//todo:addyourcontrolnotificationhandlercodeherecstringstrpath;/…

    2022年8月12日
    8
  • uart 时序_8080接口时序

    uart 时序_8080接口时序数据传送速率用波特率来表示,指单位时间内载波参数变化的次数,或每秒钟传送的二进制位数  如每秒钟传送240个字符,而每个字符包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为2400Bd  传输时序如下图    在UART中,信号线上共有两种状态,分别用逻辑1(高电平)和逻辑0(低电平)来区分  在空闲时,数据线应该保持在逻辑高电平状态  其中…

    2025年11月16日
    5
  • 某次心血来潮的破解案例

    某次心血来潮的破解案例背景前面遇到一个so解密的问题,学习了一波IDA。无聊之际,买了个游戏来耍耍,突发奇想,想着尝试一些花里胡哨的东西,于是有了以下内容。逻辑分析与实现寻找对应代码实现dl

    2021年12月13日
    69
  • plsqldev715 注册码「建议收藏」

    plsqldev715 注册码「建议收藏」plsqldev715注册码QVJTSV-KNNSSK-G4UUL4-354LGX-FRZ8X3112243.957xs374ca

    2022年4月25日
    67
  • 基于android点餐系统需求分析,基于Android的点餐系统的设计及实现

    基于android点餐系统需求分析,基于Android的点餐系统的设计及实现内容简介:基于Android的点餐系统的设计及实现,毕业论文,共58页,20083字,附开题报告、答辩文稿、源程序。摘要随着无线网络(如4G、3G、GPRS)及无线网络技术与移动操作系统的不断发展,移动生活逐渐成为社会的主流。现如今,许多餐饮企业仍然采用传统人工式服务,使服务质量、效率变得很差。为了改变这一现状,本设计将介绍一种基于Android的无线点餐系统。这种点餐系统包括服务器端与客户端,…

    2022年6月19日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号