AHB总线RAM Verilog实例
//##################################################################################################
// Project : AMBA AHB RAM
// Author : Lyu Yang
// Date : 2020-05-10
// Description : AHB RAM
//##################################################################################################
module ahb_ram (
input wire hclk ,
input wire hreset_n ,
input wire hsel ,
input wire [:] htrans ,
input wire hwrite ,
input wire [:] hsize ,
input wire [:] haddr ,
input wire [:] hwdata ,
input wire hready_in ,
output reg [:] hrdata ,
output hready_out ,
output wire [:] hresp
); localparam MEM_SIZE = ; wire hbus_ena;
reg hbus_ena_d;
reg [:] mem_wstrb;
reg [:] mem [:MEM_SIZE-]; // Memory Init
initial $readmemh("../../frw/app_test.txt", mem); // AHB response always OKAY
assign hresp = 'h0;
assign hready_out = 'b1;
assign hbus_ena = hsel & hready_in & htrans[]; always @(posedge hclk, negedge hreset_n)
if(~hreset_n)
hbus_ena_d <= 'b0;
else
hbus_ena_d <= hbus_ena; always @(posedge hclk, negedge hreset_n)
if(~hreset_n)
mem_wstrb <= 'h0;
else if(hbus_ena & hwrite) begin
case(hsize)
'b000: begin
case(haddr[:])
'b00: mem_wstrb <= 4'b0001;
'b01: mem_wstrb <= 4'b0010;
'b10: mem_wstrb <= 4'b0100;
'b11: mem_wstrb <= 4'b1000;
endcase
end
'b001: begin
case(haddr[])
'b0: mem_wstrb <= 4'b0011;
'b1: mem_wstrb <= 4'b1100;
endcase
end
'b010: begin
mem_wstrb <= 'b1111;
end
default: begin
mem_wstrb <= 'b0000;
end
endcase
end
else begin
mem_wstrb <= 'b0000;
end always @(posedge hclk)
if(hbus_ena_d) begin
if(mem_wstrb[])
mem[haddr[:]][ : ] <= hwdata[ : ];
if(mem_wstrb[])
mem[haddr[:]][: ] <= hwdata[: ];
if(mem_wstrb[])
mem[haddr[:]][:] <= hwdata[:];
if(mem_wstrb[])
mem[haddr[:]][:] <= hwdata[:];
end always @(posedge hclk)
if(hbus_ena)
hrdata <= mem[haddr[:]]; endmodule
AHB总线RAM Verilog实例的更多相关文章
- 基于AHB总线的master读写设计(Verilog)
一.AHB总线学习 1. AHB总线结构 如图所示,AHB总线系统利用中央多路选择机制实现主机与从机的互联问题.从图中可以看出,AHB总线结构主要可分为三部分:主机.从机.控制部分.控制部分由仲裁器. ...
- AHB总线协议
https://blog.csdn.net/linton1/article/details/79649249 1. 简介 AHB(Advanced High Performance Bus)总线规范是 ...
- AMBA AHB总线
Advanced Microcontroller Bus Architecture, 即AMBA,是ARM公司提出的总线规范,被很多SoC设计所采用,常用的实现有AHB(Advanced High-P ...
- AHB 总线问答(转)
AHB总线问答 http://blog.163.com/huanhuan_hdu/blog/static/1352981182011625916845/ 仲裁:主设备可以在一个突发传输中解除HLOCK ...
- AHB总线和APB总线
AHB主要用于高性能模块(如CPU.DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作:非三态的实现方式:支持突发传输:支持分段传输:支持多个主控制器:可配置 ...
- 总线读写---verilog代码
总线读写---verilog代码 `timescale 1ns / 1ps ////////////////////////////////////////////////////////////// ...
- 51单片机 | 1-Wire总线及应用实例
———————————————————————————————————————————— 1-Wire总线 - - - - - - - - - - - - - - - - - - - - - - - ...
- DUAL PORT RAM应用实例
作者:桂. 时间:2018-05-14 12:11:00 链接:http://www.cnblogs.com/xingshansi/p/9035522.html 前言 主要是Xilinx 常用模块汇 ...
- AHB总线协议(二)
下图是8拍回环字突发传输:地址将在 32 字节边界处回环因此地址 0x3C 之后的地址是 0x20. 下图是8增量半字突发传输,所以地址每次增加 2 个字节并且突发在递增因此地址连续增加通过了 16 ...
随机推荐
- java.util.ConcurrentModification并发修改异常
在运行下面这段代码时出现了并发修改异常java.util.ConcurrentModification: public static void main(String[] args) { List l ...
- JWT认证不通过导致不能访问视图的解决方案
在做商城项目的购物车模块时,发现了一个问题. 需求:当用户登录时,添加商品到购物车的数据保存在redis.当用户未登录时,添加商品到购物车的数据保存在cookies.两个功能都写在一个视图里面.以JW ...
- Idea创建模板
新建文件模板 /** * * @author zenglw * @date ${DATE} */ Mapper #if (${PACKAGE_NAME} && ${PACKAGE_NA ...
- vConsole ~ 移动开发调试工具
在开发移动端项目时,有时候在PC端好好的,但是到了手机上出bug,很难调试,这时候可以用vConsole调试工具 使用方式 1.直接引入 <script src="vconsole.m ...
- Go语言标准包之用io包模拟curl
最后一个书上的标准包,但真正学习的路才开始... package main import ( "bytes" "fmt" "os" &quo ...
- [水煮 ASP.NET Web API2 方法论](1-8)添加 Session 状态
问题 ASP.NET Web API 构建 Web 应用程序时,要求使用 Session 在服务器存储一些用户特定的信息 解决方案 ASP.NET Web API 不支持 Session,因为 API ...
- Mybatis框架-2
1.Mybatis中的接口形式 在Mybatis中使用接口形式将通过代理对象调用方法,从而实现sql的执行 1)定义一个接口 package mapper; import java.util.List ...
- 用Fiddler进行弱网测试
1.作为一个好的程序猿,不但要写一手高质量的代码,而且要学会用高质量的测试工具测试自己的代码效果,接下来给大家推荐一下:用Fiddler进行弱网环境下的测试,请不要忽略这一点,因为用户在网速慢的情况下 ...
- flutter vscode插件
代码片段
- 17-7-26-react-router入门
完蛋了,上司最近都和颜悦色的,搞得我跑路的决心大大减退,不过还是要跑路.毕竟面向工资编程.今天一天基本都在挑项目的CSS,由于是别人哪里直接copy的,然后css我也直接copy的codepen上的源 ...