当前位置: 首页 > news >正文

肇庆东莞网站建设谷歌seo 优化

肇庆东莞网站建设,谷歌seo 优化,网站关键字怎么做,公司网站制作平台最近研究了一下SPI协议的FPGA实现#xff0c;发现网上很多大佬分享的方法都是针对某一特定的flash芯片或者某一传感器芯片来设计电路结构的。所以想根据SPI#xff08;Serial Peripheral Interface#xff09;的基本通讯协议实现一个通用版的SPI Master驱动。SPI在嵌入式领域…最近研究了一下SPI协议的FPGA实现发现网上很多大佬分享的方法都是针对某一特定的flash芯片或者某一传感器芯片来设计电路结构的。所以想根据SPISerial Peripheral Interface的基本通讯协议实现一个通用版的SPI Master驱动。SPI在嵌入式领域是一个很成熟且应用非常广泛的通信协议其通信协议的具体内容在此不再赘述。 SPI协议有四种模式0模式和3模式应用最为广泛本文以0模式为基础设计FPGA电路结构。 如上图所示SPI通信可以理解为主机和从机之间两个双向移位寄存器之间的数据交换所以每个时钟节拍数据的发送和接收都是同时进行的。 模块结构 一个模块的设计首先要站在用户的角度去考虑比如其他开发者调用该模块的时候应该如何使用这样就比较容易确定模块的输入输出信号。本模块设计的特点在于可以由用户自己定义每次数据传输的长度。所以调用该模块接收数据时要事先知道所对接的从机的数据什么时候发送过来根据byte_cnt 和bit_cnt来定位接收到的数据。 输入信号 clk 该模块的驱动时钟根据需要提供rst_n 模块复位信号低电平有效spi_start 模块唤醒信号只允许cs为高定平时提供一个时钟宽度的脉冲user_data 要发送的数据data_width 本次唤醒要发送的数据宽度代表要发送多少个字节miso 主机输入从机输出 输出信号 bit_cnt 数据传输位计数器byte_cnt 数据传输字节计数器cs 片选信号mosi 主机输出从机输入rev_data 模块接收到的数据 verilog代码实现 驱动设计代码 module spi_drv (input clk, //50Minput rst_n,input spi_start,input [31:0] data_width,input [7:0] user_data,output reg [2:0] bit_cnt,output reg [31:0] byte_cnt,output reg [7:0] rev_data,output sck, //spi通信同步时钟output cs, //片选信号output mosi, // master output slave inputinput miso // master input slave output );wire spi_en; //模块使能信号 reg spi_run; //模块状态寄存器 reg spi_clk; //sck时钟 reg [7:0] sen_buf; //输出缓冲寄存器 reg [7:0] rev_buf; //输入缓冲寄存器assign cs ~spi_run; assign sck (spi_run 1b1) ? spi_clk : 1b0; assign mosi (spi_run 1b1) ? sen_buf[7 - bit_cnt] : 1b0; assign spi_en spi_start (~spi_run);always (posedge clk or negedge rst_n) beginif(!rst_n)spi_run 1b0;else if(spi_en 1b1)spi_run 1b1;else if((byte_cnt data_width - 1b1)(bit_cnt 3d7)(spi_clk 1b1))spi_run 1b0;elsespi_run spi_run; endalways (posedge clk or negedge rst_n) beginif(!rst_n)sen_buf 8d0;else if(spi_en 1b1)sen_buf user_data;else if((bit_cnt 8d7)(spi_clk 1b1))sen_buf user_data;elsesen_buf sen_buf; endalways (posedge clk or negedge rst_n) beginif(!rst_n)spi_clk 1b0;else if(spi_run 1b1)spi_clk ~spi_clk;elsespi_clk 1b0; endalways (posedge clk or negedge rst_n) beginif(!rst_n)bit_cnt 3d0;else if(spi_run 1b1)beginif((bit_cnt 3d7)(spi_clk 1b1))bit_cnt 3d0;else if(spi_clk 1b1)bit_cnt bit_cnt 1b1;elsebit_cnt bit_cnt;endelsebit_cnt 3d0; endalways (posedge clk or negedge rst_n) beginif(!rst_n)byte_cnt 32d0;else if(spi_run 1b1)beginif((byte_cnt data_width - 1b1)(bit_cnt 3d7)(spi_clk 1b1))byte_cnt 32d0;else if((bit_cnt 3d7)(spi_clk 1b1))byte_cnt byte_cnt 1b1;elsebyte_cnt byte_cnt;endelsebyte_cnt 32d0; endalways (posedge spi_clk or negedge rst_n) beginif(!rst_n)rev_buf 8d0;else if(spi_run 1b1)rev_buf {rev_buf[6:0],miso};elserev_buf 8d0; endalways (posedge clk or negedge rst_n) beginif(!rst_n)rev_data 8d0;else if(spi_run 1b1)beginif((bit_cnt 3d7)(spi_clk 1b1))rev_data rev_buf;elserev_data rev_data;endelserev_data 8d0; endendmodule仿真激励代码 timescale 1ns/1nsmodule spi_drv_tb();parameter T 10;parameter [7:0] CMD 8b1010_0000; parameter [7:0] REG_ADR 8b0000_0001;reg [7:0] reg_value0; reg [7:0] reg_value1;reg clk; reg rst_n; reg spi_start;reg [31:0] data_width; reg [7:0] user_data;wire [2:0] bit_cnt; wire [31:0] byte_cnt;reg miso;initial beginclk 1b0;rst_n 1b0;spi_start 1b0;data_width 32d4;user_data 8d0;miso 1b0;reg_value0 8b1010_1010;reg_value1 8b1010_1010; endinitial begin#(2*T) rst_n 1b1; endinitial begin#(5*T) spi_start 1b1; #(2*T) spi_start 1b0; endalways (negedge clk)beginif(spi_start)user_data CMD;else if((bit_cnt 3d7)(byte_cnt 32d0)) user_data REG_ADR;else if((bit_cnt 3d7)(byte_cnt 32d1)) user_data 8d0;else if((bit_cnt 3d7)(byte_cnt 32d2)) user_data 8d0;else if((bit_cnt 3d7)(byte_cnt 32d3)) user_data 8d0;elseuser_data user_data; endalways (*) beginif(byte_cnt 32d2)miso reg_value0[7 - bit_cnt];else if(byte_cnt 32d3)miso reg_value1[7 - bit_cnt];elsemiso 8d0; endspi_drv spi_drv_m0(.clk(clk),.rst_n(rst_n),.spi_start(spi_start),.data_width(data_width),.user_data(user_data),.bit_cnt(bit_cnt),.byte_cnt(byte_cnt),.miso(miso) );always #T clk ~clk;endmoduleModelsim仿真结果
http://www.zqtcl.cn/news/737289/

