您的位置 首页 IOT

根据ASIC流程和虚拟软硬件协同完成USB主机控制器IP的规划

基于ASIC流程和虚拟软硬件协同实现USB主机控制器IP的设计-遵循USB 规范和开放主机总线接口(Open HostController Interface, OHCI)规范,基于ASIC流程开发出了USB1.1 OHCI 主机控制器IP。

IP 就其实质来讲是一个能供给正确接口信号的功用模块。跟着EDA 技能和半导体工艺技能的开展,集成电路的规划越来越大,规划越来越杂乱,运用IP 核是一个必然趋势。研讨开发超大规划集成电路规划业亟需的、具有杰出运用远景的IP 核,活跃推进IP 核的运用,关于我国集成电路工业的良性开展将会起到极大的促进作用。USB 通用串行总线是很多核算机厂商和电信厂商共同开发的用于核算机外设连通到核算机的标准。它日益成为一种干流的核算机接口标准。它包含3 大技能要素:主机,集线器和功用。国外一些公司近年来相继开宣布依据上述3 个技能要素的IP,国内一些IC 规划公司也开端在这些领域内作研讨,但因为USB 主机操控器IP的规划一直是USB 体系规划中的难点,效果较少。

遵照USB 标准和敞开主机总线接口(Open HostController Interface, OHCI)标准,依据ASIC流程开宣布了USB1.1 OHCI 主机操控器IP。

依据ASIC流程和虚拟软硬件协同完结USB主机操控器IP的规划

在一切的完结中,主机操控器都有必要供给根本相同的功用,首要包含状况处理、串行化与反串行化、帧产生、数据处理、协议引擎、传输过失操控、长途唤醒、集线器、主机体系接口。依据这些要求,参阅USB 标准和OHCI 标准,经过界说一组与主机体系存储器交互的虚拟主机总线接口以及收发器接口,作者将规区分红若干部分,将每一部分需求完结的方针功用独自描绘并验证,在此基础上再作顶层的整合。进行功用区分后OHCI 主机操控器IP 的结构如图1。

主机操控器功用模块规划

主机体系接口模块

该模块由两个部分组成,首要功用是在主机体系与OHCI主机操控器之间树立高速的数据通道。依照数据传输的建议者不同,能够分为HCI 主模块和HCI 从模块,前者担任建议对体系存储器的读写操作,后者担任呼应主机体系或CPU 的读写操作。针对不同的SoC(System on a Chip)片内总线,能够在主机体系接口模块与片内总线之间完结简略的胶合逻辑,然后完结USB 主机操控器IP 的重复运用。

状况操控模块(USB State Control)

它是列表处理器层次结构的上层模块,直接由OHCI 寄存器来操控。它完结了主状况机,可用来触发列表处理器中较低层次的状况机。主状况机还能够生成一些操控信号,以便操控下列操作:传输SOF(Start of Frame)标明、复位/康复、向体系存储器中的HCCA(Host Controller CommunicationArea)写回每微秒的帧序号等。该模块还完结了优先级算法,该算法依据OHCI 寄存器决议当时需求处理周期性列表仍是非周期性列表,假如非周期性列表取得优先权,它能够确认当时应该履行的传输是操控传输仍是批传输。

列表处理器模块

它是整个IP 核最要害的操控器,完结了OHCI 标准规则的绝大部分协议。依照OHCI 标准,它有多个状况机完结列表服务流、列表优先级、ED/TD 服务、状况写回、TD 撤离等功用。它充任一个操控器,衔接HCI Master 和Host SIE,协助它们在体系存储器和USB 之间完结数据传输。它包含4个子模块:列表服务流程模块、端点描绘符服务流程模块、传输描绘符服务流程模块以及HCI Master 接口模块。

数据FIFO 和数据FIFO 操控模块

数据FIFO 模块完结了一个宽度为8bit、深度为64byte的FIFO,它的首要作用是同步Host SIE 和HCI Master 之间的数据传输。数据FIFO 操控模块完结了主机操控器的内部数据FIFO 的方向操控逻辑,以便在USB 和体系存储器间传输数据。

