草庐IT

axi_crossbar IP使用说明

#总体简介图例是2X3的配置#主要特性▲支持Master、Slave接口数量配置▲支持全连接、部分连接▲支持多threads、多issue效率匹配▲支持输入BURST最大数量匹配▲支持Master、Slave接口寄存,优化时序▲支持Region、User、Secure配置#一些参数描述DATA_WIDTH:默认值为32,AXI数据宽度。ADDR_WIDTH:默认值为32,AXI地址宽度。S_ID_WIDTH:默认值为8,SlaveportID宽度M_ID_WIDTH:默认值为8+clog2(8),MasterportID宽度,多出的clog2(8)为响应路由Sxx_THREADS:默认值为2,

【ARM AMBA AXI 入门 11 - AXI 总线 AWCACHE 和 ARCACHE 介绍】

请阅读【ARMAMBAAXI总线文章专栏导读】文章目录1.1AXI传输事务属性1.1.1slavetype1.1.2系统级缓存1.2MemoryAttributes1.2.1Bufferable,AxCACHE[0]1.2.2Modifiable,AxCACHE[1]1.2.3cache-allocate1.3Memorytypes转自:https://zhuanlan.zhihu.com/p/148813963如有侵权请联系删除1.1AXI传

SPI协议讲解与总结

1.SPI通讯协议SPI是串行外设接口(SerialPeripheralInterface)的缩写,是一种高速的,全双工,同步的通信总线1.1SPI引脚与工作过程SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。它们分别是MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟)、CS(片选)。(1)MISO–MasterInputSlaveOutput,主设备数据输入,从设备数据输出;(2)MOSI–MasterOutputSlaveInput,主设备数据输出,从设备数据输入;(3)SCLK–S

ZedBoard+AD9361_FPGA的PL端纯逻辑(verilog)配置控制9361(三)_建立完整工程,编写配置寄存器的状态机文件、SPI文件、9361收发接口文件并测试效果

建立工程,主要文件有4个,配置函数,接口文件、寄存器读写状态机文件,SPI文件。工程文件下载:百度网盘 提取码:6yzp一、编写状态机文件根据前面生成的ad9361_lut.v文件,分成写状态、读状态、延时状态,反复循环,直到最后配置完所有寄存器之后使状态机处在一个固定状态,并给出配置结束的标志信号。时钟建议20MHz和SPI读写时钟一致。 二、编写SPI读写文件根据状态机状态,选择对相应寄存器的读写操作。根据状态机状态给出读写指示,并给出相应的寄存器地址和所需写入或读取的值。 三、接口文件基本参考ADI官方的接口文件,稍作修改,可以直接设置adc_r1_mode和dac_r1_mode配置单

一种简单的axi2ahb桥的实现

准备走秋招了,感觉除了数字ic设计和验证的理论知识外,项目好像还真没有能拿的出手的Orz,于是弄了个这个,希望设计与验证的两边都能练到。项目代码在github先看功能:能将AXIMaster的transaction转换为AHB协议发送到AHBslave端口。能正确返回AHBslave的response。AXI部分只支持INCR/WRAP读写操作,(Fixed操作由于没考虑到就没写,其实也不难,但是写完过后我懒得加了);支持outstanding;不支持outoforder,retry,split等高级feature。AHB部分则为single传输,支持b2b的single传输。模块结构如下图:

【ARM AMBA AXI 入门 10 - AXI 总线 DATA信号与 STRB 信号之间的关系 】

请阅读【ARMAMBAAXI总线文章专栏导读】文章目录AXISTRB信号AXISTRB信号AXI总线是ARM公司设计的高性能处理器接口,其中STRB和DATA信号在AXI协议中有特殊的含义和关系。DATA信号:在AXI中,DATA信号用于在读写操作中传输实际的数据。数据的大小可以根据AXI接口的位宽来变化,例如32位、64位或128位等。STRB信号:STRB是一个字节使能信号,它表示哪些字节是有效的。每个字节有一个相关的STRB信号,每一个STRB信号对应的字节是按照字节地址对齐的。例如,在32位的数据总线上,STRB的四个信号分别对应四个字节,STRB[0]对应最低字节,STRB[3]对应

linux系统移植及AXI DMA配置

linux系统移植及AXIDMA配置linux系统移植及AXIDMA配置1、配置环境2、创建工程3、导入硬件描述文件4、设备树配置5、编译内核6、编译驱动7、最终编译8、替换根文件系统9、上板查看结果linux系统移植及AXIDMA配置petalinux2021+vivado2021dma驱动代码:https://github.com/bperez77/xilinx_axidma/tree/master1、配置环境安装petalinux的时候已经配置好了环境,因此终端直接输入sptl就可以开启相关环境使用2、创建工程mkdirpetalinuxcdpetalinuxpetalinux-crea

FPGA程序烧录方式:JTAG调试与SPI固化

一、JTAG调试烧录用JTAG方式烧写后,已经在FPGA中没有存储了,相当于这时候已经对FPGA做了编程,断电后FPGA需要重新烧写才能用。按照严格来讲那个不是程序,可以说是在FPGA上直接编程,可以说存在整个芯片中。在用JTAG烧录的时候下载进去的是二进制文件bit类型的,而在vivado中bit文件可能没有正确格式化,导致无法在其他存储器上去实现固化过程中,从而出现断电丢失问题。这可能导致芯片无法正确识别和读取bin文件的内容,从而无法正常启动。所以一般来讲使用JTAG进行调试的需要一直通电保证FPGA一致处于工作状态,才能保留程序在其中。二、SPI固化这种固化一般是固化到flash当中,

详解UART、I2C、SPI常用通信协议(全是细节)

前言    UART、I2C和SPI是我们在嵌入式开发中比较常见的通信协议了,没有最好的通信协议,每个通信协议都有自己的优缺点。如果想要通信速度快,SPI将是理想的选择;如果用户想要连接多个设备而不是过于复杂,I2C将是理想的选择,因为它最多可以连接127个设备并且易于管理;UART的通信速度相对较慢,通信也比较简单,单对单。        uart接口比较常用于主设备与蓝牙、wifi模块的通信、打印调试等。    i2c接口多用于和传感器的通信,例如触摸屏、计步器、温度传感器、EEPROM等。    spi接口多用于对速率要求高一些的场景,如spiflash、spilcd屏、SD卡等。1.U

STM32的HAL库SPI操作(master 模式)-根据时序图配置SPI

SPI相关基础知识SPI基本概念请自行百度,参考:百度百科SPI简介.我们讲重点和要注意的地方。master模式下要关注的地方接线一一对应也就是说主控的MISO,MOSI,SCLK,[CSn]分别和设备的MISO,MOSI,SCLK,[CSn]一一对应相连,不交叉,不交叉,不交叉…(重要的事情说三遍)。从设备的时序图这是无线模块CC2500的SPI接口时序,这里可以看到,从设备要求,1、时钟空闲时为低电平;2、数据在时钟下降沿跳变,上升沿稳定,第1个沿为数据采样点;3、高位先发送;4、数据长度8位;这是AD7192的SPI接口时序,这里可以看到从设备要求,1、时钟空闲时为高电平;2、数据在时钟