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 ...
随机推荐
- http-server:一个简单的零配置命令行的http服务器
首先简介一下http-server: http-server是一个简单的零配置命令行http服务器,他对于生产使用来说足够强大,他是简单和可删节足以用于测试,足够简单易用,而且可用于本地开发 1.首先 ...
- hdu 2686&&hdu 3376(拆点+构图+最小费用最大流)
Matrix Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- 稍微谈一下 javascript 开发中的 MVC 模式
随着前台开发日益受到重视,客户端代码比重日益增加的今天,如何在javascript开发里应用MVC模式,这个问题似乎会一直被提到,所以偶在这里粗略的谈一下自己的看法吧. MVC模式的基本理念,是通过把 ...
- hdu5798
官方题解: 考虑去掉abs符号,发现只有相邻两个数的最高位被影响了才会影响abs的符号,所以可以按照最高位不一样的位置分类,之后考虑朴素枚举x从0到2^20,每次的复杂度是O(400),无法通过,考虑 ...
- 前端javascript实现二进制读写操作
由于种种原因,在浏览器中无法像nodejs那样操作二进制. 最近写了一个在浏览器端操作读写二进制的帮助类 !function (entrance) { "use strict"; ...
- R语言平均值和加权平均值
> a=c(,,) > mean(a) #平均值 [] > wt=c(,,) > weighted.mean(a,wt) #加权平均值 []
- 五十 常用第三方模块 PIL
PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,但API却非常简单易用. 由于PIL仅支持到Python 2.7,加上年久失修 ...
- 关于sql查询语句中的别名
sql语句中给子查询或其他查询类型加别名的时候可能会报错 java.sql.SQLException: 无法转换为内部表示 原因是select返回类型的实体类中没有写该别名 原来的实体类 更改后的实体 ...
- 【C语言期末实训】学生学籍管理系统
目录: 一,设计要求 ,总体要求: ,具体功能: 二,设计框架 三,程序代码 ,声明函数和头文件 ,声明结构体 ,声明全局变量 ,主体启动函数 ,主菜单函数 ,创建学生档案函数 ,编辑学生档案函数 , ...
- 倚天屠龙(一):妙用IDA Pro--利用IDAPython编写调试插件
一:前言 虽然静态分析有Radare2,Hopper这种新星之秀,动态调试有Ollydbg,Windbg这种老牌霸主,但是IDA Pro仍然是大部分二进制安全工程师最喜爱的工具,除了价格过于昂贵,基本 ...