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的更多相关文章

  1. APB总线

    APB(Advance Peripheral Bus)是AMBA总线的一部分,从1998年第一版至今共有3个版本. AMBA 2 APB Specfication:定义最基本的信号interface, ...

  2. PL301 matrix内部模块

    ASIB中的valid信号,有两部分,一部分add产生的地址映射,到main中的default addr.(vect) 一部分由Dmu和Cdas组成,到main中的build. Dmu:interco ...

  3. CDC spyglass

    SoC中会有着几百的clock domains,millions的async data crossing. Glitch等cdc问题是netlist level simulation的主要目的. CD ...

  4. AMAB interconnector PL301(二)

    1)Frequency Conversion Components:包含三种component. AXI-AXI async bridge:拥有两种mode:bypass mode 和 async m ...

  5. X-007 FriendlyARM tiny4412 u-boot移植之内存初始化

    <<<<<<<<<<<<<<<<<<<<<<<<< ...

  6. tiny4412 --Uboot移植(5) DDR3内存

    开发环境:win10 64位 + VMware12 + Ubuntu14.04 32位 工具链:linaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-g ...

  7. Mobilize.Net Silverlight bridge to Windows 10 UWP

    Windows UWP 既 Windows 10 Universal Windows platform,这个微软基于Windows NT内核的个运行时(Runtime)平台,此平台横跨所有的 Wind ...

  8. 编程概念--使用async和await的异步编程

    Asynchronous Programming with Async and Await You can avoid performance bottlenecks and enhance the ...

  9. [C#] async 的三大返回类型

    async 的三大返回类型 序 博主简单数了下自己发布过的异步文章,已经断断续续 8 篇了,这次我想以 async 的返回类型为例,单独谈谈. 异步方法具有三个可让开发人员选择的返回类型:Task&l ...

随机推荐

  1. android jdbc 远程数据库

    http://blog.csdn.net/conowen/article/details/7435231/

  2. HTML5新标签和属性

    1.<time>标签(支持IE9以上和其他浏览器) 今年是<time datetime="2015-12-12">2015年</time> &l ...

  3. HAL层Camera模块Dump图片--工作积累

    Camera的raw data一般都是YUV420的格式,数据的特点是: YUV 4:2:0采样,每四个Y共用一组UV分量 YUV420格式: 先Y,后V,中间是U.其中的Y是w * h,U和V是w/ ...

  4. 一本很不错的书----DOOM启示录

    强推,所有玩游戏的和做游戏的热爱游戏的都应该看看. 摘录了一些话. 盖茨不明白,为什么啊为什么,为什么一个麦斯奎特的小公司,居然能从他手下挖走迈克尔·亚伯拉什,而且仅仅凭借几个游戏就胜过了自己的软件帝 ...

  5. 我的工具箱之Securecrt6.5.0

    Securecrt是一款支持SSH的终端仿真软件,一般用于连接Linux/Unix系统.感觉这个比Putty强些. 下载地址是:http://pan.baidu.com/s/1gednNhh

  6. textarea 默认文字获取焦点失去焦点

    <textarea name="textarea" cols="" title="contactForm" class="t ...

  7. SendEmail语法

    SendEmail语法 示例: /usr/local/bin/sendEmail -f shengwei.tang@joy4you.com -t @qq.com -s smtp.exmail.qq.c ...

  8. JavaScript:表单验证模型

    之前做的验证提示以弹框的形式出现太丑陋了,不符合标准的验证提示.如果要想进行更好的数据验证操作,那么必须进行一些模块化设计,通过表单样式的改变来提示.其实,一般的数据验证无非就是那么几种,例如: 大多 ...

  9. 视差效果原理 background-attachment:fixed

    <html> <head> <style type="text/css"> body { background-image:url('http: ...

  10. ApplicationContext.xml文件详解

    想必用过Spring的程序员们都有这样的感觉,Spring把逻辑层封装的太完美了(个人感觉View层封装的不是很好).以至于有的初学者都不知道Spring配置文件的意思,就拿来用了.所以今天我给大家详 ...