SPI协议的verilog实现:利用spi协议配置寄存器

                                                              状态机状态跳转图

 


因常常需要对寄存器进行配置,因而学习了V3学院的视频课,利用spi协议对寄存器进行配置,在此做个记录,以便日后回顾。

上图为状态机状态转移图,需要先将需要配置的寄存器的信息存放在ROM中,然后将数据读出来,通过SPI协议发送到需要配置的器件。

`timescale 1ns / 1ps
module spi_ctrl(

input clk,       //50M
input rst_n,
input work_en,   //开始配置寄存器的使能
output reg conf_finish  //寄存器配置完成标志

output spi_clk,   //1M
output spi_csn,   
output spi_sdi,
input  spi_sdo,


);



//分频时钟
parameter  fenpin_cyc  =   5'd25-1;//0到24共25,周期的一半;
reg [4:0]   div_cnt;
reg  clk_p;    //采集数据的分频clk,上升沿采集数据
wire clk_n;    //最终给spi_clk的时钟
reg pose_flag; //上升沿标志

//计数
always @ (posedge clk or negedge rst_n) begin
if (!rst_n)  
   div_cnt<=5'd0;           
else if(div_cnt==fenpin_cyc) 
   div_cnt<=5'd0;    
el
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值