SPI协议及其Verilog实现
简介
SPI(Serial Peripheral Interface)是一个串行的同步传输协议,不同于Uart和IIC,没有起始位和结束位而是以时钟沿来同步和传输;不同于采用数据包的形式,数据可以连续不中断地传输。是一种一对多的传输协议。4线SPI是全双工的接口,而3线SPI是半双工接口,本篇采用更通用的4线SPI来介绍。
SPI(Serial Peripheral Interface)是一个串行的同步传输协议,不同于Uart和IIC,没有起始位和结束位而是以时钟沿来同步和传输;不同于采用数据包的形式,数据可以连续不中断地传输。是一种一对多的传输协议。4线SPI是全双工的接口,而3线SPI是半双工接口,本篇采用更通用的4线SPI来介绍。
Uart是个缩写,全称是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)。单向传输只需要单线。异步传输的意思是没有同步时钟来同步发送端和接受端的数据,所以在数据之前添加起始位,之后添加结束位,以此来判断传输过程的开始和结束。当接收端检测到开始位,即开始以特定的频率来接收输入的bit位,这个特定的频率称为波特率。发送端和接收端要在大致相同的波特率下工作,才可以保证传输的正确性(最多相差10%)。
- 存储名词解释
- 用verilog实现一个深度为16,位宽8bit的单端口SRAM。搭建一个仿真环境,完成初始化,读取,写入的操作。
- 接第2题,如果同时对一个地址进行读和写操作,会怎样?实际中应该如何处理?
- 使用单端口SRAM构造一个双端口同步FIFO。
- 用verilog实现
y(n) = x(n) + x(n-1) + x(n-2) + x(n-3) + x(n-4)+ x(n-5)+ x(n-6)+ x(n-7)
输入x是8bit无符号数。- 用verilog实现
y(n) = 0.75*x(n) + 0.25*y(n-1)
x, y是8bit无符号数。