利用电路建模进行数据处理的方法和系统的制作方法

文档序号:6553642阅读:232来源:国知局
专利名称:利用电路建模进行数据处理的方法和系统的制作方法
技术领域
本发明涉及用于流应用的建模。更具体地,本发明涉及用于实时 地或接近实时地对流应用进行建模的方法和装置。
背景技术
电子行业持续投入大量努力,以求获得高性能、高功能的电路。 这方面的显著成就体现于,在小的硅晶片区域上制造超大规模集成电 路。这种类型的集成电路通过特定顺序的一系列步骤而得以发展。设 计这种器件的主要目标是,获得与器件的具体设计的地理特征相一致 的器件。为了实现这个目标,严密地控制设计过程中的步骤,以保证 刚性要求得以实现。
大量使用半导体器件来构造多数的现代电子器件。为了增加这些 电子设备的性能,需要把甚至更多数目的这些器件集成到单一的硅晶 片中。由于把半导体器件缩小(即使其变小)以在给定的表面区域上 形成更多数目的器件,这些器件的结构以及用于制造这些器件的制造 技术变得更加精细。对这些半导体器件进行细化的增强的能力导致不 断增加的定制芯片增殖,每一个芯片具有唯一的功能和应用。而这又 导致了用于有效且非昂贵地对芯片进行设计和成功测试的各种技术。
对于许多芯片设计,通过使用硬件描述语言(HDL),例如Verilog 或VHDL,对定制芯片的功能进行描述,以此来制造定制芯片。通常编 写硬件描述语言来描述该设计在功能性宏组方面的特征。对该设计进 行计算机仿真,以确保满足定制的设计标准。对于高度复杂的定制芯 片设计,上述过程繁重且代价高。这些芯片高度集成的结构导致未期 望的问题,例如信号时序、噪声耦合以及信号级的问题。因此,这些 复杂的定制芯片设计包括外延验证(extensive validation)。通常,
使用Verilog或VHDL仿真器在不同的级上执行这个验证。一旦在这个等 级上进行验证,则例如使用"Synopsys"对Verilog或VHDLHDL代码进 行综合以形成网表,把该网表提供给ASIC (专用集成电路)工厂进行 原型制造。然后在硅中对ASIC原型进行测试。即使在利用Verilog或 VHDL仿真器进行该验证后,典型地也可能出现未期望的问题。克服这 些问题包括对上述过程进行更多次的反复,在仿真级和原型级进行测 试和验证。该反复明显增加了设计时间和成本,使得这个实践在当今 时效性很高的市场中通常是不可忍受的。
类似的问题出现在半定制设计中,例如可编程逻辑器件。可编程 逻辑器件也被称作"PLD",是一种公知类型的集成电路,可以被编程 以执行特定的逻辑功能。 一种常见类型的PLD是现场可编程门阵列 (FPGA),它具有多个不同的电路片(tile),每一个电路片都允许对 其功能进行编程的特定灵活性。尽管多数PLD的编程明显快于多数复杂
定制芯片的设计,然而这些工作仍包括明显的延迟。
如2002年2月12日公布的美国专利No.6, 347, 395,标题为"Method and Arrangement for Rapid Silicon Prototyping"中示出并描述的 那样,可通过快速硅原型开发方法和装置将典型的开发周期(从最初 的设计到新的产品)縮短多于50%。然而,即使利用快速硅原型开发, 也需要实质的延迟对修改的设计进行编译,以评价新的算法或解决在 验证期间发现的问题。
当试图实时或接近实时地对流数据进行处理时,其中延迟度在逐 个应用的基础上是可忍受的,这些芯片开发问题变得突出。

发明内容
因此,需要能够克服上述缺陷的用于开发定制(包括半定制)芯 片的方式。本发明通过对这里公开的每个示例进行设计建模,解决了 这个需求和其他需求。
本发明的各个方面涉及以解决和克服上述问题的方式对流数据 进行设计建模和/或处理。根据一个示例实施例, 一种用于对硬件规范 进行建模的系统包括被设置为接收输入数据流并发送输出数据流的平
台。所述系统还包括流应用源,适于以源数据率提供输入数据流;
流应用目的地,适于以目的地数据率吸收输出数据流;以及数据信道,
把所述平台与通用计算机相连。所述通用计算机适于根据所述硬件规 范的至少一部分、从第一中间数据流中产生第二中间数据流,第一数 据流通过所述数据信道从所述平台而接收,而第二数据流通过所述数 据信道而发送至所述平台,其中,第一中间数据流基于输入数据流, 而输出数据流基于第二中间数据流。
本发明的另一个实施例公开了一种用于对电子设计进行建模的
方法。所述方法包括根据流过所述电子设计的流数据,把针对流应 用的所述电子设计分为用于接收流应用的输入数据流的起始部分、中 间部分以及用于发送流应用的输出数据流的结束部分。所述方法还包 括产生针对所述起始部分和所述结束部分的硬件规范;产生针对所 述中间部分的抽象软件模型;以及从所述硬件规范中产生可编程逻辑 器件(PLD)实施方式的配置数据,其中,所述PLD包括由所述配置数 据进行编程的可配置逻辑和可配置路由。所述方法还包括从所述抽 象软件模型中产生可执行程序,以及使用所述配置数据操作所述PLD 并使用所述可执行程序操作通用计算机,其中,所述电子设计由所述 PLD和所述通用计算机的操作来建模。


