AXI总线slave模式下接收数据---verilog代码
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代码的更多相关文章
- Oracle非归档模式下脱机数据文件
正常情况下,要想对数据文件脱机,必须在归档模式下,这是ORACLE自动保护的一种措施,防止在非归档模式下对数据文件脱机,造成数据丢失.如果想在非归档模式下执行数据文件脱机操作,则需要加上“for dr ...
- Angularjs在360兼容模式下取数据缓存问题解决办法
测试提了一个bug,在360浏览器兼容模式下,删除页面数据需要手动刷新浏览器才能看到最新的数据.首先要复现当时的问题,很容易就复现了,但是发现在360浏览器兼容模式下无法打开开发者工具.好在经过反复重 ...
- postgresql 不同数据库不同模式下的数据迁移
编写不容易,转载请注明出处谢谢, 数据迁移 因为之前爬虫的时候,一部分数据并没有上传到服务器,在本地.本来用的就是postgresql,也没用多久,数据迁移的时候,也遇到了很多问题,第一次使pg_du ...
- MVC模式下的数据展示:EasyUI的datagrid
我的数据库设计是一张老师表teacher,一张学生表student,一个教师对应多个学生,在学生一方建立外键; 还有一点想清楚,需要展示的数据是根据什么来的,是成功登陆的用户的id?还是直接展示所有的 ...
- EntityFramework Code First 模式下使用数据迁移
启用数据迁移 在程序包管理控制台选择安装了EntityFramework的项目,键入如下指令以启EF用数迁移. Enable-Migrations 命令成功运行后,所选项目下会添加名为Migratio ...
- 编码风格:Mvc模式下SSM环境,代码分层管理
本文源码:GitHub·点这里 || GitEE·点这里 一.分层策略 MVC模式与代码分层策略,MVC全名是ModelViewController即模型-视图-控制器,作为一种软件设计典范,用一种业 ...
- Chrome:开发者模式下js文件中代码显示在一行的解决方法
比如我随便打开一个js文件,可以发现它的代码都挤在一行中,这对我们查找一些变量很不友好 解决方式:点击图中标红的那个按钮就可以了
- ASM:《X86汇编语言-从实模式到保护模式》第8章:实模式下硬盘的访问,程序重定位和加载
第八章是一个非常重要的章节,讲述的是实模式下对硬件的访问(这一节主要讲的是硬盘),还有用户程序重定位的问题.现在整理出来刚好能和保护模式下的用户程序定位作一个对比. ★PART1:用户程序的重 ...
- 关于GTID模式下备份时 --set-gtid-purged=OFF 参数的实验【转】
刚刚听了吴老师是复制章节课程,对于GTID模式下备份数据--set-gtid-purged=OFF 参数有些不理解,于是乎做了实验,加深理解,得出些结论,如有错漏请批评指正! 部分备份: [root@ ...
随机推荐
- mongodb权限篇
1. 权限详解 内建角色: 数据库用户角色: read.readWrite: 数据库管理角色: dbAdmin.dbOwner.userAdmin: 集群管理角色: clusterAdmin.clus ...
- synchronized 作为悲观锁,锁住了什么?
继续来认识 synchronized,上篇文章加不加 synchronized 有什么区别?我们了解了 synchronized 是在多线程并发竞争同一资源的时候使用,这一篇我们来了解,synchro ...
- 数据库 MySQL 练习
一.sql语句基础 1.顯示德國 Germany 的人口 SELECT population FROM world WHERE name = 'Germany' 2.查詢面積為 5,000,000 ...
- php 数据库备份(可用作定时任务)
参考: https://blog.csdn.net/weixin_37616043/article/details/87721181 https://blog.csdn.net/stpeace/art ...
- input type file onchange上传文件的过程中,同一个文件二次上传无效的问题。
不要采用删除当前input[type=file]这个节点,然后再重新创建dom这种方案,这样是不合理的.解释如下:input[type=file]使用的是onchange去做,onchange监听的为 ...
- 2019-2020-1 20199308《Linux内核原理与分析》第二周作业
<Linux内核分析> 第一章 计算机工作原理 1.1 存储程序计算机工作模型 冯·诺依曼体系结构 各种计算机体系结构需要遵从的一个"客观规律" 结构图 冯·诺依曼体系 ...
- ReportEventA 错误 ERROR_CRC
如果 level 的宏弄错了,就会出现这种奇怪的现象.
- python操作ftp文件
from ftplib import FTP ftp = FTP('ftp.abc.com') ftp.login(user='username', passwd='********') ftp.cw ...
- embed git commit hash to assembly
https://stackoverflow.com/a/41200059/3782855 https://github.com/304NotModified/Fody.Stamp
- Muduo网络库实战(一):安装和配置
1. 参考资料 <Muduo_网络库使用手册> 2. 实战记录 1) muduo依赖项安装 centos安装cmake命令:# yum install cmake centos安装libb ...