论文部分内容阅读
该文着重介绍了USB2.0接口模块UTM和SIE的设计、重点解决的设计问题以及如何建立一个具有可扩展性和易修改性的测试环境并对仿真、综合和版图结果进行了分析.UTM模块能够工作在480Mbit/s(HS)和12Mbit/s(FS)两种传输速率下,并且能够根据工作情况进行正确的切换.该论文主要通过产生一个采样时钟周期的被采样信号来解决相互关联时钟域即{clk480,clk60}和{clk12,clk60}之间的时序问题,此外有时也产生一个长时间的稳定信号,该信号被采样时钟采样后复位.该论文通过采用另外一个更高频(和Clk12时钟相比)的时钟clk60来对SE0进行采样,从而解决了FS模式下的SE0的检测(在极端情况下它的脉冲宽度可能小于一个Tclk12周期);论文也对其他的极端情况下的接收处理问题予以了解决.该论文提出了一种异步方法来解决具有两个异步时钟的FIFO的Full和Empty状况的判别,以此避免了同步方法中对FIFO的读、写指针所做的同步采样造成的不确定态.在高速模式下,通过采用两个Shifters来分别解决在去串行化和串行化时的数据接收和发送问题.最后,由于UTM模块的工作频率很高,所以如何考虑关键路径的组成是能否设计一个正确的电路的关键,该论文通过采用输入信号的同步化处理、尽可能的减少关键路径的门级数和减少不同时钟域内信号的使用来达到减少关键路径的延迟.SIE模块主要是基于USB2.0协议进行设计的,这包括对具有高速性能的设备进行的协议层的处理,即对USB2.0规定的四种传输的正确处理以及对Suspend、Resume和Reset三种过程的正确处理.通过对协议的处理、DMA操作的处理和Wishbone接口的信号处理由此完成对SIE和MCU的接口寄存器内容的正确更新或者根据接口寄存器的内容进行相应的操作.其中DMA模块的设计用来实现数据缓冲器和MCU内存之间数据的快速传输,从而提高MCU(Microcontroller Unit的简写)的工作效率.另外为了设计一个与SoC设计兼容的IP模块,SIE模块采用了Wishbone接口.对于该Wishbone接口,通过采用FIFO模块实现了SIE内部时钟频率和Wishbone接口频率不一致的问题.当然,SIE模块设计中最重要的是通过保证每个模块完成比较单一的功能(有利于复用),同时尽量保证各个模块的输出信号为同步输出以此简化关键路径的延迟考虑来实现SIE各个模块的功能划分.除了UTM和SIE模块的RTL设计,该文也探讨了如何建立一个用于UTM和SIE模块的测试环境,该测试环境尽可能的模仿了Host和MCU的行为,同时包含了相当多的测试情况.该论文通过采用测试环境的数据文件和测试激励文件分开的方法,实现了测试环境的可扩展性和可修改性.同时该论文也通过采用有限状态机的方式来提高测试环境的自动化程度,从而简化了不同测试情况的编写;此外该方法也提高了测试环境的整体性能,因为它更符合实际Host和MCU的工作情况.为了解决数据缓冲器和MCU内存都是外置的情况,同时也为了提高仿真速度,该论文采用了行为级代码描述的方式来建立虚拟的数据缓冲器和MCU存储器来解决上述问题.UTM和SIE的设计采用自顶向下的设计方法,同时也采用了低功耗(如Gated Clock设计)和资源共享(如采用Muxed Clock以及计时器共享)的设计方法学原理.UTM和SIE模块采用Verilog完成RTL编程,并用DC和PrimeTime、Formality工具进行了综合、时序分析、一致性检查,最后采用SMIC的0.18umCMOS工艺并用Astro工具完成了版图设计.