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 ...
随机推荐
- redis的安装和php的redis扩展
一.redis的安装和配置 1.官方现在源码 https://redis.io/download 2.解压源码 tar zxvf redis-3.2.11.tar.gz 3.编译 make 编译 ...
- bzoj1030 AC自动机+dp
思路:建状态图,在状态图上dp. #include<bits/stdc++.h> #define LL long long #define ll long long #define fi ...
- Centos7 Elasticsearch部署
(1)ELKStack简介 1.elk介绍 ELK Stack包含:ElasticSearch.Logstash.Kibana ElasticSearch是一个搜索引擎,用来搜索.分析.存储日志.它是 ...
- python3 2017.3.19
今天弄了一个晚上没弄出来一个小东西,只弄出来了写追加,而且还是笨方法,起码死不掉那种. global log 127.0.0.1 local2 daemon maxconn 256 log 127.0 ...
- 总结分析Java常见的四种引用
从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引用和虚引用. 1.强引用 本章前文介绍的引用实际上都是强引用, ...
- 洛谷—— P1598 垂直柱状图
P1598 垂直柱状图 题目描述 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过72个字符),然后用柱状图输出每个字符在输入文件中出现的次数.严格地按照输出样例来安排你的输出格式. ...
- 四川oi 萌萌哒 (分层并查集)
萌萌哒 时间限制: 1 Sec 内存限制: 256 MB提交: 12 解决: 2[提交][状态][讨论版] 题目描述 一个长度为 n 的大数,用 S1S2S3...Sn表示,其中 Si表示数的第 ...
- 叙Windows平台下基于MBR和UEFI的bootkit(一)--以MBR为例
安全的对抗首先在权限方面,权限高的进程对权限低的权限就是就是降维打击,无往不利.当权限相同时,启动得早便为王.所谓的bootkit也就是基于这个思路设计的一种复杂病毒.它优先于Windows系统启动, ...
- Visual Studio 2017创建XAML文件
Visual Studio 2017创建XAML文件 在Visual Stuido 2015中,在已经创建好的项目中添加XAML文件,只要右击项目,单击“添加”|“新建项”命令,然后从“添加新项” ...
- Beaglebone Black教程项目1闪烁板载LED
Beaglebone Black教程项目1闪烁板载LED 项目1闪烁板载LED 当设置完你的Beaglebone Black的时候,可能早就非常期待你的第一个项目了.下面就来满足大家的愿望,当然,这个 ...