IC设计基础001:寄存器读写,读清是如何实现的
1、Soc读写是如何实现的?
读有效: mem_rd 读写地址:mem_rw_addr, 读取的数据mem_rd_dat, 读取数据有效:mem_rd_datvld, 写有效 mem_wr, 写数据mem_wr_dat
2、读清是如何实现的?
代码中data_err_dy实现了读清功能,data_err:1表示有效,存在错误数据,在mem总线读取之前,data_err_dy一直保持为1,mem总线读取后,将data_err_dy清零。
module soc_mem_wr
(input soc_clk ,input soc_rst_n ,input mem_rd ,input mem_wr ,input [9:0] mem_rw_addr ,input [31:0] mem_wr_dat ,output reg [31:0] mem_rd_dat ,output reg mem_rd_datvld ,input data_err ,output reg send_data_enable ,output reg data_down_req );reg data_err_dy ;always @ (posedge soc_clk or negedge soc_rst_n) beginif(!soc_rst_n)beginsend_data_enable <= 1'b0; data_down_req <= 1'b0 ;end else beginif(mem_wr)case(mem_rw_addr)10'h0 : send_data_enable <= mem_wr_dat[0] ;10'h1 : data_down_req <= mem_wr_dat[0] ;default : ;endcaseendalways @ (posedge soc_clk or negedge soc_rst_n) beginif(!soc_rst_n)mem_rd_datvld <= 1'b0 ;elsemem_rd_datvld <= mem_rd ;always @ (posedge soc_clk or negedge soc_rst_n) beginif(!soc_rst_n)mem_rd_dat <= 32'b0; else if(mem_rd)case(mem_rw_addr)10'h0 : mem_wr_dat <= {31'b0,send_data_enable } ;10'h1 : mem_wr_dat <= {31'b0,data_down_req } ;10'h2 : mem_wr_dat <= {31'b0,data_err_dy } ;default : mem_wr_dat <= 32'hffff_ffff ;endcaseend//读清是如何实现的always @ (posedge soc_clk or negedge soc_rst_n) beginif(!soc_rst_n)data_err_dy <= 1'b0; elsedata_err_dy <= (mem_rd&(mem_rw_addr==10'h2))? 1'b0 :data_err_dy ? data_err_dy : data_err ;endmodule
IC设计基础001:寄存器读写,读清是如何实现的相关推荐
- UEFI开发历程2—基于SuperIO芯片的寄存器读写
一.SuperIO介绍 目前市面上的主流SuperIO芯片有NCT.ITE等厂商的生产的芯片,本文主要针对IT8613E这款芯片的逻辑设备寄存器的读写进行介绍. IT8613E主要用来连接外部低速设备 ...
- 2.3 Openwrt 模拟 spi 及其sx1301寄存器读写测试
本节提示:本节所需环境:ubuntu 16 / 18工具:VScode.Cmake.openwrt 交叉编译器 2.3 Openwrt 模拟 spi 及其sx1301寄存器读写测试 通过前面两章节的操 ...
- vivado的vio怎么使用_使用VIVADO中VIO模拟CPU接口进行在线寄存器读写调试(附源代码)...
debug,尤其是通信芯片的debug,可以有很多的方法.一个数据帧从进入到输出,可以在通路上的关键节点处设置监测如各种计数器等,可通过VIO(xilinx)定时上报实时状态.可以把VIO的各个信号线 ...
- 【Android 逆向】ptrace 函数 ( ptrace 函数族 | 进程附着 | 进程脱离 | 进程数据读写权限 | 进程对应的主线程寄存器读写 | 单步调试 |ptrace 函数族状态转换 )
文章目录 一.ptrace 函数族 1.进程附着 2.进程脱离 3.进程数据读写权限 4.进程对应的主线程寄存器读写 5.单步调试 6.继续向后执行 二.ptrace 函数族状态转换 一.ptrace ...
- LPS25HB 寄存器读写程序解读
文章目录 LPS25HB 寄存器读写程序解读 1.读写功能的统一接口函数 2.设计结构体函数指针来调用统一的读写函数 3.与通信方式无关的寄存器读写抽象函数接口 LPS25HB 寄存器读写程序解读 一 ...
- 2021-07-04 寄存器读写
1. 往寄存器里 写值 再读值 typedef uint8_t u8; typedef uint16_t u16; typedef uint32_t u32; 往寄存器里 写值 void reg_wr ...
- 硬件工程师面试集锦 模拟电路 数字电路 IC设计基础 单片机 信号与系统 DSP 嵌入式
模拟电路 1.基尔霍夫定理的内容是什么?(仕兰微电子) 2.平板电容公式(C=εS/4πkd).(未知) 3.最基本的如三极管曲线特性.(未知) 4.描述反馈电路的概念,列举他们的应用 ...
- (转)硬件工程师面试集锦 模拟电路 数字电路 IC设计基础 单片机 信号与系统 DSP 嵌入式
模拟电路 1.基尔霍夫定理的内容是什么?(仕兰微电子) 2.平板电容公式(C=εS/4πkd).(未知) 3.最基本的如三极管曲线特性.(未知) 4.描述反馈电路的概念,列举他们的应用.(仕兰 ...
- 8.裸板--C语言下的寄存器的读写置位清零操作
从CPU的角度来看,外设的寄存器跟通用寄存器操作一样,对它们的地址进行读写移位等操作即可进行配置读取写入等动作. 通用寄存器有15个 寄存器名字 Reg# APCS 意义 R0 a1 工作寄存器 R1 ...
最新文章
- 包吃包住包机票的培训你见过吗?云南高通量条形码培训班,截止5月31日
- jquery实现99乘法表的动态显示
- hdu4882 水贪心
- Linux内核概念:per-CPU,cpumask,inicall机制,通知链
- 计算机兴趣小组活动教学教案,长春一中计算机兴趣小组教案.ppt
- centos下 安装jdk
- jdk jre jvm的关系
- 擦地机器人排行榜_擦地机器人品牌排行榜来了,你想了解的都在这里
- 批处理(bat)文件中输出中文乱码怎么办?
- ElasticSearch2.1 基于空间位置geo_query距离计算
- Codeforces-710E Generate a String
- USACO 3.3 Riding the Fences(欧拉路输出路径)
- vue.js下载教程
- Python 源码剖析 目录
- CI框架的使用-环境搭建
- Java开发人员2021年的职位描述和职责
- Md5码的生成及变种Md5码的生成
- android地图方位角,根据两点经纬度,计算距离、方位角
- win10无法装载重装系统iso文件_win10镜像不能安装系统如何解决_win10镜像无法安装处理方法...
- 使用SLT系统抽数到hana系统
热门文章
- 公共基础知识:中国地形地貌
- glob.glob()函数
- 跟i9处理器差不多的服务器芯片,AMD下一代服务器处理器代号“星河舰队”
- 以一半的价格组装专业的深度学习工作站
- 动态毛玻璃特效html,实现div毛玻璃背景
- 英语足球foteball运动
- 面试题:“你的职业规划是什么?”
- Codeforces1541B Pleasant Pairs (思维)
- 企业微信海外版此前将名称改为 “Wecom”,腾讯打算将其设置为微信的潜在替代方案
- 基于Visual C++2010 与office2010开发办公自动化(2)-自动生成excel与word并打开