您的位置 首页 电路

OPB总线学习日志

OPB总线概述:在XilinxEDK的Microblaze软核中有用到多种总线接口,其中OPB(On-chipPeripheralBus)是一种将各种外部设备连接到Micro

OPB总线概述:

在Xilinx EDK的Microblaze软核中有用到多种总线接口,其间OPB(On-chip Peripheral Bus)是一种将各种外部设备衔接到Microblaze处理体系中的一种总线接口,比方Timer/Counter、Gpio、Uart等,便是经过OPB总线衔接到Microblaze处理器内核。

OPB总线能够在不影响OPB裁定器(Arbiter)和总线上已衔接的外围设备基础上增加新的外围设备,同步于体系时钟,同享32位地址总线,以及32位数据总线,支撑主从设备之间单一周期数据传送。

(这儿要阐明下PLB总线,它是PowerPC硬核的高速总线,64位数据总线宽度,地址和读写数据总线别离,具有别离传输的才能。现在最新的ISE11现已将Microblaze的OPB总线也搞成PLB总线,现在还不承认是不是只是改了称号罢了。问题:地址和读写数据总线别离怎样了解?是读和写操作能够一起进行?)

OPB总线包含4个组成部分:(1)主设备 Master Device 最大16个(或许是受限于裁定器)

(2)从设备 Slave Device 无限制,受限于FPGA的硬件资源

(3)裁定器 Arbiter依据设定的优先级,判定主设备的总线占用次序

(4)互联器 Interconnect 用OR逻辑将各个主设备的地址,数据衔接起来

总线的结构:

总线,是指供给的一个数据通道,使得多个设备之间能够进行数据传递。能够主意向总线宣布恳求的是主设备(Master),只能被迫接纳恳求的是从设备(Slave)。所以总线的体系结构一般分为三个部分:(1)Master

(2)Slave,

(3)总线逻辑,总线逻辑由互连器(Interconnect)和裁定器(Arbiter)两部分组成。

总线操作的一般流程是:Master向总线宣布读写恳求,总线逻辑承受恳求并担任把这些恳求传送给从设备;从设备收到后履行读写操作,完结后给出承认信号,总线逻辑再担任把承认信号传送给主设备,主设备收到承认后,数据传输进程完结。
有的总线结构只允许有一个Master,而有的能够有几个Master。OPB总线归于后者。当能够有好几个Master时,假如多个Master都向总线宣布恳求,这时就需求进行裁定,以承认哪个Master能够占有总线。因而,假如总线上挂有多个Master,就需求裁定器(Arbiter);反之,假如只要一个Master(包含能够有几个Master但实际上只运用一个Master的状况),就必定不需求裁定器。
总线上往往有多个Slave,由于假如只要一个Master和一个Slave的话,好像也就没有必要选用总线,直接传输数据就能够了。那么已然有多个Slave,Master向总线宣布恳求时,怎么区别是对哪个Slave进行操作呢?这是经过地址来分辩的。Master向总线宣布恳求时,总是会即将操作的地址送出来,这个地址或许是经过独自的地址线,也或许是复用数据线。(片上总线往往选用独自的地址线,与外部衔接的总线则往往复用以节约引脚数。)每个Slave都被分配有互不堆叠的地址空间,依据这个地址和自己的地址空间比较,就能够知道Master是不是对自己进行操作,然后能够判别是否应该做出呼应。

OPB总线信号命名规矩:
OPB总线中的信号命有三种:

(1)Mn_打头的,是Master的输出;

(2)Sln_打头的,是Slave的输出;

(3)OPB_打头的,是总线逻辑的输出。

OPB总线的连经逻辑选用OR逻辑,因而,当一个Master或许Slave不对总线输出时,应该将其输出置为0,就能够不影响总线的正常作业。

总线逻辑一般都是承受Master的输出后,进行必定的或运算,变成OPB_打头的输出,送给Slave;或许承受Slave的输出后,进行必定的或运算,变成OPB_打头的输出,送给Master。所以,关于Master而言,它需求处理的信号有两种,Mn_打头的是它的输出,OPB_打头的是它的输入。关于Slave而言,它需求处理的信号也是两种,Sln_打头的是它的输出,OPB_打头的是它的输入。

OPB总线的复位:

OPB总线能够被多种复位信号复位,不过上电复位优先级最高。当FPGA装载成功后,体系会主动花费16个时钟周期来复位OPB总线,在这期间,OPB不呼应任何其他复位信号的复位动作。其他复位信号有:

(1)SYS_Rst 体系复位 (2)WDT_Rst 看门狗定时器溢出复位 (3)Debug_SYS_Rst 经过JTAG接口,在调试软件上操控复位OPB总线(怎么操作还需求别的研讨研讨)

OPB总线事物处理流程:
(1)Master首要宣布Mn_Request信号,要求占用总线;

(2)裁定器依据该周期的总线状况和其他Master的恳求及优先权,或许回复OPB_Grant信号奉告Master或许运用总线。

(3)Master收到Grant后,宣布Mn_Select占用总线,一起宣布地址Mn_ABus和读写信号Mn_RNW,假如是写还会给出数据Mn_DBus。总线逻辑将这些转化为OPB_Select,OPB_ABus,OPB_RNW,OPB_DBus并送给Slave。

(4)Slave依据OPB_Select和OPB_ABus来判别是否应该做出呼应。假如是归于自己的地址空间,则升高Sln_En占有总线,一起完结相应的操作,并回来数据Sln_DBus和数据有用信号Sln_XferAck。

(5)总线逻辑将Sln_DBus和Sln_XferAck转化为OPB_DBus和OPB_XferAck,并送给Master。Master收到后下降Mn_Select,完毕总线业务。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/234859.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部