关于IN Packet,当数据从端点接纳时,Host SIE 将其存储在数据FIFO 中。当一切数据收到(对GTD/ITD 而言)或数据FIFO 中的数据超越必定的门限(≥16byte),TD 状况机建议一个写指令告诉HCI Master 接口模块。HCI Master 接口模块供给写的开始地址,一起本模块供给写回的字节数,触发HCI Master 履行一个写周期。HCI Master 写操作完毕今后,它将操控返回到TDSF 的TD 状况机。

相似的,关于OUT Packet,TD 状况机告诉本模块从体系存储器读取数据。读操作的地址和字节数由HCI Master 模块来供给。若数据超越16byte,它将经过HCI Master 履行屡次操作。

主机操控器串行接口引擎模块

本模块首要用来完结USB 标准中协议处理部分的功用。它用作主机操控器的协议引擎,而且与列表处理器、数据FIFO 以及OHCI 寄存器相衔接,此外它还完结了用来同步HSIE 和端口状况机之间接口的操控逻辑。本模块的数据流框图如图2 所示, 图中HSIE 模块作业在48MHz、打包模块和拆包模块作业在12MHz,因而需求异步逻辑在不同的时钟域之间完结同步,为简略起见,图中省去了异步逻辑模块和操控逻辑。

在USB 数据接纳期间,D+和D-信号经由差分接纳器变成单端字位流,然后经由DPLL 模块提取时钟和数据信息。在HSIE 的接纳器中完结了大部分协议解说功用, 比如NRZI-NRZ 的改变、位填充撤除、同步域检测、SE0 检测、CRC16 核算、超时逻辑、串并转化、速度操控等。在拆包模块中还完结了状况机来检测USB 的功用是否收到有用的握手信号。

在USB 数据发送期间,打包模块依据列表处理器的要求确认需求发送的包类型。有3 品种型的包:标明,数据,握手包。假如是数据包,则需求进行CRC16 校验;假如是标明包,则需求进行CRC5 校验;握手包不需求进行CRC 校验。打包模块随后将字节撒播送给HSIE 的发送器进行同步域增加、并串转化、位填充、NRZ-NRZI 转化等作业。限于篇幅,仅介绍其间的要害模块:时钟康复和数据提取电路以及并行CRC 算法。

(1) 数字相环(Digital Phase Lock Loop,DPLL)

因为USB 主机与USB 设备所选用的作业时钟彻底分离性,仅有的交互信息是USB 总线上的字位流,为了正确提取字位流中包含的数据信息,有必要有一套机制从接纳到的字位流中康复时钟信息。本文选用一种超前滞后型数字锁相环(Lead Lag DPLL)来完结上述功用。LL-DPLL 时钟康复环路的原理如图3。

环路的作业原理如下: 数字鉴相器( Digital PhaseDetector)比较字位流数据Data 与本地跟从时钟Clk_out 的相位,给出相位过失信号Lead Pulse 和Lag Pulse。数字环路滤波器对相对过失进行滑润滤波,并生成操控数控振荡器的操控信号Deduct 和Insert。DCO 依据操控信号给出的指令,运用内部高速振荡器的产生的时钟调整输出时钟Clk_out 的相位,使其跟从输入数据Data 的相位。依照康复时钟对输入的字位流进行采样,即可提取数据。

(2)并行CRC 算法

为了进步串行数据的校验速率,在传统的串行CRC基础上,本文提出了一种并行CRC 算法,以CRC5 为例,该算法的Verilog 硬件描绘如下:

module usbh_crc5(ci, d, co);

input [4:0] ci; //上一次输入数据CRC 校验值或CRC 初值

input [10:0] d;//输入的待校验数据

output [4:0] co;//本次输入数据的CRC 校验输出

assign co[0] = d[10]^d[9]^d[6]^d[5]^d[3]^d[0]^ci[0]^ci[3]^ci[4];

