ahb2apb和apb2apb async bridge
AHB 3.0目前不支持security world.
AHB到APB的async bridge主要包括三个部分:
1)AHB domain
1)产生信号hactive = HSEL & HTRANS[1];新的传输地址有效
HTRANS的第一位表示一个新的seq或者连续的transfer
HTARNS的第零位表示一个idle或busy的transfer
用ahb的clock,寄存一拍
always @(posedge HCLK or negedge HRESETn)
if(!RESETn)
else if(HREADYin)
ahb_active = hactive
2)产生信号haccess = HREADYin & hactive;可以接受数据传输
HREADYin信号表示slave已经ready。
用ahb的clock,寄存一拍
always @(posedge HCLK or negedge HRESETn)
if(!RESETn)
else ahb_access = haccess
3)用ahb的clock,寄存write和addr
always @(posedge HCLK or negedge HRESETn)
if(!RESETn)
else if(haccess)
ahb_write = HWRITE
ahb_addr = HADDR
4)用ahb的clock,寄存wdata
产生信号ahb_wdata_ld = ahb_access & ahb_write
always @(posedge HCLK or negedge HRESETn)
if(!RESETn)
else if(ahb_wdata_ld)
ahb_wdata = HWDATA
5)产生信号HREADYout = ~ahb_active|apb_ack_pls
产生信号HRDATA = apb_rdata
2)AHB clock domain和APB clock domain的handshake
根据ahb_access信号,产生ahb_req信号,同时在apb_clk domain中进行sync
always @(posedge HCLK or negedge HRESETn)
if(!RESETn)
else if(ahb_access)
ahb_req = ~ahb_req
always @(posedge PCLK or negedge PRESETn)
if(!RESETn)
else
ahb_req_sync1 = ahb_req
ahb_req_sync2 = ahb_req_sync1
ahb_req_sync3 = ahb_req_sync2
ahb_req_pls = ahb_req_sync2^ahb_req_sync3
根据ahb_reg_pls_d信号,产生ahb_ack信号,同时在ahb_clk domain中进行sync
always @(posedge PCLK or negedge PRESETn)
if(!RESETn)
else if(ahb_reg_pls_d)
ahb_ack = ~ahb_ack
always @(posedge HCLK or negedge HRESETn)
if(!RESETn)
else
ahb_ack_sync1 = ahb_ack
ahb_ack_sync2 = ahb_ack_sync1
ahb_ack_sync3 = ahb_ack_sync2
ahb_ack_pls = ahb_ack_sync2^ahb_ack_sync3
3)APB domain
寄存ahb_req_pls一拍
always @(posedge PCLK or negedge PRESETn)
if(!RESETn)
else ahb_req_pls_d = ~ahb_req_pls
PWRITE/PADDR/PWDATA 直接连接到AHB的reg中,
PSEL = ahb_req_pls | ahb_req_pls_d
PENABLE = ahb_req_pls_d
apb_rdata的赋值
apb_rdata_ld = ahb_req_pls_d & ~ahb_write
always @(posedge HCLK or negedge HRESETn)
if(!RESETn)
else if(apb_rdata_ld)
apb_rdata = PRDATA
apb2apb的async bridge:
1)req由master端产生,在enable阶段有效,传递到slave端,有效一个cycle,用来锁存master端的addr/strb/data信号到slave的寄存器中。
2)ack信号由slave端产生,在sready有效且enable有效情况下产生。有效一个cycle,锁存rdata和resp。
3)Latch表示只含有if()的always模块,被综合为带clock gate的FF.

ahb2apb和apb2apb async bridge的更多相关文章
- APB总线
APB(Advance Peripheral Bus)是AMBA总线的一部分,从1998年第一版至今共有3个版本. AMBA 2 APB Specfication:定义最基本的信号interface, ...
- PL301 matrix内部模块
ASIB中的valid信号,有两部分,一部分add产生的地址映射,到main中的default addr.(vect) 一部分由Dmu和Cdas组成,到main中的build. Dmu:interco ...
- CDC spyglass
SoC中会有着几百的clock domains,millions的async data crossing. Glitch等cdc问题是netlist level simulation的主要目的. CD ...
- AMAB interconnector PL301(二)
1)Frequency Conversion Components:包含三种component. AXI-AXI async bridge:拥有两种mode:bypass mode 和 async m ...
- X-007 FriendlyARM tiny4412 u-boot移植之内存初始化
<<<<<<<<<<<<<<<<<<<<<<<<< ...
- tiny4412 --Uboot移植(5) DDR3内存
开发环境:win10 64位 + VMware12 + Ubuntu14.04 32位 工具链:linaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-g ...
- Mobilize.Net Silverlight bridge to Windows 10 UWP
Windows UWP 既 Windows 10 Universal Windows platform,这个微软基于Windows NT内核的个运行时(Runtime)平台,此平台横跨所有的 Wind ...
- 编程概念--使用async和await的异步编程
Asynchronous Programming with Async and Await You can avoid performance bottlenecks and enhance the ...
- [C#] async 的三大返回类型
async 的三大返回类型 序 博主简单数了下自己发布过的异步文章,已经断断续续 8 篇了,这次我想以 async 的返回类型为例,单独谈谈. 异步方法具有三个可让开发人员选择的返回类型:Task&l ...
随机推荐
- ActiveMQ发布订阅模式
ActiveMQ的另一种模式就SUB/HUB即发布订阅模式,是SUB/hub就是一拖N的USB分线器的意思.意思就是一个来源分到N个出口.还是上节的例子,当一个订单产生后,后台N个系统需要联动,但有一 ...
- Ajax如何解决跨域问题
如果需要从不同的服务器(不同域名)上获取数据就需要使用跨域 HTTP 请求. 跨域请求在网页上非常常见.很多网页从不同服务器上载入 CSS, 图片,Js脚本等. 在现代浏览器中,为了数据的安全,所有请 ...
- github添加SSH Key
1.背景介绍 缘由:在github上下载goagent时出现错误. 在终端使用命令:git clone git@github.com:phuslu/goagent.git 会报权限错误如下: Clon ...
- sqlserver 中含有某字符串
查找 sqlserver 中字符串的ascii码SET TEXTSIZE 0-- Create variables for the character string and for the curre ...
- ie下的onscroll和onresize的优化
ie下的scroll和resize的优化 1.onscroll function scrollEvent(){ //do something... console.log('do something. ...
- 如何查看Servlet、JSP的版本(Tomcat V7.0.70)
1. 简要说明:Tomcat6.0 所支持的是Servlet2.5,Tomcat 7.0 所支持的Servlet3.0,Servlet2.5 和Servlet3.0的差异较大,对于Servlet3.0 ...
- Linux命令行–更多bash shell命令(转)
4.1.1 探查程序 ps 命令 默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户进程的进程 显示的当前进程的项目 进程号 运行在哪个终端(tty) 进程占用的CPU时间 Linux系统支 ...
- Android系统自带样式(@android:style/)
在AndroidManifest.xml文件的activity中配置 1.android:theme="@android:style/Theme" 默认状态,即如果theme这里不 ...
- mysql 模块使用
import MySQLdb conn = MySQLdb.connect(host=',db='fengjian') cur = conn.cursor() sql = 'insert into a ...
- CNContact对通讯录的基本使用(增删改查)
/** * 注意:iOS9才有能使用 * 首先在工程里导入ContactsUI.framework和Contacts.framework两个框架 * * * 源代码的链接地址 * 链接: http:/ ...