Cortex M3上基于AHB-Lite总线挂载GPIO核

基于AHB-Lite总线挂载GPIO核 (Altera DE1 SOC)

这篇文章希望给正在阅读的你,提供一下思路,毕竟我这有些东西还写得不全。本设计已经在Altera DE1 SOC 板子上实现,同时这也是个比较简单的AHB-Lite系统,未免会有不好之处,如果正在阅读的你有什么好的见解的话,欢迎留言~
注:(这篇文章中用的M0作为例子,但也可根据原理移植到M3上的哈)

1
随着VLSI工艺技术,EDA技术的迅速发展,集成电路已进入片上系统(Sy stem On Chip,简称SOC)时代。片内总线作为SOC系统集成的互连结构,可以把各个功能模块互连起来,使IP核的移植,设计复用变得容易。在市场现有的各种片内总线中,由ARM公司开发的AMBA(Advanced Microcontroller Bus Architecture)片内总线市场占有率最高,成为一种最流行的工业标准片内总线结构。本设计中所使用的AHB-Lite总线则是AMBA片内总线中一个较为简单的一种总线,只有一个Master。

2 AMBA AHB-Lite总线简介
AMBA AHB-Lite 是面向高性能的可综合设计,提供了一个总线接口来支持Master 并提供高操作带宽。AHB-lite总线的特性包括Burst传输、单边操作、非三态、宽数据位,包括64、128、256、512和1024位。AHB-Lite总线所有信号都是在时钟的上升沿进行,采用地址/数据分离的流水式操作,即先向从设备传输地址信号,后读写数据。AHB-Lite总线还可扩展APB总线来挂载低速的外设,如串口、LCD等设备。图1-1是一个具有一个 Master 的 AHB-Lite的系统,包括一个Master和三个Slave的系统框图。图1-2是一个AHB-Lite的基本传送操作。

Cortex M3上基于AHB-Lite总线挂载GPIO核_第1张图片
图1-1
Cortex M3上基于AHB-Lite总线挂载GPIO核_第2张图片
图1-2

3 GPIO_IP核的接口描述
此模块分为输入、输出信号。其中输入信号可分为地址信号、全局信号、控制信号、解码器信号,输出信号为Slave设备传送至多路转化器的信号、8位输入信号,图3-1为GPIO模块的系统框图。地址信号HADDR[31:0]信号由CPU提供给GPIO模块;全局信号为HCLK时钟信号、HRESTn复位信号,为模块的工作提供时钟与复位;控制信号包括HSIZE[2:0]、HTRANS[1:0]、HWDATA[31:0]、HWRITE、HREADY信号,为模块的读写传输进行控制;解码器信号HSEL信号,通过对CPU传送的地址信号进行解码进而选中该GPIO模块,此时HSEL为高电平;Slave设备传送至多路转化器的信号HRDATA[31:0]、HREADYOUT信号,HREADYOUT信号为高电平时表示该GPIO模块已经成功将数据读入,准备发送至多路转换器。

Cortex M3上基于AHB-Lite总线挂载GPIO核_第3张图片
图3-1

4 AHB-Lite挂载GPIO_IP系统的实现
根据图1-2可知,构成一个最简单的AHB-Lite系统需要译码器Decoder、多路转换器Multiplexor,Master主机,Slave设备。本设计中Master主机选用ARM Cortex-M3 designstart,负责传送控制信号、地址信号,以及处理多路转换器从Slave设备读取的数据;全局信号采用PLL实现。译码器Decoder通过解码ARM Cortex-M3 designstart传送的地址,进而选中该GPIO模块,图4-1为译码器Decoder的部分Verilog VHDL代码。
Cortex M3上基于AHB-Lite总线挂载GPIO核_第4张图片
图4-1

多路转换器Multiplexor属于一个特殊的Slave设备,该模块的选中信号由译码器Decoder的MUX_SEL[3:0]信号产生,多路转换器的HREADYOUTx、HRDATA[31:0]信号分别连接到Slave设备的对应信号。当Slave设备读取完数据就向多路选择器发送请求,由多路选择器选择哪一个设备的数据传送给ARM Cortex-M3 designstart。图4-2是AHB-Lite挂载GPIO_IP系统的框图,图4-3是译码器Decoder,图4-4是多路转换器Multiplexor。

Cortex M3上基于AHB-Lite总线挂载GPIO核_第5张图片
图4-2
Cortex M3上基于AHB-Lite总线挂载GPIO核_第6张图片
图4-3

Cortex M3上基于AHB-Lite总线挂载GPIO核_第7张图片
图4-4

感谢你的阅读~

你可能感兴趣的:(SOC)