assign co[1] = d[10]^d[7]^d[6]^d[4]^d[1]^ci[0]^ci[1]^ci[4];

assign co[2] = d[10]^d[9]^d[8]^d[7]^d[6]^d[3]^d[2]^d[0]^ci[0]^ci[1]^ci[2]^ci[3]^ci[4];

assign co[3] = d[10]^d[9]^d[8]^d[7]^d[4]^d[3]^d[1]^ci[1]^ci[2]^ci[3] ^ci[4];

assign co[4] = d[10]^d[9]^d[8]^d[5]^d[4]^d[2]^ci[2]^ci[3]^ci[4];

endmodule

根集线器装备模块

本模块完结了针对根集线器部分的OHCI 寄存器堆,并为每个下行端口完结了一个状况机以操控端口功用状况。根集线器装备模块能够依据不同的用户需求做到端口数目可装备,最多可装备15 个下行端口,为用户供给了很大的灵活性。

仿真与验证

USB 是一个杂乱的体系,包含上层运用程序、USB 类驱动程序、主机操控器驱动程序、主机操控器以及USB 设备,为了对USB 主机操控器进行全面的行为级验证,有必要树立相对完好的虚拟验证渠道。本文的验证作业依据中科院核算所自行开发的SoC 虚拟验证渠道,首要验证下述内容:

(1)主机操控器IP 的OHCI 寄存器堆的可编程性;

(2)主机操控器IP 与虚拟存储器之间数据传输的正确性;

(3)主机操控器IP 内部协议处理部分在不同品种传输状况下的正确性,包含帧办理、主状况机在各种条件下的状况转化和办理、串行化与反串行化、位填充与位填充撤除、时钟和数据信号提取、NRZ 和NRZI 码彼此转化、中止处理等;

(4)传输过失处理,包含CRC 校验错、PID 校验错、位填充错、传输次序错、运用程序缓冲区BufferOverRun 和BufferUnderRun错、操控器内部数据FIFO DataOverRun 和DataUnderRun 错、设备Babble、设备超时错等;

(5)根集线器装备部分功用,首要包含下行端口状况转化、设备衔接/断开检测、端口过流检测、长途唤醒、设备挂起、USB 总线复位等。主机操控器IP 规划运用的硬件描绘言语是Verilog。仿真东西运用Cadence 公司的NCSIM。逻辑归纳运用Synopsys公司的Design Compiler。作者在RTL 规划完结今后在行为级作仿真。在确认行为正确今后,运用归纳东西作逻辑归纳,构成网表文件和归纳后的时延估量(Standard Delay Format,SDF)文件,然后运用这两个文件作门级仿真。

为简略起见,本文列出归纳后门级仿真一个典型Setup买卖的波形图,如图4 所示。图中USB 总线上进行的买卖为USB 总线复位完毕今后,主机操控器检测到根端口1 上接入了一个USB 设备,由根端口作完设备速度评价,判别出接入端口1 的虚拟设备为全速设备,然后运用程序依据这些信息以及现有体系中USB 设备的相关信息来设置当时接入的设备地址,图中所示波形展现了主机宣布SetAddress 恳求今后USB 总线上的数据线D+和D-的行为以及主机操控器IP 的端口数据线的行为。

定论

USB 主机操控器IP 规划是一个归纳考虑软硬件体系各方面状况的杂乱规划,作业时没有经验能够参阅,所以也遇到不少问题。在IP 规划中,根本是依照IP 有必要遵照的两个标准来区分电路的功用子模块,然后在子模块中详细完结相关的功用,自顶向下规划。在行为级和归纳后的门级仿真时,选用虚拟的软硬件协同验证办法,模仿实际操作体系中针对当时有待验证的电路将会产生的行为,进行高强度的测验和验证,电路作业正常。这些成果阐明软硬件协同规划和验证在IP 规划进程傍边也是适用的,本规划也是这方面作业的一个探究。

责任编辑:gt

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部