考虑下文结合附图对本发明的各个实施例的详细描述,将会更加 完整地理解本发明,其中.-
图l是根据本发明用于实时抽象(abstract)流应用建模的示例 系统的框图2是根据本发明用于实时提炼流应用建模的另一示例系统的框 图;以及
图3是根据本发明用于实时提炼流应用建模的示例方法的流程图。
具体实施例方式
虽然本发明能够适应各种修改和备选形式,然而其细节已经通过 附图中的示例而示出,并将被详细描述。然而应当理解的是,其意图 不是把本发明限制为所述具体实施例。相反,本发明将覆盖落入所附 权利要求限定的本发明的精神和范围内的所有修改、等同物和备选。
本发明被认为大体上可用于使用如下电路的数据处理方法和装 置该电路需要对电路配置数据的快速编译。本发明尤其可有利地用 于实时或接近实时地处理流数据,其中延迟度在逐应用的基础上是可 忍受的。虽然本发明不会被限制为这些应用,然而通过对该环境中的 示例的讨论,可以最好地获得对本发明各个方面的理解。
根据本发明一个示例实施例, 一种对硬件规范进行建模的系统包 括被设置为接收输入数据流并发送输出数据流的平台。所述系统还包 括流应用源,适于以源数据率提供输入数据流;流应用目的地,适 于以目的地数据率吸收输出数据流;以及数据信道,把所述平台与通 用计算机相连。所述通用计算机适于根据所述硬件规范的至少一部分、 从第一中间数据流中产生第二中间数据流,第一数据流通过所述数据 信道从所述平台而接收,而第二数据流通过所述数据信道而发送至所 述平台,其中,第一中间数据流基于输入数据流,而输出数据流基于 第二中间数据流。
参考图l,示出了根据本发明的系统100的框图,该系统用于对流 应用进行实时的抽象建模。流应用具有流数据源102,例如流视频或音
频源,例如视频带播放机、视盘播放机或音频播放机。流应用具有流
数据目的地104,例如视频显示设备或音频扬声器。在把处理的数据传 递到目的地104之前,根据流应用的硬件规范由平台106和通用计算机 108的组合对来自源102的数据进行处理。平台106和计算机108通过信 道110进行通信。
平台106可以是基于PLD的平台,或可编程以执行流应用的一部分 的其他设备。备选地,平台106可以是基于S0C的平台,它包括片上系 统(SOC)。 Philips Semiconductors的示例平台106包括快速硅原型开 发和Nexperia平台,以及Nexperia高级原型开发架构。
平台106的示例S0C可以包括多种建造块, 一个或更多个数字信号 处理—块,它们典型地应用流应用的设计中。流应用的硬件规范的特定 部分可以包括可用建造块子集的实例,而硬件规范的余下部分可以由 计算机108来建模。例如,流应用可以包括各种标准块和创新的定制块。
流应用可以由系统100来建模,而系统100具有由平台106建模的标准块 和由计算机108上的软件处理功能112建模的定制块。定制块的各种备 选设计可以快速地由系统100来评价,因为由软件处理功能112建模的
定制块可以快速地被修改和重编译。
典型地,平台106包括用于从应用数据源102接收流数据的接收机 114。接收机114可以包括处理功能,例如把来自视频带播放机102的模 拟信号转换为数字视频流。典型地,平台106包括用于向应用数据目的 地104提供处理的流数据的发射机116。发射机116可以包括处理功能, 例如把处理的数字视频流转换为视频显示单元104的模拟信号。可以理 解的是,接收机114和发射机116要么可以包括在PLD或S0C中,要么可 以与PLD或SOC分离,平台106基于该PLD或SOC。
硬件处理功能118可以执行流应用的部分处理。硬件处理功能118 实现了与信道110的接口。信道110的示例包括例如PCI X的并行总线, 或是例如PCI Express的串行或并行通信链路。典型地,信道110根据 具体的流应用而提供高带宽。信道110可以是由计算机108直接支持的 通信协议,或由计算机108支持的通信协议与另一个通信协议(例如专 有通信协议)之间的适配器。
典型地,硬件处理118通过信道110向计算机108发送从应用数据源 102接收到的、局部处理后的流数据。可以理解的是,硬件处理118可 以向计算机108仅发送流数据的一部分,例如彩色视频数据的一个颜色 分量的数据。可以理解的是,硬件处理118可以在不进行前处理的情况 下向计算机108发送流数据。硬件处理118还通过信道110从计算机108 接收已经由处理功能112处理过的流数据。硬件处理118向应用数据目 的地104发送流数据,该数据基于从计算机108接收到的流数据。硬件 处理118可以在向应用数据目的地104提供流数据之前执行对流数据的 附加处理。
元件处理功能112可以是通用计算机108上编译的软件功能。功能
112从平台106接收的流数据和功能112发送至平台106的力数据可以具 有抽象数据类型,例如数字序列,每一个数字表示流视频数据的像素 强度值。由计算机108提供的可用抽象数据操作功能,例如乘法和加法, 可以用于对抽象表示的流数据进行抽象的处理。示例功能112垂直地和 /或水平地对视频图像的方向进行定标。
可以理解的是,附图中描述的元件仅用于描述,以帮助理解本发 明。如同现有技术中已知的,被描述为硬件的元件可以等同地以软件 来实现。对特定电子电路的引用也仅为了帮助理解本发明,而且用于 执行本质上相同功能的任意电路可以被看作是等效电路。
参考图2,示出了根据本发明的系统200的框图,该系统用于对流 应用进行实时的抽象建模。来自源202的流应用数据由基于PLD的平台 204、信道206和计算机208的组合来处理,而处理后的流应用数据被传 递至目的地210。
平台204可以包括从应用数据源202接收流数据并向FPGA 214提供 流数据的接收机212。 FPGA 214可以包括存储器216,而FPGA 214可以 被编程为实现与存储器216进行接口的DMA块218。DMA块218可以提供面 向存储器216的4个独立DMA信道。第一DMA信道可以用于把通过接收机 212从源202接收到的数据写入存储器216;第二DMA信道可以用于从存 储器216读取数据,该数据通过发射机220传递到应用数据目的地210; 第三DMA信道可以用于从存储器216读取流数据,该数据通过信道206 传递到计算机208;以及第四DMA信道,可以用于把通过信道206从计算 机208接收到的流数据写入存储器216。
存储器216可以是双端口存储器,其中DMA块218与一个端口相连, 而PFGA 214被编制用于实现与另一个端口相连的处理块222。处理块 222可以在把处理后的数据传递给计算机208之前执行对从源202接收 到的流数据进行处理,而且处理块222可以在把处理后的数据传递给目 的地210之前执行对从计算机208接收到的流数据进行处理。因此,来 自源202的流数据在传递给目的地210之前,可以由处理块222、计算机 208以及再次由处理块222进行三次按顺序的处理操作。可以理解的是, 根据流应用规范,可以省略由处理块222执行的这些处理操作中的任一
或两者。在一个实施例中,处理块222可以包括处理器。
在一个实施例中,信道206是插入服务器计算机208的PCI-X卡。 PCI-X卡206包括另一个FPGA 224,被编程为实现线路226上的PCI-X总 线的PCI-X协议与线路228上的专有通信协议之间的适配器功能,该专 有通信协议基于FPGA 214和FPGA 224所支持的低电平差分信令。FPGA 224的适配器功能包括PCI-X核心230、存储器映射DMA控制器232、用 于1/0事务处理的存储器映射桥234、用于存储器事务处理的存储器映 射桥236、中断控制器238和信道控制器239。 PCI-X核心230可以实现线 路226上的PCI-X总线的PCI-X协议。存储器映射DMA控制器232可以由计 算机208控制,以从存储器216读取脉冲串数据传输,从而通过PCI-X 控制器242把流数据传递到计算机208的存储器240。计算机208可以产 生导致PCI-X控制器242通过存储器映射桥236向存储器216发送流数据
的脉冲串数据传输。
来自平台204的流数据可以存储在存储器240的缓冲器中。在一个
实施例中,流数据被分为数据块,而针对这些数据块提供了多个缓冲 器,从而一个缓冲器可从平台204接收块流数据,而另一个缓冲器同时 由在计算机208的处理器246上执行的处理功能244来处理,而且把流数 据块同时从另一个缓冲器发送至平台204。利用更多数目的缓冲器,可
以进一步分离各种数据传输和数据处理功能。
在一个实施例中,在完成对处理功能244的各种设计选项的评价 后,可以把处理功能244的抽象实现转换为FPGA 214中实现的硬件规 范,从而不再需要信道206和计算机208来执行流应用。
参考图3,示出了根据本发明的一种方法的示例的流程图,该方法 用于对流应用进行实时的抽象建模。流应用把来自源的处理后的流数 据传递至目的地。
在步骤302,硬件平台从应用数据源(例如视频和/或音频流源) 接收流数据。在步骤304,硬件平台可选地对来自数据源的流数据执行 处理。在步骤306,把流数据从硬件平台传输到通用计算机。如果硬件 平台在步骤304处执行处理,则在步骤306处传输的流数据是步骤304 处理后的流数据,否则,步骤306处传输的流数据是在步骤302处从源
接收的数据。
在步骤308,通用计算机上的软件从步骤306处传输的数据流中创 建处理后的数据流。通过对软件进fiM彦改和重编译,可以快速地在抽
象级上针对步骤308的处理的各种设计选项进行评价,从而允许根据评
价标准而选择具体的设计选项。
在步骤310,把来自步骤308的处理后的数据流从通用计算机传输 到硬件平台。在步骤312处,来自步骤308的处理后的数据流可选地由 硬件平台做进一步的处理,把结果从硬件平台发送至应用数据目的地。
因此,通过附图和/或本发明的涉及流数据应用抽象建模的示例实 施方式的讨论,对各种实施例进行了描述。本发明不应被看作限制于 这些具体的示例实施方式。本发明可应用的各种修改、等效过程以及 多种结构落入本发明的范围。这些变体可以被看作所附权利要求中提 出的所要保护的本发明的一部分。
权利要求
1.一种用于对硬件规范进行建模的系统,包括被设置为接收输入数据流并发送输出数据流的平台(106);流应用源(102),适于以源数据率提供输入数据流;流应用目的地(104),适于以目的地数据率吸收输出数据流;数据信道(110),把所述平台与通用计算机相连;以及所述通用计算机,适于根据所述硬件规范的至少一部分、从第一中间数据流中产生第二中间数据流,其中第一中间数据流通过所述数据信道从所述平台而接收,而第二中间数据流通过所述数据信道被发送至所述平台,其中,第一中间数据流基于输入数据流,而输出数据流基于第二中间数据流。
2. 根据权利要求1所述的系统,其中,所述平台基于可编程逻辑 器件(PLD)。
3. 根据权利要求2所述的系统,其中,所述基于PLD的平台包括至 少一个存储器,所述存储器被设置用于存储输入数据流、第一中间数 据流、第二中间数据流以及输出数据流的移动间隔。
4. 根据权利要求2所述的系统,其中,所述基于PLD的平台适于根据所述硬件规范的至少一部分、从输入数据流中产生第一中间数据流。
5. 根据权利要求2所述的系统,其中,所述基于PLD的平台适于根据所述硬件规范的至少一部分、从第二中间数据流中产生输出数据流。
6. 根据权利要求2所述的系统,其中,所述基于PLD的平台包括具 有可配置逻辑和可配置路由的PLD。
7. 根据权利要求1所述的系统,其中,第一中间数据流是输入流 的副本,输出数据流是第二中间数据流的副本,而且所述通用计算机 适于根据所述硬件规范而从第一中间数据流中产生第二中间数据流。
8. —种用于对电子设计进行建模的方法,包括根据流过电子 设计的流数据,把针对流应用的所述电子设计分为用于接收流应用的 输入数据流的起始部分、中间部分(112)以及用于发送流应用的输出 数据流的结束部分;产生针对所述起始部分和所述结束部分的硬件规 范;产生针对所述中间部分的抽象软件模型;以及从所述硬件规范中 产生可编程逻辑器件(PLD)实施方式的配置数据,其中,所述PLD(118)包括由所述配置数据进行编程的可配置逻辑和可配置路由;从所述抽 象软件模型中产生可执行程序;以及使用所述配置数据操作所述PLD, 并使用所述可执行程序操作通用计算机(108),其中,所述操作对所 述电子设计进行建模。
9. 根据权利要求8所述的方法,还包括根据所述操作对所述电 子设计进行验证。
10. 根据权利要求8所述的方法,还包括从所述抽象软件模型中 产生导出的硬件规范;从所述硬件规范和所述导出的硬件规范中产生 PLD实施方式的另一配置数据;以及使用所述另一配置数据来操作所述 PLD,其中,所述操作实现了所述电子设计。
全文摘要
本发明涉及对流数据进行设计建模和/或处理。根据一个示例实施例,一种用于对硬件规范进行建模的系统包括被设置为接收输入数据流并发送输出数据流的平台(106)。所述系统还包括流应用源(102),适于以源数据率提供输入数据流;流应用目的地(104),适于以目的地数据率吸收输出数据流;以及数据信道(110),把所述平台与计算机(108)相连。所述计算机使用所述硬件规范以产生中间数据流,中间数据流实现了平台建模的流水线化。
文档编号G06F17/50GK101116076SQ200580047728
公开日2008年1月30日 申请日期2005年12月2日 优先权日2004年12月3日
发明者格瑞·E·艾赫曼, 罗伯特·L·佩里, 蒂姆·A·庞帝斯 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1