首页 > 其他分享 >APB Slave Design

APB Slave Design

时间:2023-10-23 22:11:09浏览次数:23  
标签:Slave 31 psel apb Design && APB input reg

APB Slave Design






module apb_slave
#(
  REG1_ADDR = 8'h00,
  REG2_ADDR = 8'h04,
  REG3_ADDR = 8'h08
)
(
  // input signals
  input pclk,
  input presetn,
  input psel,
  input penable,
  input pwrite,
  input [31:0] pwdata,
  input [31:0] paddr,
  output reg [31:0] prdata,
  
);

// 读写信号
wire apb_write;
wire apb_read;

// 定义三个寄存器
reg [31:0] reg1;
reg [31:0] reg2;
reg [31:0] reg3;

reg [31:0] dummy_reg; 

// 产生读写信号
assign apb_write = pwrite && psel && penable;
assign apb_read = (!pwrite) && psel && penable;

// 写操作
always @ (posedge pclk or negedge presetn) begin
  if(!presetn)
    begin
      reg1 <= 32'b0;
      reg2 <= 32'b0;
      reg3 <= 32'b0;
    end
  else if(ahb_write)
    begin
      case (paddr[7:0])
        REG1_ADDR:reg1 <= pwdata;
        REG2_ADDR:reg2 <= pwdata;
        REG3_ADDR:reg3 <= pwdata;
        default:dummy_reg <= pwdata;
      endcase
    end
end

always @ (posedge pclk or negedge presetn) begin
 if(ahb_read)
    begin
      case (paddr[7:0])
        REG1_ADDR:prdata <= reg1;
        REG2_ADDR:prdata <= reg2;
        REG3_ADDR:prdata <= reg3;
        default:prdata <= dummy_reg;
      endcase
    end
end

endmodule





总结

  • 硬件思维和软件思维需要区分,Verilog是并行执行的
  • 多个master,其中一个被grant,其他的master发送的信号仍然存在,所以需要mux通过hmaster进行选择master

标签:Slave,31,psel,apb,Design,&&,APB,input,reg
From: https://www.cnblogs.com/Icer-newer/p/17783541.html

相关文章

  • C. Medium Design
    C.MediumDesignThearray$a_1,a_2,\ldots,a_m$isinitiallyfilledwithzeroes.Youaregiven$n$pairwisedistinctsegments$1\lel_i\ler_i\lem$.Youhavetoselectanarbitrarysubsetofthesesegments(inparticular,youmayselectanempt......
  • AntDesignVue 通过点击确定按钮实现文件上传
    示例图相关代码<template><div><a-modalv-model:visible="props.uploadVisible"width="1300px":footer="null"maskClosable@......
  • CF1884C Medium Design
    思路Step1.贪心拿到题后,第一时间想到贪心,如果这个区间加上会使答案变小或不变就不加。但是很显然,这个贪心是错误的。如果答案的最大值在区间B,但是先加了区间A,导致加区间B使答案不变,那么这样就会使答案变劣。所以贪心是错误的。Step2.枚举接着,想到了可以枚举最小值,如......
  • jenkins安装部署、主从架构、slave镜像、K8S对接
    介绍CI/CD工具,自动化持续集成和持续部署,用于构建各种自动化任务。官方提供了docker镜像https://hub.docker.com/r/jenkins/jenkins使用Deployments部署镜像,然后通过暴露jenkins的8080端口(web端口)和50000端口(slave通信端口),另外容器启动后所有数据都是存储在容器内的/var/jenkin......
  • Altium Designer 2017「AD 17」精简汉化版下载附安装激活步骤
    AltiumDesigner17(简称AD17)是一款专业的PCB电路设计软件,新版带来了大量实用更新和增强,如全新的PCB布线及增强技术、动态铺铜、自动交叉搜索等等。设计者能够运用该版本中提供的诸多全新功能,将自己从干扰设计工作的琐碎任务中解放出来,从而完全专注于设计本身,尽情享受创新激情。软......
  • Adobe InDesign CC2021 for Mac「ID」汉化版 一键安装 永久使用
    AdobeInDesign2021中文直装版是专业的版面设计和桌面出版软件,使用旨在为用户提供设计、预检、发布等一体化的功能,为宣传册、海报以及其他印刷或数字媒体制作完美的布局。软件地址:看置顶贴AdobeInDesign2021Mac版的软件亮点:1、设计任何材料:信笺,传单,海报,小册子,年度报告,杂志和书......
  • 使用 Ant Design Vue 你可能会遇到的14个问题
    公司有一个新需求,在原来项目基础上开发,项目中使用AntDesignVue,版本是1.X,在此记录下遇到的问题;对于没有使用过或者使用程度不深的同学来说,希望可以帮助你在开发中遇到问题时有个参考。对于已经熟练使用的同学,可能这些问题都遇到过,欢迎大家在评论区补充。1、实现对下拉框显示......
  • uniCloud cms 自媒体资讯新闻文章应用系统 uniapp+uniCloud+AntDesignVue Life cms
    介绍LifeCMS是uniCloud+uni-app云端一体全套CMS/自媒体/资讯/新闻/文章应用系统,前台包含注册、登录(账号密码登录、短信登录、微信手机号快捷登录、微信一键登录、App手机一键登录、Apple登录)、文章列表、文章详情、搜索、广告、分享、评论、回复、点赞、收藏、用户中心、意见......
  • [转] VSCode中 Vetur插件排版Vue文件 Col 标签子标签不被缩进的问题 iview viewDesign
    [转]VSCode中Vetur插件排版Vue文件Col标签子标签不被缩进的问题iviewviewDesign自动格式化问题Col标签不对齐首先直接放解决办法在vsCodesettings.json中添加{//缩进大小,自行按需配置"vetur.format.options.tabSize":4,"vetur.format.defaultFo......
  • Vivado生成bitstream时报错[Opt 31-67] Problem: A LUT3 cell in the design is missi
    这个原因主要是因为有一个引脚没有用到,解决方法。1、打开Schematic。2、根据提示的模块去找,比如说我的报错。[Opt31-67]Problem:ALUT3cellinthedesignismissingaconnectiononinputpinI1,whichisusedbytheLUTequation.Thispinhaseitherbeenleftun......