一、利用fifo对3行数据求和
需要2个fifo保存第0行和第1行的数据,如下图
比如有20行数据,则将一行一行的输给fifo2, fifo2出来的数据再给fifo1.当fifo和fifo1有数据时,在准备给 fifo2输入新的一行数据时,同时读出fifo2,fifo1保存的当行的第一个数据,将这三个数据做加法运算得到结果。
二、sobel边缘检测算法
针对灰度图像做边缘检测,Soble 算法的核心就是 Sobel 算子,该算子包含两组 3x3 的矩阵。
对于图像而言,取 3 行 3 列的图像数据,将图像数据与对应位置的算子的值相乘再相加,得到 x 方向的 Gx,和 y 方向的 Gy,将得到的 Gx 和 Gy,平方后相加,再取算术平方根,得到 Gxy,近似值为 Gx 和 Gy 绝对值之和,将计算得到的 Gxy 与我们设定的阈值相比较,Gxy 如果大于阈值,表示该点为边界点,此点显示黑点,否则显示白点。
三、SPI协议
-
SPI(Serial Peripheral Interface,串行外围设备接口)通讯协议,是 Motorola 公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制及数据传输,广泛用于 EEPROM、Flash、RTC(实时时钟)、ADC(数模转换器)、DSP(数字信号处理器)以及数字信号解码器上,是常用的也是较为重要的通讯协议之一。
-
SPI 通讯协议的优点是支持全双工通信,通讯方式较为简单,且相对数据传输速率较快;缺点是没有指定的流控制,没有应答机制确认数据是否接收,与 IIC 总线通讯协议相比,在数据可靠性上有一定缺陷,
-
SPI 通讯设备之间的连接方式可分为一主一从和一主多从
SPI 通讯协议包含 1 条时钟信号线、2 条数据总线和 1 条片选信号线, 时钟信号线为SCK,2 条数据总线分别为 MOSI(主输出从输入)、MISO(主输入从输出),片选信号线为CS
SCK (Serial Clock):时钟信号线,用于同步通讯数据。
MOSI (Master Output, Slave Input):主设备输出/从设备输入引脚。
MISO (Master Input,Slave Output):主设备输入/从设备输出引脚。
CS(Chip Select):片选信号线,也称为 CS_N,以下用 CS_N 表示,而每个从设备都有独立的这一条 CS_N 信号线,本信号线独占主机的一个引脚,即有多少个从设备,就有多少条片选信号线,SPI 通讯以 CS_N 线置低电平为开始信号,以 CS_N 线被拉高作为结束信号。
-
通讯模式
SPI 通讯协议一共有四种通讯模式,模式 0、模式 1、模式 2 以及模式 3,这 4 种模式分别由时钟极性(CPOL,Clock Polarity)和时钟相位(CPHA,Clock Phase)来定义,其中CPOL 参数规定了空闲状态CS_N 为高电平,设备未被选中)时 SCK 时钟信号的电平状态,CPHA 规定了数据采样是在 SCK 时钟的奇数边沿还是偶数边沿。
四、建立-保持时间
五、AXI协议
参考:AXI协议规范超详细中文总结版_Hack电子的博客-CSDN博客
AXI总线总结 - 个人学习笔记
AXI(Advanced eXtensible Interface),高级可扩展接口,是AMBA协议的一部分,AXI 协议就是 描述了主设备和从设备之间的数据传输方式,在该协议中,主设备和从设备之间通过握手信号(valid 和ready)建立连接。
信号线:
user 帧头
ready 握手信号
valid 握手信号
last 行尾
data 数据
AXI4 协议支持以下三种类型的接口:
1
、
AXI4
:高性能存储映射接口。
2
、
AXI4-Lite
:简化版的
AXI4
接口,用于较少数据量的
存储映射
通信。
3
、
AXI4-Stream
:用于高速数据流传输,非存储映射接口。
存储映射: 如果一个协议是存储映射的,那么
主机所发出的会话(无论读或写)就会标明一个地址
AXI协议的特点:
1
、
总线的地址/控制和数据通道是分离的
;
2
、支持不对齐的数据传输;
3
、支持突发传输,突发传输过程中只需要首地址;
4
、
具有分离的读/写数据通道;
5
、
支持显著传输访问和乱序访问
;
6
、更加容易进行时序收敛。
AXI4
接口,它由五个独立的通道构成
1、读地址
2、读数据
3、写地址
4、写数据
5、写响应
常用的接口定义
读传输的过程:(读地址, 读数据)
主机首先在读地址通道给出读地址和控制信号,然后从机由读数据通道返回读出的数据,这是一次突发读操作,主机给出一个地址,突发读出4个数据。
写传输的过程:(写地址, 写数据,写响应)
AXI
总线中的每个通道都包含了一组信息信号,还有一个
VALID
和一个
READY
信号。
VALID
信号由源端(source
)产生,表示当前地址或者数据线上的信息是有效的;而
READY
信号由目的端(
destination
) 产生,则表示已经准备好接收地址、数据以及控制信息。VALID
和
READY
信号提供了
AXI
总线中的握手机制,如下图所示:
在图
16.1.3
中,
ACLK
为时钟信号,在
AXI
协议中,所有的输入信号都在是
ACLK
的上升沿采样,所有的输出信号必须在 ACLK
的上升沿之后才能改变。在
T1
之后,源端将
VALID
拉高,表明
INFORMATION 信号线上传输的是有效的地址、数据或者控制信息。目的端在 T2
之后将
READY
拉高,表明它已经准备好接收数据,此时源端必须保持 INFORMATION
数据稳定不变,直到
T3
时刻进行数据传输。
需要注意的是,源端不允许等目的端的 READY
信号拉高之后,才将
VALID
信号置为有效状态。而且,一旦 VALID
拉高,源端必须保持其处于有效状态,直至成功握手(valid和ready都为1),
必须先等valid有效后,ready才能有效。
一个典型的AXI系统结构如下:
大多数的系统使用如下三种互联拓扑之一:
-
共享的地址和数据总线
-
共享的地址总线以及多条数据总线
-
多层,具有多个地址和数据总线
AXI协议定义了三种突发类型:
- 固定(FIXED):在突发事务中,每次传输的地址一致,有效的字节线也是一致的,但是可以通过WSTRB信号控制实际有效的字节。这种方式通常用于对同一位置的重复访问,如读取或清空FIFO时。
- 递增(INCR):在一次递增突发事务中,每次传输,地址都会在之前的地址基础上递增,递增量为传输大小。
- 回绕(WRAP):这种类型和递增方式类似,但是,地址到达上界后,地址就会回绕到下界。
六、I2C协议:
芯片间的通信,有SCL和SDA两条信号线组成,SCL:时钟线,SDA:数据线。
一般采用一主多从模式,当空闲状态时,数据线和时钟线都处于高电平状态,
读:
起始信号:当时钟为高电平时,数据线由高到低(下降沿),
1、发送7位的器件地址位和1位的读(1)写(0)位
2、接收1位的应答信号 (0有效)
3、发送8位的寄存器地址(写或读的地址)
4、接收1位的应答信号 (0有效)
5、发送8bit数据(要写的数据)
6、接收1位的应答信号 (0有效)
停止信号:当时钟为高电平时,数据线由低到高(下降沿)
写:
起始信号:当时钟为高电平时,数据线由高到低(下降沿),
1、发送7位的器件地址位和1位的读(1)写(0)位
2、接收1位的应答信号 (0有效)
3、发送8位的寄存器地址(写或读的地址)
4、接收1位的应答信号 (0有效)
5、再发生一次起始信号
6、再发送7位的器件地址位和1位的读(1)写(0)位
7、接收读出来的8位数据
8、接收1位的应答信号 (0有效)
停止信号:当时钟为高电平时,数据线由低到高(下降沿)
七、DDR容量计算
行地址总线为13,列地址位宽为
9 位,数据位宽16,含
4
个
L-Bank
存储容量(Bit) = L-Bank 存储单元数 ×数据位宽(Bit) × L-Bank
个数
= 2^13 * 2^9 * 16 * 4 = 2^10 * 2^10 * 2^8 = 256M
八、fifo写入读出
写入是立刻写入,读出时候等待了一个时钟才开始输出