引言:随着半导体工艺的不断发展,集成电路进入了片上系统(System on the chip,简称Soc)时代。为了将不同的IP(Intellectual Property)集中到Soc中来,不同的IP供应商设计IP时尽可能遵循标准的总线协议以保证IP集成商能够将来自不同供应商开发的IP快速,可靠的集成到Soc中去。AMBA总线是由ARM公司提出的一种总线标准,它独立于处理器和工业技术具有高速,低功耗等特点。
1.AMBA总线简介
在芯片设计中,芯片内部总线的设计往往决定了芯片的性能,功耗与各模块设计的复杂度。我们设计总线往往会依据两方面的原则:一是芯片设计流程其内在的需求;二是所针对的应用对交换带宽,延时,效率灵活性的需求。
AMBA总线的典型应用是将AHB作为处理器,存储器,DMA通道等对时间和性能要求很高的部分而使用的高速总线,而通过桥将外设总线APB连接起来,如图1所示:
2.AMBA总线的设计
2.1AHB基本结构
AHB总线主要包括仲裁器,译码器,多路选择器,虚拟主设备和缺省主设备。由于三态总线在时序方面产生很多问题,因此AHB采用了多路选择器的方式,大致结构如图2所示:
2.2AHB及APB信号数据流
AHB总线上的地址,写数据,读写控制等信号由AHB主设备产生,当前有效的主机由AHB仲裁器产生的信号指示,这个信号送给所有的AHB主机,也用来控制AHBMUX_MTOS复选器并将主设备的控制信号送给从设备。当前被选择的从设备由译码器产生的信号指示,这个信号送给所有的AHB的从设备,也用来控制AHB_MUXSTOM复选器,将被选择的从设备去相应主设备的操作。
APB模块的片选,使能,读写信号等,都是通过AHBTOAPBBRIDGE产生。被选中的APB模块通过APB总线进行各个寄存器的读写,APB模块被配置完成之后,就进行本模块的数据操作。完成后,如果配置为中断方式,则通过中断控制器,产生送给ARM的中断信号,ARM响应中断信号后,在中断服务程序中,会通过APB总线读取寄存器中的结果数据,或进行新的数据配置。
2.3总线仲裁
AHB为多主机系统,在同一时间的时候只允许一个主机去访问总线,因此需要仲裁器来做仲裁,下面将简要阐述一下AHB仲裁器的机制。
当主机想要去访问总线时,便将自己的HBUSREQ信号给拉高,在同一时刻可能有多个主机都想要获得总线的控制权,因此仲裁器在时钟的上升沿去采各个主机的HBUSREQ,然后决定哪个发出请求的主机有最高的权限(AMAB2.0中并没有规定具体的算法,由设计者自己制定,通常采用固定优先级算法与轮循法)。若主机获得总线的控制权后,便将HGRANT信号拉高,表示由它来控制总线。先前获得总线的主机的HGRANT信号就变低,表示它已经失去了对总线的控制。
主机在传输的过程中有可中断与不可中断的传输。若主机想进行不可中断的传输,在申请总线时,同时将HLCOK信号拉高,表示进行的是不可中断的传输。若主机进行的是可中断的传输,在传输的过程中,如果有更高权限的主机发出了申请总线的命令。仲裁器可以将总线判给更高权限的主机,而被打断的主机要重新发出申请命令,等待下次获得总线权限的时候才能完成传输。具体的时序将在后面系统仿真时给出。
3.系统仿真及FPGA的实现
本设计中的所有AMBA模块,包括仲裁器,译码器,多路选择器,缺省从设备,缺省主设备,AHB/APB桥均使用Verilog语言完成了RTL级编码,并使用了Modelsim软件对其进行仿真。
在AHB总线上利用AMBA作为主模块,SPI作为连在APB总线桥上的从模块,进行仿真。DMA通过AHB总线进行数据传输操作,这包括与AHB总线相连的所有模块,以及通过AHB总线可以访问到的模块,由于APB总线是通过AHBTOAPBBRIDGE,也连在APB总线上,因此DMA可以对SPI进行操作。
在启动DMA传输之前,首先配置DMA和SPI相应的寄存器。如:传输次数寄存器,周期传输数据长度寄存器,目的地址寄存器,源地址寄存器,以及控制寄存器等。配置完后便等待SPI中断的到来。如收到SPI发送FIFO为空产生的中断,DMA便要需要往SPI发送FIFO写数据;如收到SPI接受FIFO 满产生的中断,DMA便需要从SPI的接受FIFO中读取数据。仿真的波形如图4所示:
?? ?? ??
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
【本文标签】: 多层 pcb 多层PCB面板 公司设备 沉金板
【责任编辑】:鼎纪电子PCB 版权所有:http://www.dj-pcb.com/转载请注明出处