原创 基于FSMD模型的IP集成方法

2007-12-23 21:14 1807 1 1 分类: 软件与OS
引 言

随着半导体工艺的飞速发展,SOC(系统芯片) 逐渐成为集成电路设计的发展主流。然而,目前集成电路的设计能力和EDA 工具能力却远远落后于半导体工艺的发展。两者之间日益加剧的差距已经成为SOC 技术发展过程中一个突出的障碍。采用IP(知识产权) 复用进行设计是减小这一差距唯一有效的途径。但是,IP 在SOC 上集成是很困难的,必须考虑同步、协议转换、I/ O 缓冲等问题,并非每个验证通过的IP 核集成在一起就能正常工作,为此,出现了很多解决集成问题的方法。

VSIA(虚拟插座接口联盟) 基于系统层合成问题进行了最早的尝试,提出一个VCI (虚拟器件接口) 标准,定义了一种单向、点对点、数据定向传输的协议;为了改善它的局限性,文献提出用两个VCI 接口实现双向连接,不过会增加更多的通信附加延迟。很多EDA 公司也提供了一系列的工具,但是这些工具都要求IP 核模型适合于综合仿真和系统层性能分析,而且还不能与IP 接口合成相关的延迟计算、I/ O时钟约束等低层描述问题。IP 核作为SOC 的一部分必然要与系统中的其它模块或者核之间通信,当IP核内部单元数据传输时序与外部接口传送顺序不一致,或者顺序相同时钟约束不同步都会造成直接集成的失败。因此,本文提出一种比较全面的集成方法,利用了IP 核和SOC 集成的约束条件,是解决IP 核复用问题的关键。

设计流程描述

设计流程图(图1) 中包括IP 设计任务和系统设计及集成,两个任务的连接是通过IP 执行模型和IP延迟模型。IP 延迟模型是IP 核集成时的低层描述。这两种模型应该由IP 设计者提供,而且是IP 成功集成的一个关键要素。从下面的介绍中您将会看到,这些模型不但是IP 设计者保护IP 核内部结构的一个有效措施,而且清楚描述了IP 核的功能及约束条件,解决了IP 设计者与SOC 集成者之间的交互问题。

pld_075136_1f.jpg

IP 核设计

所有IP 设计都是从模块的功能说明开始,然后由便于执行的硬件语言来描述。功能单元一般通过RTL (register transfer level) 源代码或者高级行为合成工具(system C 编译器) 描述,在这些描述的基础上可以提取集成所需的IP 执行模型。通常IP 核的结构由执行算术运算的处理单元PU、储存数据的存储管理单元MMU、驱动PU 和MMU 的控制单元CU、控制内部结构和外部环境通信的接口单元IU 构成。

IP 执行模型的产生
假设IP 核的功能单元是用RTL 描述的,处理单元和存储管理单元分别用FSMD(带数据通道的有限状态机) 模型MP 和FSMD 模型集合MM 构造,MM={MM1 , MM2 , …, MMi} , MMi代表第i 个储存的元素,1≤i ≤NMP ( NPM :连接处理单元与存储管理单元的总线个数) 。

IP 执行模型产生的第一步:将MM 状态与MP 的状态合并起来得到一个FSMD 模型MPM ;第二步:将有序的MPM状态归并为一个超级态,这个超级态将作为存储器的存储状态在2 个I/ O 端口之间传输。

既然IP 核的描述在RTL 层,而且处理单元的所有传输顺序是完全确定的,那么时钟信息可以提取并添加到产生的FSMD 模型MPM中,例如,最后输入的数据与最早输出的数据之间的时间间隔Tpu ( d) ,由PU 与IU 之间的数据交换协议引起的传输延迟时间Δ和数据有效期L T ( d) 。因此,最终IP 执行模型用一个FSMD 模型构造,这个FSMD 模型包括状态合并步骤产生的一系列超级态和数据传输时的时序框架信息。

IP 延迟模型
要将IP 模型嵌入高层系统描述中,系统设计者在性能分析时必须能对合适的虚拟器件进行仿真和评估,因此IP 核的功能描述都是与一个描述时钟约束的延迟模型相结合的,在系统设计之前考虑IP 核的时钟约束可以使得集成优化,另外系统设计者还要考虑这个系统中其它部分与IP 核之间的同步问题。既然IP 执行模型也是描述IP 核的功能和时钟约束的,那么IP 延迟模型是在IP 执行模型形成的过程中产生的。

