




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WLAN 802 11b 中中 交交换换内存和内存和总线总线接口的接口的设计设计 摘要 摘要 嵌入式系统 Embedded System 被定义为 以应用为中心 以计算机技术为基础 软件硬 件可裁剪 适应应用系统对功能 可靠性 成本 体积 功耗严格要求的专用计算机系统 嵌 入式系统是将先进的计算机技术 半导体技术和电子技术和各个行业的具体应用相结合后 的产物 随着 EDI Electronic Data Interchange 的推广和 VLSI Very Large Scale Integration 设计的普及化 及半导体工艺的迅速发展 在一个硅片上实现一个更为复杂的系统的时代已 来临 这就是 System On Chip SOC 各种通用处理器内核将作为 SOC 设计公司的标准库 和许多其它嵌入式系统外设一样 成为 VLSI 设计中一种标准的器件 用标准的 VHDL 等语 言描述 存储在器件库中 用户只需定义出其整个应用系统 仿真通过后就可以将设计图交 给半导体工厂制作样品 在嵌入式系统 Embedded System 的设计中 外设都必须通过数据和地址总线和微处 理器连接 SOC system on chip 片上系统 的复杂性要求各个宏模块 MACRO 的连接 Interface 规范化 同时为了没有冲突的共享各自的信息 常常会开辟一个公共的存储空 间 Exchange Memory 本文主要介绍了 802 11bWLAN Wireless Local Area Network 芯片中总线接口 Bus Interface 和公共存储器 Exchange Memory 的设计 第一章简要介绍了嵌入式系统和 WLAN 802 11b 提供了一定的背景并给出了系统的总 框架 第二章重点介绍了 MicroBlaze Embedded System 中使用的 OPB Bus 技术 为 Bus Interface 的设计提供规则和方向 第三章介绍 Exchange Memory 的设计 基于双口 RAM 实行 itom Bus 的仲裁机制 第四章介绍 Bus Interface 的设计 主要就是根据 OPB Bus 设计和 Itom Bus 的接口互联 统一编址使软硬件高速方便的结合 虽然这里很详细的描述了适用于 802 11b 的两个模块的设计 但是整个设计思路和方 法通用于各种 SOC 的 Bus Interface 和 Exchange Memory 关关键词键词 Exchange Memory Itom Bus MicroBlaze Embedded System OPB Bus Bus Interface Exchange Memory Bus Interface for WLAN 802 11 ABSTRACT Embedded System is dedicated computer application centered technology based in contrast to general purpose computer in everyday life With the spread of EDI Electronic Data Interchange and the popularization of VLSI Very Large Scale Integration Design the rapid development of Semiconductor Technology brings along the era of SOC System on Chip In an embedded system design the peripherals for example timers DMA interrupt controller custom applications etc must be connected to the microprocessor using the data and address buses The complexity of system on chip SOC devices makes standardizing the connection of different macro cells one of the top priorities in defining an embedded system At the same time in order to share information without conflicts a specific area is set aside as Exchange Memory This thesis concentrates on the design of Exchange Memory and Bus Interface for the WLAN Wireless Local Area Network 802 11b Chapter 1 is to provide the necessary backgrounds such as Embedded System and WLAN 802 11b the whole architecture is presented in the end with emphasis on my job Chapter 2 introduces the IBM s OPB On chip Peripheral Bus Technology used within Xilinx s MicroBlaze Embedded System as principles and guidelines for later design Chapter 3 elaborates on Exchange Memory Design which is based on Dual RAM architecture and relies on ITOM BUS to arbitrate for access of memory Chapter 4 elaborates on Bus Interface Design which is mainly to connect OPB with Itom bus Unified addressing is the spot light for fast and easy cooperation between softwares and hardwares Although the two modules are designed for 802 11b the overall idea and method is applicable for most if not all Exchange Memory and Bus Interface in SOC INDEX Exchange Memory Itom Bus MicroBlaze Embedded System OPB Bus Bus Interface CONTENTS 目目录录 摘摘 要要 ABSTRACT 1 目目 录录 CONTENTS 3 第一章第一章概述和背景概述和背景 5 1 1 嵌入式系嵌入式系统统和和 SOC 5 1 1 1 概念概念 5 1 1 2SOC 设计趋势设计趋势 5 1 2WLAN802 11 6 1 2 1IEEE 802 11 协议协议 6 1 2 2技技术术特点特点 6 1 3介介质访问质访问控制器控制器 7 1 3 1框框图图 7 1 3 2我的工作我的工作 8 第二章第二章OPB 总线总线技技术术 9 2 1XILINX S MICROBLAZE EMBEDDED SYSTEM 9 2 1 1MicroBlaze 软软核核 9 2 1 2 总线总线互互联联 9 2 1 3 OPB 外外设设 9 2 2 IBM S OPB BUS 9 2 2 1基于基于 MicroBlaze 嵌入式系嵌入式系统统的框的框图图 10 2 3 OPB 和和 SLAVE 的接口信号的接口信号 10 2 3 1 框框图图 10 2 3 2 全局信号全局信号 11 2 3 3 接口信号接口信号 11 2 3 4 类类属信号属信号 11 2 3 5 时时序序 12 2 4 SLAVE 的的设计设计 13 2 4 1Slave 的方框的方框图图 13 2 4 2Slave 的的组组成部分成部分 13 第三章第三章EXCHANGE MEMORY 的的设计设计 15 3 1EXCHANGE MEMORY 的功能和的功能和结结构构 15 3 1 1 功能功能 15 3 1 2 结结构构 15 3 2 EXCHANGE MEMORY 的整体框的整体框图图 15 3 2 1 整体框整体框图图 15 3 2 2 接口信号接口信号 16 3 3RAM ARRAY 的的结结构构 16 3 3 1 双口双口 RAM 的特性的特性 16 3 3 2 结结构构 17 3 3 3 移位操作移位操作 17 3 4ITOM BUS 总线访问总线访问技技术术 17 3 4 1Itom Bus 的仲裁机制的仲裁机制 17 3 4 2Itom Bus 的的时时序要求序要求 17 3 5EXCHANGE MEMORY 的工作的工作过过程程 18 3 6SIMULATION仿真仿真结结果果 19 3 6 1 写写 19 3 6 2 读读 19 第四章第四章BUS INTERFACE 的的设计设计 19 4 1BUS INTERFACE 的功能和的功能和结结构构 19 4 1 1 功能功能 19 4 1 2 结结构构 19 4 2 BUS INTERFACE 的整体框的整体框图图 19 4 2 1 整体框整体框图图 20 4 2 2 接口信号接口信号 20 4 3具体具体实现实现 21 4 3 1 OPB 选选中中 BUS IF 22 4 3 2 根据地址判断根据地址判断选选中了中了 EM 还还是是 REGISTER 22 4 3 3 REGISTER 状状态态机机 23 4 3 4 EM 状状态态机机 23 4 4SIMULATION仿真仿真结结果果 24 总结总结与展望与展望 26 参考文献参考文献 REFERENCES 27 致致 谢谢 ACKNOWLEDGEMENT 28 第一章 概述和背景第一章 概述和背景 1 1 嵌入式系嵌入式系统统和和 SOC 1 1 1 概念 概念 嵌入式系嵌入式系统统被定义为 以应用为中心 以计算机技术为基础 软件硬件可裁剪 适应应用系 统对功能 可靠性 成本 体积 功耗严格要求的专用计算机系统 嵌入式系统是将先进的计算 机技术 半导体技术和电子技术和各个行业的具体应用相结合后的产物 这一点就决定了它必 然是一个技术密集 资金密集 高度分散 不断创新的知识集成系统 SOC 设计是指在针对某一具体功能的芯片设计中 在芯片内部包含了嵌入式CPU内核及 该内核完整的运行环境 例如总线系统 存储器系统 通讯接口 有时甚至包括一个嵌入式的操 作系统和完整的软件运行环境 和为该芯片特定功能工作的专用硬件模块 并使得这些专用的 功能模块可以和嵌入式运算模块有机地组成一个复杂系统 系统内部以软硬件相结合的方式完 成系统所要求的整体功能 1 1 2 SOC 设计趋势设计趋势 趋势一 软软硬件硬件协协同同设计设计 面向 SOC 的软硬件协同设计理论 首先是系统的描述方法 其次是这一全新的设计理论与 已有的集成电路设计理论之间的接口 第三 这种全新的软硬件协同设计理论将如何确定最优 性原则 除了芯片设计师们已经熟知的速度 面积等硬件优化指标外 与软件相关的如代码长度 资源利用率 稳定性等指标也必须由设计者认真地加以考虑 第四 如何对这样的一个包含软件 和硬件的系统的功能进行验证 最后 功耗问题 简单地对一个硬件设计进行功耗分析是可以的 但是由于软件运行引起的动态功耗则只能通过软硬件的联合运行才能知道 趋势二 IP 核生成及复用核生成及复用 IP 核的生成具有与常规的集成电路设计不同的特点 像时序 测试和低功耗等等虽然是集成 电路设计中的经典问题 但是直接将已有的设计方法应用到 IP 核的设计中就会出现许多意想不 到的困难 由于 IP 核的特殊性和集成电路开发的高风险性 IP 核的使用决不是这些 IP 核的简 单堆砌 使用过程中不仅仅要考虑它们的功能 更要使它们融入芯片 所以说 IP 核的使用需要 综合考虑诸多因素 1 2 WLAN 802 11 1 2 1 IEEE 802 11 协议协议 上世纪90 年代 IEEE 为了规范局域网和城域网的设计 制定了802 网络框架协议 该协 议采用了国际标准化组织 ISO 对于通用网络应用推荐的开放式系统互联 OSI 参考模型 提出 了局域网和城域网在物理层和数据链路层的技术规范 在802 系列协议标准中 802 2 规范了逻 辑链路控制协议 802 1 规范了协议层次管理和介质访问桥接等协议 802 10 规范了网络安全 协议架构 802 11 就是在这一协议家族中以无线空间为介质 工作在2 4GHz ISM 频段上 采用载波 侦听 冲突避免机制访问介质的无线局域网的技术规范 1 2 2 技技术术特点 特点 相对于传统的有线网络 无线局域网是工作在无线信道介质下 对于物理层来说 这是一 种根本没有绝对边界的介质范畴 这种介质环境完全暴露在没有约束的空间下 ISM 的信道完 全不受保护 和有限网络相比 网络单元之间的通讯明显是不稳定的 而且网络拓扑的形式也是 动态变化的 而且信道特性可能随时间变化而且具有不确定的非对称性 寻址 802 11无线网络的拓扑结构是动态的 因此相对于有线网络 一个目标地址 destination address 不再对应一个固定的物理地址 每一个网络单元都是一个消息的目标 而这个目标并不 代表任何固定的地址 可能需要利用基于TCP IP协议的如移动IP Mobile IP 调整移动站点 电源管理 802 11技术的对象主要是移动式的便携设备 所以在功耗管理上的要求比传统的有线网络 要严格得多 当没有传输活动时 MAC 让无线电睡眠 降低功耗 通过并入缓冲器将消息排队 睡眠 站定期被唤醒接受任何可用的信息 防止错过关键的数据传送 载波侦听 冲突避免 CSMA CA 机制 802 11 无线局域网协议中 介质访问采取的是类似于802 3 技术中的通过载波侦听方式进 行竞争从而获取介质访问权这样的基本方法 但由于无线介质的信道特点不同于有线介质 所 以在802 11 技术中处理冲突的方式不是检测 而是避免 从而构成了802 11 技术特有的载波侦 听 冲突避免 CSMA CA 机制 带宽和数据速率 ISM 扩频波段不能提供大量的带宽 802 11 工作组改进了数据的压缩方式 充分利用可用 的带宽 在物理层 802 11 采用了红外线和无线电波两种传播介质 而使用无线电波介质时又在物 理依赖子层采用了跳频扩频和直接序列扩频两种方式进行扩频通讯 从而达到了1 2Mbps 的数 据速率 安全性 一个新的网络单元要加入一个已经存在的802 11 网络 需要经过一个授权的过程 802 11 技术支持两种基本的授权方式 开放式系统授权和共享密钥式的系统授权 开放式的系统授权实际上是一种无授权的算法 整个系统完全对所有单元开放 任何单元 都可以经过一对简单的授权管理帧的收发操作完成授权过程 共享密钥的授权方式是这样的 网络中所有的合法授权用户都共享一个密钥 而这个密钥 的是通过其他渠道来维护何传递的 授权的过程是发生在请求方和响应方之间的一系列授权类 型MAC 帧的收发 由于在共享密钥授权和数据传输的过程当中都会用到加密服务 802 11 提供了一种基本 的保密服务 采用了RC4 算法WEP Wired Equivalent Privacy 有线等效加密服务 1 3 介介质访问质访问控制器 控制器 1 3 1 框框图图 OPB BUS AMB BUS RX EngineTX Engine Traffic Controller Itom Bus Exchange Memory WEP Engine Bus Interface PLCP Interface Interrupt Generation CSMA CA Accessaries Register File PLCP Sublayer RAM MicroBlaze as OPB Master 我们把介质访问控制的硬件系统从结构上划分为若干个模块 其中 MAC 层协议中的帧服 务子层由发送引擎 RX Engine 和接收引擎 TX Engine 来实现 帧序列服务子层由流量控制器 Traffic Controller 来实现 其他如 MAC 层网络协调功能 包括 DCF 和 PCF 同步功能 功耗 管理功能 网络服务和管理功能则由软件在数据帧序列服务的基础上实现 另外 介质访问控制 器通过 PLCP Interface 提供和物理会聚子层接口的功能 通过中断发生器 Interrupt Generation 和总线接口 Bus Interface 实现软硬件接口 而和主机的通讯接口如 USB 或者 PCMCIA 等模块 则挂靠在嵌入式 MCU 的计算机框架中 Microblaze 系统或者 ARM 系统 1 3 2 我的工作 我的工作 设计中引用一款嵌入式 MCU 处理器并为软硬件配合提供一个高性能的接口 在 FPGA 验 证中采用的是 Xilinx 公司 32 位的 Microblaze 软核以及 IBM 公司的 OPB BUS 总线控制器软 核 在 ASIC 硬件实现中计划采用 ARM7TDMI 系列嵌入式硬核和 AMB BUS 总线控制硬核 交交换换内存内存 EXCHANG MEMORY 是我们的设计中各个硬件模块之间以及软硬件之间进行 数据交互的场所 本文采用 ITOM BUS 总线技术为各个硬件模块和软件提供对交换内存的访 问接口 基于以上的总线控制器设计出可以对介质访问控制器内嵌的交换内存进行无缝连接的总线总线 接口接口 BUS INTERFACE 即将交换内存的地址空间以共享的方式映射到嵌入式处理器的地址空 间中 并与寄存器统统一一编编址址 第二章 第二章 OPB 总线总线技技术术 2 1 Xilinx s MicroBlaze Embedded System 一个基于 MicroBlaze 嵌入式系统由好几个部分组成 MicroBlaze 软核 MicroBlaze Soft Processor Core 片上块存储器 On chip Block RAM 标 准的总线互联 standard Bus Interconnects and OPB 外设 On chip Peripheral Bus OPB peripherals 2 1 1 MicroBlaze 软软核核 MicroBlaze 嵌入式系统的核心 是一个有正交指令集的 32bitRISC 处理器 包含 32 个通用 寄存器 分离的指令和数据总线 Harvard 结构 内建片上接口连接快速的片上存储器和 OPB 2 1 2 总线总线互互联联 分离的指令和数据总线各自有一个接口与 LMB Local Memory Bus 相连 另有一个接口 和 OPB 相连 LMB 保证了一个时钟周期完成对片上块存储器的访问 而 OPB 是一个 32bit 宽的支持多 个 master 的总线 用来将外设和外存储器和软核相连 2 1 3OPB 外外设设 OPB 外设完成了 MicroBlaze 的硬件系统构建并提供多种功能 而且用户自定义的外设可以 被加入已完成用户自定义功能 也可以设计接口和外部设计的 FPGA 相连 2 2 IBM s OPB Bus 当用 FPGA 来验证设计时 我们采用的是 Xilinx 公司的 MicroblazeTM 32 位 CPU 软核 该软核的基本特点是采用 RISC 架构和哈佛结构 支持全局和局部总线以及缓存 动态运算速 度达到 150MIPS 该软核完全兼容 IBM 公司的高性能总线 CoreConnectTM 中的 OPB Bus 根据On chip Peripheral Bus OPB version 2 1 of CoreConnect architecture 用户可以自行为 MicroBlaze设计OPB 从动设备 Slave Peripheral 多个主动模块 Master 对 OPB 的占用通过 OPB 仲裁者 OPB Arbiter 选择 而对于从动模 块 Slave 当 OPB 被选中的时候 所有所有的 SLAVE 都对地址进行译码从而决定应答或者忽略 2 2 1 基于基于 MicroBlaze 嵌入式系嵌入式系统统的框的框图图 2 3OPB 和和 Slave 的接口信号 的接口信号 2 3 1 框框图图 2 3 2 全局信号全局信号表格 1 信号名称输入 输出宽度描述 OPB Clk输入1bitOPB 时钟 上升沿数据传送 OPB Rst输入1bit异步复位 和 MicroBlaze 共用的复位信号 2 3 3 接口信号接口信号表格 2 信号名称输入 输出宽度描述 OPB ABus输入 0 31 OPB 地址 被所有所有的 Slave 接收 仅在 OPB select 有效的有效 OPB BE输入 0 3 字节传输使能 OPB DBus输入 0 31 写数据总线 写应答前一直有效 OPB RNW输入1bit数据传送方向 读写选择 OPB select输入1bit 指示 OPB 传输的进行 使 OPB ABus OPB BE OPB RNW 和 OPB seqAddr 有效 在 master 收到 xfer 和 retry 之前都是有效的 DBus输出 0 31 读数据总线 xferAck前必须有效 xferAck输出1bitOPB 传输应答 一次传输完成时 有效 必必须须在在 16 个个时钟时钟周期内有周期内有 效避免效避免 timeout 除非除非 ToutSup 有效 有效 retry输出1bit重试 slave 不能完成当前任务 ToutSup输出1bit时间溢出禁止 有效 OPBtimeout 无效 slave 有足够 时间完成任务 2 3 4 类类属信号属信号表格 3 类属名类型宽度描述 C BASEADDRstd logic vector 0 31 Slave 被映射到的 Base address 基础地址 用来地址地址译译 码码确确认选认选中中 C HIGHADDRstd logic vector 0 31 Slave 被映射到 High address 高 位地址 和 base address 决定存 储器空间 C OPB DWIDTHinteger 数据总线宽度 Microblaze 固定 32bit C OPB AWIDTHinteger 地址总线宽度 Microblaze 固定 32bit Others用户自定义 2 3 4 时时序序 2 4 Slave 的的设计设计 2 4 1 Slave 的方框的方框图图 2 4 2 Slave 的的组组成部分成部分 1 地址译码逻辑 每个 OPB 的从动模块都有一个自己的地址译码 当 OPB select 有效时 OPB ABus 被所有 的从动模块译码以确定他们是否被主动模块选中 从而决定应答或者忽略 2 OPB 从动模块的接口逻辑 当 OPB 的从动模块被选中的时候 接口逻辑负责完成握手和协议 3 具体应用逻辑 用户自定义 第三章 第三章 Exchange Memory 的的设计设计 3 1 EXCHANGE MEMORY 的功能和的功能和结结构 构 3 1 1 功能 功能 数据读出和写入的公共存储模块 用来存储各个接口模块访问的数据 是完成数据转换的核 心部件 3 1 2 结结构 构 1 8 块大小为 2kByte 的 RAM 为一组 16Kbyte 4 组形成 64KB 的 RAM ARRAY 2 RX TX TC WEP1 WEP2 MicroBlaze 六个 PORTs 通过 itom bus 的仲裁机制 对其进行 读写操作 实现数据的共享 3 读写操作相对独立 也即 每个 PORT 的 read 和 write 通道分离 3 2 Exchange Memory 整体框整体框图图 3 2 1 整体框整体框图图 Ram array Itom bus Data wr Addr wr Wr access Data rd Rd access Addr rd Wr ready Rd ready RX TC TX Write MICROBLAZE WEP2 WEP1 RESETCLKRESETCLK Wr req Data Adress Write size Write ack Read Rd req Address Read size Data Read ack Write Read Read Read Read Write Write Write Wr size Rd size 3 2 2 接口信号接口信号 1 控制信号 clk 时钟信号 reset 系统复位 2 itom bus 与外部的 port 包括与 OPB 信号名称输入 输出宽度描述 write req port1输入1bit写要求 write size1输入 1 0 写入数据宽度 Address1 wr输入 15 0 写地址 data1 input输入 31 0 写入数据 write ack1输出1bit写应答 read req port1输入1bit读要求 read size1输入 1 0 读出数据宽度 Address1 rd输入 15 0 读地址 data1 output输出 31 0 读出数据 read ack1输出1bit读应答 3 Itom bus 与 ram array 的接口如下 信号名称输入 输出宽度描述 data wr输出 31 0 写数据 write size输出 1 0 写数据宽度 write access输出1bit写开始 write ready输入1bit写完成 Address wr输出 31 0 写地址 data rd输入 31 0 读数据 read size输出 1 0 读数据宽度 read access输出1bit读开始 read ready输入1bit读完成 Address rd输出 31 0 读地址 3 3 RAM ARRAY 的的结结构构 8 块 决定深度 读写通道独立的 2KByte 双口 RAM 为一组 4 组 决定宽度 构成 32bit 的 RAM ARRAY 通过移位完成 8bit 16bit 32bit 的读写操作 3 3 1 2KByte 双口双口 RAM 的特性的特性 1 32bit 的数据宽度 可设置 512 16k bit 的地址空间 9 14 根地址线 支持分离的读写 先读后写 3 3 2 结结构构 Mem 16k 4Mem 16k 3Mem 16k 1Mem 16k 2 Wr data shift block Rd data shift block Wr data Rd data Write size Wr addr 1 0 Rd addr 1 0 Read size Wr addr 15 2 Rd addr 15 2 Data 7 0 Data 15 8 Data 31 24 Data 23 16 Mem 16k 1 Mem 16k 2 Mem 16k 3 Mem 16k 4 是 4 块大小为 16kbyte 的 memory 由 Xilinx 的 Core Generator 生成 每块有 write read 各一个口 14 根 address 线 8 根 data 线 因为 write 和 read 都有 8bits 16bits 和 32bits 三种形式 所以在 data 写入 memory 前或从 memory 读出后 要分别根据 write size wr address 的低两位和 read size rd address 的低两 位进行移位操作 3 3 3 移位操作 移位操作 读写 8bit 16bit 操作时 数据 32bit 的宽度没有全部占有 此时规定了 输出低位低位对齐对齐 即 对于 8 bit 读写数据输出时 data wr 和 data rd 的 7 0 是输入的数据 data input 和 data output 其余 31 8 全零 对于 16 bit 读写数据输出时 data wr 和 data rd 的 15 0 是输入的数据 data input 和 data output 其余 31 16 全零 3 4 Itom bus 总线访问总线访问技技术术 Itom Bus 作为局部总线 被多个主动模块控制 所以我们需要一种仲裁机制来实现没 有冲突的访问 3 4 1 Itom Bus 的仲裁机制的仲裁机制 从根本上来说 相同条件的多个 PORT 在参与竞争 itom bus 使用权的时候是公平的 到底是谁获得了 itom bus ACCESS 的权利都是随机的 此时人为的规定了优先级 譬如 根据地址的从高到低 但是大多数情况下 PORT 在前续的竞争历史中已经有所不同 而 itom bus 就给出了如下的一种仲裁机制 每次只有一个 PORT 提出 request 的时候 当然它就占有了 itom bus 当两个或两个以 上的 PORT 同时提出 request 的时候 如果之中有一个 PORT 在上一次 ACCESS itom bus 之后被 deny 过 它就优先获得 itom bus ACCESS 的权利 如果有两个或两个以上的 PORT 都有过被 deny 的历史 则比较它们的被 deny 的次数 用参数 delay count 记录 PORT 被 deny 次数 次数最多的占有 itom bus 同时 delay count 清零 而其他的那些提出 request 却没有得到权限的 PORT 增加了被 deny 的次数 delay count 值被加 1 即从某种意义上 说就等于提高了下次竞争成功的几率 如果有两个或两个以上的 PORT 被 deny 的次数一样 那么就根据一开始的人为规定 优先级高的占有 itom bus 因为参与竞争的 PORT 数目超过了两个 所以需要用一个参数来记录他们的被 deny 的次数 以备比较 于是 delay count 这个参数从某种意义上说 代表了每个 PORT 的基 于公平竞争的优先级 在这里一共是 6 个 PORT 故每个 port 的 delay count 的最大值是 5 一个 port 最多连 续 6 次提出 request 则必能获得权限 3 4 2 Itom Bus 的的时时序要求 序要求 在这个构架中 一共是 6 个 port 公用 itom bus 其中 RX 和 TX 模块是关键的模块 他 们需要没有延时的被满足要求 同时由于整个系统中 RX 和 TX 不可能同时提出请求 所 以真正参与竞争的只有五个模块 每个模块一次读或者写都能在 4 个时钟周期内完成 按照 Itom Bus 的公平竞争机制 4 5 20 个时钟周期内每个模块必然能够赢得一次权限 Itom Bus 工作在 100M 的主频 操作时以一个字节为单位 802 11bPHY 层的数据是串 行的给出 数据率是 11Mbit s Tx 或者 Rx 提出一次读写 request 的时间间隔 8bit 100M 11Mbit s 72clk 20clk 所以 itom bus 能够满足时序的要求 3 5 EXCHANGE MEMORY 的工作的工作过过程 程 idle writeread arbiter ack request Write access 1 Read access 0 Write reday 1 Read ready 1 ack 3 6 Simulation 仿真仿真结结果 果 3 6 1 写 写 有 port 提出写 request 后 itom bus 仲裁决定那个 port 获得权限 在 4 个 clk 之内完成写同时 给出 ack 该仿真以 port3 和 port2 竞争为例 不难看出 1 他们同时提出 request 在条件相同的时候 rst 保证了这一点 根据人为的规定 port3 先 获得了权限 2 当 port3 完成了一次操作时 再和 port2 竞争的时候 由于 port2 被 deny 过了一次 其 优先级提高 理所当然的竞争胜出 仿真实现了 itom bus 的竞争机制 3 6 2 读读 其实这张图是和上面的写结合起来的 主要是仿真了 MicroBlaze 对 EM 的读写操作 因为 MicroBlaze 不会同时对 EM 进行读写操作 所以根据上图的写入数据的地址 MicboBlaze 去读取 一方面验证了 MicroBlaze 的读操作 另一方面也验证了前面的其他模 块的写操作 第四章 第四章 Bus Interface 的的设计设计 4 1 Bus Interface 的功能和的功能和结结构 构 4 1 1 功能功能 提供一个通道 让 MicroBlaze Soft Processor Core 能够对 Exchange Memory 自行设计 详见上一章 或者 Register 进行读写操作 4 1 2 结结构构 1 MicroBlaze Embedded System 的核心是一个 32 位的 RISC Processor 内建接口与片上快 速存储器 fast on chip memory IBM 的 OPB Bus IBM s industry standard On chip Peripheral Bus OPB 相连 所有的 OPB Peripherals 都是通过 OPB Bus 相互通信 协同工作的 因此 Bus Interface 和 MicroBlaze 打交道的一方也就是和 OPB 连接 OPB 详见第二章 2 根据 opb 的规定 所有的 peripheral 都接收到地址信号和 opb select 信号 通过本身内 部的译码电路判定是否本模块被选中 模块 Pselect 就是起了这样的地址译码作用 3 FPGA 板上的 64KByte 寻址空间 2KB 是 Register 余下的 62KB 全部用来做 Exchange Memory 由于统一编址 Bus Interface 只要根据地址的分配选中 Register 或者 Exchange Memory 进行数据交换 4 接口电路的设计主要考虑地址空间的分配以及写入读出的时序要求 所以对于 Register 和 Exchange Memory 采用两组状态机分别进行 4 2 Bus Interface 整体框整体框图图 4 2 1 整体框整体框图图 OPB RNW OPB seqAddr OPB SELECT OPB ABUS OPB BE BIF DBUS BIF xferAck BIF errAck BIF toutSup BIF retry B BU US SI IF F OPB RSTOPB CLK OPB DBUS EXCHANGE MEMORY rd addr REGISTES rd size rd req wr size wr data wr addr rd data rd ack wr ack rd addr2 wr addr2 wr data rd req2 rd data2 wr req2 wr req OPB BUS 4 2 2 接口信号接口信号 1 全局的信号 OPB Clk 时钟用来驱动模块 OPB Rst rst 用来复位模块 2 BUSIF 和 OPB 的接口 见第二章表格 2 表格 3 用 BUSIF 替代 Sln 3 BUSIF 和 register 的接口 信号名称输入 输出宽度描述 wr req2输出1bit写要求 wr addr2输出 10 2 写地址 wr data2输出 31 0 写入数据 BE输出 3 0 数据宽度 rd req2输出1bit读要求 rd addr2输出 10 2 读地址 rd data2输入 31 0 读出数据 4 BUSIF 和 ITOM BUS 去读写双口 Exchange Memory 的接口 信号名称输入 输出宽度描述 wr req输出1bit写要求 wr size输出 1 0 写入数据宽度 wr addr输出 15 0 写地址 wr data输出 31 0 写入数据 wr ack输入1bit写应答 rd req输出1bit读要求 rd size输出 1 0 读出数据宽度 rd addr输出 15 0 读地址 rd data输入 31 0 读出数据 rd ack输入1bit读应答 4 3 具体具体实现实现 Bus Interface 作为一个 OPB 的 peripheral 具体有三个部分组成 1 地址译码确定被选中 pselect 模块 2 Slave Interface Logic 译码完成和 opb 的握手 3 具体的应用逻辑设计 本文中根据寻寻址范址范围围的不同 选择和 EM 或者 REGISTER 的通信 注意 注意 OPB Bus 的地址的地址 MSB Most Significant Bit 表示了第 表示了第 0 位 位 LSB Least Significant Bit 表示了 表示了 地址的最高位 地址的最高位 这这里是第里是第 31bit 在数据的 在数据的传递过传递过程中要注意地址的程中要注意地址的统统一 一 4 3 1OPB 选选中中 BUS IF 1 PSELECT 模模块块 纯组合电路 地址的高 16 位全 1 确定选中 类类属信号属信号 类属名类型宽度描述 C ABInteger地址译码的位数 C AWInteger输入地址宽度 C BARstd logic vector32Slave 的基础地址 Base Address I O 信号信号 信号名称输入 输出宽度描述 A输入 0 C AW 1 输入地址 Avalid输入1bit地址有效 PS 输出1bit选中 2 Pselect 选中后给出的是电平信号 转换成脉冲 4 3 2 根据地址判断是根据地址判断是选选中了中了 EM 还还是是 REGISTER 1 本模块中 由于 FPGA 的板上的寻址空间是统一编址根据地址的范围来确定选中的是那 个部分 64KB 的寻址空间 0 2k 分配给了 REGISTERS 余下的 62k 留给了 EXCHANGEMEMORY 所以反映到 address 就是 11 15 全零对应于 REGISTERS 其余对应 EM 2 由于相对于 Slave Address Decoder 是下一级的译码 所以实现的时候可以采用二级译码 仅当一级译码有效的时候 即 bus if 被选中的时候才进行译码 3 译码电路一般是用组合的方式实现的 但是具体映射到电路时 还是会有一定的时延 要求 所以采用同时进行两级的译码 时间上有富余 一定能保证功能正确 即 EM 或者或者 Register 的地址判断和的地址判断和 pselect 译码译码同同时进时进行行 当且仅当两者同时有效的时候才会选中 EM 或 者 REG 4 3 3REGISTER 状状态态机机 1 register 有固定的时序要求 用状态机一方面能清晰的描绘工作过程 方便时序的追踪 和修改 另一方面以类似 EM 的描述方式 便于和 EM 部分的协同工作 2 因为没有来自 reg 的 ack 信号 插入了 data ready 和 ack ready 两个状态 使脉冲在需 要的时刻出现 加入或者删减状态数目 能满足不同的时序要求 这个也是用状态机实现的灵 活性所在 3 参考 EM 的状态机 4 3 4EM 状状态态机机 1 EM 提供了 ack 信号 所以只需要常规的状态机 idle read write Ack 作为可以促使状态转换 的变量 不但完成了 handshake 还帮助减少了状态数量 节省了寄存器的使用量 2 由于 EM 的时序不定 决定于 ack 的应答信号 所以需要考虑到出错情况 没有 ack 信号 同时 OPB 中有一个规定 若是一次数据传输在 16 个 clk 内没有应答 则时间溢出 该次数据交 换失败 但是为了满足更长时间的数据交换需要 有一个信号 ToutSup 当它有效时 没 有 16 个 clk 的限制 Counter128 就是这样的一个计数器 当 bus if 被选中的就开始计数 同时将 ToutSup 置 高 有效 如果在计数器计数到溢出时 还没有 ack 信号 则宣告这次数据交换失败 将 ToutSup 拉低 状态机回到 idle 整个系统继续正常运作 3 EM 状态图 write idle read NOT block select em 1 block select em 1 opb rnw reg 1 rd ack 1 or counter128 timeout NOT rd ack 1 NOT counter128 127 NOT wr ack 1 NOT counter128 127 wr ack 1 or couner128 timeout wr ack 1 or couner128 timeout X 4 4 Simulation 仿真仿真结结果 果 Register OPB Clk OPB ABus OPB BE OPB DBus OPB RNW OPB select BIF DBus BIF xferAck rd data2 rd req2 rd addr2 wr data2 wr req2 wr addr2 BE ns 350400450500550600650700750 FFC0000800000000FFC0001 000000000FFC01 1 00 030F 0000887700000000 5743987600000000 57439876 002004040 0000887700000000 002004040 F3F 00000000 register 的读写 外部需要被写入的数据稳定后一个 clk 送出 rd req2 到 register 同时也把写入的地址给出 两 个 clk 后数据被 busif 送出给 MicroBlaze 同时给出 ack 标志一次数据传输完成 读类似 ExchangeMemory OPB Clk OPB Rst OPB ABus OPB BE OPB DBus OPB RNW OPB select BIF DBus BIF toutSup BIF xferAck rd ack rd data rd req rd size rd addr wr ack wr req wr ad
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公共营养师考试四级公共营养师技能考核试题及答案
- 汉语期末考试题及答案
- 韩语常用语考试题及答案
- 水利工程灾害风险评估与应急方案
- 2025年智能制造与自动化技术职业考试试卷及答案
- 2025年文科函数试题及答案
- 机电设备安装工程安全施工方案
- 老旧二次加压泵房及供水管网补短板工程项目风险评估报告
- 2025年国家能源投资统招考试题库(答案+解析)
- 2025年儿童健康管理培训试题
- 术后患者管理制度、术后患者处理工作流程
- 高中体考笔试试题及答案
- 办公室管理-形考任务二(第一~第二章)-国开-参考资料
- 2025年无线电装接工(中级)职业技能考试题(附答案)
- 2024年秋季新北师大版七年级上册数学全册教案设计
- 2025年地磅租赁合同协议样本
- 2018天成消防B-TG-TC5000火灾报警控制器消防联动控制器安装使用说明书
- (高清版)DB32∕T 4443-2023 罐区内在役危险化学品(常低压)储罐管理规范
- 医院培训课件:《输液泵》
- 量子通信金融应用研究报告
- DBJ51-T 184-2021 四川省预成孔植桩技术标准
评论
0/150
提交评论