总线时序_单总线时序 - CSDN
精华内容
参与话题
  • 总线的操作时序和操作方式

    千次阅读 2011-12-05 23:39:00
    总线的操作时序和操作方式 操作时序(timing):各信号有效的先后顺序及配合关系 (1) 同步方式 •发送、接收双方统一步调,具备统一的时钟信号。 •完全由同步时钟确定收发时刻,没有应答信号...

    总线的操作时序和操作方式





    操作时序(timing):各信号有效的先后顺序及配合关系
    (1) 同步方式
    •发送、接收双方统一步调,具备统一的时钟信号。
    •完全由同步时钟确定收发时刻,没有应答信号。
    •例:总线的读操作


    (2) 异步方式
    •发送、接收双方根据自身的工作速度来确定总线传送的步调
    •没有统一的时钟信号,有主同步MSYN和从同步SSYN

    •MSYN上升沿:主设备启动输入
    •SSYN上升沿:从设备已将数据准备好;
    •MSYN下降沿:主设备已将数据取走;
    •SSYN下降沿:从设备让出数据总线
    •特点:各设备以自身需要的速度工作,时间利用率高。

    • 事件C: Ssyn↑→Msyn↓           
    • 事件R: Msyn↓ → Ssyn ↓        
    • 全互锁:有C且有R
    • 半互锁:或有C、或有R
    (3) 准同步方式
    在完全同步方式中加一点异步的手段。
    有同步时钟,也有应答信号线。同步地采样应答信号




    总线操作方式


    微机系统各部件之间的信息交换是通过总线操作周期完成的,一个总线周期通常分为以下四个阶段。
      ① 总线请求和仲裁阶段:当有多个模块提出总线请求时,必须由仲裁机构仲裁,确定将总线的使用权分配给哪个模块。 
      ② 寻址阶段:取得总线使用权的模块,经总线发出本次要访问的存储器或I/O端口的地址和有关命令。 
      ③ 传送数据阶段:主模块(指取得总线控制权的模块)与其他模块之间进行数据的传送。 
      ④ 结束阶段:主模块将有关信息从总线上撤除,主模块交出对总线的控制权。
    展开全文
  • AXI总线协议时序

    千次阅读 2018-04-13 21:18:23
    由于ZYNQ架构和常用接口IP核经常出现 AXI协议,赛灵思的协议手册讲解时序比较分散。所以笔者收藏AXI协议的几种时序,方便编程。1>AXI_LITE协议:( 1) 读地址通道, 包含ARVALID, ARADDR, ARREADY信号;( 2...
        由于ZYNQ架构和常用接口IP核经常出现 AXI协议,赛灵思的协议手册讲解时序比较分散。所以笔者收藏AXI协议的几种时序,方便编程。

    1>AXI_LITE协议:

    ( 1) 读地址通道, 包含ARVALID, ARADDR, ARREADY信号;

    ( 2) 读数据通道, 包含RVALID, RDATA, RREADY, RRESP信号;

    ( 3) 写地址通道, 包含AWVALID, AWADDR, AWREADY信号;

    ( 4) 写数据通道, 包含WVALID, WDATA, WSTRB, WREADY信号;

    ( 5) 写应答通道, 包含BVALID, BRESP, BREADY信号;( 6) 系统通道, 包含: ACLK, ARESETN信号。

    AXI4总线和AXI4-Lite总线的信号也有他的命名特点:读地址信号都是以AR开头( A: address; R: read)写地址信号都是以AW开头( A: address; W: write)读数据信号都是以R开头( R: read)写数据信号都是以W开头( W: write)


    XI4总线和AXI4-Lite总线的信号也有他的命名特点:读地址信号都是以AR开头( A: address; R: read)写地址信号都是以AW开头( A: address; W: write)读数据信号都是以R开头( R: read)写数据信号都是以W开头( W: write)

    AXI4总线和AXI4-Lite总线的信号也有他的命名特点:读地址信号都是以AR开头( A: address; R: read)写地址信号都是以AW开头( A: address; W: write)读数据信号都是以R开头( R: read)写数据信号都是以W开头( W: write)

    AXI4总线和AXI4-Lite总线的信号也有他的命名特点:读地址信号都是以AR开头( A: address; R: read)写地址信号都是以AW开头( A: address; W: write)读数据信号都是以R开头( R: read)写数据信号都是以W开头( W: write)

    AXI4总线和AXI4-Lite总线的信号也有他的命名特点:读地址信号都是以AR开头( A: address; R: read)写地址信号都是以AW开头( A: address; W: write)读数据信号都是以R开头( R: read)写数据信号都是以W开头( W: write)

    AXI_LITE读时序:


    AXI_LITE:写时序


    2>AXI_STREAM:

    AXI4-Stream总线的组成有:

    ( 1) ACLK信号: 总线时钟, 上升沿有效;

    ( 2) ARESETN信号: 总线复位, 低电平有效

    ( 3) TREADY信号: 从机告诉主机做好传输准备;

    ( 4) TDATA信号: 数据, 可选宽度32,64,128,256bit

    ( 5) TSTRB信号: 每一bit对应TDATA的一个有效字节, 宽度为TDATA/8

    ( 6) TLAST信号: 主机告诉从机该次传输为突发传输的结尾;

    ( 7) TVALID信号: 主机告诉从机数据本次传输有效;

    ( 8) TUSER信号 : 用户定义信号, 宽度为128bit。



    展开全文
  • IIC总线时序详解

    千次阅读 2017-07-06 09:53:13
    I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件...

    I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。

    1、I2C总线特点
    I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。

    2、总线的构成及信号类型
    I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。


    I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
    开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
    结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
    应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。


      目前有很多半导体集成电路上都集成了I2C接口。带有I2C接口的单片机有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供I2C接口。

    在I2C总线通信的过程中,参与通信的双方互相之间所传输的信息种类归纳如下。

      主控器向被控器发送的信息种类有:启动信号、停止信号、7位地址码、读/写控制位、10位地址码、数据字节、重启动信号、应答信号、时钟脉冲。

      被控器向主控器发送的信息种类有:应答信号、数据字节、时钟低电平。

      下面对I2C总线通信过程中出现的几种信号状态和时序进行分析。


    总线空闲状态
      I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。

    启动信号

    在时钟线SCL保持高电平期间,数据线SDA上的电平被拉低(即负跳变),定义为I2C总线总线的启动信号,它标志着一次数据传输的开始。

    启动信号是一种电平跳变时序信号,而不是一个电平信号。启动信号是由主控器主动建立的,在建立该信号之前I2C总线必须处于空闲状态,如图1所示



    图1


    停止信号
      在时钟线SCL保持高电平期间,数据线SDA被释放,使得SDA返回高电平(即正跳变),称为I2C总线的停止信号,它标志着一次数据传输的终止。

      停止信号也是一种电平跳变时序信号,而不是一个电平信号,停止信号也是由主控器主动建立的,建立该信号之后,I2C总线将返回空闲状态。

    ④数据位传送。  
      在I2C总线上传送的每一位数据都有一个时钟脉冲相对应(或同步控制),即在SCL串行时钟的配合下,在SDA上逐位地串行传送每一位数据。

      进行数据传送时,在SCL呈现高电平期间,SDA上的电平必须保持稳定,低电平为数据0,高电平为数据1。

      只有在SCL为低电平期间,才允许SDA上的电平改变状态。逻辑0的电平为低电压,而逻辑1的电平取决于器件本身的正电源电压VDD(当使用独立电源时),如图2所示。


    图2

    ⑤应答信号。
      I2C总线上的所有数据都是以8位字节传送的,发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。

      应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。

      对于反馈有效应答位ACK的要求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。


      如果接收器是主控器,则在它收到最后一个字节后,发送一个NACK信号,以通知被控发送器结束数据发送,并释放SDA线,以便主控接收器发送一个停止信号P,如图3所示。


    图3


    ⑥插入等待时间。
      如果被控器需要延迟下一个数据字节开始传送的时间,则可以通过把时钟线SCL电平拉低并且保持,使主控器进入等待状态。

      一旦被控器释放时钟线,数据传输就得以继续下去,这样就使得被控器得到足够时间转移已经收到的数据字节,或者准备好即将发送的数据字节。

      带有CPU的被控器在对收到的地址字节做出应答之后,需要一定的时间去执行中断服务子程序,来分析或比较地址码,其间就把SCL线钳位在低电平上,直到处理妥当后才释放SCL线,进而使主控器继续后续数据字节的发送,如图4所示。


    图4


    ⑦重启动信号
      在主控器控制总线期间完成了一次数据通信(发送或接收)之后,如果想继续占用总线再进行一次数据通信(发送或接收),而又不释放总线,就需要利用重启动Sr信号时序。

      重启动信号Sr既作为前一次数据传输的结束,又作为后一次数据传输的开始。利用重启动信号的优点是,在前后两次通信之间主控器不需要释放总线,这样就不会丢失总线的控制权,即不让其他主器件节点抢占总线。

      

    ⑧时钟同步。

      如果在某一I2C总线系统中存在两个主器件节点,分别记为主器件1和主器件2,其时钟输出端分别为CLK1和CLK0,它们都有控制总线的能力。

      假设在某一期间两者相继向SCL线发出了波形不同的时钟脉冲序列CLK1和CLK2(时钟脉冲的高、低电平宽度都是依靠各自内部专用计数器定时产生的),在总线控制权还没有裁定之前这种现象是可能出现的。

      鉴于I2C总线的“线与”特性,使得时钟线SCL上得到的时钟信号波形,既不像主器件1所期望的CLK1,也不像主器件2所期望的CLK2,而是两者进行逻辑与的结果。

      CLKI和CLK2的合成波形作为共同的同步时钟信号,一旦总线控制权裁定给某一主器件,则总线时钟信号将会只由该主器件产生,如图5所示。


    图5


    ⑨总线冲突和总线仲裁。
      假如在某I2C总线系统中存在两个主器件节点,分别记为主器件1和主器件2,其数据输出端分别为DATA1和DATA2,它们都有控制总线的能力,这就存在着发生总线冲突(即写冲突)的可能性。

      假设在某一瞬间两者相继向总线发出了启动信号,鉴于:I2C总线的“线与”特性,使得在数据线SDA上得到的信号波形是DATA1和DATA2两者相与的结果,该结果略微超前送出低电平的主器件1,其DATA1的下降沿被当做SDA的下降沿。

      在总线被启动后,主器件1企图发送数据“101……”,主器件2企图发送数据“100101……”。

      两个主器件在每次发出一个数据位的同时都要对自己输出端的信号电平进行抽检,只要抽检的结果与它们自己预期的电平相符,就会继续占用总线,总线控制权也就得不到裁定结果。

      主器件1的第3位期望发送“1”,也就是在第3个时钟周期内送出高电平。

      在该时钟周期的高电平期间,主器件1进行例行抽检时,结果检测到一个不相匹配的电平“0”,这时主器件1只好决定放弃总线控制杈;因此,主器件2就成了总线的惟一主宰者,总线控制权也就最终得出了裁定结果,从而实现了总线仲裁的功能。

      从以上总线仲裁的完成过程可以得出:仲裁过程主器件1和主器件2都不会丢失数据;各个主器件没有优先级别之分,总线控制权是随机裁定的,即使是抢先发送启动信号的主器件1最终也并没有得到控制杈。

      系统实际上遵循的是“低电平优先”的仲裁原则,将总线判给在数据线上先发送低电平的主器件,而其他发送高电平的主器件将失去总线控制权,如图6所示。


    图6


    ⑩总线封锁状态。
      在特殊情况下,如果需要禁止所有发生在I2C总线上的通信活动,封锁或关闭总线是一种可行途径,只要挂接于该总线上的任意一个器件将时钟线SCL锁定在低电平上即可。


    展开全文
  • coreconnect总线时序

    千次阅读 2012-03-18 08:46:18
    最近的项目要在coreconnect上搭些外设,了解coreconnect的transfer的时序非常重要,coreconnect...第一篇是使用chipscope来观察coreconnect总线时序之plb时序 其实看coreconnect总线的transfer的时序有两种方法:

    最近的项目要在coreconnect上搭些外设,了解coreconnecttransfer的时序非常重要,coreconnect包括三大总线,我想就写三篇博文来简单总结一下coreconnecttransfer的时序。

    第一篇是使用chipscope来观察coreconnect总线时序之plb时序

    其实看coreconnect总线的transfer的时序有两种方法:

         1BFM进行仿真。这要建立仿真的工具,modelsim和所需的EDK的仿真库。这只要PC机就能完成,但是建立仿真工具比较麻烦,而且我自己建的仿真工具对一些外设仿真不了。像读写CF卡这些,我搞很久都搞不定,如果有人知道,请教小弟。

         2,利用chipsocpeEDK里提供的Chipscope Integrated logic Analyzer (ILA)来观察FPGA里实际的总线信号。但是这要有开发板。我想这是最准确的debug的方法。
       其实EDK里也提供chipscope_plb_iba可以对PLB进行观察,但是我发现其实这个IP也是根据Chipscope Integrated logic Analyzer (ILA)修改完成,只是它把plb的所有信号列为观察的信号,但是其实有些信号我们根本都关心,有点多余,观察起来很费劲,所以还是用这个Chipscope Integrated logic Analyzer (ILA)来自定义自己所需观察的信号。

    Processor Local Bus的作用:

    1PLB 总线是一种高带宽、低延迟、高性能的处理器内部总线。

    2,高速的 CPU 核、高速存储器控制器、仲裁器、高速的 DMA 控制器等高性能、宽带宽的设备都连接在 PLB 上。

        我用的是ISE9.1i,EDK9.1i,chipsocpe9.1.03.

       ISEEDK是没有打SP的,但是chipsocpechipsocpe9.1.03的,如果用chipsocpe9.1.01的,EDK生成硬件时会报错。xilinxforum里有人讲。

       这里要用的例子是xilinx提供的在XUPV2P开发板上完成的Slide Show using 256 MB DDR Memory的例程。http://www.xilinx.com/univ/xupv2p_demo_ref_designs.htm

      这个例程是VGA_FrameBufferDDR中读取一行pixel的数据到VGA_FrameBuffer里的Block_ram,最后读取Block_ram里的数据进行显示。

     我关心的是,VGA_FrameBuffer作为一个Master,用plb总线的哪一种transfer来读取DDR里面的数据。

    整个过程如下:

    首先,打开例程。在这里你会看到chipscope_iconchipscope_ila,双击添加这两个IP

     

     

    添加后如下:

     

    第二:修改代码,把关心的信号从VGA_FrameBuffer中引出。

     

     

    第三:双击chipscope_ila设置参数。

    1,采样数

     

     

    采样如果没有资源限制当然是越多越好,但是chipsocpe得采样数据是用片上的BlockRAM来存储,设置太大,综合时会报错。

    2Trigger Unit

    我要观察八组信号,所以使能8Trigger Unit,设置如下:

     

     

    第四:连接chipscope_iconchipscope_ila之间的控制信号。

     


    注意CLK要连接sys_clk_s

    第五,将要观察的信号连接到chipscope_ila

     

     

     

    这样就可以生成硬件了。

    然后,下载硬件,并把软件也跑起来。

    打开chipsocpe,点File下面那个图标连接到JTAG

     

     

    成功连接后,可以看到

     

     

    这些triggerport对应刚才我们连接到上面的信号。右击可以修改triggerport名字。

    修改后我们可以观察到这样的信号图:

     

     

     

    这就是实际中64-bit Master 8-word Line Read From a 64-bit Slave的时序

     

    这与64bitPlbBus.pdf的是大致相同,但是访问DDR要等16clk才能得到数据。

     

    总结:实际的总线时序和datasheet画的总是有一些偏差,有了chipsocpe真的对观察实际运行的总线时序帮助很大,但是就是综合一次比较久。

    使用chipscope来观察coreconnect总线时序的第二篇博文,那就来看看DCR总线的时序吧。

    Device Control Register Bus 有两个作用:

    1DCR总线是用于ppc general purpose registers和  DCR从设备的device control registers之间的数据传输。

    2, DCR总线使configuration registers不在映射到内存地址空间上(它有自己的地址空间),从而减少了PLB总线的负荷,增加了PLB总线的带宽。

    使用的软件是ISE9.1i,EDK9.1i,chipsocpe9.1.03.
    ISEEDK是没有打SP的,但是chipsocpechipsocpe9.1.03的,如果用chipsocpe9.1.01的,EDK生成硬件时会报错。

    本文举例的系统如下:

     

     

    这个系统很简单,除了dcr_ram是自定义的IP外,其它IP都是EDK里提供的。

    dcr_ram,是一个DCRslave,它里面也很简单,我例化了一个RAMB16_S36BLOCKRAM。这样的话,PPC405可以通过DCR总线来向dcr_ram读写数据。这样dcr_ram可以看成一个DCR的寄存器堆,总共有51232位的DCR寄存器。

     

    下面是系统的address

     

     

    可以看到dcr_ram的地址是可以和DDR的地址是有重叠的,这可以说明它们的地址空间是不同的。

    为了访问不同的地址空间,EDK里提供了不同的访问函数。

    DCR的空间:XIo_DcrOutXIo_DcrIn

    PLB的空间:XIo_Out32XIo_In32

    这个IP的实现,如果有时间,我再写一篇博文来介绍。

     

    这个系统的功能很简单,ppc405通过DCR总线,不断地写入和读出dcr_ram.

    代码如下:

     

     

    chipscope_iconchipscope_ila的搭建方法,上一篇博文已经介绍,

    http://xilinx.eefocus.com/utoo/blog/10-02/185008_93c8e.html 这里不再啰嗦。同样,把关心的信号引出。

     

     

    chipscope_ila连接

     

     

    打开chipsocpe,修改信号名,设置触发条件。

     


     

    TriggerPort2对应于我们的DCR write 信号,一旦有上升沿到来,这个chipsocpe开始保存采样。

     

    按下,会出现下图:

     

     

    这是因为还没有运行软件,chipsocpe没有扫到DCR write 上升沿,所以一直处于等待状态。

    我们运行软件,进入debug状态。设置如下断点。

     

     

    运行至断点。Chipsocpe出现信号。

     

     

    这样就完成了对dcr_ram的写入。

    为了证明数据确实被写入Blockram中,我再从Blcokram将数据读出。

    这需要重新设置触发条件和断点。

     

     

    TriggerPort1对应于我们的DCR read 信号,一旦有上升沿到来,这个chipsocpe开始保存采样。

     


     

    SDK也可以看到PPC也读到了正确的数据

     

     

    总结:      DCR总线的读写时序十分简单,只要我们观察到其时序,chipscope可以帮助我们做到这一点。

                更重要的是,FPGA作为软硬件协同设计的平台,需要能做到软硬件的codebugChipscope+SDKdebug,将是最佳的选择。


    使用chipscope来观察coreconnect总线时序的第篇博文,轮到opb了。

    On-Chip Peripheral Bus的作用:

    1,连接具有不同的总线宽度及时序要求的外设,以使这些外设能够尽量减少对 PLB 性能的影响。

    2,一些低速的设备都连接在 OPB 总线上。像RS232,CF卡控制器,PS2控制器。

    使用的软件是ISE9.1i,EDK9.1i,chipsocpe9.1.03.
    ISEEDK是没有打SP的,但是chipsocpechipsocpe9.1.03的,如果用chipsocpe9.1.01的,EDK生成硬件时会报错。

    本文使用的例程还是xilinx提供的在XUPV2P开发板上完成的Slide Show using 256 MB DDR Memory的例程。http://www.xilinx.com/univ/xupv2p_demo_ref_designs.htm

     

     

      这个例程这样工作的:

    首先,从CF卡里读取多个BMP图片的数据,去掉BMP的头信息之后,把RGB的数据放到内存中。

    同时,每个BMP图片在内存中的地址都被记录。

    最后,PPC通过DCR总线向把要显示的图片的地址写给plb_tft_cntlr_refplb_tft_cntlr_ref 就会根据这个地址从内存中读取数据进行显示。PPC通过传不同的地址给plb_tft_cntlr_ref,这样就能显示不同的图片,做到幻灯片的效果。

    这样的话,就需要PPCplb_tft_cntlr_refSDCR端口写图片在内存中的地址,照我想,最直接的方法是通过PPCMDCR端口由DCR总线plb_tft_cntlr_refSDCR端口写图片在内存中的地址。像我第二篇博文那样访问DCR会更直接。

    http://xilinx.eefocus.com/utoo/blog/10-02/185025_1f4ec.html

    但是,这个例程并没有这样做,PPCMDCRNO connection的,那他是怎样向plb_tft_cntlr_refSDCR端口写图片在内存中的地址呢?

      这个例程是这样的:PPCPLB接口->PLB->plb2opb_bridge->OPB->opb2dcr_bridge->plb_tft_cntlr_ref的 SDCR接口。感觉绕了一大圈。

    给它这么一绕,差点给它绕晕。既然SDCR接口得到的数据的源头是PPCPLB接口,那么SDCR上的两个寄存器的地址是映射在PLB的地址空间上。我们看看地址就明白了。

     

     

                   首先,看一下与PLB有关的地址空间。PLB_ddr的地址是0x00000000--0x07ffffff

    plb2opb_bridge有两个RNGRNG1是给OPB总线上那些外设的,可以看到OPB总线上那些外设的地址都在RNG1内。RNG0是给opb2dcr_bridge的,可以看到opb2dcr_bridge的地址也在RNG0内。这样SDCR上的两个寄存器的地址是映射在PLB的地址空间上。而且从中可以知道OPB的地址空间属于PLB的地址空间的。

    我们可以在SDK的代码中,可以看到软件是这样访问DCR寄存器的。

     

    因为DCR32位寻址,而PLB上是8位寻址,所以0xD0000040右移2位会得到上面的0b000010000,至于前面的D,那是因为这两个寄存器放在了RNG0里。

    为了验证上面的想法,我在例程中加入chipscope_opb_iba,来观察是否访问寄存器时要通过OPB总线。端口连上后使用默认配置。

     

     

     

     

    连接chipscope_iconchipscope_ila之间的控制信号

     

     

    打开chipsocpe可以看到IBA

     

     

    其实用IBA一个最大的好处就是EDK工具帮我们生成了所有的信号名,不用我们一个个去改。

    我们可以这样来导入这些信号名。在当前的project的目录下找到implement这个目录。然后找到文件就可以导入了。

     

     

     

     

    接着设置触发条件

     

     

    下载硬件,在软件中设置如下断点。

     

     

       当程序运行到断点时,chipsocpe可以采到这样的信号。

     

     

        这样就验证了刚才的猜测。

    总结:在FPGA上设计片上系统,了解总线的时序十分重要,在利用仿真和datasheet给我们提供的总线时序的基础上,通过猜测和思考并最后通过chipsocpe的验证,我们可以得到我们关心的总线信号的准确时序。

    这样使用chipscope来观察coreconnect总线时序的博文就写完了,希望这三篇博文对大家有所帮助,起到抛砖引玉的作用。由于我还处于学习阶段,如果文章写得有什么不对的地方,还请大家指出。


    展开全文
  • IIC总线的操作时序

    2019-03-16 11:49:55
    IIC(Inter-Integrated Circuit)是IIC Bus简称, 它是一种串列通讯总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。 IIC简介: IIC总线只有2根信号线,一根...
  • Avalon 总线 时序 介绍

    2019-06-27 02:21:58
    Avalon 总线广泛应用于外设和软核或者硬核交互,其时序简单明了,也非常适合用来作为划分模块的接口信号。本文结合quartus 关于 avalon 总线英文原版做简单介绍,重点理解时序即可。 1.Avalon的时钟和复位 这里...
  • 8080总线时序

    2020-07-30 23:30:42
    8080总线时序图,迷茫的是后很有用的,就是一张图,让我写这么多描述,没话了
  • 一、系统总线时序图 二、分析 第一个时钟周期开始,系统地址总线给出需要访问的存储空间地址。 经过Tacs时间后,片选信号也相应给出,并且锁存当前地址线上地址信息。 再经过Tcso时间后,处理器给出当前操作是...
  • 原文地址:...高速数字总线时序分析及计算方法 High Speed Digital Parallel
  • 深入理解I2C总线时序的模拟

    千次阅读 多人点赞 2011-10-31 15:45:07
    深入理解I2C总线时序的模拟
  • IIC总线时序

    2017-01-06 17:34:45
    原文地址:IIC总线时序作者:风中飞沙 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今...
  • 51单片机总线时序

    2017-07-10 22:25:39
    一、总线概述 计算机系统是以微处理器为核心的,各器件要与微处理器相连,且必须协调工作,所以在微处理机中引入了总线的概念,各器件共同享用总线,任何时候只能有一个器件发送数据(可以有多个器件同时接收数据)...
  • CAN总线 时序分析

    2020-04-24 17:32:48
    can总线通信,在嵌入式设计中使用非常广泛,下面是本人在开发过程中对于can总线通信的一些理解,不到之处还望批评指正。 CAN总线原理图如下: 下面是在调试过程中示波器波形: 上面的是clk,下面的rxd,下面的数据...
  • 说到51单片机的时钟首先想到51时怎么工作的呢?微型控制器要想工作必须要有一个“动力”,对于51单片机来说,这个“动力”就是时钟源。一般应用上会外接一个12MHz的晶振作为时钟源。 一般第一种接法用的比较多。...
  • 有关I2C总线时序,下面的文章写得很好,推荐阅读 https://www.cnblogs.com/BitArt/archive/2013/05/28/3103917.html#commentform 8位设备地址,8位寄存器地址,8位数据的情况完全够了 下面我想补充的是8位设备...
  • 基于51单片机实现模拟IIC总线时序  最近用到测量光线的模块BH1750FVI时需要用到IIC总线操作, 于是就又费功夫学习了下, 基本上算是了解了, 所以呢, 就用51的IO口, 模拟出了总线时序, 并能正确操纵需要用IIC...
  • 18b20单总线时序读写

    2020-05-24 23:32:49
    关于总线时序读写的代码,时序图,ds18b20的官方资料
  • 分析了51单片机在外部扩展、总线时序、地址译码方法重点以及对超过64 KB地址空间访问的方法。并以实验室研制的MCS51单片机实验仪为例,分析了外部空间开展的重要性、方法和原理,给出了单片机系统扩展框图和地址译码...
  • 1.应用背景 PC/104总线嵌入式工控机是专门为工控领域设计的具有特定尺寸和接口的计算机。 但是在特定的工控中,对处理器的...因此,可以采用ARM+CPLD的结构,通过CPLD来构造PC104部分的时序。附件中论文有对ARM和...
  • 详细地介绍了ISA时序,包括8位和16位的,英文的,
1 2 3 4 5 ... 20
收藏数 24,553
精华内容 9,821
关键字:

总线时序