系统设计

系统设计首先从应用实例的系统规范开始,再从约束标准(速度,面积,功耗等) 出发,在数据库中选择合适的IP 核和采用一系列的综合设计技术(HW/SW划分,系统性能分析,通信合成HW 和SW 等) 。为满足集成约束条件和实现IP 集成,系统设计者只能将系统约束与IP 执行模型提供的执行时间、I/ O 传输顺序、I/ O 时钟约束等低层描述合并起来。

系统约束主要有3 种类型: (1) 全定型:由精确的传送数据和数据传送顺序确定; (2) 半定型:由数据传输的时序框架和不定的数据传送顺序确定; (3) 不定型:这些约束条件是为连接IP 核与系统其它部分的Nr 根总线所规定的,每一个约束条件将转换成FSMD模型来描述总线上的传输过程, 因此集合Mr ={Mr1 , Mr2 , …, Mri}描述了每一根外部总线的集成约束条件,Mri代表第i 根总线,1≤i≤Nr , MMP与Mr 之间是一个层次链接集,每一个链接可分为两个子集:数据链接集和控制链接集。控制链接集模拟一个数据交换协议。与层次链接关联的每个数据的时序框架都必须考虑IP 核接口单元与系统之间的数据传输延迟和数据交换协议延迟。

IP 接口合成

合并系统约束和IP 约束有利于优化设计IP 集成要求的IP 接口单元,通过接口单元的每一个I/ O数据都以数据有效期L T ( d) 和两个传送之间的时间间隔TIU两个时序框架为特征量,它们可以通过合并以下约束条件得到: (1) 由IP 执行模型提供的IP 功能和时钟约束; (2) 系统集成约束Mr 和数据传送序列; (3) 传送延迟(处理单元与接口单元之间由于数据config. xml 。这个文件放在应用程序WEB-INF 目录中,在启动时由Struts 构架读取。Struts-config. xml 是一个基于Struts 应用的最重要的配置文件,其中包含了所有的Action 请求(指以. do 结尾的请求) 、相应的Action 处理类、FormBean ,以及页面的转向等信息的配置。下面显示了struts-config. xml 文件中的重要的部分action-mappings。

< struts-config >



< !--===Action Mapping Definitions===-- >
 
< action-mappings >
  
< !--Process a user logon-- >
  
< action path =″/ logon″
   
type =″org. apache. struts.webapp. example.LogonAction″
   
name =″logonForm″
   
scope =″session″

input =″/ logon. jsp″>

< / action >



< / struts-config >

如果客户端传送这个请求:

http :/ / localhost/ struts-example / logon. doStruts ActionServlet
就去掉后面的扩展名( . do ) , 在Struts 配置中查找一个叫做Logon 的动作。如果找到带有这个名字的一个动作,就调用其execute ( ) 方法(Struts1. 1) 。在动作的execute ( ) 方法中执行请求的商业逻辑。

当ActionServlet 处理一个请求时,ActionServlet 根据Struts-config. xml 中的配置信息,将用户请求封装成一个指定名称的FormBean ,即通过使输入请求参数的名字与Bean 属性的名字相匹配, 并调用适当的setXXX() 方法来填充Bean。并将此FormBean 传至指定名称的ActionBean ,由ActionBean 完成相应的业务操作,如文件操作、数据库操作等。FormBean 中的属性名一定要和请求的表单域名完全对应起来。Struts就是由此从浏览器端提取提交的数据, 并填充到FormBean 对象中,再传送给LogonAction 类进行处理的。

Struts 的优点

(1) 计算和显示清楚地分开了,在JSP 页面上没有出现处理过程,在Servlet 或商业逻辑中没有数据格式。Java 程序员与HTML 编写者分工明确。

(2)JSP 标记机制的使用,消除了JSP 页面中的Java 代码。

(3)MVC 的实现样例,如果您希望创建您自己的MVC 实现,则Struts 可增加您的见识。

来源:无忧电子开发网

文章评论0条评论)

登录后参与讨论
我要评论
0
1
关闭 站长推荐上一条 /2 下一条