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@ ...
随机推荐
- 编码理解的漫漫长路(Unicode、GBK、ISO)
Ø 那么现在开始康康都有哪些编码方式 1. ASCII
- [一道蓝鲸安全打卡Web分析] 文件上传引发的二次注入
蓝鲸打卡的一个 web 文件上传引发二次注入的题解和思考 蓝鲸文件管理系统 源代码地址:http://www.whaledu.com/course/290/task/2848/show 首先在设置文件 ...
- Springboot:员工管理之查询员工列表(十(6))
构建员工controller com\springboot\controller\EmployeeController.java package com.springboot.controller; ...
- CG-CTF(1)
CG-CTF CG-CTF题目网址:https://cgctf.nuptsast.com/challenges#Web 第一题:签到题 查看页面源代码,得到flag(干杯~): 第二题:md5 col ...
- centos7与8的区别
1.关于内核版本:RHEL8采用4.18.0-xRHEL7采用3.10-0-x 2 网络时间同步 RHEL8 只使用Chronyd,不支持NTP部署. RHEL7Chronyd与NTP两者都支持 3. ...
- Android xUtils3.0使用手册(一)- 基础功能使用
xUtils3 其功能不得不说,简化了很多的开发步骤,可以说是非常好的开发工具,但是苦于没有完整的使用手册,下面是使用中的一些总结,不断完善. xUtils 版本 3.3.36 jar包下载地址 ht ...
- Linux系统目录结构:目录层次标准、常用目录和文件
1. 目录层次标准FHS FHS(Filesystem Hierarchy Standard)目录层次标准,是Linux的目录规范标准. FHS定义了两层规范: 第一层:是"/" ...
- Axure遮罩 or 灯箱
2019独角兽企业重金招聘Python工程师标准>>> 在做原型设计的时候,常常需要设计弹窗(比如confirm.alert或者弹出面板),加一个全屏的遮罩可以突出要展示的内容,效果 ...
- Rust 1.31正式发布,首次引入Rust 2018新功能
Rust 1.31是第一个实现了Rust 2018独有新功能并且不保证与现有代码库兼容的版本.Rust 2018相关工作正在进行中,而Rust 1.31只是整个三年开发周期的开始,这个开发周期将对这门 ...
- 2018/12/08 L1-036 A乘以B Java
简单的题目, 就是考察简单的输入和乘法: import java.io.BufferedReader; import java.io.InputStreamReader; public class M ...