AXI总线slave模式下接收数据---verilog代码

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer: chensimin
//
// Create Date: 2020/04/17 18:45:54
// Design Name:
// Module Name: axi_slave_receive
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
////////////////////////////////////////////////////////////////////////////////// module axi_slave_receive #
( parameter integer S_AXI_DATA_WIDTH = ,
parameter integer S_AXI_ADDR_WIDTH =
)
( input wire s_axi_aclk,
input wire s_axi_aresetn,
input wire [S_AXI_DATA_WIDTH- : ] s_axi_wdata,
input wire [S_AXI_ADDR_WIDTH- : ] s_axi_awaddr,
input wire s_axi_wvalid,
input wire s_axi_awvalid,
output reg s_axi_wready,
output reg s_axi_awready,
output reg s_axi_bvalid,
input wire s_axi_bready,
output reg [S_AXI_DATA_WIDTH- : ] data,
output reg [S_AXI_ADDR_WIDTH- : ] address,
output reg valid ); //--------------------------------------------------------------------------------- parameter IDLE = ;
parameter READY = ;
parameter BVALID = ;
parameter BREADY = ; //--------------------------------------------------------------------------------- reg [:] current_state = ;
reg [:] next_state = ; always @(posedge s_axi_aclk or posedge s_axi_aresetn)
begin
if(s_axi_aresetn == 'b0)
current_state <= IDLE;
else
current_state <= next_state;
end //--------------------------------------------------------------------------------- always @(*)
begin
case(current_state)
IDLE:
begin
if(s_axi_wvalid && s_axi_awvalid)
next_state <= READY;
else
next_state <= IDLE;
end
READY:
begin
next_state <= BVALID;
end
BVALID:
begin
next_state <= BREADY;
end
BREADY:
begin
if(s_axi_bready)
next_state <= IDLE;
else
next_state <= BREADY;
end
default:
begin
next_state <= IDLE;
end
endcase
end //--------------------------------------------------------------------------------- always @(posedge s_axi_aclk)
begin
s_axi_wready <= 'b0;
s_axi_awready <= 'b0;
valid <= 'b0;
case(current_state)
IDLE:
begin
data <= ;
address <= ;
s_axi_bvalid <= 'b0;
end
READY:
begin
data <= s_axi_wdata;
address <= s_axi_awaddr;
valid <= 'b1;
s_axi_wready <= 'b1;
s_axi_awready <= 'b1;
s_axi_bvalid <= 'b0;
end
BVALID:
begin
s_axi_bvalid <= 'b1;
end
BREADY:
begin
if(s_axi_bready)
s_axi_bvalid <= 'b0;
end
default:
begin
data <= ;
address <= ;
s_axi_bvalid <= 'b0;
end
endcase
end endmodule

AXI总线slave模式下接收数据---verilog代码的更多相关文章

  1. Oracle非归档模式下脱机数据文件

    正常情况下,要想对数据文件脱机,必须在归档模式下,这是ORACLE自动保护的一种措施,防止在非归档模式下对数据文件脱机,造成数据丢失.如果想在非归档模式下执行数据文件脱机操作,则需要加上“for dr ...

  2. Angularjs在360兼容模式下取数据缓存问题解决办法

    测试提了一个bug,在360浏览器兼容模式下,删除页面数据需要手动刷新浏览器才能看到最新的数据.首先要复现当时的问题,很容易就复现了,但是发现在360浏览器兼容模式下无法打开开发者工具.好在经过反复重 ...

  3. postgresql 不同数据库不同模式下的数据迁移

    编写不容易,转载请注明出处谢谢, 数据迁移 因为之前爬虫的时候,一部分数据并没有上传到服务器,在本地.本来用的就是postgresql,也没用多久,数据迁移的时候,也遇到了很多问题,第一次使pg_du ...

  4. MVC模式下的数据展示:EasyUI的datagrid

    我的数据库设计是一张老师表teacher,一张学生表student,一个教师对应多个学生,在学生一方建立外键; 还有一点想清楚,需要展示的数据是根据什么来的,是成功登陆的用户的id?还是直接展示所有的 ...

  5. EntityFramework Code First 模式下使用数据迁移

    启用数据迁移 在程序包管理控制台选择安装了EntityFramework的项目,键入如下指令以启EF用数迁移. Enable-Migrations 命令成功运行后,所选项目下会添加名为Migratio ...

  6. 编码风格:Mvc模式下SSM环境,代码分层管理

    本文源码:GitHub·点这里 || GitEE·点这里 一.分层策略 MVC模式与代码分层策略,MVC全名是ModelViewController即模型-视图-控制器,作为一种软件设计典范,用一种业 ...

  7. Chrome:开发者模式下js文件中代码显示在一行的解决方法

    比如我随便打开一个js文件,可以发现它的代码都挤在一行中,这对我们查找一些变量很不友好 解决方式:点击图中标红的那个按钮就可以了

  8. ASM:《X86汇编语言-从实模式到保护模式》第8章:实模式下硬盘的访问,程序重定位和加载

        第八章是一个非常重要的章节,讲述的是实模式下对硬件的访问(这一节主要讲的是硬盘),还有用户程序重定位的问题.现在整理出来刚好能和保护模式下的用户程序定位作一个对比. ★PART1:用户程序的重 ...

  9. 关于GTID模式下备份时 --set-gtid-purged=OFF 参数的实验【转】

    刚刚听了吴老师是复制章节课程,对于GTID模式下备份数据--set-gtid-purged=OFF 参数有些不理解,于是乎做了实验,加深理解,得出些结论,如有错漏请批评指正! 部分备份: [root@ ...

随机推荐

  1. Charles抓包——弱网测试(客户端)

    基础知识 网络延迟:网络延时指一个数据包从用户的计算机发送到网站服务器,然后再立即从网站服务器返回用户计算机的来回时间.通常使用网络管理工具PING(Packet Internet Grope)来测量 ...

  2. 常见的Web源码泄漏漏洞及其利用

    Web源码泄露的漏洞: git源码泄露 svn源码泄露 hg源码泄漏 网站备份压缩文件 WEB-INF/web.xml 泄露 DS_Store 文件泄露 SWP 文件泄露 CVS泄露 Bzr泄露 Gi ...

  3. java中的模运算规则

    取模运算定义 如果a和d是两个自然数,d非零,可以证明存在两个唯一的整数 q 和 r,满足 a = qd + r 且0 ≤ r < d.其中,q 被称为商,r 被称为余数. 运算实例 java模 ...

  4. audio的自动播放报错解决

    使用audio标签时,当前页面没有进行交互时,比如用户刷新了页面后,play()调用就会报错,如下图 查找资料后,发现是2018年4月以后,chrome浏览器对这块进行了优化,为了节约流量,禁止了自动 ...

  5. prefetch 和 preload 及 webpack 的相关处理

    使用预取和预加载是网站性能和用户体验提升的一个很好的途径,本文介绍了使用 prefetch 和 prefetch 进行预取和预加载的方法,并使用 webpack 进行实现 Link 的链接类型 < ...

  6. ES6新增的 Set 和 WeakSet 是什么玩意?在此揭晓

    现在的章节内容会更加的紧密,如果大家看不懂可以先去看以前的文章,当然看了的忘了,也可以去看一下,这样学习后面的内容才会更加容易. 什么是Set结构 Set是ES6给开发者带来的一种新的数据结构,你可以 ...

  7. 2019-2020-1 20199308《Linux内核原理与分析》第六周作业

    <Linux内核分析> 第五章 系统调用的三层机制(下) 5.1 给MenuOS增加命令 强制删除当前menu目录,用get clone重新克隆一个新版本的menu,运行make root ...

  8. Spring Security OAuth2 笔记(一)

    关于 refresh_token refresh_token 主要是用来在 access_token 快要过期的时候,对 access_token 进行一个刷新,生成一个新的 access_token ...

  9. 怎么在java中关闭一个thread

    怎么在java中关闭一个thread 我们经常需要在java中用到thread,我们知道thread有一个start()方法可以开启一个线程.那么怎么关闭这个线程呢? 有人会说可以用Thread.st ...

  10. 虚拟机 VMware Workstation Pro 15.5.0 及永久激活密钥

    虚拟机 VMware Workstation Pro 15.5.0 及永久激活密钥 虚拟机下载地址:https://download3.vmware.com/software/wkst/file/VM ...