相关文章:

  • 哪个网站有做商标网站的类型是什么意思
  • 网站 主机网站内容段落之间有空格对seo有影响吗
  • 网站的宣传推广学网站开发哪个好
  • 免费背景图片素材网站北京企业建站程序
  • 营销网站建设方案wordpress门户
  • 世界网站排名查询效果好企业营销型网站建设公司
  • 网站用户体验解决方案个人网页设计作品赏析
  • 常州网站建设方案外包网站开发用到的技术
  • 防伪网站模板如何找百度做网站
  • 网站建设与维护成绩查询云南app开发系统
  • 自己做网站的难度建设专门网站 强化信息宣传
  • 公职单位建设网站的目的如何查看小程序的开发公司
  • 网页模板网站推荐青岛 php 网站建设
  • joomla 网站建设3d网站建设
  • 网站开发与维护专业前景网站被禁止访问怎么打开
  • 山东 网站建设青海公路建设市场信用信息服务网站
  • 济南正规做网站公司wordpress一键还原
  • 免费的购物网站源码百度网站优化
  • 企业需要做网站吗深圳装修公司前十强
  • 合肥做网站推广哪家好软文写作的十大技巧
  • 哪里做网站的wordpress歌词插件
  • 网站改版做301重定向百度站长平台查询
  • 织梦网站后台网址妙影免费模板下载
  • 甘肃网站建设开发怎么利用花生壳做自己的网站
  • 怎么查询网站开通时间建个短视频网站
  • 物流网站建设广东网站建设效果
  • 网站推广工作流程图天蝎网站建设
  • 备案ip 查询网站查询网站校园门户网站建设方案
  • 网站seo快速优化技巧建设网站的需要学习哪些课程
  • 网站建设微信托管wordpress p=