首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏OpenFPGA

    【Vivado那些事儿】MicroBlaze MCS 和 MicroBlaze区别

    在Block Design中查找IP时输入Microblaze,就会发现下面几种IP,我们常规使用的就是第一个IP,是一个可以自定义外设的软核,但是第三个MicroBlaze MCS到底是个啥,我们接下来详解 MicroBlaze 微控制器系统 (MCS)是一个 MicroBlaze 实例。MCS 是一个集成的 MicroBlaze 解决方案,在单个模块中包含本地存储器、UART、定时器和 GPIO。 MCS 的优势之一是,与使用 MicroBlaze 和分立IP创建等效系统相比,MCS 能够实现进一步优化。 MCS 和 MicroBlaze 之间的主要区别如下表所示。 XIOModule_Config *IOCfgPtr = IOModule.CfgPtr; u32 switches; init_platform(); print("MicroBlaze

    1.4K30编辑于 2023-08-30
  • 来自专栏OpenFPGA

    Microblaze搭建LWIP

    K7平台的Microblaze搭建LWIP 1、概述 lwip 是瑞典计算机科学院(SICS)的 Adam Dunkels 开发的一个小型开源的 TCP/IP 协议栈。 图8‑100 添加 MIG IP 和 Clocking Wizard Step2: 添加 Microblaze IP ? ? 图8‑101 添加 Microblaze IP Step3:添加 AXI Ethernet IP。 设置 IP 如下,其他默认 ? 图8‑110 连接中断 Step10:将 axi time 的 interrupt 连接到 microblaze_0_xlconcat 最后一个端口上 ? 在Microblaze 的 AXI Ethernet 里面有对 RGMII 接口的时序约束,不同的芯片需要修改约束的时间,如果差别不是很大则不修改也可以进行工作。 ? ?

    2.6K20发布于 2020-06-29
  • 来自专栏hank

    MicroBlaze DMIPS 数据

    使用手上现有的MicroBlaze工程,顺手测试了MicroBlaze的DMIPS数据。 使用的单板是AC701, 芯片是7A200T。 MicroBlaze配置128KB Local Memory, 8KB I-Cache 和 D-Cache。 : 125.9184 DMIPS/MHz: 1.2592 可以看到,MicroBlaze

    32540编辑于 2023-05-23
  • 来自专栏咖啡走糖

    microblaze排坑:download.bit没有运行Microblaze

    使用软件版本:vivado 硬件:zedboard开发板 问题现象: 最近调试验证zynq自带的软核microblaze,发现把microblaze的local memory设置成16KB以上时,在sdk 里将bit文件和应用程序elf文件生成新的download.bit文件下载到板子上,microblaze的程序没有运行起来。 另外,把local memory设置成16K以下,以上两种操作都可以让microblaze程序运行起来。 但是直接将FPGA编程到bootloop中,并使用Run-> Run-As-> Launch on Hardware(System Debugger)手动运行应用程序,则microblaze可以正常工作 下载补丁之后重建工程导出到sdk可以正常运行microblaze的程序,不再受local memory影响。至此问题解决!真是很烦碰到这种因为软件bug导致的问题,排查起来太费精力了!

    2.7K31编辑于 2022-11-05
  • 来自专栏全栈程序员必看

    MicroBlaze使用_char* malloc

    16周期长的高电平信号至MicroBlaze的MB_RESET管脚。 注:该表格来自于MicroBlaze参考手册,见参考1 下面具体介绍如何对MicroBlaze进行中断编程。 当然MicroBlaze的中断输入,可以配置成电平触发或者边沿触发,在配置MicroBlaze的GUI或者在MicroBlaze.mpd中通过设置 C_INTERRUPT_IS_EDGE ,C_EDGE_IS_POSITIVE (void)该函数使MicroBlaze可以响应中断,即MSR中的“interrupt enable”位置’1’; void microblaze_disable_interrupts(void)该函数使 MicroBlaze不能响应中断,即MSR中的“interrupt enable”位置 ’0’; 这几个函数都定义包含在$EDK_project/microblaze_0/include/mb_interface.h

    1.1K20编辑于 2022-11-03
  • 来自专栏FPGA技术江湖

    MicroBlaze串口设计(附源工程)

    今天给大侠带来 MicroBlaze 串口设计,开发板实现使用的是Digilent basys 3,如有想要入手 basys 3 开发板的,可以联系牛总:18511371833。话不多说,上货。 本篇通过原理图设计,学习MicroBlaze基本结构,通过Tcl脚本创建简单的MicroBlaze工程,实现MicroBlaze调用UART模块,完成串口打印功能,掌握在模块化设计中,MicroBlaze 获取本篇相关源工程代码,可在公众号内回复“MicroBlaze串口设计源工程”。 设计原理 本系统中,Basys3的MicroBlaze模块调用基于AXI协议的UART IP核,通过AXI总线实现MicroBlaze-UART之间的通信,完成串口打印。 7) 同样的,在Diagram中添加MicroBlaze IP; ? 8) 添加完成后如下图所示,点击‘Run Block Automation’; ?

    1.5K20发布于 2020-12-30
  • 来自专栏hank

    MicroBlaze访问Zynq-7000的OCM

    MicroBlaze AXI访问返回DECODE1C 在ZC702单板上,MicroBlaze通过IC/DC端口连接到PS S_AXI_GP0,MicroBlaze读取OCM,得到值DECODE1C。 MicroBlaze改为通过DP端口连接到PS S_AXI_GP0,再读取OCM,正常。 2. OCM映射到高地址 Zynq-7000的OCM缺省部分映射到0地址,部分映射到0xFFFF0000。 MicroBlaze不能访问OCM_CFG寄存器,一定要在A9里访问OCM_CFG寄存器。 参考文章 https://www.xilinx.com/support/answers/71416.html https://www.xilinx.com/video/soc/zynq-microblaze-iop-ocm-memory-resource-sharing.html

    83640发布于 2020-07-16
  • 来自专栏hank

    AMD MicroBlaze中通过AXI Timer获取时间戳

    AMD MicroBlaze中通过AXI Timer获取时间戳 硬件的Vivado Block design设计中,添加AXI Timer 包含AXI Timer的头文件 #include

    86520编辑于 2023-05-23
  • 来自专栏hank

    使用MicroBlaze的Boot Loader的注意事项

    AMD为MicroBlaze提供Boot Loader,比如SREC Boot Loader。 它能将代码从QSPI Flash搬移到目标存储器(多半是DRAM)运行,使MicroBlaze运行大程序成为可能。 Boot Loader运行时,假设MicroBlaze刚退出复位,系统中所有设置处于复位之后的默认状态。如果MicroBlaze运行了其它程序,可能使MicroBlaze的状态改变,可能导致问题。 MicroBlaze能正常执行DRAM里的程序。 烧写SREC文件到QSPI Flash。 MicroBlaze读QSPI Flash里的SREC文件的数据正确。 MicroBlaze执行load_exec()加载程序后,跳转前,Reset地址、DRAM里的程序数据正确。双击Microblaze的ELF文件,可以自动反汇编,可以看到机器码。

    36510编辑于 2024-06-25
  • 来自专栏科学计算

    Virtex7 Microblaze下DDR3测试

    这篇文章我们讲一下Virtex7上DDR3的测试例程,Vivado也提供了一个DDR的example,但却是纯Verilog代码,比较复杂,这里我们把DDR3的MIG的IP Core挂在Microblaze 创建Block Design,命名为Microblaze_DDR3。 ? 2. 在bd文件中加入Mircoblaze。 ? 3. 点击Run Block Automation ? 4. 在bd文件中,加入AXI Interconnect、UARTLite和Interrupt(如果不加中断模块,Microblaze的程序跑不起来),串口用来打印信息。 但这个图里的线太多,看着不直观,我们把Microblaze模块、mdm_1、rst_clk_wiz和local_memory模块(上图中红框中的4个模块)放到一个子模块中,取名mb_min_sys,如下图 1'b0:1'b1; MicroBlaze_DDR3 MicroBlaze_DDR3_i (.UART_rxd (UART_rxd

    1.7K31发布于 2020-06-30
  • 来自专栏hank

    【分享】MicroBlaze大内部存储器(AXI BRAM)设计

    _0, and set properties set microblaze_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:microblaze microblaze {1} \ ] $microblaze_0_axi_intc # Create instance: microblaze_0_axi_periph, and set properties set microblaze -intf_net microblaze_0_interrupt [get_bd_intf_pins microblaze_0/INTERRUPT] [get_bd_intf_pins microblaze microblaze_0_axi_periph/M01_ACLK] [get_bd_pins microblaze_0_axi_periph/M02_ACLK] [get_bd_pins microblaze ] connect_bd_net -net microblaze_0_intr [get_bd_pins microblaze_0_axi_intc/intr] [get_bd_pins microblaze

    2.4K20发布于 2020-07-27
  • 来自专栏FPGA技术江湖

    一篇文章搞懂软核(MicroBlaze)的固化和启动

    这也是《FPGA实现串口升级及MultiBoot》系列中的一篇文章,作为一个专题单独出来说明。

    2.9K11编辑于 2024-12-09
  • 来自专栏FPGA技术江湖

    FPGA Xilinx Zynq 系列(十)芯片比较 之 比较一:Zynq对FPGA

    芯片比较(“ 为什么我需要Zynq”) 4.1 芯片选择的条件 4.2 比较一:Zynq 对 FPGA 4.2.1 MicroBlaze 处理器 4.2.2 MicroBlaze 单片机系统 4.2.1 MicroBlaze 处理器 MicroBlaze 是一个主要的软处理器类型,在 Xilinx 的 ISE 和 Vivado 的大多数新版本的设计流中都支持。 其中包括:MicroBlaze 是单核处理器而 ARM 是双核的;ARM 的指令集比 MicroBlaze 丰富;MicroBlaze 的 FPU 只实现了单精度浮点,而 ARM 还支持双精度;以及 MicroBlaze 单就Zynq 而言,MicroBlaze 可以成为 ARM 处理器有用的 “ 副官 ”。比如,MicroBlaze可以用来控制 PL 系统功能的一部分。 4.2.2 MicroBlaze 单片机系统 2012 年出现了 MicroBlaze 的轻量级版本:MicroBlaze 单片机系统(MCS)[7]。

    11.4K32发布于 2020-12-30
  • 来自专栏OpenFPGA

    AMD-Xilinx Vivado™ 2024.1 现已推出,可供下载

    MicroBlaze™ V 处理器是一款面向 AMD 自适应 SoC 和 FPGA 的软核 RISC-V 处理器 IP。 MicroBlaze V 处理器基于 32 位 RISC-V 指令集架构 (ISA)。 它允许开发人员利用开源 RISC-V 软件生态系统,不仅硬件与经典 MicroBlaze 处理器兼容,而且完全集成在 Vivado™ 和 Vitis™ 工具设计流程中。 MicroBlaze V 处理器经过精心设计,实现了高度的模块化,具有适合嵌入式系统应用的可配置架构。 开发人员可将 MicroBlaze V 处理器对准由 Vivado 设计套件提供支持的任何 AMD 自适应 SoC 或 FPGA 器件,无需额外的费用。

    1.4K10编辑于 2024-06-06
  • 来自专栏hank

    解决PetaLinux编译Microblaze的U-Boot的错误 “undefined reference to `eth_get_dev_index”等

    错误 PetaLinux编译Microblaze的U-Boot时,遇到下列错误 ,链接时提示找不到相关函数。 microblazeel-xilinx-linux-ld.bfd -Bstatic --no-dynamic-linker -Ttext 0x80100000 -o u-boot -T u-boot.lds arch/microblaze /cpu/start.o --start-group arch/microblaze/cpu/built-in.o arch/microblaze/lib/built-in.o board/xilinx /microblaze-generic/built-in.o cmd/built-in.o common/built-in.o disk/built-in.o drivers/built-in.o microblazeel-xilinx-linux-ld.bfd: cmd/built-in.o: in function `format_mac_pxe': | /proj/hankf/ac701-microblaze-peta

    65010编辑于 2023-10-16
  • 来自专栏hank

    AMD Artix 7 FPGA OTA 在线升级的实现

    multiboot-c-2015-1.pdf ug470_7Series_Config.pdf xapp1247-multiboot-spi.pdf ug952-ac701-a7-eval-bd.pdf ug1579-microblaze-embedded-design.pdf 但是需要嵌入MicroBlaze和AXI HWICAP,需要占用部分FPGA资源,也需要一点软件开发。 Artix FPGA OTA 在线升级的流程 首先分配Flash的存储空间。 Golden bit和 Update bit内部都集成MicroBlaze、hwicap和Quad SPI Controller,都有在线升级bit的能力。 a. MicroBlaze通过Ethernet、PCIe、UART等,从外部获得新的Update Bit。 b. MicroBlaze将新的Update Bit写入Quad SPI的0x400000并校验 c. MicroBlaze写IProg命令到HWICAP,重启动FPGA d.

    1.2K20编辑于 2023-05-10
  • 来自专栏MPSOC

    DDRLESS模式下的软件调试(MPSOC)

    但是我们可以使用vitis的debug或者run功能来运行我们的代码,这种场景下,fsbl就只负责初始化,不负责代码搬移,那整个256K都可以给我们用户程序使用(在JTAG模式下没有拷贝函数的赋值): 三、Microblaze : 除了OCM,还有一种选择,可以使用PL 的microblaze来运行驱动,microblaze的信息输出也可以借用ps uart来完成 3.1 将Microblaze的DP口通过AXI_LPD连到 3.2 在Vitis用下面代码自己封装一个打印函数printmsg(其实就是通过上面的通路,将打印字符直接写入到PS UART Controller的TX/RX FIFO),microblaze代码中可以使用

    40310编辑于 2025-03-14
  • 来自专栏hank

    AMD Xilinx AXI Interrupt Controller 中断优先级

    Xintc.h中的说明如下: For nested interrupts, XIntc_DeviceInterruptHandler saves microblaze r14 register on entry It enables Microblaze interrupts after blocking further interrupts from the current interrupt number On exit, it disables microblaze interrupts and restores ILR register default value(0xFFFFFFFF)back.

    98730编辑于 2023-05-23
  • 来自专栏OpenFPGA

    Xilinx 电源管理库 (XilPM)介绍及使用

    在 MPSoC 和 Versal 器件中,系统电源管理均由专用 MicroBlaze 处理器控制。 电源管理角色很有趣,因为处理器中断允许 APU、RPU 或 PL MicroBlaze 等电源主设备管理电源从设备。 这是因为如果不删除安全门,PU MicroBlaze 在 XSDB 中不可见。 为此,我们可以使用 XSCT 并创建一个简单的 TCL 脚本,如下所示。请注意,需要在应用程序中编辑软件的名称和路径。 name =~ "PSU"} mwr 0xffca0038 0x1ff after 500 #Load and run PMU FW targets -set -filter {name =~ "MicroBlaze

    92531编辑于 2023-08-30
  • 来自专栏OpenFPGA

    使用 MATLAB HDL Coder 和 FPGA 快速实现自动白平衡(AWB)

    除法是在 MicroBlaze 中完成的,虽然必须快速收集每帧的统计数据,但除法不必那么快,因此为了节省逻辑资源,利用 Microblaze即可完成。 为了在每一帧结束时向微处理器生成 IRQ,我们使用了以下结构 一旦 MicroBlaze 定义了系数数据,需要将其应用于后面帧像素。 然后将它们连接起来,为 AXI-stream提供最终的像素数据。

    1.1K20编辑于 2023-11-14
领券