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

2023-11-08

                                                              状态机状态跳转图

 


因常常需要对寄存器进行配置,因而学习了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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 在vivado中使用tcl脚本(UG894)

    本文源自UG894 主要介绍如何在vivado中使用tcl脚本 1 vivado中如何获取tcl help vivado中任何自带的命令都可以通过 help 获取帮助信息 也可以直接输入 help 取得vivado命令合集 并通过 help
  • zynq之petalinux安装和编译

    首先下载petalinux v2015 4 final installer dec run 去xilinx官网或者我的网盘下载http pan baidu com s 1gf11UGr mkdir opt pkg petalinux v20
  • Verilog--CDC跨时钟域处理(快时钟域到慢时钟域)

    Verilog CDC跨时钟域处理 快时钟域到慢时钟域 CDC问题 单比特信号的跨时钟域问题 从快时钟域到慢时钟域 从慢时钟域到快时钟域 多比特信号的跨时钟域问题 异步FIFO 握手协议 DMUX 格雷码 双D触发器 今天先写单比特信号从快
  • FPGA面试真题解析(3)

    9 寄存器的Tsu 建立时间 是如何定义的 硬件逻辑实习岗 A 在时钟沿到来之后数据保持稳定的时间 B 在时钟沿带来前后数据都需要保持稳定的时间 C 在整个时钟周期数据保持稳定的时间 D 在时钟沿到来之前数据保持稳定的时间 解析 考察数字电
  • 【原创】always语句 和 initial语句

    过程语句 有 always语句 和 initial语句 相同点 1 always语句 和 initial语句 可以多次使用 2 always语句 和 initial语句 各语句块 整体 是独立运行 3 always语句 和 initial语
  • 硬件设计---了解电源篇

    1 概述 在高速电路设计中一块单板上常存在多种电源 3 3V 1 8V 1 2V 1 0V 0 9V 0 75V等 有时光是对FPGA供电就需要五六种电源 为了便于使用往往用户只需要提供一种或几种电源 然后经过板上电源模块转换到各个目标电源
  • win10下安装vivado 2018.3之后ise14.7 的impact 无法使用

    软件版本号 操作系统win10 ise14 7 vivado 2018 3 ise14 7 在win10里面问题总结 1 ise14 7 闪退问题 比较好解决 论坛上比较多的解决方法 2 ise 14 7 windows 10 版本的ise
  • xilinx xdma PCIe中断bug

    xilinx xdma PCIe中断存在bug bug1 此中断虽然是msi或者msx中断 但是不中断cpu bug2 此中断不是边沿中断 而是电平中断 在驱动层需要不断地轮训查询中断事件 bug3 此中断持续时间必须长 而且在收到中断应答
  • 【数字IC】从零开始的Verilog SPI设计

    从零开始的Verilog SPI协议设计 一 写在前面 1 1 协议标准 1 2 数字IC组件代码 1 3 设计要求 1 4 其他协议解读 1 4 1 UART协议 1 4 2 SPI协议 1 4 3 I2C协议 1 4 4 AXI协议 二
  • FPGA实现VGA显示图片

    利用FPGA在带有VGA接口的液晶显示器上显示图片 电路原理图 端口说明 VGA R2 VGAB0的8个端口位VGA的RGB数据位 VGA HS为行同步信号 VGA VS为场同步信号 以分辨率为640x480为例 刷新速率为60Hz 每幅图
  • [从零开始学习FPGA编程-38]:进阶篇 -语法-函数与任务

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 前言 第1章 什么是函数Function 1 1 什么是函数 1 2 函
  • 在vhdl中生成随机整数

    我需要在 vhdl 中生成 0 1023 之间的随机整数 但是我在互联网上找不到这方面的好资源 请问有人帮我吗 下面是生成范围 0 1023 内均匀 均匀 分布的整数的示例 请注意 floor必须在与最大值 1 相乘之后使用运算 在本例中为
  • 用python接收高速率的UDP数据包

    我正在使用 python 来从 FPGA 接收 UDP 数据包流 并尝试丢失尽可能少的数据包 数据包速率从大约 5kHz 到一些 MHz 我们希望在特定时间窗口 代码中的 acq time 内获取数据 我们现在有这样的代码 BUFSIZE
  • Verilog、FPGA、统一寄存器的使用

    我有一个问题 关于我正在开发的 AGC SPI 控制器在我看来奇怪的行为 它是用 Verilog 完成的 针对的是 Xilinx Spartan 3e FPGA 该控制器是一个依赖外部输入来启动的 FSM FSM的状态存储在状态寄存器它没有
  • 异步FIFO设计之格雷码

    目录 二进制转格雷码 格雷码转二进制 相邻的格雷码只有1bit的差异 因此格雷码常常用于异步fifo设计中 保证afifo的读地址 或写地址 被写时钟 或读时钟 采样时最多只有1bit发生跳变 在不考虑路径延时的情况下 因为源数据 读写地址
  • 同时读取和写入寄存器

    我计划在 FPGA 上用 VHDL 设计一个类似 MIPS 的 CPU CPU 将具有经典的五级管道 没有转发和危险预防 在计算机体系结构课程中 我了解到第一个 MIPS CPU 用于在时钟上升沿读取寄存器文件并在时钟下降沿写入 我使用的F
  • 模拟器和合成器之间初始化状态机的差异

    我的问题是关于合成状态机中使用的第一个状态 我正在使用莱迪思 iCE40 FPGA 用于仿真的 EDA Playground 和用于综合的莱迪思 Diamond Programmer 在下面的示例中 我生成一系列信号 该示例仅显示引用状态机
  • VHDL 中的 BRAM_INIT

    我正在模拟基于处理器的设计 其中程序存储器内容保存在 BRAM 中 我正在使用 VHDL 推断 BRAM 实现程序存储器 我试图避免使用 CoreGen 因为我想保持设计的可移植性 最终该设计将进入 FPGA 我想看看是否有一种方法可以使用
  • 学习 Verilog 的资源 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 Verilog 新手 有人可以推荐学习资源 书籍 视频 博客或任何他们有良好个人经验并帮助他们更
  • 无符号和 std_logic_vector 之间的区别

    谁能告诉我以下书面陈述之间的区别 signal A unsigned 3 downto 0 signal B std logic vector 3 downto 0 Both std logic vector and unsigned ar

随机推荐

  • 第10篇:强化学习Q-learning求解迷宫问题 代码实现

    你好 我是郭震 zhenguo 今天重新发布强化学习第10篇 强化学习Q learning求解迷宫问题 代码实现 我想对此篇做一些更加详细的解释 1 创建地图 创建迷宫地图 包括墙网格 走到墙网格就是负奖励 注意 空白可行走网格奖励值设置为
  • 利用梳状函数求解周期函数傅里叶变换

    本文对梳状函数 1 单位冲激函数 2 梳状函数及其傅里叶变换 3 卷积和傅里叶变换 卷积是一种运算方式 针对线性时不变系统 最基础的应用就是 在时域中 一个输入 卷积上单位冲激响应 就可以得到输出 傅立叶变换的主要作用就是让函数在时域和频域
  • 在Ubuntu中配置中文输入法

    找到设置 选择区域和语言 点击Manage Installed Languagees 提示安装的话安装即可 4 点击图示内容 5 将Chinese simplified 勾选上 右键点击住 将汉语拖到第一位 重启Ubuntu 6 在输入源中
  • linux设备树节点添加新的复位属性之后设备驱动加载异常问题分析

    linux设备树节点添加新的复位属性之后设备驱动加载异常问题分析 1 linux原始设备驱动信息 1 1 设备树节点信息 1 2 linux设备驱动 1 3 makefile 1 4 Kconfig 1 5 对应的defconfig文件 2
  • Springboot ppt转pdf——aspose方式

    Springboot ppt转pdf aspose方式 1 下载ppt转pdf所需要的包 网盘地址 https pan baidu com s 1V CZ0zXcJzKofxr6qC1g8A 提取码 86lp 2 maven添加依赖 在项目
  • 编译开源软件vtr-verilog-to-routing遇到的一点问题

    vtr verilog to routing介绍 Verilog to Routing VTR 项目是一个全球性的合作项目 旨在提供一个开源框架 用于进行FPGA架构和CAD研究和开发 VTR设计流程以数字电路的Verilog描述和目标FP
  • SpringBoot连接RabbitMQ时一直显示Socket Closed或者An unexpected connection driver error occured,但是能正常访问web管理台

    问题 在使用SpringBoot去连接虚拟机或者远程主机的RabbitMQ时 出现了一直报错超时 报错 Socket Closed 或者 An unexpected connection driver error occured 解决方案
  • “程序员转型管理:从擅长代码到掌控团队的踩坑总结”

    作为程序员 很多人会在职业生涯中考虑转型管理岗位 然而 这个转换并不容易 除了需要掌握管理方面的知识和技能外 还需要处理人际关系并带领团队一起前进 在这个过程中 很多人可能会踩到一些坑 以下是我总结的一些经验教训 一 控制欲 由于程序员需要
  • jquery ajax 防止注入,javascript-jQuery在ajax全局事件中注入数据

    我正在尝试在ajax请求中注入数据 但是它失败了 我也不知道为什么 我试图查看jQuery源代码 但仍然找不到为什么它不起作用 感谢任何帮助 这是代码 someElement ajaxSend function e req options
  • python项目加密(模型加密,文件加密),涵盖了多种方法以及代码实现

    Python作为动态语言一般是以源码方式进行部署的 这就意味着他人在部署机器上可以直接获取项目代码 可能给作者带来不必要的损失和风险 这就需要对代码进行加密或混淆 常规的几类加密 混淆 方式如下 编译为pyc文件 将项目代码打包成pytho
  • 我的Substance Designer 学习笔记02-PBR材质学习理解

    首先定义PBR Physics based rendering 基于物理的渲染 由来 2012年迪士尼公司在技术论坛发布的文章 讲述自己作品的制作流程 2014年被某大佬提出简化版本的制作流程 优化后只用5中材质通道 BSDF 双向散射率分
  • C++实验02(02)华氏温度转换为摄氏温度

    题目描述 编写一个函数convert 把华氏温度转换为摄氏温度 转换公式为 C F 32 5 9 要求用内联函数实现 在main 中调用该函数 说明 F为double型 输入描述 华氏温度 输出描述 摄氏温度 输入样例 100 输出样例 华
  • 单线双线多线服务器有哪些区别

    单线双线多线服务器有哪些区别 服务器托管是我们现在当下比较常用的一种方式 越来越多的企业及站长 他们都会选择服务器托管 这不仅可以减少企业的维护时间成本 也可以让网站或者平台能够得到更多的专业技术支持 那么 在服务器托管中 我们经常会遇到单
  • jenkins+fastlane+git+cocoapods实现iOS持续集成踩坑记录

    前提 本项目在配置jenkins前已配置安装fastlane并自动上传蒲公英 关于fastlane的使用不在本文讨论范围之内 安装Jenkins jenkins有几种方式安装 一种是去官网下载dmg安装包 还可以下载 war文件 通过执行命
  • 整理一下react的知识点之redux-devtools-extension基本使用(持续更新)

    1 下载相关包 npm i redux react redux redux thunk redux devtools extension 2 安装react开发工具 chrome浏览器插件 3 安装redux的开发工具 chrome浏览器插
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 如何用ChatGPT辅助写论文

    ChatGPT先进功能创造了巨大的需求 该AI工具在推出后的两个月内就积累了超过1亿用户 最突出的功能之一是它能够在几秒钟内编写各种文本 包括歌曲 诗歌 睡前故事和散文 但是ChatGPT可以做的不仅仅是写一篇文章 更有用的是它如何帮助指导
  • 什么是IOC和DI?DI是如何实现的?

    什么是IOC和DI DI是如何实现的 IOC Inversion of Control 叫控制反转 DI Dependency Injection 叫依赖注入 是对IOC更简单的诠释 IOC 控制反转是把传统上由程序代码直接操控的对象的调用
  • IDEA上传代码到Gitee

    提示 这里可以使IDEA上传代码到Gitee 需要自己手动操作 目录 前言 一 打开Gitee官网 进行注册登录 1 登录进去找到右上角添加仓库 进行所示图操作 二 启动IDEA 1 IDEA关联Gitee 2 找到git下载好git程序
  • SPI协议的verilog实现:利用spi协议配置寄存器

    状态机状态跳转图 因常常需要对寄存器进行配置 因而学习了V3学院的视频课 利用spi协议对寄存器进行配置 在此做个记录 以便日后回顾 上图为状态机状态转移图 需要先将需要配置的寄存器的信息存放在ROM中 然后将数据读出来 通过SPI协议发送